C语言复习题
(1) 设有 int x=11; 则表达式 (x++ * 1/3) 的值是
A) 3 B) 4 C) 11 D) 12 (2) 下列程序的输出结果是
A) 3 B) 3.2 C) 0 D) 3.07 main()
{ double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(\ }
(3) 下列程序执行后的输出结果是(小数点后只写一位)
A) 6 6 6.0 6.0 B) 6 6 6.7 6.7 C) 6 6 6.0 6.7 D) 6 6 6.7 6.0 main()
{ double d; float f; long l; int i; i=f=1=d=20/3;
printf(\ }
(4) 下列变量定义中合法的是
A) short _a=1-.le-1; B) double b=1+5e2.5; C) long do=0xfdaL; D) float 2_and=1-e-3; (5) 设 int x=1, y=1; 表达式(!x||y--)的值是
A) 0 B) 1 C) 2 D) -1 (6) 与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是 A) if (x>0) y=1; B) if(x)
else if(x<0)y=-1; if(x>0)y=1;
else y=0; else if(x<0)y=-1; else y=0; C) y=-1 D) y=0; if(x) if(x>=0)
if(x>0)y=1; if(x>0)y=1; else if(x==0)y=0; else y=-1; else y=-1;
(7) 以下循环体的执行次数是
A) 3 B) 2 C) 1 D) 0 main() { int i,j;
for(i=0,j=1; i<=j+1; i+=2, j--)printf(\ }
(8) 下列程序执行后的输出结果是
A) G B) H C) I D) J main()
{ int x='f'; printf(\
(9) 执行下面的程序段后,变量k中的值为
A) 不定值 B) 33 C) 30 D) 10 int k=3, s[2]; s[0]=k; k=s[1]*10;
(10) 若已定义:
int a[ ]={0,1,2,3,4,5,6,7,8,9}, *p=a,i; 其中 0≤i≤9, 则对a数组元素不正确的引用上
A) a[p-a] B) *(&a[i]) C) p[i] D) a[10] (11) 下列程序执行后的输出结果是
A) 6 B) 7 C) 8 D) 9 void func(int *a,int b[]) { b[0]=*a+6; } main()
{ int a,b[5];
a=0; b[0]=3;
func(&a,b); printf(\ }
(12) 下列程序的运行结果是
A) a=%2,b=%5 B) a=2,b=5 C) a=d, b=d D) a=%d,b=%d #include
{ int a=2,c=5;
printf(\
(13) 下列程序执行后的输出结果是
A) 3 B) 6 C) 9 D) 随机数 main()
{ int a[3][3], *p,i; p=&a[0][0];
for(i=0; i<9; i++) p[i]=i+1; printf(\ }
(14) 设有数组定义: char array [ ]=\则数组 array所占的空间为 A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节 (15) 下列程序的输出结果是
A) 4 B) 6 C) 8 D) 10 int b=2;
int func(int *a)
{ b += *a; return(b);}
main()
{ int a=2, res=2; res += func(&a); printf(\ }
(16) 下列程序的输出结果是
A) 4 B) 2 C)1 D) 0 main()
{ int i, j, m=0, n=0; for(i=0; i<2; i++) for(j=0; j<2; j++) if(j>=i) m=1; n++; printf(\ }
(19) 若有定义: float w; int a, b; 则合法的switch语句是 A) switch(w) B) switch(a);
{ case a: printf(\ case 2.0: printf(\ } }
C) switch(b) D) switch(a+b);
{ case 1: printf(\ default: printf(\ case 1+2: printf(\ } } (20) 以下程序段的执行结果是
A) a=12 y=12 B) a=12 y=12 a=14 y=16 a=16 y=28 a=16 y=20 a=18 y=24
C) a=12 y=12 D) a=12 y=12 a=14 y=26 a=14 y=44 int a, y; a=10; y=0; do
{ a+=2; y+=a;
printf(\ if(y>20) break; { while(a=14); .
(21) 若有以下调用语句,则不正确的fun函数的首部是
A) void fun(int m, int x[]) B) void fun(int s, int h[41])