目录
1.设有定义: double array[10]; 表达式 sizeof(array)/sizeof(array[0])的结果是 array数组中元素个数。说法是否正确?
2.在以下程序段中,若从键盘输入:abc def↙,则输出结果是( )
4.用calloc函数创建具有10个整型元素的动态存储空间的正确调用是( )。
5.上下文及头文件均正常的情况下,以下程序的输出结果是________。
1.设有定义: double array[10]; 表达式 sizeof(array)/sizeof(array[0])的结果是 array数组中元素个数。说法是否正确?
答案:正确
解析:sizeof,用数组的大小除以单个元素的大小得到数组中元素的个数
2.在以下程序段中,若从键盘输入:abc def↙,则输出结果是( )
char *p, *q;
p = (char *)malloc(sizeof(char) * 20);
q = p;
scanf("%s %s", p, q);
printf("%s %s\n", p, q);
答案:def def
解析:p q 指向同样的地址, scanf("%s %s", p, q);"abc"赋值给p,然后"def"赋值给q(即p),把之前的赋值覆盖了。
3.对于 32 位机器,则下面代码输出结果为()
#include<iostream>
#include<string>
using namespace std;
typedef struct data_ {
int a[10];
} data_t;
typedef struct descriptor_ {
data_t* ptr;
char data[0];
} desc_t;
int main() {
cout << sizeof(desc_t) << endl;
return 0;
}
答案:4
解析:data[0]的长度为零,字节为零。在WIN32编译器下指针长度为4。总长度为4,不需要补齐。所以结构体长度为4