int x = 1;
do {
printf("%2dn", x++);
} while (x--);
A 1
B 无任何输出
C 2
D 陷入死循环
A 10,4
B 4,4
C 9,9
D 9,4
3.下列程序的打印结果是?(D)解析:
占一个字节空间,表示转义字符
编译器会给字符串末尾加一个
strlen函数遇到 后就停止统计
char p1[15] = "abcd", * p2 = "ABCD", str[50] = "xyz";
strcpy(str + 2, strcat(p1 + 2, p2 + 1));
printf("%s", str);
A xyabcAB
B abcABz
C ABabcz
D xycdBCD
E 运行出错
4.下面程序的输出结果是(B)解析:
#includevoid main() { int n[][3] = { 10,20,30,40,50,60 }; int(*p)[3]; p = n; cout << p[0][0] << "," << *(p[0] + 1) << "," << (*p)[2] << endl; }
A 10,30,50
B 10,20,30
C 20,40,60
D 10,30,60
5.以下说法中正确的是(B)。解析:
p表示一个指向有三个整型元素的数组的指针
p[0]等价于*(p+0),表示数组的第0行,即第0个一维数组的数组名,也即第0个一维数组首元素的地址
A C++程序中的main()函数必须放在程序的开始部分
B C++程序的入口函数是main函数
C 在C++程序中,要调用的函数必须在main()函数中
#includeusing namespace std; char fun(char x, char y) { if (x < y) return x; return y; } int main() { int a = '1', b = '1', c = '2'; cout << fun(fun(a, b), fun(b, c)); return 0; }
A 运行出错
B 2
C 3
D 1
A pa是一个具有5个元素的指针数组,每个元素是一个int类型的指针;
B pa是一个指向数组的指针,所指向的数组是5个int类型的元素;
C pa[5]表示某个数的第5个元素的值;
D pa是一个指向某个数组中第5个元素的指针,该元素是int类型的变量
struct One {
double d;
char c;
int i;
}
struct Two {
char c;
double d;
int i;
}
A 16 24,16 24
B 16 20,16 20
C 16 16,16 24
D 16 16,24 24
A (((a+i)+j)+k)+l)
B *(*(*(*(a+i)+j)+k)+l)
C (((a+i)+j)+k+l)
D ((a+i)+j+k+l)
他的回答: (错误)
正确答案: B
10.由多个源文件组成的C程序,经过编辑、预处理、编译、链接等阶段会生成最终的可执行程序。下面哪个阶段可以发现被调用的函数未定义?(C)解析:
A 预处理
B 编译
C 链接
D 执行
解析:
预处理:头文件展开,宏替换,处理预编译指令,去注释等
编译:检查语法错误,生成汇编代码
汇编:将编译完成的汇编指令翻译成对应的二进制文件
链接:将多个目标文件拼接成一个,解决地址问题



