1.以下C语言指令:
int a[5] = {1,3,5,7,9};
int *p = (int *)(&a+1);
printf(“%d,%d”,*(a+1),*(p-1));
运行结果是什么?
A 2,1
B 3,1
C 3,9
D
运行时崩溃
数组名只有在&与sizeof之后,才表明数组本身,其余表示首元素地址
&a也是一个地址,该地址类型为:int(*)[5]
a是一个数组,数组类中是int[5]
2.二维数组X按行顺序存储,其中每个元素占1个存储单元。若X[4][4]的存储地址为Oxf8b82140,
X[9][9]的存储地址为Oxf8b8221c,则X[7][7]的存储地址为
A Oxf8b821c4
B Oxf8b821a6
C Oxf8b82198
D Oxf8b821c0
3.下面程序的执行结果是
#include <stdio.h>
int cnt = 0;
int fib(int n) {
cnt++;
if (n == 0)
return 1;
else if (n == 1)
return 2;
else
return fib(n - 1) + fib(n - 2);
}
void main() {
fib(8);
printf("%d", cnt);
}
A 41
B 67
C 109
D 177
cnt实际在统计:斐波那契递归的次数
F0:1次
F1:1次
F2:F0+F1=3
F3:F2+F1=3+1+1=5
F4:F3+F2=5+3+1=9
F5:F4+F3=9+5+1=15
F6:F5+F4=15+9+1=25
F7:F6+F5=25+15+1=41
F8:F7+F6=41+25+1=67
编程题
1.计算糖果_牛客题霸_牛客网
2.进制转换_牛客题霸_牛客网