【C/C++_选择题】(D10 1203)
1、32位系统中,定义 * * a[3] [4],则变量占用内存空间为 ( B )
A 4
B 48
C 192
D 12
分析:
a是一个二级指针数组,数组里面存放的数据类型是二级指针,32位系统中二级指针的大小是4个字节,有12个这样的元素 ,12*4=48。
2、二维数组X按行顺序存储,其中每个元素占1个存储单元。若X[4] [4]的存储地址为Oxf8b82140,X[9] [9]的存储地址为 0xf8b8221c,则X[7] [7]的存储地址为 ( A )
A 0xf8b821c4
B 0xf8b821a6
C 0xf8b82198
D 0xf8b821c0
分析:
这道题的关键是不知道每行有几个元素,但是知道它们的存储地址,且每个元素只占1个存储单元。假设每行有n个元素,X[7] [7]的存储地址为x,那么就有
X[9] [9] - X[4] [4] = 21c-140=5n+5 即:540-320=5n+5
X[7] [7] - X[4] [4] = x-140=3n+3 即:x-320=3n+3
解得:n=43 x=452 转化成十六进制 x = 1c4 即选A
3、求函数返回值,输入x=9999 ( A )
int func(int x)
{
int count=0;
while (x)
{
count++;
x=x&(x-1); //与运算
}
return count;
}
A 8
B 9
C 10
D 12
4、根据下面递归函数:调用函数Fun(2),返回值是多少( D )
int Fun(int n)
{
if