C语言程序设计习题集及答案Word文档格式.docx
《C语言程序设计习题集及答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计习题集及答案Word文档格式.docx(67页珍藏版)》请在冰点文库上搜索。
![C语言程序设计习题集及答案Word文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/2/d76b2368-5808-4840-9cd2-be674c9fd6d8/d76b2368-5808-4840-9cd2-be674c9fd6d81.gif)
%d,sizeof(a*b)+2/5);
13
14
设int型占2个字节,且inti=-2;
B-2
C65534
则语句printf("
%U,i);
的输出结果为一
D65535
若x、y、z均为整型常量,且a=100,
则执行下列语句后的z值为一
x=a++;
y=--a;
z=x+y-a--;
A100
B400
C200
D300
15
若有以下定义和语句:
intu=010,v=0x10,w=10,printf("
%d,%d,%d\n:
u,v,w);
,则输出结果是
16
A8,16,10
B10,10,10C8,8,10
D8,10,10
设x、y为int型变量,则执行下列语句后,
y的值是一
x=5;
y=x++*x++;
y=--y*--y;
A529
B2401
C1209
D625
17
假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式
1
abc
的表达式是
18
19
20
21
22
2
3
4
5
A1/a*b*cB1/(a*b*c)C1/a/b/(float)cD1.0/a/b/c
若有定义:
inta=8,b=5,c;
chard='
A'
;
则执行语句c=a/b+d%a+0.5;
后c的值为
A2B2.5
C3D类型不一致,无法计算,编译出错
在有以下程序:
main()
{inti=10,j=1;
i=i+j++;
%d,%d,%d\n'
i++,++j,i);
}
执行后输出结果是。
A12,3,11B12,2,11C11,3,11D12,3,12
已知inti=65;
,贝Uputchar(i);
%d,i);
%c,i);
的输出结果为。
AA,65,AB65,65,ACA,A,65DA,A,A
已知inty,a,i=1;
,则语句printf("
%d,%d,-i++,(y=a=3.6*3));
的输出结果为。
A-1,10B-2,1.8C0,3D1,18
有以下程序:
{chara,b,c,d;
a='
'
b='
\xbc'
c='
\0xab'
d='
\023'
%c%c%c%c\na,b,c,d);
编译时出现错误,以下叙述中正确的是
0bc'
语句不正确
和c='
\0xab'
语句都不正确
A程序中只有a='
语句不正确Bb=
Cd=\023'
语句不正确Da=
填空题(第1题2分,其余每题3分,共56分)
设x为int型变量,请写出描述“x是偶数”的表达式是。
已知scanf("
a=%d,b=%d,c=%d,&
a,&
b,&
c);
,若从键盘输入2、3、4三个数分别作为变量a、b、c的值则正确的输入形式是
。
设有语句inta=3;
,则执行了语句a+=a-=a*a后,变量a的值是。
以下程序的输岀结果是。
main()
{inta=-10,b=-3;
printf(
-a++);
-a+b);
以下程序的输岀结果是
{charc;
c=0362;
%d\n"
c);
6以下程序段(n所赋的是八进制数)执行后输出结果是。
intm=32767,n=032767;
printf("
%d,%o\n"
m,n);
7字符串"
\\name\\\101ddress\b\xaf"
的长度为:
。
8有以下程序段:
intm=0,n=0;
charc='
a'
scanf("
%d%c%(&
m,&
c,&
n);
%d,%c,%d\n'
m,c,n);
若从键盘上输入:
10A10<
回车>
则输岀结果是。
9以下程序的输岀结果是。
{printf("
%d,%o,%x\n:
10,10,10);
10,010,0x10);
%d,%x\n"
012,012);
10设a、b、c为整形变量,且a=2、b=3、c=4,则执行完语句a*=16+(b++)-(++c);
之后,变量a的值为
11以下程序的输岀结果为。
{intx=023;
%x\n"
--x);
12以下程序的结果为。
{inta=2,b=3,c,d;
c=(a++)+(a++)+(a++);
d=(++b)+(++b)+(++b);
a=%dc=%d\n"
a,c);
b=%dd=%d\n"
a,d);
13以下程序
{charch1,ch2,ch3;
%c%c%q&
ch1,&
ch2,&
ch3);
%c%c%c%c%ch1,'
#'
ch2,'
ch3);
当输入ABC时运行结果为【1】,当输入ABC时运行结果为【2】。
14若有定义:
floatx;
以下程序段的输出结果是。
x=5.16894;
%f\n"
(int)(x*1000+0.5)/(float)1000);
15以下程序的功能是:
输入一个小写字母,输岀对应的大写字母,将程序补充完整。
{charch;
【1】/*从键盘输入一个小写字母*/
【2】/*将该字母转换为大写字母*/
【3】/*输出转换后的结果*/
则程序的输出结果是
16当运行以下程序时,在键盘上从第一列开始输入9876543210/(此处/代表回车)
{inta;
floatb,c;
%2d%3f%4f,&
\na=%d,b=%f,c=%f\n"
a,b,c);
17以下程序的运行结果是。
%12.5f\n"
123.1234567);
%12f\n"
%12.8d\n"
12345);
%12.8s\n"
"
abcdefghij"
);
18运行以下程序时,如从键盘上输入abcdefg/,则输出结果是。
ch1=getchar();
ch2=getchar();
ch3=getchar();
putchar(ch1);
putchar(ch2);
putchar(ch3);
putchar('
\n);
19运行以下程序时,如从键盘上输入:
a=3,b=5/35,35.12/abc/后,结果是
{inta,b;
floatx,y;
charc1,c2;
a=%d,b=%d,&
b);
%f,%e"
&
x,&
y);
c1,&
c2);
a=%d,b=%d,x=%f,y=%f,c仁%。
22=%祇门"
a,b,x,y,c1,c2);
顺序、选择结构程序设计
一单项选择题(每题2分,共40分)
1以下程序运行后的输出结果是。
{inta=0,b=0;
a=10;
b=20;
a+b=%d\n"
a+b);
Aa+b=10Ba+b=30C30D出错
2以下程序运行后的输出结果是。
{doubled=3.2;
intx,y;
x=1.2;
y=(x+3.8)/5.0;
d*y);
A3B3.2C0D3.07
3以下程序运行后的输出结果是。
{doubled;
floatf;
longl;
inti;
i=f=l=d=20/3;
%d%ld%.1f%.1f\n"
i,l,f,d);
A666.06.0B666.76.7C666.06.7D666.76.0
4以下程序运行后的输出结果是。
{inta=1,b=2;
a=a+b;
b=a-b;
a=a-b;
%d,%d\n"
a,b);
A1,2B1,1C2,2D2,1
5以下程序运行后的输出结果是
{intx,y,z;
x=y=2;
z=3;
y=x++-1;
y=++x-1;
y=z---1;
y=--z-1;
A3143B3133
%d%d"
x,y);
%d%d\n"
z,x);
z,x);
C3143D2132
2414242224121312
6以下程序运行后的输岀结果是。
x=y=1;
z=x++,y++,++y;
%d,%d,%d\n'
x,y,z);
A2,3,3B2,3,2C2,3,1D2,2,1
7以下程序运行后的输岀结果是。
{intx=4,y=7;
x-=y;
y+=x;
x,y);
A47B-3-3C-311D-34
8以下程序运行后的输出结果是
{unsignedshorta=65536;
intb;
b=a);
A65536B0C1D-1
9以下程序:
#include<
stdio.h>
{charc1,c2,c3,c4,c5,c6;
%c%c%c%&
c2,&
c3,&
c4);
c5=getchar();
c6=getchar();
putchar(c1);
putchar(c2);
%c%c\n:
c5,c6);
程序运行后,若从键盘输入(从第1列开始)
123<
回车>
45678<
回车>
则输出结果是。
A1267B1256C1278D1245
10设a、b和c都是int型变量,且a=3,b=0,c=5,则以下值为0的表达式是•
&
&
b'
Ba&
b||cCa&
b&
cDa||b&
c
11在嵌套使用if语句时,C语言规定else总是。
A和之前与其具有相同缩进位置的if配对
B和之前与其最近的if配对
C和之前与其最近不带else的if配对
D和之前的第一个if配对
12若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为
13以下程序运行后的输岀结果是。
{inta=2,b=-1,c=2;
if(a<
b)
if(b<
0)c=0;
elsec++;
A0B1C2D3
14若k是int型变量,下面的程序段的输出结果是
{inta=0,b=0,c=0,d=0;
编译有错
无输出结果
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:
a++;
break;
case1:
b++;
case2:
a=%d,b=%d\n:
a,b);
Aa=2,b=1Ba=1,b=1Ca=1,b=0Da=2,b=2
二填空题(每题3分,共30分)
if(a=1)b=1;
c=2;
elsed=3;
%d,%d,%d,%d\n:
a,b,c,d);
A0,1,2,0B0,0,0,3C1,1,2,0D
16以下程序运行后的输岀结果是。
{intx1=1,x2=0,x3=0;
if(x1=x2+x3)printf("
****"
elseprintf("
####"
A****B有语法错误C####D
17当a=1,b=3,c=5,d=4时,执行下面一行程序后,x的值是
b)if(c<
d)x=1;
elseif(a<
c)if(b<
d)x=2;
elsex=3;
elsex=6;
elsex=7;
A1B2C3D6
18下列叙述中正确的是。
Abreak语句只能用于switch语句
B在switch语句中必须使用default
Cbreak语句必须与switch语句中的case配对使用
D在switch语句中不一定使用break语句
{inti=010,j=10;
++i,j--);
2以下程序运行后的输岀结果是。
%d%d%d\n\0'
\0'
'
\0);
}
3以下程序运行后的输岀结果是。
{inti=5,j,k;
j=i+++i+++i++;
k=(++i)+(++i)+(++i);
i=%5dj=%5d\nk=%5d\n"
i,j,k);
4下面的程序运行时从键盘上输入9876543210<
,程序的输出结果是
%2d%2f%2f,&
a=%d,b=%.1f,c=%.0f"
5下面程序的输岀结果是。
{charch1,ch2;
ch仁A+'
5'
-3;
ch2='
+6'
%d,%c\n"
ch1,ch2);
6执行下面的语句:
(a=3*5,a*4,a+5));
,输出是。
{intx=10;
--x,--x);
8为表示关系x>
y>
乙应使用C语言表达式。
9下面的程序段的输岀结果是。
intx=3;
if((x%2)?
**%d"
x):
##%d\n"
x));
10以下程序运行后的输岀结果是。
{intm=5;
switch(m/2)
m++;
m+=3;
case5:
m+=6;
default:
m-=7;
三程序填空(每空5分,共30分)
1下列程序的输出结果是16.00,请填空
{inta=9,b=2;
floatx=【1】,y=1.1,z;
z=a/2+b*x/y+1/2;
%5.2f\n"
z);
a,b,c的值,判断a,b,c能否组成三角形,计算三角形面积
【2】;
{inta,b,c;
【3】
pleaseinputthevalueofa,b,c"
)
%d%d%d,【4】);
if(【5】)
{【6】
s=sqrt(p*(p-a)*(p-b)*(p-c));
Yes,thisisatriangle!
\ntheareais%.2f.\n"
s);
No,thisisnotatriangle!
\n"
循环结构程序设计
一单项选择题(每题2分,共40分)
1以下程序中,while循环的循环次数是。
{inti=0;
while(i<
10)
{if(i<
1)continue;
if(i==5)break;
i++;
A1B10C6D死循环
2以下程序的执行结果是。
{intn=9;
%d,n);
while(n>
6){n--;
该程序的输岀结果是
A987
B876
C8765
D9876
以下程序段,while循环执行的次数是一
intk=0;
while(k=1)k++;
以下叙述正确的是一
Ado-while语句构成的循环不能用其它语句构成的循环来代替
以下程序的执行结果是
{inta,y;
y=0;
do{a+=2;
y+=a;
if(y>
20)break;
}while(a=14);
a=14y=26a=14y=44
{intx=23;
do{printf("
%d,x--);
}while(!
x);
A321
B23
不输出任何内容D陷入死循环
有以下程序段,
输出结果是
do{printf(
%d"
x-=2);
(--x));
C1-2
死循环
以下程序的输岀结果是
{inta=0,i;
for(i=1;
i<
5;
i++){switch(i)
case3:
a+=2;
%d\n"
i);
死循环D0
case2:
a+=3;
default:
a+=5;
a);
A31B13C10D20
9以下程序的输出结果是。
{inti=O,a=O;
20)
{for(;
if((i%10)==0)break;
elsei--;
i+=11;
a+=i;
A21B32C33D11
10以下循环体的执行次数是。
{inti,j;
for(i=0,j=1;
=j+1;
i+=2,j--)printf(
A3B2C1D0
11下列程序的输岀结果是。
{inti,j,m=0,n=0;
for(i=0;
<
2;
i++)
for(j=0;
j<
j++)
if(j>
=i)m=1;
n++;
n);
A4B2C1D0
12下列程序的输出结果是。
{inti,sum;
=3;
sum++)sum+=i;
printf("
sum);
A6B3C
13以下程序执行后sum的值是。
6;
i++)sum+=i;
A15B14C不确定D0
14以下程序执行后的输出结果是。
{inti,n=0;
for(i=2;
{do{if(i%3)continue;
n++;
}while(!
i);
n=%d\n"
An=5Bn=2Cn=3Dn=4
15下列语句中,能正确输出26个英文字母的是。
%c,a);
%c,a));
Afor(a='
a<
='
z:
%C:
++a));
Bfor(a='
=Z'
)printf(
Cfor(a='
z'
a++));
Dfor(a='
printf(
16以下程序执行后的输岀结果是。
{intx=1,y=1;
while(y<
=5)
{if(x>
=10)break;
if(x%2==0)
{x+=5;
continue;
x-=3;
y++;