C语言程序设计复习题Word文档格式.docx
《C语言程序设计复习题Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计复习题Word文档格式.docx(22页珍藏版)》请在冰点文库上搜索。
scanf(”%d%d”,&
a,&
b);
printf(”a+b=%d\n”,a+b);
A.a+b=46B.有语法错误
C.a+b=12D.不确定值
16.为了避免嵌套的if-else语句的二义性,C语言规定else总是与_____组成配对关系。
A.缩排位置相同的if
B.在其之前未配对的if
C.在其之前未配对的最近的if
D.同一行上的if
17.已知inta=1,b=2,c=3;
以下语句执行后a,b,c的值是_____。
if(a>
b)
c=a;
a=b;
b=c;
A.a=1,b=2,c=3B.a=2,b=3,c=3
C.a=2,b=3,c=1D.a=2,b=3,c=2
18.以下程序的运行结果是_____。
#include<
{inta=1;
if(a++>
1)printf(”%d\n”,a);
elseprintf(”%d\n”,a--);
A.0B.1C.2D.3
19.若a、b、c、d、w均为int类型变量,则执行下面语句后的w值是_____。
a=1;
b=2;
c=3;
d=4;
w=(a<
b)a:
b;
w=(w<
c)w:
c;
d)w:
d;
A.1B.2C.3D.4
20.执行下列程序,输入为3的数出结果是_____。
{
intk;
scanf(”%d”,&
k);
switch(k)
{case1:
printf(”%d\n”,k++);
case2:
case3:
case4:
break;
default:
printf(”Full!
\n”);
A.3B.4C.3D.4
21.以下不是C语言的特点的是_____。
A.语言简洁紧凑
B.能够编制出功能复杂的程序
C.C语言可以直接对硬件操作
D.C语言移植性好
22.下列字符序列中,不可用作C语言标识符的是_____。
A.abc123B.no.1C._123_D._ok
23.请选出可用作C语言用户标识符的一组标识符_____。
A.voidB.a3_b3C.ForD.2a
define_123-abcDO
WORDIFCasesizeof
24.下列符号中,不属于转义字符的是_____。
A.\\B.\0xAAC.\tD.\0
25.不属于C语言关键字的是_____。
A.intB.breakC.whileD.character
26.C语言程序的基本单位是_____。
A.程序行B.语句C.函数D.字符
27.下列说法中,错误的是_____。
A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号
B.每个函数都有一个函数头和一个函数体,主函数也不例外
C.主函数只能调用用户函数或系统函数,用户函数可以相互调用
D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数
28.以下选项中,正确的字符常量是_____。
A.”F”B.’\\’’C.’W’D.’’
29.下列变量定义中合法的是_____。
A.short_a=;
B.doubleb=1+;
C.longdo=0xfdaL;
D.float2_and=1-e-3;
30.与数学式子
对应的C语言表达式是_____。
A.9*x^n/(2*x-1)B.9*x**n/(2*x-1)
C.9*pow(x,n)*(1/(2*x-1))D.9*pow(n,x)/(2*x-1)
31.以下符合C语言语法的赋值表达式是_____。
A.a=9+b+c=d+9B.a=(9+b,c=d+9)
C.a=9+b,b++,c+9D.a=9+b++=c+9
32.若有说明语句:
chars=’\72’;
则变量s_____。
A.包含一个字符
B.包含两个字符
C.包含三个字符
D.说明不合法,s的值不确定
33.若有定义:
intm=7;
floatx=,y=;
则表达式x+m%3*(int)(x+y)%2/4的值是_____。
A.B.2.750000C.D.
34.有如下程序段,从键盘输入数据的正确形式应是_____。
(注:
└┘代表空格)
floatx,y,z;
scanf(“x=%d,y=%d,z=%d”,&
y,&
z);
A.123B.x=1,y=2,z=3
C.1,2,3D.x=1└┘y=2└┘z=3
35.以下关于运算符优先顺序的描述中正确的是_____。
A.关系运算符<
算术运算符<
赋值运算符<
逻辑与运算符
B.逻辑与运算符<
关系运算符<
赋值运算符
C.赋值运算符<
逻辑与运算符<
算术运算符
D.算术运算符<
36.选择出合法的if语句(设intx,a,b,c;
)_____。
A.if(a=b)c++;
B.if(a=<
b)c++;
C.if(a<
D.if(a=>
37.当a=1,b=2,c=4,d=3时,执行完下面一段程序后x的值是_____。
if(a<
if(c<
d)x=1;
else
c)
if(b<
d)x=2;
elsex=3;
elsex=4;
elsex=5;
A.1B.2C.3D.4
38.执行以下程序段后,变量x,y,z的值分别为_____。
inta=1,b=0,x,y,z;
x=(--a==b++)--a:
++b;
y=a++;
z=b;
A.x=0,y=0,z=0B.x=-1,y=-1,z=1
C.x=0,y=1,z=0D.x=-1,y=2,z=1
39.执行以下语句后,y的值为_____。
intx,y,z;
x=y=z=0;
++x||++y&
&
++z;
A.0B.1C.2D.不确定值20
40.以下程序的输出结果是_____。
{
inta=5,b=4,c=6,d;
printf(”%d\n”,d=a>
ba>
ca:
c:
A.5B.4C.6D.不确定
41.C编译程序是_____。
A.C程序的机器语言版本
B.一组机器语言指令
C.将C源程序编译成目标程序
D.由制造厂家提供的一套应用软件
42.以下选项中,合法的用户标识符是_____。
A.longB._2abcC.3dmaxD.
43.以下选项中可作为C语言合法整数的是_____。
A.10110BB.0386C.0XffaD.x2a2
44.表达式13/3*sqrt/8的数据类型是_____。
A.intB.floatC.doubleD.不确定
45.假设所有变量均为整型,则表达式(x=2,y=5,y++,x+y)的值是_____。
A.7B.8C.6D.2
46.已知s是字符型变量,下面不正确的赋值语句是_____。
A.s=’\012’;
B.s=’u+v’;
C.s=’1’+’2’;
D.s=1+2;
47.putchar函数可以向终端输出一个_____。
A.整型变量表达式值。
B.字符串
C.实型变量值。
D.字符或字符型变量值。
48.有如下程序段:
intx1,x2;
chary1,y2;
scanf(”%d%c%d%c”,&
x1,&
y1,&
x2,&
y2);
若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是_____。
A.10A└┘20BB.10└┘A20B
C.10└┘A└┘20└┘BD.10A20└┘B
49.已有定义inta=-2;
和输出语句:
printf(”%8lx”,a);
以下正确的叙述是_____。
A.整型变量的输出格式符只有%d一种
B.%x是格式符的一种,它可以适用于任何一种类型的数据
C.%x是格式符
D.%8lx不是错误的格式符,其中数字8规定了输出字段的宽度
50.能正确表示“当x的取值在[-58,-40]和[40,58]范围内为真,否则为假”的表达式是_____。
A.(x>
=-58)&
(x<
=-40)&
(x>
=40)&
=58)
B.(x>
=-58)||(x<
=-40)||(x>
=40)||(x<
C.(x>
D.(x>
=-58)||(x<
51.已知x=45,y=’a’,z=0;
则表达式(x>
=z&
y<
’z’||!
y)的值是_____。
A.0B.语法错
C.1D.“假”
52.指出下列程序段所表示的逻辑关系是_____。
if(a<
{if(c==d)
x=10;
else
x=-10;
A.
B.
C.
D.
53.以下程序的运行结果是_____。
inta=2,b=-1,c=2;
if(a<
if(b<
0)
c=0;
elsec++;
printf(”%d\n”,c);
A.0B.1C.2D.3
54.有以下程序,程序运行后的输出结果是_____。
inta=15,b=21,m=0;
switch(a%3)
{case0:
m++;
break;
case1:
switch(b%2)
{default:
case0:
printf(”%d\n”,m);
55.以下程序的输出结果是_____。
{intn=4;
while(n--)
printf(〞%d〞,--n);
56.执行以下程序后输出的结果是_____。
{inty=10;
do{y--;
while(--y);
printf("
%d\n"
y--);
57.若输入B,以下程序的运行结果为_____。
{chargrade;
scanf("
%c"
&
grade);
switch(grade)
{case'
A'
:
=85."
);
case'
B'
C'
=60."
D'
<
60."
default:
error."
A.>
=85.B.>
=60.C.>
=60.<
..
58.在C语言中,为了结束while语句构成的循环,while后一对圆括号中表达式的值应该为_____。
D.非0
59.C语言的if语句嵌套时,if与else的配对关系是_____。
A.每个else总是与它上面的最近的if配对
B.每个else总是与最外的if配对
C.每个else与if的配对是任意的
D.每个else总是与它上面的if配对
60.下列程序段的输出结果为_____。
{intx=3;
do
{printf("
%3d"
x-=2);
while(!
(--x));
0-2D.死循环
61、以下选项中属于C语言的数据类型是()
A.复数型B.逻辑型C.集合型D.双精度型
62、一个C程序的执行是从()
A.main()函数开始,直到main()函数结束B.第一个函数开始,直到最后一个函数结束
C.第一个语句开始,直到最后一个语句结束D.main()函数开始,直到最后一个函数结束
63、设有语句inta=3;
则执行语句a+=a-=a*a;
后,变量a的值是()
A.3B.0 C.-12 D.9
64、若有charc[5]={'
c'
'
d'
\0'
e'
};
则执行语句printf("
%s"
c);
结果是()。
A.cd\0eB.'
'
C.cdD.cde
65、已知:
inta[2][3]={1,2,3,4,5,6},(*p)[3]=a;
则下列表达式不是4的是()。
A.*(*p+3)B.*p+3C.*(*(p+0)+3)D.a[0][3]
66、以下有宏替换不正确的叙述().
A.宏替换不占用运行时间B.宏名无类型
C.宏替换只是字符串替换D.宏名必须用大写字母表示
67、执行charstr[10]=”Ch\nina”;
strlen(str)的值是()
A.5B.6C.7D.9
68、下面程序的输出结果是:
()
#definePOWER(x)(x*x)
main()
{inti=4;
printf("
%d"
POWER(i-2));
}
A.-9B.-7C.5D.-6
69、在定义inta[3][4][2];
后,第10个元素是()
A.a[2][1][2]B.a[1][0][1]C.a[2][0][1]D.a[2][2][1]
70、下列程序的输出结果是()。
main()
{inta=7,b=5;
b=b/a);
A5B1C0D不确定值
71、.假设变量a,b均为整型,表达式(a=5,b=2,a>
ba++:
b++,a+b)的值是()。
A7B8C9D2
72、设有如下程序段,下面描述中正确的是()。
intk=10;
while(k=0)k=k-1;
A循环执行一次B循环是无限循环C循环体语句一次也不执行D循环体语句执行一次
73、以下程序的输出结果为()。
inti;
voidprt()
{for(i=5;
i<
8;
i++)printf("
*'
\t"
=8;
i++)prt();
A***B************C******D***
74、在C语言程序中,以下说法正确的是( )。
A函数的定义可以嵌套,但函数的调用不可以嵌套
B函数的定义不可以嵌套,但函数的调用可以嵌套
C函数的定义和函数的调用都不可以嵌套
D函数的定义和函数的调用都可以嵌套
75、以下函数调用语句中含有()个实参。
func((e1,e2),(e3,e4,e5));
A2B3C5D语法错误
二、填空题
1.C语言源程序的基本单位是________。
2.若a为整型变量,a=12,则表达式:
a+=4的值________。
3.通常一个字节包含________个二进制位。
4.一个C程序有且仅有一个________函数。
5.在C语言中,字符输入函数和字符输出函数分别是:
________和________。
6.在C语言中,最基本的数据类型只有四种,它们分别是:
int、________、________和double。
7.已知字符A的ACSII码值为65,以下语句的输出结果是________。
charch=’B’;
%c%d\n"
ch,ch);
8.’a’在内存中占________个字节,”a”在内存中占________个字节。
9.若有inta[3][2]={{1},{3,2},{4,5}};
,则a[1][1]的值是________。
10.在循环语句中,break语句的作用是________,continue语句的作用是________。
11.一个C语言程序的语句至少应包含一个__________。
12.C语言源程序文件的扩展名是_______,经过编译、连接后,生成文件的扩展名是_______。
13.结构化程序由顺序结构、________和_________三种基本结构组成。
14.C语言的执行是从________开始执行的。
15.表达式10/3的结果是_________。
16.在C语言中,有三种逻辑运算符,它们分别是:
、________、_________。
17.if语句中的表达式可以是关系表达式、________、________。
18.C语言中基本的数据类型有:
整型、________、________。
19.整数-35在机内的补码表示为_____________。
20.有如下语句:
charA[]={”Iamastudent”};
该字符串的长度是________,A[3]=________。
21.C语言源程序的基本单位是______________。
22.表达式9%5的结果是______________。
23.C语言中普通整型变量的类型说明符为__________,在内存中占__________字节。
24.符号”a”和’a’的区别是_______________。
25.C语言提供的预处理命令主要包括如下三种:
宏定义、____________、____________。
26.语句printf(“%%d%d”,123);
将输出:
______________。
27.C语言中,int型数据在内存中的存储形式是_______________。
28.在C语言中,格式输入库函数为_______________,格式输出库函数为_______________。
29.判断一个字符是否是字母或数字的逻辑判断语句是:
_______________。
30.有以下程序,执行后输出结果是_______________。
intt=1,i=5;
for(;
i>
=0;
i--)t*=i;
printf("
t);
31、字符串"
A"
在内存中占用的字节数为_____________。
32、C语言中的标识符只能由字母、下划线和_____________组成。
33、若有定义语句“inta=25,b=14,c=19;
"
以下语句的执行结果是_____________
if(a++<
=25&
b--<
=2&
c++)printf("
***a=%d,b=%d,c=%d\n"
a,b,c);
elseprintf("
###a=%d,b=%d,c=%d\n"
34、有如下定义a[]="
B\172\\\'
a%%"
;
strlen(a));
的结果为_____________。
35、若有定义:
inta[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i;
for(i=0;
4;
i++)p[i]=&
a[i*3];
则*(*(p+1)+2)的值为,*p[2]的值为____________。
若数组的首地址为2000,则p[1]指向的地址为_____________。
36、设a=2,b=3,x=,y=,则表达式(float)(a+b)/2+(int)x%(int)y的结果是_____________。
37、设x、y都是int型变量,初值都为1,则执行表达式:
--x&
y++后,y的值为_____________。
38、语句for(i