C语言程序设计习题集答案Word文件下载.docx
- 文档编号:16637996
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:69
- 大小:56.99KB
C语言程序设计习题集答案Word文件下载.docx
《C语言程序设计习题集答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计习题集答案Word文件下载.docx(69页珍藏版)》请在冰豆网上搜索。
A.b70B.#abC.symbolD.a_1
5.以下不正确的叙述是(D)。
A.在C程序中所用的变量必须先定义后使用
B.程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在执行了赋值语句a=b;
后b中的值将放入a中,b中的值不变
D.当输入数值数据时,对于整型变量只能输入整型值;
对于实型变量只能输入实型值
6.能正确表示逻辑关系:
"
a≥10或a≤0"
的C语言表达式是(D)。
A.a>
=10ora<
=0B.a>
=0|a<
=10C.a>
=10&
&
a<
=0D.a>
=10||a<
=0
7.C语言的注释定界符是(D)。
A.{}B.[]C.**D./**/
8.以下运算符中,优先级最高的运算符是(D)。
=C.*(乘号)D.()
9.若希望当A的值为奇数时,表达式的值为"
真"
A的值为偶数时,表达式的值为"
假"
则以下不能满足要求的表达式是(C)。
A.A%2==1B.!
(A%2==0)C.!
(A%2)D.A%2
10.设int类型的数据长度为2字节,则该类型数据的取值范围是(D)。
A.0至65536B.0至65535C.-32767至32768D.-32768至32767
11.在C语言中逻辑值“真”是用(B)表示的。
()
A.预定义为真值的宏B.非零值C.正数D.非零整数
12.若定义:
inta=511,*b=&
a;
则printf("
%d\n"
*b);
的输出结果为(D)。
A.确定值B.a的地址C.512D.511
13.设在tc2.0中有整型变量x,y,z均为3,表达式(x++)+(y++)+(z++)的值是(D)。
A.6B.7C.8D.9
14.设有语句scanf(“%d,%d”,&
m,&
n);
要使m、n的值依次为2,3,正确的输入是(B)。
A.2⊔3↙B.2,3↙C.2;
3D.2↙
15.已知inta=5,b=7,c=3;
则逻辑表达式a<
b||++c运算后,c的值为(C)。
A.1B.0C.3D.4
16.以下定义语句中正确的是(C)。
A)chara='
A'
b='
B'
;
B)floata=b=10.0;
C)inta=10,*b=&
D)float*a,b=&
17.设a=6,b=4,则表达式b*=a+3的值为(D)。
A)3B)18C)27D)36
18.有如下程序段,其输出结果是(B)。
inta=3;
floatb=15.6,f=1.5;
printf(“%d”,a+(int)b/2+(int)f%3);
A)10B)11C)12D)13
19.已知inta=5,b=7,c=3;
b||++c运算后,c的值为(C)。
A)1B)=0C)3D)4
20.若x、i、j和k都是int型变量,计算x=(i=4,j=16,k=32)表达式后,x的值为(C)。
(A)4(B)16
(C)32(D)52
21.执行以下语句后,a,b的值分别为(C)。
inta,b,c;
a=b=c=1;
++a||++b&
++c;
(A)2,2 (B)1,1
(C)2,1 (D)1,2
22.若有定义:
inta=8,b=5,c;
执行语句c=a/b+0.4;
后c的值为(B)。
(A)1.4(B)1
(C)2.0(D)2
23.设变量a是整形,f是实型,i是双精度型,则表达式10+′a′+i*f值的数据类型为(C)。
A.intB.floatC.doubleD.不确定
24.在C语言中,char型数据在内存中的存储形式是(A)。
A.补码B.反码C.源码D.ASCII码
25.判断char型变量cl是否为小写字母的正确表达式为(D)。
A.’a’<=c1<=’z’B.(c1>=a)&
(c1<=z)
C.(‘a’>=c1)(‘z’<=c1)D.(c1>=’a’)&
(c1<=’z’)
26.以下不能定义为用户标识符的是(C)。
A.MAINB._HJC.208ongD.LINE12
27.设有intx,y;
以下语句判断x和y是否相等,正确的说法是该语句(B)。
if(x=y)printf("
xisequaltoy."
);
A.语法错B.不能判断x和y是否相等
C.编译出错D.能判断x和y是否相等
28.以下各项是错误的整型常量的是(B)。
A.-0xcdfB.018C.0xeD.011
29.已知intx=10,y=20,z=30;
以下语句执行后x,y,z的值分别是(C)。
if(x>
y)z=x;
x=y;
y=z;
(A)x=10,y=20,z=30(B)x=20,y=30,z=10
(C)x=20,y=30,z=30(D)x=20,y=30,z=20
30.设x=3,y=-4,z=5,则表达式!
(x>
y)+(y!
=z)||(x+y)&
(y=z)的值是`。
31.为表示关系x≥y≥z,正确的C语言逻辑、关系表达式为x>
=y&
y>
=z。
32.有inta=3,b=4,c=5,x,y;
,则以下表达式的值为0
!
(x=a)&
(y=b)&
c
33.在C语言的表达式中,x=x+5用复合运算符可以写成x+=5。
34.已知赋值语句zhang.year=1985;
可判断zhang是结构体类型的变量;
35.若a是int型变量,且a的初值为6,则计算表达式“a+=a-=a*a”后a的值为-60
36.当a=3,b=2,c=1时,表达式f=a>
b>
c的值是0.
37.若x和n均是int型变量,且x的初值为12,n的初值为5,则执行表达式“x%=(n%=2)”后,x的值为0。
38.在C语言中,表示逻辑"
值用非0值.
39.与if(x==0)等价的表达式写法写法是!
x。
40.若s是int型变量,且s=6,则表达式“s%2+(s+1)%2”的值为1。
41若x是int型变量,则执行表达式“x=(a=4,6*2)”后,x的值为12。
42.表达式pow(2.8,sqrt(double(x)))值的数据类型为double。
1.若有以下程序段(n所赋的是八进制数):
intm=32767,n=0327;
printf("
%d,%o\n"
m,n);
执行后输出结果是(A)。
A)32767,327B)32767,0327C)32767,777D)32767,0777
2.若有说明语句:
inta,b,c,*d=&
c;
,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是(A)。
A)scanf("
%d%d%d"
&
a,&
b,d);
B)scanf("
b,&
d);
C)scanf("
a,b,d);
D)scanf("
a,b,*d);
3.若变量x、y已定义为int类型且X的值为99,y的值为9,请将输出语句
printf(_”x/y=%d”____,x/y);
补充完整,使其输出的计算结果形式为:
x/y=11。
4.在scanf函数中,变量前加&
表示变量的地址。
5.以下程序的运行结果是computer,□□com。
□表示空格
main()
{printf("
%s,%5.3s"
"
computer"
}
6.若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是5.0,4,c=3。
intb,c;
floata;
scanf("
%f,%d,c=%d"
,&
a,&
b,&
c);
1.C语言中,while和do…while循环的主要区别是(B)。
A.while的循环控制条件比do…while的循环控制条件严格
B.do…while的循环体至少无条件执行一次
C.do…while允许从外部转到循环体内
D.do…while的循环体不能是复合语句
2.现已定义整型变量inti=1;
执行循环语句while(i++<
5);
后,i的值为(C)。
A)1B)5C)6D)以上三个答案均不正确
3.执行语句:
for(i=1;
i<
=9;
i++)后;
变量i的值是(A)。
A.10B.9C.不定 D.11
4.以下描述正确的是(C)。
A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。
B.do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。
C.在do-while循环体中,一定要有能使while后面表达式的值变成零(“假”)的操作。
D.do-while循环中,根据情况可以省略while。
5.对do...while语句错误的描述是(C)。
A.可构成多重循环结构B.循环次数不可能为0
C.循环次数可能为0D.先执行后判断。
6.执行下面的程序段后,k值是36。
k=1;
n=263;
do{k*=n%10;
n/=10;
}while(n);
1.若定义数组并初始化inta[10]={1,2,3,4},以下语句中(D)成立。
。
A.若引用a[10],编译时报错
B.若引用a[10],连接时报错
C.若引用a[10],运行时出错
D.若引用a[10],系统不报错
2.下列选项中正确的语句组是(D)。
A.chars[8];
s={"
Beijing"
};
B.char*s;
C.chars[8];
s="
D.char*s;
3.以下对二维数组a的正确说明是(C)。
A.inta[3][]B.floata(3,4)C.doublea[1][4]D.floata(3)(4)
4.C标准库函数中,字符串处理函数的原形在(C)头文件中。
A.stdio.hB.math.hC.string.hD.ctype.h
5.以下一维数组a的正确定义是(D)。
A.inta(10);
B.intn=10,a[n];
C.intn;
D.#defineN10
scanf(“%d”,&
inta[N];
inta[n];
6.有数组定义:
chararray[]=”Computer”;
则数组array所占的存储空间为(C)。
A.7个字节B.8个字节C.9个字节D.10个字节
7.有数组定义:
则数组array所占的存储空间为(C)。
A)7个字节B)8个字节C)9个字节D)10个字节
8.以下不能正确定义二维数组的选项是(D)。
A)inta[2][2]={{1},{2}};
B)inta[][2]={1,2,3,4};
C)inta[2][2]={{1},2,3};
D)inta[2][]={{1,2},{3,4}};
9.数组定义为:
inta[4][5];
引用“a[1]+3”表示的是(A)。
(A)a数组第2行第4列元素的地址(B)a数组第2行第4列元素的值
(C)a数组第4行的首地址(D)a数组第1行第3个元素的地址
10.判断字符串s1是否大于字符串s2,应当使用的表达式是(D)。
(A)if(s1>
s2)(B)if(a==b)
(C)if(strcpy(s2,s1)>
0)(D)if(stcmp(s1,s2)>
0)
11.字符串"
a"
在内存中占据的字节个数为(C)。
A.0B.1C.2D.3
12.若二维数组a有m列,则在a[i][j]前面的元素个数为(B)。
A.j*m+iB.i*m+jC.i*m+j-1D.i*m+j+1
13.下面正确的数据声明的是(D)。
A.chara[][5]={“math”,“phy”,“chemi”};
B.intb[3][3]={{1,2,3},4,5,6,7,{8,9}};
C.floatc[sizeof(sin
(1))]={1,‘\’};
D.charch[][10]={“Beijing”,“Nanjing”},
14.以下是正确的字符常量是(B)。
A."
c"
B.'
\\'
C.'
W1'
D."
\32a"
15.若二维数组a有m列,则在a[i][j]前面的元素个数为(B)。
Aj*m+iBi*m+jCi*m+j-1Di*m+j+1
16.在C语言中,二维数组元素的内存中的存放顺序是行序优先。
17.下面程序的功能是将字符串a中的下标为奇数的元素由小到大排序,其他元素不变,请填空。
main()
{chara[]="
students"
t;
inti,j;
for(i=1;
7;
i+=2)
for(j=i+2;
j<
8;
j+=2)
if(a[i]>
a[j])
{t=a[i];
a[i]=a[j];
a[j]=t;
}
puts(a);
1.在C语言中以下正确的说法是(A)。
A.实参和与其对应的形参各占用独立储单元
B.实参和与其对应的形参共占用一个单元
C.只有当实参和与其对应的形参同名共占用存储单元
D.形参是虚拟的,不占用存储单元
2.以下正确的函数形式是(D)。
A.doublefun(intx,inty){z=x+y;
returnz;
B.fun(intx,y){intz;
C.fun(x,y){intx,y;
doublez;
z=x+y;
D.doublefun(intx,inty){doublez;
3.定义C语言函数时,形参可以是(B)。
A.常量B.变量C.表达式D.宏定义
4.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是(B)。
A.float型B.int型C.long型D.double型
5.以下说法中正确的是(C)。
A.C语言程序总是从第一个定义的函数开始执行
B.在C语言程序中,要调用的函数必须在main函数中定义
C.C语言程序总是从main函数开始执行
D.C语言程序中,main函数必须放在程序的开始部分
6.为了提高程序的运行速度,在函数中对于整型或指针可以使用的变量类型是(B)。
A.autoB.registerC.staticD.extern
7.数组名作为实参传递给被调用的函数时,形参获得的是(C)。
A.该数组第一个元素的值B.该数组所有元素的值
C.该数组第一个元素的首地址D.该数组所有元素的首地址
8.以下函数test返回值类型为(A)。
test(intx)
{printf(“%f\n”,(float)x);
A)intB)floatC)voidD)不确定或错误
9.若函数中有定义语句:
intk;
,则下列说法正确的是(B)。
A.系统将自动给k赋初值0B.这时k中的值不确定
C.系统将自动给k赋初值-1D.这时k中无任何值
10.下面函数
f(doublex)
{printf(“%6d”,x);
}的类型为(C)。
A.实型B.void类型C.int类型D.均不正确
11.若使用一维数组名作函数实参,则以下正确的说法是(A)。
A.必须在主调函数中说明此数组的大小
B.实参数组类型与形参数组类型可以不匹配
C.在被调用函数中,要设置形参数组的大小
D.实参数组名与形参数组名必须一致
12.在C语言中,以下说法中正确的是(A)。
A.实参与其对应的形参各占用独立的存储单元
B.实参与其对应的形参占用同一个存储单元
C.只有当实参与形参同名时才占用同一个存储单元
D.实参占用存储单元,但形参是虚拟的,不占用存储单元
13.若用数组名作为函数调用的实参,传递给形参的是(A)。
(A)数组的首地址 (B)数组的第一个元素
(C)数组中全部元素的值(D)数组元素的个数
14.C语言中,简单变量做实参时,它和对应的形参之间的数据传递方式是(B)。
(A)地址传递 (B)单向值传递
(C)由实参传给形参,再由形参传递给实参
(D)同用户指定传递方式
15.下列叙述中错误的是(B)。
A.引用函数说明中指定的形参名,不必与函数定义中对应的形参名相同。
B.不能用extern定义一个外部变量、数组。
C.无论在函数外还是在函数内部引用自定义的函数,都可以不写extern关键字。
D.用extern说明引用一个外部数组时,可以不给出数组大小。
16.以下正确的函数定义形式是(C)。
A.doublefun(intx,inty)B.doublefun(intx;
inty)
C.doublefun(intx,inty);
D.doublefun(intx,y);
17.若用数组名作为函数调用的实参,传递给形参的是(C)。
(A)数组的第一个元数;
(B)数组中全部元素的值;
(C)数组的首地址;
(D)数组元素的个数。
18.已知函数定义为:
intstat(int a,float*p)
{……………}
则此函数的两个参数类型分别是整型、指向浮点数的指针类型。
19.在TC中,printf()函数输出表列的求值顺序是从右向左。
20.在C语言中,函数默认是全局的。
(填“全局的”或“局部的”)
1.设有宏定义:
#defineIsDIV(k,n)((k%n==1)?
l:
0)且变量m已正确定义并赋值,则宏调用:
IsDIV(m,5)&
IsDIV(m,7)为真时所要表达的是(D)。
A.判断m是否能被5或者7整除
B.判断m是否能被5和7整除
C.判断m被5或者7整除是否余l
D.判断m被5和7整除是否都余1
1.有以下程序
#include<
stdio.h>
voidf(int*p,int*q);
{intm=1,n=2,*r=&
m;
f(r,&
printf("
%d,%d"
voidf(int*p,int*q)
{p=p+1;
*q=*q+1;
程序运行后的输出结果是(A)。
A.1,3B.2,3C.1,4D.l,2
2.对于类型相同的指针变量,不能进行(B)运算。
A.-B.+C.=D.>
3.若有inta[10]={1,2,3,4,5,,6,7,8,9,10};
*p=a;
则值为9的表达式是(B)。
A.*p+9B.*(p+8)C.*p+=9D.p+8
4.变量p为指针变量,若p=&
a,下列说法不正确的是(D)。
A.&
*p==&
aB.*&
a==aC.(*p)++==a++D.*(++p)==++a
5.设有语句”inta[]={1,3,5,7,9},*p=&
a[0];
”则值为7的表达式是(C)。
A.*p+3B.*p+4C.*(p+3)D.*(p+4)
6.已知inta[2][3]={{1,3,5},{2,4,6}};
则*(*(a+1)+2)的值是(A)。
A.6B.3C.5D.4
7.已知inta[2][3]={{1,3,5},{2,4,6}};
A)6B)3C)5D)4
8.已知i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 习题集 答案