C语言期末总复习习题第四套.docx
《C语言期末总复习习题第四套.docx》由会员分享,可在线阅读,更多相关《C语言期末总复习习题第四套.docx(126页珍藏版)》请在冰豆网上搜索。
C语言期末总复习习题第四套
一、单选(共90分)
1._________是构成C语言的基本单位。
A、函数
B、子过程
C、过程
D、子函数
标记此题
2.在C语言的环境中头文件的后缀名是;
A、*.h
B、C程序的源文件
C、*.bak
D、*.obj
标记此题
3.在嵌套使用if语句时,C语言规定else总是________。
A、和之前与其具有相同缩进位置的if配对
B、和之前的第一个if配对
C、和之前与其最近的且不带else的if配对
D、和之前与其最近的if配对
标记此题
4.以下程序
x=-1;
do{
x=x*x;
}while(!
x);
循环体的执行次数是:
()
A、死循环
B、执行零次
C、执行两次
D、执行一次
标记此题
5.C语言源程序名的后缀是
A、exe
B、cp
C、obj
D、c
标记此题
6.下列叙述中正确的是()。
A、break语句只能用于switch语句
B、在switch语句中,不一定使用break语句
C、break语句必须与switch语句中的case配对使用
D、在switch语句中必须使用default
标记此题
7.阅读以下程序:
#include
main()
{
ints;
scanf("%d",&s);
switch(s==!
s)
{
case0:
printf("Thenumberisnot0");break;
case1:
printf("Thenumberis0");break;
}
}
程序运行后,如果从键盘上输入?
9,则输出结果是()。
A、Thenumberisnot0
B、0
C、程序出错
D、Thenumberis0
标记此题
8.对下面三条语句(其中s1和s2为内嵌语句),正确的论断是()。
(1)if(a)s1;elses2;
(2)if(a==0)s2;elses1;
(3)if(a!
=0)s1;elses2;
A、三者相互等价
B、
(1)和(3)等价,但与
(2)不等价
C、三者互不等价
D、
(1)和
(2)等价,但与(3)不等价
标记此题
9.在以下给出的表达式中,与while(E)中的(E)不等价的表达式是()
A、(!
E==0)
B、(E==0)
C、(E>0||E<0)
D、(E!
=0)
标记此题
10.以下程序段所对应的数学关系表示式是:
if(x<0)y=-1;
else
if(x==0)y=0;
elsey=1;
A、y=-1(x<0)
y=1(x>0)
y=1(x=0)
B、y=-1(x<0)
y=1(x>0)
y=0(x=0)
C、y=-1(x<0)
y=1(x>0)
y=0(x≠0)
D、y=-1(x>0)
y=1(x<0)
y=0(x=0)
标记此题
11.以下程序的输出结果是()。
main()
{intn=1;
printf("%d%d%d\n",n,n++,n--);
}
A、111
B、110
C、101
D、121
标记此题
12.当a=1,b=2,c=3,d=4时,执行完下面一段程序后x的值是()
if(a
if(aelse
if(aif(belsex=3;
elsex=6;
elsex=7;
A、1
B、3
C、2
D、6
标记此题
13.设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是()
A、if(x++);
B、if(x>y)x--;
elsey++;
C、if(x>y&&y!
=0);
D、if(y<0)x++;y++;
elsex++;
标记此题
14.下列程序运行结果是:
main()
{
intx=9,y=5,z=8;
if(xif(y<0)z=0;
elsez+=1;
printf("%d\n",z);
}
A、6
B、8
C、7
D、9
标记此题
15.有以下程序
#include
main()
{
inti,j,x=0;
for(i=0;i<2;i++)
{
x++;
for(j=0;j<=3;j++)
{
if(j%2)continue;
x++;
}
x++;
}
printf("x=%d\n",x);
}
程序执行后的输出结果是:
A、x=4
B、x=6
C、x=8
D、x=12
标记此题
16.C语言中目标文件的后缀名是:
A、.c
B、.exe
C、.obj
D、.h
标记此题
17.设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、1
B、6
C、4
D、2
标记此题
18.如果x和y都是整数,而已正确定义。
for(x=0,y=0;!
x&&y<=5;y++)语句执行循环的次数是()
A、0
B、6
C、5
D、无数次
标记此题
19.定义chara=‘A’;printf(“%d”,a);
A、65
B、A
C、97
D、a
标记此题
20.已知字母A的ASCII码为十进制65,且c2为字符型,则执行c2=‘A’+‘6’-‘3’后,c2中的值为()。
A、D
B、不确定的值
C、68
D、C
标记此题
21.若一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围为()。
A、0~255
B、0~65535
C、0~32767
D、0~2147483647
标记此题
22.以下叙述中正确的是
A、用C语言实现的算法必须要有输入和输出操作
B、用C语言实现的算法可以没有输出但必须要有输入
C、用C语言实现的算法可以没有输入但必须要有输出
D、用C程序实现的算法可以既没有输入也没有输出
标记此题
23.以下程序执行后sum的值是()。
#include
main()
{
inti,sum;
for(i=1;i<6;i++)
sum+=i;
printf("%d\n",sum);
}
A、15
B、不确定
C、14
D、0
标记此题
24.设以下变量均为int类型,则值不等于7的表达式是()。
A、(x=y=6,x+y,x+1)
B、(x=6,x+1,y=6,x+y)
C、(x=y=6,x+y,y+1)
D、(y=6,y+l,x=y,x+1)
标记此题
25.已知
intt=0;
while(t=1)
{...}
则以下叙述正确的是
A、循环控制表达式的值为0
B、循环控制表达式不合法
C、循环控制表达式的值为1
D、以上说法都不对
标记此题
26.inta=5,b=0;printf(“%d,%d\n”,a&&b,a||b);输出值为:
()
A、5,0
B、1,0
C、1,5
D、0,1
标记此题
27.下述程序的输出结果是()。
#include
main()
{
intk=0,m=0;
inti,j;
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
k++;
k-=j;
}
m=i+j;
printf("k=%d,m=%d",k,m);
}
A、k=0,m=3
B、k=1,m=3
C、k=0,m=5
D、k=1,m=5
标记此题
28.有以下程序
#include
main()
{
inta=15,b=21,m=0;
switch(a%3)
{
case0:
m++;break;
case1:
m++;
switch(b%2)
{
default:
m++;
case0:
m++;break;
}
}
printf("%d\n",m);
}
程序运行后的输出结果是()
A、1
B、3
C、2
D、4
标记此题
29.有以下程序
main()
{
inti=0,s=0;
do{
if(i%2)
{
i++;
continue;
}
i++;
s+=i;
}
while(i<7);
printf("%d\n",s);
}
执行后输出结果是()。
A、16
B、28
C、12
D、21
标记此题
30.以下叙述正确的是()。
A、在C程序中,main函数必须位于程序的最前面
B、C语言本身没有输入输出语句
C、C程序的每行中只能写一条语句
D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误
标记此题
31.设有说明:
charw;intx,floaty;doublez;则表达式w*x+z-y值的数据类型为()。
A、float
B、int
C、char
D、double
标记此题
32.编辑c程序的步骤:
A、编辑编译执行连接
B、编辑编译连接执行
C、编辑连接编译执行
D、编辑执行编译连接
标记此题
33.若有定义:
inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是()。
A、2.500000
B、3.500000
C、2.750000
D、0.000000
标记此题
34.在32位计算机中,C语言中,存储一个字符型、整型、单精度实型变量所需的空间是()。
A、1、4、4
B、1、2、8
C、1、1、4
D、2、2、4
标记此题
35.若a为整型变量,则下面语句。
a=-2L;
printf(“%d\n”,a);
A、赋值不合法
B、输出为不确定值
C、输出值为-2.0
D、输出值为-2
标记此题
36.下面程序的执行结果是:
()
#include
voidmain()
{
inti=0;
while
(1)
{
printf("*");
i++;
if(i<3)
break;
}
printf("\n");
}
A、*
B、**
C、***
D、****
标记此题
37.以下程序的输出结果为()。
#include
main()
{
inti;
for(i=1;i<=5;i++)
{
if(i%2)
printf("*");
else
continue;
printf("#");
}
printf("$\n");
}
A、*#*#*#$
B、*#*#$
C、#*#*#*$
D、#*#*$
标记此题
38.若x,i,j和k都是int型变量,则执行下面表达式后x的值为
x=(i=4,j=16,k=32)
A、4
B、32
C、16
D、52
标记此题
39.若有说明语句:
charc='\72'则变量c是()。
A、包含1个字符
B、包含3个字符
C、包含2个字符
D、说明不合法,c的值不确定
标记此题
40.下面说法不正确的是:
A、一个C源程序可由一个或多个函数组成
B、C程序的基本组成单位是函数
C、一个C源程序必须包含一个main函数
D、在C程序中,注释说明只能位于一条语句的后面
标记此题
41.负数在计算机的存储形式:
A、原码
B、补码
C、反码
D、原码、反码、补码任意一种
标记此题
42.结构化程序由三种基本结构组成,三种基本结构组成的算法
A、可以完成任何复杂的任务
B、只能完成符合结构化的任务
C、只能完成部分复杂的任务
D、只能完成一些简单的任务
标记此题
43.执行下列程序段后,I值是()。
intI,x;for(I=1,x=1;I<=20;I++){if(x>=10)break;if(x%2==1){x+=5;continue;}x-=3;}
A、10
B、3
C、5
D、6
标记此题
44.设有定义:
floata=2,b=4,h=3;下面表达式与代数式子(a+b)*h/2结果不相同的是()。
A、((a+b)*h)/2
B、9
C、(1/2)*(a+b)*h
D、(a+b)*h*1/2
标记此题
45.以下程序段中与语句k=a>b?
(b>c?
1:
0):
0;功能等价的是:
A、if((a>B)&&(b>C))k=1;
elsek=0;
B、if(a<=B)k=0;
elseif(b<=C)k=1;
elsek=0;
C、if((a>B)||(b>C))k=1
D、if(a>B)k=1;elseif(b>C)k=1;
标记此题
46.以下各标识符中,合法的用户标识符为()。
A、A#C
B、main
C、mystery
D、ab*
标记此题
47.以下能正确地定义整型变量a,b和c并为其都赋初值5的语句是()。
A、inta=b=c=5;
B、a=5,b=5,c=5;
C、inta,b,c=5;
D、a=b=c=5;
标记此题
48.下列四组选项中,均不是C语言关键字的选项是
A、defineIFtype
B、powgowhile
C、casescanfinclude
D、printfchargetc
标记此题
49.下述for语句的循环次数是()。
inti,x;
for(i=0,x=0;i<=9&&x!
=10;i++)
scanf("%d",&x);
A、最多循环10次
B、无限循环
C、最多循环9次
D、一次也不循环
标记此题
50.设x、y均为f1oat型变量,则以下不合法的赋值语句是()
A、++x
B、x*=y+8;
C、y=(x%2)/10;
D、x=y=0;
标记此题
51.32位平台下,执行语句printf("%x",-1);屏幕显示()。
A、-1
B、-ffff
C、1
D、ffffffff
标记此题
52.*
***
*****
*******
以上为运行后输出的结果
#include
main()
{
inti,j;
for(i=1;i<=4;i++)
{
for(j=1;j<=4-i;j++)printf("");
for(j=1;j<=;j++)printf("*");
printf("\n");
}
}在下划线处应填入的是:
A、i
B、2*1+1
C、2*i-1
D、i+2
标记此题
53.有以下程序
#include
voidmain()
{
inti=0,s=0;
do{
if(i%2)
{
i++;continue;
}
i++;
s+=i;
}while(i<7);
printf("%d\n",s);
}
执行后输出结果是:
( )。
A、16
B、14
C、15
D、22
标记此题
54.从键盘上输入"446755"时,下面程序的输出是()。
#include
main()
{intc;
while((c=getchar())!
='\n')
switch(c-'2')
{case0:
case1:
putchar(c+4);
case2:
putchar(c+4);break;
case3:
putchar(c+3);
default:
putchar(c+2);break;
}
printf("\n");
}
A、888988
B、88898787
C、668966
D、66898787
标记此题
55.以下程序输入3时,输出结果是().
main()
{intk;
scanf("%d",&k);
switch(k)
{case1:
printf("%d",k++);
case2:
printf("%d",k++);
case3:
printf("%d",k++);
case4:
printf("%d",k++);break;
default:
printf("FULL!
");}
printf("\n");}
A、33
B、43
C、34
D、有语法错误
标记此题
56.运行以下程序后,如果从键盘上输入6514<回车>,则输出结果为:
#include
voidmain()
{intm,n;
printf("Enterm,n:
");
scanf("%d%d",&m,&n);
while(m!
=n)
{
while(m>n)m-=n;
while(n>m)n-=m;
}
printf("m=%d\n",m);
}
A、m=3
B、m=1
C、m=2
D、m=-1
标记此题
57.执行以下程序:
main()
{
ints,t,a,b;
scanf("%d,%d",&a,&b);
s=1;t=1;
if(a>0)s=s+1;
if(a>b)t=s+t;
elseif(a==b)t=5;
elset=2*s;
printf("t=%d\n",t);
}
要使输出的结果为:
t=4,给a和b输入的值应满足的条件是:
A、a>b
B、0C、a
D、0>a>b
标记此题
58.运行以下程序后,如果从键盘上输入china#《回车》,则输出结果为:
( )
#include
voidmain()
{
intv1=0,v2=0;charch;
while((ch=getchar())!
='#')
{
switch(ch)
{
case'a':
case'h':
default:
v1++;
case'0':
v2++;
}
}
printf("%d,%d\n",v1,v2);
}
A、2,0
B、5,5
C、5,0
D、2,5
标记此题
59.下述程序的输出结果是()。
#include
main()
{
inty=9;
for(;y>0;y--)
{
if(y%3==0)
{
printf("%d",--y);
continue;
}
}
}
A、741
B、963
C、852
D、875421
标记此题
60.以下的选择中,正确的赋值语句是
A、a=1,b=2
B、a=b=5;
C、j++
D、y=int(x)
标记此题
二、判断(共10分)
1.一个循环体内又包含另一个完整的循环结构,称为循环的嵌套
正确错误
标记此题
2.do-while语句和while语句可以互相转换,运行结果相同。
正确错误
标记此题
3.内层break语句可以终止嵌套的switch,使最外层的switch结束。
正确错误
标记此题
4.C语言中类型转换可以由系统自动进行。
正确错误
标记此题
5.在C语言的标识符中,大写字母和小写字母完全等价
正确错误
标记此题
6.#define和printf