|
|
一、选择题 (1)有以下程序 main() { char p[]={'a', 'b', 'c'}, q[]="abc"; printf("%d %d\n", sizeof(p),sizeof(q)); }; 程序运行后的输出结果是 A)4 4 B)3 3 C)3 4 D)4 3
(2)有以下程序 # define f(x) (x*x) main() { int i1, i2; i1=f(8)/f(4) ; i2=f(4+4)/f(2+2) ; printf("%d, %d\n",i1,i2); } 程序运行后的输出结果是 A)64, 28 B)4, 4 C)4, 3 D)64, 64
(3)有以下程序 main() { char a[7]="a0\0a0\0";int i,j; i=sizeof(a); j=strlen(a); printf("%d %d\n",i,j); } 程序运行后的输出结果是 A)2 2 B)7 6 C)7 2 D)6 2
(4)以下叙述中正确的是 A)预处理命令行必须位于源文件的开头 B)在源文件的一行上可以有多条预处理命令 C)宏名必须用大写字母表示 D)宏替换不占用程序的运行时间
(5) 有以下程序 main( ) { char a[]=”abcdefg”,b[10]=”abcdefg”; printf(“%d %d\n”,sizeof(A) ,sizeof(B) ); } 执行后输出结果是 A) 7 7 B) 8 8 C) 8 10 D) 10 10
(6) 有以下程序 #define f(x) x*x main( ) { int i; i=f(4+4)/f(2+2); printf(“%d\n”,i); } 执行后输出结果是 A) 28 B) 22 C) 16 D) 4
(7) 有以下程序 #include <stdio.h> #define F(X,Y) (X)*(Y) main () { int a=3, b=4; printf("%d\n", F(a++,b++)); } 程序运行后的输出结果是 A) 12 B) 15 C) 16 D) 20
(8) 有以下程序 main() { char s[]="\n123\\"; printf("%d,%d\n",strlen(s),sizeof(s)); } 执行后输出结果是 A) 赋初值的字符串有错 B) 6,7 C) 5,6 D) 6,6
(9) 有以下程序 main(int arge,char *argv[]) { int n,i=0; while(arv[1][i]!='\0' { n=fun(); i++;} printf(%d\n",n*argc); } int fun() { static int s=0; s+=1; return s; } 假设程序经编译、连接后生成可执行文件exam.exe,若键入以下命令行 exam 123<回车> 则运行结果为
(10) 有以下程序 main() { char a[ ]={‘a’,‘b’,‘c’,‘d’, ‘e’, ‘f’, ‘g’,‘h’,‘\0’}; int i,j; i=sizeof(a); j=strlen(a); printf(“%d,%d\b”i,j); } 程序运行后的输出结果是 A)9,9 B)8,9 C)1,8 D)9,8
|
|