第一章 单元测试
1、单选题:一个C程序可能出现的错误有
A:
语法错误
B:
逻辑错误
C:
运行错误
D:
语法错误、逻辑错误、运行错误
正确答案:【
语法错误、逻辑错误、运行错误
】
2、单选题:C程序中一般可以包含几个函数
A:1个
B:至少1个
C:0个
D:必须多于2个
正确答案:【至少1个】
3、单选题:关于C语言,以下描述中错误的是
A:每个语句的最后必须有一个分号
B:一个C程序总是从main函数开始执行
C:一个C程序可以包含多个main函数
D:C语言的注释符是以“/*”开始并以“*/”结束
正确答案:【一个C程序可以包含多个main函数】
4、单选题:逻辑错误是指
A:在exe文件的执行过程中,产生运行异常
B:在从obj生成exe文件的过程中,如果函数名书写错误,可能产生的错误
C:所书写的语句,不符合C的语法
D:程序的运行结果不正确
正确答案:【程序的运行结果不正确】
5、单选题:计算机能直接执行的文件是
A:扩展名为obj的文件
B:扩展名为c的文件
C:扩展名为exe的文件
D:扩展名为txt的文件
正确答案:【扩展名为exe的文件】
6、单选题:程序的运行结果不正确,这种错误属于
A:连接错误
B:编译错误
C:逻辑错误
D:语法错误
正确答案:【逻辑错误】
7、单选题:在函数体中,关于数据定义语句和非数据定义语句(即执行语句)的位置,下面说法正确的是
A:C99标准:所有数据定义语句必须在任何非数据定义语句的前面
B:C89标准:所有数据定义语句必须在任何非数据定义语句的前面
C:C89标准:有些必须放在前面,有些可以放在后面
D:C89标准:没有要求
正确答案:【C89标准:所有数据定义语句必须在任何非数据定义语句的前面】
8、单选题:在C语言程序中
A:main函数必须放在程序的开始位置
B:main函数可以放在其它函数的前面、后面或中间
C:main函数只能出现在库函数中
D:main函数必须放在程序的最后
正确答案:【main函数可以放在其它函数的前面、后面或中间】
9、单选题:C语言属于程序设计语言的哪个类别?
A:面向对象语言
B:高级语言
C:机器语言
D:汇编语言
正确答案:【高级语言】
10、单选题:下列选项中,属于多行注释的是
A:/*
B:
C://
D:/**/
正确答案:【/**/】
11、单选题:以下四个程序中,完全正确的是
A:
#include
int main()
{
/*/* programming */*/
printf(“programming!n”);
return 0;
}
B:include
int main()
{
/* programming */
printf(“programming!n”);
return 0;
}
C:#include
int main();
{
/*/ programming /*/
printf(“programming!n”);
return 0;
}
D:
#include
int main()
{
/* programming */
printf(“programming!n”);
return 0;
}
正确答案:【
#include
int main()
{
/* programming */
printf(“programming!n”);
return 0;
}
】
第二章 单元测试
1、单选题:以下哪个选项是合法的用户自定义标识符
A:123asd
B:b-b
C:_isw
D:float
正确答案:【_isw】
2、单选题:下面选项中,属于合法的字符常量的是
A:‘x43’
B:‘ab’
C:“”
D:’84’
正确答案:【‘x43’】
3、单选题:下面几组代码正确的是
A:const int a;
B:const int a; a=1;
C:int const a=1;
D:const int a=1;
正确答案:【const int a=1;】
4、单选题:能正确定义3个变量并为它们赋初值5的是
A:
int x=y=z=5;
B:
x=y=z=5;
C:
int x,y,z=5;
D:
int x=5,y=5,z=5;
正确答案:【
int x=5,y=5,z=5;
】
5、单选题:下面4个选项中,能使符号常量代表3的定义是
A:#define N 3;
B:#define N 3
C:#define N=3
D:define N 3
正确答案:【#define N 3】
6、单选题:设整数和实数的大小都不超过各自变量的存储范围,下面4种说法中,正确的是
A:整数的存储都是精确的,实数的存储不都是精确的
B:整数和实数的存储都不是精确的
C:整数的存储都是精确的,实数的存储都不是精确的
D:整数的存储不都是精确的,实数的存储都不是精确的
正确答案:【整数的存储都是精确的,实数的存储不都是精确的】
7、单选题:下面4个选项中,全部都是合法整型常量的是
A:-0x48A,2e5,0x
B:-0xcdf,01A,0xe
C:-01,012,0668
D:160,-0xffff,011
正确答案:【160,-0xffff,011】
8、单选题:下面4个选项中,均不是合法浮点数的选项是
A:
-e3, .234, 1e3
B:
123, 2e4.2, e5
C:
160., 0.12, e3
D:
-.18, 123e4, 0.0
正确答案:【
123, 2e4.2, e5
】
9、单选题:c是字符变量,关于语句“c=’A’+’6′-3;”,下面说法正确的是
A:无法执行
B:执行后c的值是68
C:执行后c的值是‘t’
D:执行后c的值是‘D’
正确答案:【执行后c的值是‘t’】
10、单选题:设有定义
char c=’CHINA’;
则下面说法正确的是
A:
c占用6个字节的内存
B:
c是一个字符串变量
C:
c的有效字符个数是5
D:
其他说法都不正确
正确答案:【
其他说法都不正确
】
11、单选题:参与运算的对象必须是整数的运算符是
A:*
B:%
C:%和/
D:/
正确答案:【%】
12、单选题:int x=10,y=3;
printf(“%d,%dn”,x–,–y);
上面程序段的运行结果是
A:10,3
B:10 2
C:10,2
D:9,3
正确答案:【10,2】
13、单选题:char a=’1′,b=’2′;
printf(“%c,”,b++);
printf(“%dn”,b-a);
数字0的ASCII码是48,上面程序段的运行结果是
A:50,2
B:2,50
C:2,2
D:3,2
正确答案:【2,2】
14、单选题:字符串“ab108g”在内存中占的字节数是
A:7
B:8
C:5
D:6
正确答案:【6】
15、单选题:表达式a*=b+c与下列哪个表达式等价
A:
其余都不对
B:
a=a*(b+c)
C:
a=a*b+c
D:
a=a*b=b+c
正确答案:【
a=a*(b+c)
】
16、单选题:若有定义
int a=10,c=2; const int b=5;
则以下赋值表达式正确的是
A:b=10
B:(a+b)=c*8
C:6=a
D:a=(b+c)*6
正确答案:【a=(b+c)*6】
17、单选题:设a、b都是int型变量,则表达式(a=1,a+=1,b=a,b*2,a+b)的值是
A:
6
B:
其他答案都不对
C:
2
D:
4
正确答案:【
4
】
18、单选题:表达式(‘A’+0.32f)计算结果的类型是
A:int
B:double
C:float
D:char
正确答案:【double】
19、单选题:设有数据定义
char c1=65,c2=66;
int a1=1,a2=2;
float x1=1.1, x2=2.2;
则下面四个选项中,系统不进行类型转换就能直接运算的是
A:a1+a2
B:c1+a1
C:c1+c2
D:x1+x2
正确答案:【a1+a2】
第三章 单元测试
1、单选题:char x=0xffff;
printf(“%dn”,x–);
上面程序段的运行结果是
A:fffe
B:-32768
C:-32767
D:-1
正确答案:【-1】
2、单选题:double d;
float f;
long l;
int i;
i=f=l=d=20/3;
printf(“%d,%1d,%.1f,%.1f,”,i,l,f,d);
上面程序段的运行结果是
A:6,6,6.0,6.7
B:6,6,6.0,6.0
C:6,6,6.7,6.0
D:6,6,6.7,6.7
正确答案:【6,6,6.0,6.0】
3、单选题:unsigned a=65535;
printf(“%d,%o,%x”,a,a,a);
TC中整型变量占2个字节,则上面程序段的运行结果是
A:65535,177777,ffff
B:65535,65535,65535
C:-1,65535,ffff
D:-1,177777,ffff
正确答案:【-1,177777,ffff】
4、单选题:关于putchar()的说法正确的是
A:putchar()不能对转义字符进行操作
B:putchar()函数括号中可以写字符变量或常量,也可以写整型变量或常量
C:其作用由用户向计算机输出一个字符
D:putchar()可用于输出字符串
正确答案:【putchar()函数括号中可以写字符变量或常量,也可以写整型变量或常量】
5、单选题:要从键盘给两个整型变量a、b输入数据,输入格式是1,2,能完成此任务的代码是
A:scanf(“%d,%d”,&a,&b);
B:scanf(“%d%d”,&a,&b);
C:scanf(“%d%d”,a,b);
D:getchar(a,b);
正确答案:【scanf(“%d,%d”,&a,&b);】
6、单选题:想通过代码“scanf(“%d%d,%d”,&a,&b,&c);”把1、2、3分别存入3个整型变量a、b、c,则正确的键盘输入应该是
A:
1 2,3
B:
123
C:
1,2,3
D:
1 2 3
正确答案:【
1 2,3
】
7、单选题:关于格式控制字符串%-m.ns,正确的说法是
A:
如果n>m,则截取n个字符输出,突破m的限制
B:
如果n<m,则字符串向右靠拢,左端补0
C:
如果n>m,则只截取m个字符,其余的舍弃
D:
m表示输出的字符串最少占m列,n为小数精度
正确答案:【
如果n>m,则截取n个字符输出,突破m的限制
】
8、单选题:以下不属于格式控制字符的是
A:%D
B:%f
C:%X
D:%E
正确答案:【%D】
9、单选题:a、b、c都是整型变量,用“scanf(“%d %2d %*2d %d”,&a,&b,&c);”给3个变量输入数据,设输入格式是12 34 56 78,则3个变量的值分别是
A:1,34,7
B:12,34,56
C:1,34,78
D:12,34,78
正确答案:【12,34,78】
10、单选题:char c1=’1′,c2=’2′;
c1=getchar();
c2=getchar();
上面的程序段运行时从键盘输入a并回车,则正确的叙述是
A:
c1被赋予字符a,c2无确定值
B:
程序将等待输入第二个字符
C:
c1被赋予字符a,c2被赋予换行符
D:
c1被赋予字符a,c2维持原值
正确答案:【
c1被赋予字符a,c2被赋予换行符
】
11、单选题:int i;
float f;
scanf(“i=%d,f=%f”,&a,&f);
上面程序段准备把10和5.12分别存给i和f,正确的输入是()。
A:105.12
B:10<空格>5.12
C:i=10,f=5.12
D:i=10f=5.12
正确答案:【i=10,f=5.12】
12、单选题:int a;
char b;
float c;
scanf(“%d%c%f”,&a,&b,&c);
若上面程序段运行时键盘输入的字符序列为2223a123o.12,则a、b、c的值分别是
A:原值不变
B:2223,a,123
C:2223,a,原值
D:2223,a,123o.12
正确答案:【2223,a,123】
第四章 单元测试
1、单选题:int a=3,b=2,c=1,f;
f=a>b>c;
上面程序段执行后,f的值是
A:不确定
B:1
C:0
D:2
正确答案:【0】
2、单选题:#include <stdio.h> int main ( ){ int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a<b); printf (“%d,%d”,k,m); return 0; }上面程序的运行结果是
A:
1,0
B:
0,1
C:
0,0
D:
1,1
正确答案:【
1,0
】
3、单选题:以下四个选项中,执行完程序段后y的值不为3的是
A:int x=5,y=2; if(x) y=3;
B:int x=5,y=2; if(2) y=3;
C:int x=0,y=0; if(x=y) y=3;
D:int x=0,y=2; if(x=y) y=3;
正确答案:【int x=0,y=0; if(x=y) y=3;】
4、单选题:int a=2,b=-1,c=2;
if(a<b)
if(b<0)
c=0;
else c++;
上面的程序段执行后,c的值是
A:
0
B:
1
C:
3
D:
2
正确答案:【
2
】
5、单选题:int x=10,y=20,z=30;
if(x>y)
z=x;x=y;y=z;
上面代码段执行后,x,y,z的值是
A:20,30,10
B:10,20,30
C:20,30,30
D:20,10,10
正确答案:【20,30,30】
6、单选题:逻辑运算符中,运算优先级按从高到低正确排序的是
A:! || &&
B:&& ! ||
C:! && ||
D:|| && !
正确答案:【! && ||】
7、单选题:以下是if语句的基本形式:
if(表达式)语句
其中“表达式”
A:必须是逻辑表达式
B:必须是关系表达式
C:可以是任意合法的表达式
D:必须是逻辑表达式或关系表达式
正确答案:【可以是任意合法的表达式】
8、单选题:若有表达式(!w)?(–x):(++y),则下列选项中与其等价的表达式是
A:(w!=1)?(–x):(++y)
B:(w==1)?(–x):(++y)
C:(w!=0)?(–x):(++y)
D:(w==0)?(–x):(++y)
正确答案:【(w==0)?(–x):(++y)】
9、单选题:int w=’b’,x=14,y=15;
w=((x||y)&&(w<‘a’));
执行上面程序段后,w的值为
A:1
B:0
C:-1
D:NULL
正确答案:【0】
10、单选题:if((x=y=2)>=x&&x=5)
y*=x;
上面程序段执行后,整型变量x、y的值分别是
A:5、2
B:存在语法错误
C:2、4
D:5、10
正确答案:【存在语法错误】
11、单选题:int x,y;
scanf(“%d%d”,&x,&y);
if(x>y)
x=y;y=x;
else
x++;y++;
printf(“%d,%d”,x,y);
关于上面程序段,下列说法正确的是
A:有语法错误
B:若输入“4 3”,输出“4,4”
C:若输入“3 4”,输出“4,5”
D:若输入“4 3”,输出“3,4”
正确答案:【有语法错误】
12、单选题:1. #include输入一个整数
7. if (m > 0) //是否为正数
8. {
9. if (m % 2 == 0) //是正数,且能被2整除,则是正偶数
10. {
11. printf(“%d is a positive evenn”, m);
12. }
13. else //不能被2整除,则是正奇数
14. {
15. printf(“%d is a positive oddn”, m);
16. }
17. }
18.
19. _______________ //判断是否为负数
20.
21. {
22. _______________
23.
24. {
25. printf(“%d is a negative evenn”, m); //是负偶数
26. }
27. else
28. {
29. printf(“%d is a negative oddn”, m); //是负奇数
30. }
31. }
32. else
33. {
34. printf(“%d is zero.It is an evenn”, m);
35. }
36. return 0;
37. }
上面程序代码的功能是判断输入整数的正负性和奇偶性,请将第19行和22行标号处缺少的代码填写完整
A:
第19行代码: if(m < 0)
第22行代码: if (m % 2 != 0)
B:
第19行代码: else if(m < 0)
第22行代码: if (m % 2 != 0)
C:
第19行代码: if(m < 0) 第22行代码: if (m % 2 == 0)
D:
第19行代码: else if(m < 0)
第22行代码: if (m % 2 == 0)
正确答案:【
第19行代码: else if(m < 0)
第22行代码: if (m % 2 != 0)
】
13、单选题:以下程序段中,与语句: k=a>b?(b>c?1:0):0;功能相同的是
A:if(a>b) k=1; else if(b>c) k=1; else k=0;
B:if(a<=b) k=0; else if(b<=c) k=1;
C:if((a>b)||(b>c)) k=1; else k=0;
D:if((a>b)&&(b>c)) k=1; else k=0;
正确答案:【if((a>b)&&(b>c)) k=1; else k=0;】
14、单选题:int x=1,a=0,b=0;
switch(x)
{
case 0:b++;
case 1:a++;
case 2:a++;b++;
}
上面程序段执行后,a,b的值分别是
A:2,1
B:1,0
C:1,1
D:2,2
正确答案:【2,1】
15、单选题:int x=1,y=2,z=3;
switch(x=1){
case 1:
switch(y==2){
case 1:printf(“*”);break;
case 2:printf(“%”);break;
}
case 0:
switch(z){
case 1:printf(“$”);break;
case 2:printf(“&”);break;
default:printf(“#”);
}
}
上面程序段的运行结果是
A:
*$
B:
%#
C:
*#
D:
$
正确答案:【
*#
】
第五章 单元测试
1、单选题:对于while语句,错误的说法是
A:
循环体有可能一次也不执行
B:
可以用条件控制循环体的执行不执行
C:
循环体可以是包含若干条语句的复合语句
D:
循环体至少要执行一次
正确答案:【
循环体至少要执行一次
】
2、单选题:对于整型变量x,与while(!x)等价的是
A:while(x==0)
B:while(x==1)
C:while(x!=1)
D:while(x!=0)
正确答案:【while(x==0)】
3、单选题:以下描述正确的是
A:do-while循环由do开始,用while结束,在while(表达式)后面必须写分号
B:在do-while循环体中,一定要有能使while后面表达式的值变成零(“假”)的操作
C:do-while循环中,根据情况可以省略while
D:由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
正确答案:【do-while循环由do开始,用while结束,在while(表达式)后面必须写分号】
4、单选题:#include
int main()
{
int x,i;
for(x=3;x<=100;x++){
if(x%2==0) _____;
for(i=2;i<=x-1;i++)
if(x%i==0) _____;
if(i==x) printf(“%d”,x);
}
return 0;
}
上面程序的功能是找出3~100间的素数,程序中所缺的两处应为
A:continue continue
B:break break
C:continue break
D:break continue
正确答案:【continue break】
5、单选题:设变量已正确定义,下面程序中能计算f=n!的是
A:
f=0; for(i=1; i<=n; i++) f*=i;
B:
f=1; for(i=n; i>1; i++) f*=i;
C:
f=1; for(i=n; i>=2; i–) f*=i;
D:
f=1; for(i=1; i<n; i++) f*=i;
正确答案:【
f=1; for(i=n; i>=2; i–) f*=i;
】
6、单选题:#include
int main()
{
int x,s=0;
for(x=1;x<=5;x++){
switch(x%3){
case 0:
default:s+=3;
case 1:s+=1;break;
case 2:s+=2;
}
}
printf(“%d”,s);
return 0;
}
上面程序的运行结果是
A:13
B:10
C:6
D:7
正确答案:【10】
7、单选题:#include
int main()
{
int i,j;
for(i=3;i>=1;i–)
{
for(j=1;j<=2;j++)
printf(“%d”,i+j);
printf(” “);
}
return 0;
}
上面程序的运行结果是
A:23 43 45
B:43 25 43
C:45 34 23
D:23 34 45
正确答案:【45 34 23】
8、单选题:#include <stdio.h>
int main()
{
int i=10,x=0;
for( ;i<10;i++)
x=x+i;
printf(“%d”,x);
return 0;
}上面程序的运行结果是
A:
10
B:
1
C:
无限
D:
0
正确答案:【
0
】
9、单选题:以下不是死循环的是
A:for(;;x+=k);
B:while(1){x++;}
C:for (;(c=getchar())!=’n’;) printf(“%c”,c);
D:for (k=10;;k–) sum=sum+k;
正确答案:【for (;(c=getchar())!=’n’;) printf(“%c”,c);】
10、单选题:以下正确的说法是
A:在循环体内使用break和continue的作用相同
B:continue 语句的作用是结束整个循环的执行
C:从多层循环嵌套内退出时,只能使用goto语句
D:只能在循环体内和switch语句内使用break语句
正确答案:【只能在循环体内和switch语句内使用break语句】
11、单选题:有关for语句正确的是
A:只用于循环次数已经确定的情况
B:for循环是先执行循环体语句,后判断表达式
C:for循环中,不能用break跳出循环体
D:for语句的循环体只能是一条语句
正确答案:【for语句的循环体只能是一条语句】
12、单选题:#include <stdio.h>
int main()
{
int i=1,n=1;
for( ;i<3;i++)
{
continue;
n=n+i;
}
printf(“%d”,n);
return 0;
}
上面程序运行后,变量n的值为
A:
2
B:
4
C:
1
D:
3
正确答案:【
1
】
13、单选题:#include <stdio.h>
int main()
{
int x,s;
for(x=0,s=0;x<=10;x++)
{
if(x%3==0)
continue;
else
{
if(x%4==0)
continue;
else s+=x;
if(s%5==0) break;
}
}
printf(“%d”,s);
return 0;
}
上面程序的运行结果是
A:
15
B:
5
C:
25
D:
35
正确答案:【
15
】
14、单选题:#include <stdio.h>
int main()
{
int x=012;
do
printf(“%d”,x–);
while(–x);
return 0;
}
上面程序的运行结果是
A:
8642
B:
108642
C:
如有任何疑问请及时联系QQ 50895809