C语言程序设计复习题新.docx
《C语言程序设计复习题新.docx》由会员分享,可在线阅读,更多相关《C语言程序设计复习题新.docx(27页珍藏版)》请在冰豆网上搜索。
![C语言程序设计复习题新.docx](https://file1.bdocx.com/fileroot1/2023-7/14/51e3263d-9961-499e-8a27-9489e88a2cef/51e3263d-9961-499e-8a27-9489e88a2cef1.gif)
C语言程序设计复习题新
C语言程序设计复习题(选择题)新(总12页)
第二部分选择题
1. 假设整型变量a为2,使b的值为0的表达式是( )。
A)b=a/2 B)b=6-(--a) C)b=a%2 D)b=a>30:
1
提示 正确答案为C
2. 假设x=,a=7,y=,则表达式:
x+a%3*(int)(x+y)%2/4的值为( )。
A) B) C)3 D) 提示 正确答案为A
3. 假设a=3,b=4,c=5,则逻辑表达式:
!
(a+b)+c-1&&b+c/2的值是( )。
A)true B)false C)0 D) 1 D 提示 正确答案为D
4. 假设所有变量均为整型,则表达式:
(a=2,b=5,b++,a+b)的值为( )。
A)7 B)8 C)6 D)2 B 提示 正确答案为B
5. 设整型变量x的值为5,y的值为2,则值为1的表达式是( )。
A)!
(y==x/2) B)y!
=x%3 C)x>0&&y<0 D)x!
=y||x>=y
6.已知a=12,表达式a+=a-=a*=a的值为( )。
A)144 B)-12 C)0 D)24 C 提示 正确答案为C
6. 在下面C语言的函数说明语句中,正确的是( )。
A) int fun(int x, int y);
B) int fun(int x,y);
C) int fun(x,y);
D) int fun(int x; int y); A 提示 正确答案为A
7. 设有整型变量a, 实型变量f,双精度型变量x,则表达式10+'b'+x*f值的类型为( )。
A) int B) float C) double D) 不能确定 C 提示 正确答案为C
8. 若有int k=5; float x=;则表达式(int)(x+k)的值是( )。
A)5 B) C)7 D)6 提示 正确答案为D
9. 表达式k=(12<10)4:
12:
3的值为( )。
A) 1 B) 2 C) 3 D) 4 B 提示 正确答案为B
10. 下列哪组运算符的优先级相同且运算次序从左到右( )。
A)() [] -> . B)++ -- +=
C)< & | ^ D)&& || A 提示 正确答案为A
11. 已知:
int x=1, y=2, z=0; 则执行:
z=x>y10:
20, z的值为( )。
A)10 B)20 C)1 D)2 B 提示 正确答案为B
12. 若已定义x和y为double类型,则表达式x=2,y=x+10/4 的值是( ) 。
A) 2 B) 4 C) D) C 提示 正确答案为C
13. sizeof(''a''+10)的值为( )类型。
A)int B) float C) double D)char提示 正确答案为A
14. 已知:
int x=1, y=2, z; 则执行:
z=x>y++x:
++y, z的值为( )。
(A) 1 (B) 2 (C) 3 (D) 4 C 提示 正确答案为C
15. C语言中,运算对象必须是整型数的运算符是( )。
A)% B)/ C)%和/ D)* A 提示 正确答案为A
16. 若已定义x和y为double类型,则表达式:
x=1,y=x+3/2的值是( )。
A)1 B)2 C) D) C 提示 正确答案为C
17. 若t为double类型,表达式t=1,t+5,t的值是( ) 。
A)1 B) C) D)6 C 提示 正确答案为C
18. 在以下一组运算符中,优先级最高的运算符是( )。
A)<= B)= C)% D)&& C 提示 正确答案为C
19. 若有以下定义:
| char a;int b;
float c;
double d;
则表达式a*b+d-c值的类型为( )。
A)float B)int C)char D)double D 提示 正确答案为D
20. 假设有int x=11; 则表达式 (x++*1/3) 的值是 ( )
A) 3 B) 12 C) 11 D) 0 A 提示 正确答案为A
21. 以下关于运算符优先顺序的描述中,正确的是( )。
A)关系运算符<算术运算符<赋值运算符 B)逻辑运算符<关系运算符<算术运算符
C)算术运算符<关系运算符<赋值运算符 D)赋值运算符<关系运算符<算术运算符
D 提示 正确答案为D
22. sizeof (double)是一个( )。
A)整型表达式 B)实型表达式 C)不合法的表达式 D)函数
A 提示 正确答案为A
23. 下面对变量赋初值正确的是( )
A)int a=b=c=1; B)int a=1,b=c=2;
C)int a=1,b=1,c=1; D)int a=b=1,c=2; C 提示 正确答案为C
24. 在C语言中,若以下变量均为int型,则下面程序段的输出结果是( )。
s=6,u=6; u=s++;u++;
printf("%d",u);
A)7 B)6 C)5 D)4 B 提示 正确答案为B
25. 若有定义:
int x=3;double y; 则执行语句y=(double)x;后,变量x的数据类型为( )。
A)int B)char C)flaot D)double A 提示 正确答案为A
26. 若有定义double x,y; 则表达式x=1,y=x+3/2的值为( )。
A)1 B)2 C) D) C 提示 正确答案为C
27. 若有定义int x,y,t; 则执行语句:
x=y=3,t=++x||++y;后,y的值为( )。
A)不定值 B)4 C) 3 D)1 C 提示 正确答案为C
28. 若x、i、j和k都是int型变量,则计算下面表达式后,x的值为( )。
x=(i=4,j=16,k=32)
A) 4 B) 16 C) 32 D) 52 C 提示 正确答案为C
29. 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( )。
A)7 B)8 C)6 D)2 B 提示 正确答案为B
30. 设int a=1,则执行完循环While(a++<5);a的值是:
A)6 B)5 C)1 D)-264 A 提示 正确答案为A
31. 在下列for循环中,其循环次数是( )。
for(x=1,y=0;(y!
=123)&&(x<4); x++);
A)4 B)3 C)1 D)无数多次 B 提示 正确答案为B
32. 设x和y均为int型变量,则执行下面的循环后,y的值为( )。
for(y=1,x=1;y<=50;y++)
{if (x>=10) break;
if (x%2==1) {x+=5;continue;}
x-=3;
}
A)2 B)4 C)6 D)8 C 提示 正确答案为C
33. 执行下面程序段的结果是( )。
int x=23;
do
{ printf("%2d",x--);
}while (!
x);
(A)打印出321 (B)打印出23 (C)不打出任何内容 (D)陷入死循环
B 提示 正确答案为B
34. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列,如果字符串长度大于5,则输出按方式 ( )。
A)从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出
C) 右对齐输出该字串,左补空格 D) 输出错0信息 B
提示 正确答案为B
35. putchar函数可以向终端输出一个()。
A) 整型变量表达式值 B) 实型变量值
C) 字符串 D) 字符或字符型变量值 D
提示 正确答案为D
36. 请读程序片段:
int i=65536; printf("%d\n",i);
上面程序片段的输出结果是( )。
A) 65536 B) 0 C) 有语法错0,无输出结果 D) -1 B
提示 正确答案为B
37. 在下列程序段中:
int x, y ;
scanf("%3d*2d%d",&x,&y);
若输入的数据为:
,则x、y的值分别为( )。
A) 123,456 B)123,678 C)12345 678 D)无法得到正确的值 B
提示 正确答案为B
38. 有如下程序,输入数据12 345后,y的值是( )。
#include <>
main()
{int x;
float y;
scanf("%3d%f",&x,&y); }
(A) (B) (C) (D) B 提示 正确答案为B
39. 有如下程序,若要求a1,a2,c1,c2的值分别为10,20,A,B,正确的数据输入是( )。
main()
{int a1,a2;
char c1,c2;
scanf("%d%d",&a1,&a2);
scanf("%c%c",&c1,&c2);
}
(A)1020AB (B)10 20AB
(C)10 20 AB (D)10 20AB D 提示 正确答案为D
40. 执行下列程序段后,变量a,b,c的值分别是( )。
int x=10,y=9;
int a,b,c;
a=(--x==y++)--x:
++y;
b=x++;
c=y;
(A)a=9,b=9,c=9 (B)a=9,b=10,c=9
(C)a=1,b=11,c=10 (D)a=8,b=8,c=10 D 提示 正确答案为D
41. 设有语句int a=3;则执行语句a+=a-=a*a后,变量a的值是( )。
(A) 3 (B) 0 (C) 9 (D) -12 D 提示 正确答案为D
42. 在下列选项中,不正确的赋值语句是( )。
A)t/=5; B)n1=(n2=(n3=0));
C)k=i==j; D)a=b+c=1; D 提示 正确答案为D
43. 设x为int型变量,则执行以下语句后,x的值为( )。
x=10;x+=x-=x-x;
A)10 B)20 C)0 D)-20 B 提示 正确答案为B
44. 若有int a=1,b=2,c=3,d=4;则表达式:
a++cd的值是( )。
A)4 B)3 C)2 D)1 C 提示 正确答案为C
45. 以下选项中( )是正确的C语言赋值语句。
A)x=3,y=5 B)a=b=6 C)i--; D)y=int(x); C 提示 正确答案为C
46. 设有如下的变量定义:
int i=8,k,a,b;
unsigned long w=5;
double x=1,42,y=;
则以下符合C语言语法的表达式是( )。
A)a=a-=(b=4)*(a=3) B)x%(--3)
C)a=a*3=2 D)y=float(i) A 提示 正确答案为A
47. 当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的语句是( )。
A)c=b=a; B)(a=c)‖(b=c); C)(a=c)&&(b=c); D)a=c=b; C 提示 正确答案为C
48. 在C语言的if语句中,用作判断的表达式为( )。
A)关系表达式 B)逻辑表达式 C)算术表达式 D)任意表达式
D 提示 正确答案为D
49. 以下程序的运行情况是( ).
#inlcude<>
void main( )
{int x=3,y=0,z=0;
if (x=y+z) printf("****");
else printf("####");}
A)有语法错0不能通过编译 B)输出****
C)可以通过编译, 不能通过连接, 不能运行 D)输出####
D 提示 正确答案为D
50. 若有定义int x,y;下面选项中合法的if语句( ).
A)if(a==b)x++; B)if(a=
(C)if(a<>b)x++; (Dif(a=>b)x++; A 提示 正确答案为A
51. 运行下列程序并用键盘输入53,48,32 后,在屏幕上的内容是( )。
main ()
{
int i,j,k;
scanf ("%d,%d,%d",&i, &j, &k);
if (i>50) printf("%d",i);
else if (i>40) printf("%d",j);
else if (i>30) printf("%d",k);
else printf("Error");
}
A)53 B)48 C)32 D)Error A 提示 正确答案为A
52. 若有int i=10,j=0; 并执行下列程序段:
switch ( i )
{
case 9:
i+=1; break;
case 10:
case 11:
i-=2; break;
default:
j+=3; break;
}
则变量i的正确结果是( )。
A)13 B)10 C)11 D)8 D 提示 正确答案为D
53. 若 int i=10,执行下列程序:
switch ( i )
{ case 9:
i+=1;
case 10:
case 11:
i-=1;
default:
i+=1;
}
则变量i的正确结果是( )。
(A)10 (B)11 (C)12 (D)9 A 提示 正确答案为A
54. 以下程序段的运行结果是( )。
int a=7,b=8,c=9;
if(a>b)
a=b,b=c;c=a;
printf("%d,%d,%d\n",a,b,c); A)7,8,7 B)7,9,7 C)8,9,7 D)7,8,9 A 提示 正确答案为A
55. 两次运行以下程序,若从键盘上分别输入6和4,则输出结果是( )。
main( )
{int x;
scanf("%d",&x);
if(x++>5) printf("%d\n",x--);}
A)7和5 B)7 C)7和4 D)6和4 B 提示 正确答案为B
56. 下面程序的输出是( )。
main( )
{int y=9;
for(;y>0;y--)
if(y%3==0)
{printf(“%d”,--y);continue;}
}
A)741 B)852 C)963 D)875421 B 提示 正确答案为B
57. 假定所有变量均已正确说明,下列程序段运行后x的值是( )。
a=b=c=0;x=35;
if(!
a)x--;
else if(b)
if(c) x=3;
else x=4;
A)34 B)4 C)35 D)3 B 提示 正确答案为B
58. 下面程序的运行结果是( )。
main( )
{int k=3;
if (k++>3) printf("%d\n",k++);
else printf("%d\n",--k); }
A)5 B) 4 C)3 D)2 C 提示 正确答案为C
59. 下面程序的输出结果为( ) 。
main( )
{int x=0,a=10,b=20,c=15;
if (a>b) if(b else x=2;
printf("%d\n",x); }
A)0 B)1 C)2 D)不确定 A 提示 正确答案为A
60. 下列程序的输出结果是( )。
#include <>
main( )
{int a,b,c;
a=1;b=2;c=3;
a=(c=a>b)&&(b=c
c;
printf("%d,%d,%d\n",a,b,c);
}
A)1,2,3 B)0,2,0 C)1,2,0 D)1,0,0 B 提示 正确答案为B
61. 如果有#define f(x,y) x+y及int a=2,b=3;则执行printf("%d",f(a,b)*f(a,b)) 后的值为( )。
A)36 B)25 C)11 D)13 C 提示 正确答案为C
62. 若#include后面的文件名用双引号括起来,寻找被包含文件的方式是( )。
A) 先按系统设定的标准方式查找,再在当前目录中查找
B) 先在当前目录中查找,再按系统设定的标准方式查找
C) 只在当前目录中查找
D)只按系统设定的标准方式查找 B 提示 正确答案为B
63. 在宏定义#define PI 中 ,用宏名PI代替一个( )。
A)单精度数 B)双精度数 C)常量 D)字符串 D 提示 正确答案为D
64. 执行下面的程序
#define SQR(X) X*X
main()
{ int a=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d\n",a); }
后,a的值是( )。
(A)10 (B)9 (C) 1 (D)0 C 提示 正确答案为C
65. 下面程序的输出结果是( )。
#include ""
#define SUB(x,y) (x)*y
main( )
{int a=3,b=4;printf("%d\n",SUB(a,b+1));}
A)12 B)16 C)15 D)13 D 提示 正确答案为D
66. 下列程序执行后的输出结果是( ) 。
#define MA(x) x*(x-1)
main ( )
{ int a=1,b=2;
printf("%d\n",MA(1+a+b));}
A) 6 B) 8 C) 10 D)12 B 提示 正确答案为B
67. 设有以下宏定义:
#define N 3
#define Y(n) (N+1*n)
则执行语句:
z=2*(N*Y(5+1));后,z的值为( )。
A)30 B)72 C)48 D)54 D 提示 正确答案为D
68. 以下程序的输出结果是 ( )。
#define M(x,y,z) x*y+z
main( )
{ int a=1,b=2,c=3;
printf("%d\n", M(a+b,b+c,c+a)); }
A) 19 B) 17 C) 15 D) 12
D 提示 正确答案为D
69. 一个C程序的组成部分可以是( )。
A) 一个主函数和一至若干个其他函数
B) 一至若干个主函数
C) 一个主程序和一至若干个其他函数
D) 一个主程序和一至若干个子程序 A 提示 正确答案为A
70. 以下叙述正确的是( )。
A)在C程序中,main函数必须位于程序的最前面
B)C程序的每行中只能写一条语句
C)C语言本身没有输入输出语句
D)在对一个C程序进行编译的过程中,可发现注释中的拼写错 C 提示 正确答案为C
71. C语言规定,C程序执行的开始处为( )。
A) 源程序中排列在最前面的函数
B) 一个指定的系统库函数
C) 用户指定的一个特定函数
D) 程序的主函数 D 提示 正确答案为D
72. 一个C程序的执行是从( )。
A)本程序的main函数开始,到main函数结束
B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C)本程序的main函数开始,到本程序文件的最后一个函数结束
D)本程序文件的第一个函数开始,到本程序main函数结束 A 提示 正确答案为A
73. 一个C语言程序是由( )组成。
A) 一个函数 B) 一个或若干个函数
C) 一个过程 (D) 一个过程或若干个过程 B 提示 正确答案为B
74. 下列说法中提示的是( )。
A) 程序的执行总是从主函数开始。
B) 主函数可以调用任何非主函数的其它函数
C) 任何非主函数可以调用其它任何非主函数
D) 程序可以从任何非主函数开始执行 D 提示 正确答案为D
75. C程序的基本单位是( )。
A)函数 B)过程 C)语句 D)子程序 A 提示 正确答案为A
76. C语言规定:
在一个源程序中,main函数的位置( )。
A)必须在最开始B)必须在系统调用的库函数的后面
C)可以任意D)必须在最后 C 提示 正确答案为C
77. 下列四组选项中,均不是C语言关键字的选项是( )。
A) define B) getc C) include D) while
IF char scanf go
type printf case pow A 提示 正确答案为A
78. 以下叙述不正确的是( )。
A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数
C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面
D 提示 正确答案为D
79. C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )。