第一章 单元测试

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反馈
如果卡顿看不了剩余内容,请换个浏览器打开

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注