35.( )使用结构体struct的目的是,将一组数据作为一个整体,以便于其中的成员共享同一空间。 36.( )在C语言中,如果它们的元素相同,即使不同类型的结构也可以相互赋值。
37.( )在C语言中,枚举元素表中的元素有先后次序,可以进行比较。38.( )用typedef可以定义各种类型名,但不能用来定义变量。 39.( )语句printf(“%d\\n”,sizeof(struct person)); 将输出结构体类型person的长度。
40.( 所谓结构体变量的指针就是这个结构体变量所占内存单元段的起始地址。
1. ╳ 2. ╳ 3 . ╳ 4. ╳ 5. ╳ 6. √ 7. √ 8. √ 9. ╳ 10. √ 11.√ 12.√ 13. ╳ 14. ╳ 15. √
16. ╳ 17. ╳ 18. √ 19. √ 20. ╳ 21. ╳ 22. √ 23. ╳ 24. √ 25. ╳ 26. √ 27. ╳ 28. √ 29. ╳ 30. √ 31. ╳ 32. √ 33. √ 34. ╳ 35. ╳ 36. ╳ 37. √ 38. √ 39. √ 40. √
四.选择题
1. 在C语言中,不同类型数据混合运算时,要先转换成同一类型后进行运算。设一表达式中包含有int、long、unsigned、char类型的变量和数据,则表达式最后的运算结果是 类型数据。 ① int ② char ③ unsigned ④ long 2. 若int型数据占2个字节,则以下语句的输出为 。
int k=-1; printf(“%d,%u\\n”,k,k);
① -1,-1 ② -1,32767 ③ -1,32768 ④ -1,65535
3. 若a, b均为int型变量,x, y均为float型变量,正确的输入函数调用是 。
① scanf(\\a,&b); ③ scanf(\\a,b);
② scanf(\\a,&x); ④ scanf(\\
4. 若x, y均为double型变量,正确的输入函数调用是 。 ① scanf(\\y); ② scanf(\\&x,&y); ③ scanf(\lf%lf\x,&y);
④ scanf(\lf%lf\y);
5. 若x为char型变量,y为int型变量,x, y均有值,正确的输出函数调用是 。
① printf(\%c\ ③ printf(\\y);
② printf(\%s\; ④ printf(\\;
6. 若a, b, c, d都是int型变量且初值均为10,不正确的赋值语句是 。
①a=b=c=d; ③ a+b++;
② a=b++;
④ d=(a=b=125)?c++;
7. 若x, y均为int型变量且有值,要输出x, y的值,正确的输出函数调是 。① printf(\d%d\y);
② printf(\\
③ printf(\\; ④ printf(\\x,y); 8. x为int型变量,且值为2345,不正确的输出函数调用是 。
① printf(\\
② printf(\\x);
③ printf(\\; ④ printf(\\
9. 设x和y均为int型变量,则执行以下语句后的输出为 。 x=15;y=5;printf(“%d\\n”,x%=(y%=2)); ① 0
② 1 ③ 6 ④ 12
4. ③
5. ① 6. ③
1. ④ 2. ④ 3. ② 7. ④ 8. ④ 9. ①
10. 若m为float型变量,则执行以下语句后的输出为 。
m=1234.123;printf(“%-8.3f\\n”,m);printf(“.3f\\n”,m); ①1234.123 ② 1234.123 1234.123 1234.123 ③1234.123 ④ 1234.123
001234.123 001234.123
11. 若n为int型变量,则执行以下语句后的输出为 。 n=32767;printf(“0d\\n”,n);printf(“d\\n”,n);
① 0000032767
② 32767 0000032767
④ 输出格式说明符不
32767 ③ 32767 合法
32767 32767
12. 若x为unsigned int型变量,则执行以下语句后的x值为 。x=65535;printf(“%d\\n”,x);
① 65535 ③ 无定值
② 1
④ -1
13. 若x为int型变量,则执行以下语句后的输出为 。 x=0xDEF;printf(“M\\n”x);printf(“%4o\\n”x);printf(“%4x\\n”,x);
① 3567 ② 3567 ③ 3567 ④ 3567 6757 6757 06757 6757 def def 0xdef 0def
14. 若x、y、z均为int型变量,则执行以下语句后的输出为 。
x=(y=(z=10)+5)-5;printf(“x=%d,y=%d,z=%d\\n”,x,y,z); y=(z=x=0,x+10);printf(“x=%d,y=%d,z=%d\\n”,x,y,z);
① x=10,
x=0, ② x=10,
x=0, ③ x=10,
x=10, ④ x=10,
y=15, y=10,
z=10 z=0
y=10, z=10 y=10, z=0 y=15, z=10
y=10, z=0
y=10, z=10
z=0 14. ①
x=0, y=10,
10. ② 11. ① 12. ④ 13. ①
15. 若x是int型变量,y是float型变量,所用的scanf调用语句格式为:scanf(“x=%d,y=%f”,&x,&y);则为了将数据10和66.6分别赋给x和y,正确的输入应当是 。
①x=10,y=66.6 <回车> ②10 66.6 <回车> ③10 <回车> 66.6 <回车> ④x=10 <回车> y=66.6 <回车>
16. 若w、x、y、z均为int型变量,则为了使以下语句的输出为:
1234+123+12+1,正解的输入形式应当是 。
scanf(“M+=+-+”,&x,&y,&z,&w);printf(“M+=+-+\\n”,x,y,z,w);
① 1234123121<回车> ② 1234123412341234<回车> ③ 1234+1234+1234+1234<回车> ④ 1234+123+12+1<回车>
17. 若x、y均为int型变量,z为double型变量;则以下不合法的scanf函数调用语句为 。
① scanf(“%d,%lx,%le”,&x,&y,&z); ② scanf(“-*%d%lf”,&x,&y,&z); ③ scanf(“%x%*d%o”,&x,&y); ④ scanf(%x%o%6.2f”,&x,&y,&z);
18. 设a、b均是int型变量,则以下不正确的函数调用为 。
① ?a?<=c1<=?z? ② putchar(?\\108?) ③ scanf(“%d%*2d”,&a,&b) ④putchar(?\\??)
19.判断char型变量c1是否为小写字母的最简单且正确的表达式为 。
① ?a?<=c1<=?z? ② (c1>=a)&&(c1<=z) ③ (?a?<=c1)||(?z?>=c1) ④ (c1>=?a?)&&(c1<=?z?)
20.若a、b、c均为int型变量,则执行以下语句后,a值为 (1) ,b值为 (2) 。a=b=c=1;++a||++b&&++c;
(1) ① 不正确 ② 0 ③ 2 ④ 1
(2) ① 1 ② 2 ③ 不正确 ④ 0 15. ① 16. ④ 17.④ 18.② 19.④ 20.(1) ③ (2) ①
21.若已知w=1,x=2,y=3,z=4,a=5,b=6,则执行以下语句的a值为 (1) ,b值为 (2) 。(a=w>x)&& (b=y>z );
(1) ① 5
2
(2) ① 6
4
22.以下不正确的if语句是_______。
① if (x>y); ② if (x= =y) x+=y;
③ if (x!=y)scanf(“%d”,&x) else scanf(“%d”,&y); ④ if (x 23. C语言对嵌套if语句的规定是:else总是与 配对。 ① 其之前最近的if ③ 缩进位置相同的if else的if 24.若有说明int x,y;则下面程序段 不能实现以下的函数关系: ① if (x<0) y= -1; else if (x= =0) y=0; else y=1; ② y= -1; if (x!=0) ;if (x>0) y=1; else y=0; ③ y=0; if (x>=0);if (x>0) y=1; else y= -1; ④ if (x>=0) if (x>0) y=1; else y=0; else y= -1; 25.若x、y、z、m、n 均为 int 型变量,则执行下面语句后的 x 值 为 (1) ,y值为 (2) ,z的值为 (3) 。m=10; n=5; x=(--m==n++)?--m:++n;y=m++;z=n; (1) ① 5 (3) ① 5 ② 6 ③ 10 ④ 7 ② 6 ③ 9 ④ 10 ② 10 ③ 6 ④ 7 (2) ① 11 ② 第一个if ④ 其之前最近且不带 ② 0 ③ 1 ④ ② 0 ③ 1 ④ 26.若有说明语句:int w=1,x=2,y=3,z=4;则表达式w>x?w:z>y?z:x的值是 。