C语言顺序结构程序设计练习题.docx
《C语言顺序结构程序设计练习题.docx》由会员分享,可在线阅读,更多相关《C语言顺序结构程序设计练习题.docx(19页珍藏版)》请在冰点文库上搜索。
C语言顺序结构程序设计练习题
顺序结构程序设计习题
一、选择题:
(以下各题□代表空格。
)
1.以下程序运行的结果是:
#includc
intmain()
{intm=5,n=10;
printf(“%d,%d\n”,m++,—n);
}
A)5,9B)6,9C)5,1OD)6,1O
2.以下程序运行的结果是:
#includc
intmainO
{inta=201,b=012;
printf(“%2d,%2d\n”屛b);
return0
}
A)01,12B)201,10C)O1,1OD)20,01
3.有定义语句inta,b;若要通过语句scanf(&a,&b);使变長n得到教值6,变長b
得到数值5,下面输入形式,错误的是:
A)6,5<回车〉B)6,口□<回车〉
C)65<回车aD)6,<回车回车a
4.设有如下程序:
#includc
intmainO
{charchi='A’,ch2='a*;
prinf%c\nw,(chl,ch2));
return0;
}
则以下叙述正确的是:
A)程序的输出结果为大写宇母A;
B)程序的输出结果为小写宇母a;
C)运行时产生错误信息;
D)格式说明符的个数少于输出项个数,编译出错。
5.以下程序运行的结果是:
#includc
intmainO
■{intxl=()xabc>x2=()xdcf;
x2-=xl;
printf("%X\n",x2);
return0;
}
A)ABCB)0XABCQ0X333D)333
6.以下程序输出的结果是:
#includc
intmainO
{printf(4<\n*sl=%15s*w「chinabeijing^);
printf(a\n*s2=%-5s*w,”chi”);
}
A)*sl=chinabcijingC
S2=**chi*
B)*sl=chinabcijing^
*s2=chiDn*
C)*s1=*□Ochinabeijing*
*s2=nnchi*
r))*sl=□□□chiilabcijiilg*
*s2=chiDn*
7.已有定义inta=-2;fn输出语句:
printf(“%81x”,a);以下正确的描述是:
A)整形变星的输出格式符只有%d—种;
B)%x是格式符的一种,它可以适应与任何一种类型的数据;
C)%x是格式符的一种,其变長的值按十六进制输出,但%8块是错误的
D)%81x不是错误的格式符,其中数宇8规定了输出宇段的宽度。
8.以下C程序的运行结果是:
#includc
intmainO
{longy=-43456;
printf(y=%-81d\nw,y);
printf(y=%-081d\n,>,y);
printf(y=%081d\n”,y);
printf(y=%+81d\n,y);
return0;
}
A
v=Fin-43456、二□□43456、二0043456y=-43456
B
)=43456y二43456y二0043456>=+□■43456
C
y=-43456
P
v=nn-43456
y二43456
y二0043456
>=0043456
y=00043456
v=——-4U56
、=+43456
9.以下程序运行的结果是:
#includc
intmainO
{inty=2456;
printf("y=%3o\nw,y);
printf(“y=%8o\n",y);
printf(“y=%#8o\nw,y);return0;
A
v-D-in2456
J
v^nnnnn-inn2456
J
v=########2456
J
B
y=nnn463o
v=nnnnnnnn463oy=########4630
C
v=2456
J
v=nnnn2456
J
v=nnno2456
J
P
y=4630v=nnn04630v=nn□()463o
•
10.以下程序运行的结果是:
#includc
intmain()
{longy=23456;
printf(“y=%3x\n”,y);
printf(“y=%8x\n”,v);
printf(、・=%#8x\nw,y);
return0;
A
Y=5ba()
v=nnnn5ba()
Y=nn0x5ba()
B
Y=nna5bao
Y=nnnnnn5ba()
Y=nn()x5baO
C
Y=5ba()
D
Y=5baO
Y=5ba()
Y=nnnri5ba0
Y=Ox5baO
Y=####5baO
11.若“•均定义为im型,z定义为double型,以下不台法的sumf函数调用语句是:
A)scanf(“%d%lx,%d”,&x,&y,&z);
B)scanf(“%2d*%d%l『,&x,&y,&z);
C)scanf("%x%*d%o”,&x,&y);
D)scanf("%x%o%6・2『,&x,&y,&2);
12.如有如下定义和输入语句,若要求al,a2,cl,c2的值分别为10、20、A、B,当从第一列开始输入数据时,正确的教据输入方式为:
intal,a2;charcl、c2;
scanf("%d%c%d%c”,&a1,&c1,&a2,&c2);
A)10AD20B<回车〉B)10OAn20nB<回车〉
B)10Aa20B<回车〉D)10A20DB<回车〉
13.已有定义intx;floafy;K执行scanf("%3d%f”,&x,&y);语句,若从第一列开始输入数据
12345D678<回车〉,则x的值为(【1】)y的值为([2])
[1]:
A)12345B)123C)450)345
[2]:
A)无定值B)45.000000C)678.000000D)123.000(X)0
14.根据以下定义语句和敌据的输入方式,scanf语句的正确形式应为:
巳有定义:
floatfl,f2;
数据的输入方式:
4.52<回车〉
3・5<回车〉
A)scanf(,&fl,&⑵;
B)scanf(,&Fl,&f2);
C)sc;mf(“%3・2F%2.1f”,&fl,&f2);
D)scanf(“%3・2f%2・f,&Fl,&⑵;
15.阅读下列程序,当输入数据的形式为25,13,10<回车〉,程序的输出结果为:
#include
intmainO
{intx,v,z;
scanf("%d%d%d”,&
printf(“x+y+z=%d\n”,x+y+z);
return0;
}
A)x+y+z=48B)x+y+z=35
C)x+z=35D)不确定值
16•设有以下程序:
#includc
intmainO
{charcl,c2,c3,c4>c5,c6;
scanf("%c%c%c%c",&cl,&c2,&c3,&c4);
c5=gctcharQ;
c6=gctcharQ;
putchar(cl);
puchar(c2);
printf(“%c%c\&,c5,c6);
return0;
}
苦运行时从键盘输入数据:
nbc<回车〉
dcfg<回车〉则输出的结果是:
A)abcdB)abdcC)abcfD)abfg
17.以下针对scanF函数的叙述中,正确的是:
A)输入项可以为一实型常旻,如scanF(“%『,3.5);
B)只有格式控制,没有输入项,也能进行正确输入,如scanF("a=%d,b=%d”);
C)当输入一个实型数据时,格式控制部分应规定小数点后的位教,如scanf(“%4.2『,&0;
D)当输入数据时,必须指明变長的地址,如scanf(“%F”,&f);
18.根据下面的程序及数据的输入方式和输出方式,程序中输入语句的正确形式应该为:
#includc<stdio.h>
intmainO
{charch1,ch2,ch3;
输入语句;
printf(“%c%c%c",chl,ch2,ch3);
return0;
}
输入形式:
ADBDCv回车〉
输出形式:
ADB
A)scanf("%c%c%c”,&chl,&ch2,&ch3);
B)scanf("%c,%c,%c”,&chl,&ch2,&ch3);
C)scanf("%c%c%c”,&chl,&ch2,&ch3);
D)scanf("%c%c”,&chl,&ch2,&ch3);
19.有输入语句:
scanf(・=%d,b=%d,c=%cT,&码&b,&c);为使变長;i的值为1,b的值为3,
C的值为2,从键盘输入数据的正确形式应当是:
。
A)132<回车〉B)l,3,2<回车〉
C)a=l□b=3Qc=2<回车〉D)a=l,b=3Tc=2<回车〉
20.以下不符合C语法的赋值语句是:
。
A)m=(2+l,m=l);B)m=n=O;
C)m=1ji=2D)n++;
22.巳知ch是字符型变長,下面不正确的賦值语句是:
。
A)ch='a+b,;B)ch=‘\0‘;C)ch=,7’+'9’;
D)ch=5+9;
23.巳知ch是字符型变長,下面正确的赋值语句是:
A)ch=123’;B)ch=‘\xff,;C)ch二'\08‘;
24.若有以下定义,则正确的赋值语句是:
inta,b;floatx;
D)b=int(x);
A)a=l,b=2,B)b++;C)a=b=5
25.设列均为flwt型变長,则以下不合法的赋值语句是:
A)++x;B)y=(x%2)/10;C)x*=v+&D)x=y=O;
26.设xyz为int型变長、则执行语句x=(y=(z=10)+5)-5;后,“上的值分别为:
A
X=10
B
X=10
c
X=10
P
X=10
Y=15
Y=10
Y=10
Y=5
Z=10
Z=10
Z=15
Z=10
27.设有说明:
doubley=0.5rz=1.5;inix=10;则能够正确使用C语言厚函数的赋值语句是:
。
A)z=cxp(y)+fabs(x);
B)y=logl0(y)+pow(\);
C)z=sqrt(y-z);
D)x=(int)(ahin2((doublc)x,y)+cxp(y-0.2));
程序分析题:
1、以下程序运行的结果是:
。
#include
intmainO
{shorti;
i=-4;
printf(a\ni:
dcc=%d,()ct=%o,hcx=%x,usigiicd=%u\n
return0;
}
2、以下程序运行的结果是:
。
#includc
intmain。
{printf("*%f,%4.3f*\nw,3.14,3.1415);
return0;}
3、以下程序运行的结果是:
#includc
intmainO
{charc=>x';
printf(“(:
:
€1比=%<12€1:
=%0山€:
£=%乂3$01】=%(:
\1】'’,c,c,c,c);
return0;
}
4、已有定义intd二2;执行以下语句后,输出的结果是
printf(“*d(l)=%d,d
(2)='%3d,d(3)=%-3d*\nw,d,d,d);
printf(“*d(4)=%o,d(5)=%7o,d(6)=%-7o*\nw,d,d,d);
5、巳有定义intd二2;执行以下语句后,输出的结果是
printf(a*d(l)=%d*d
(2)=%3d*d(3)=%-3d*\n",d,d,d);
printf(^*d(4)=%o*d(5)=%7o*d(6)=%-7o*\n",d,d,d);
6、已有定义floatdl=3.5,d2=-3.5抉行以下语句后,输出的结果是printf(tf*d(l)=%e*d
(2)=%.4e*d(3)=%10.4e*\nw,dl,dl,dl);
printf(^*d(4)=%e*d(5)=%.6c*d⑹二%-12.5c*\n",d2,d2,d2);
7、以下程序输出的结果是:
「
#include
intmainO
{intx=l,y=2;
printf(“x=%dy=%d*sum*=%d\iTx,v^+y);
printf(“10Squaredis:
%d\『,10*10);
return0;
8、以下程序输出的结果是:
「
#includc
intmainO
{intx=10;floatpi=3・1416;
printf(“⑴%d\n”,x);
printf("
(2)%6d\nw,x);
printf(“(3)%f\n”,56.1);
printf(“(4)%14f\n”,pi);
printf("(5)%c\nw,568.1);
printf(“(6)%14u\iT,pi);
printf(“(7)%g\n",pi);
printf(“(8)%12g\if,pi);
return0;
9、以下程序输出的结果是:
「
#includc
intmainO
{inta=123.456;floatb=8765.4567;
printf(“(l)%f\iT規);
printf(u
(2)%14.3f\n",a);
printf(“(3)%6.4f\nw,a);
printf(“(4)%lf\fT,b);
printf(“(5)%14.31f\『b);
printf(“(6)%8.41f\n",b);
printf("(7)%.4f\n",b);return0;
10、以下primf语句中琢号的作用是【1】,输出结果是[2]
#includc
intmainO
{inti=l;
printf(“##%*d\n",i,i);
i++;
printf(“##%*d\n",i,i)
i++;
printf(^##%*d\n",i,i)
return0;
}
11、以下printf语句中负号号的作用是[1],输出结果是[2]
#include
intmainO
{intx=12;double尸3.1415926;
printf(“%6d##\rT,x);
printf(%6d,x);
printf(“%14.101f##\n”Q;
printf(“%44・101f##\n”,a);
return0;
}
12、以下程序运行的结果是。
#includc
intmainO
{inta=325;doublex=3・1415926;
printf(==%+06dx=%+u\n”»a,x);
return0;
}
13、以下程序运行的结果是o
#includc
intmainO
{inta=252;
printf(ua=%<)a=%#()\n”3);
printf(ua=%xa=%#x\n,r,a,a);
return0;
14、以下程序运行的结果是o
#includc
intmain()
{intn=lOO;charc;
floatf=10.0;doublex;
x=f*t=n/=(c=48);
printf(a%d%d%3.1f%3.1f\nwnc£x);
return0;
}
15、有以下程序:
#includc
intmainO
{intk=O;charcl=?
J,c2='b';
scanf("%d%c%c”,&k,&cl,&c2);
printf(“%d,%c,%c\f‘,k,cl,c2);
return0;
}
苦运行时从键盘输入:
55AB<回车〉,则输出的结果是
16、以下程序运行的结果是。
#includc
intmain。
{intm=177;
printf(“%o\n”>m);
return0;
}
17、以下程序运行的结果是。
#include
intmainO
{intn=0;
n+=(n=10);
printf(“%d\n”ji);
return0;
}
18、若要下列程序的输出结果为8.00,则【】中应埴入的是
#includc
intmainO
{intk=2,m=5;
floats,x=1.2,}-[];
s=2/3+k*y/x+m/2;
printf(“%4・2f\n”,s);
return0;
19、巳知宇母A的ASCII码值为65,以下程序输出的结果是:
o
#includc
intmain()
{chara,b;
a=,A*+'4*-'3';
b=,A*+,6'-'2';
printf(ua=%d>b=%c\nw,a,b);
return0;
}
20、假设变旻a和b均为整型,以下语句可以不借助任何变長把a和b中的值进行交换,请埴空:
a+=[];b=a-[];a-=[];
21、假设变長a,b,c均为整型,以下语句借助中间变星t把a,b,c中的值迸行交换,即把b中值给a,把c中的值给b,把a中的值给c.例如:
交换前,a=10,b=20,c=30,交换后,a=20,b=30,c=10.请埴空:
【];a=b;b=c;[];
22、设有一输入函数scanF(“%d”它不能使flwt类型变長k得到正确数值的原因是【1】
未指明变長k的地址和【2】格式控制符与变長类型不匹配。
23、巳有定义inta;flgtb,x;chsircl,c2;为使a=3、b=6.5、x=12.6、cl='a'、c2=‘A‘,正确的
scanf函数调用语句是【】,数据输入的形
式应为【】。
24、若有以下定义和语句,为使变長cl得到宇符’A',变長c2得到宇符’B',正确的输入
形式是:
【】
charcl,c2;
scanf(“%4c%4cr”,&cl,&c2);
25、执行以下程序时,若从第一列开始输入数据,为使变長a=3,b=7,x=&5,y=71.82,cl='A',c2='a',正确的数据输入形式是
[1
#include
intmainO
{inta,b;floatx,y;charcl,c2;
scanF(aa=%db=%d”,&去&b);
scanf(“x=%Fy=%『,&x,&y);
scanF(“cl=%cc2=%c”,&cl,&c2);
printf(“a=%d,b=%d,x=%f,y=%f,cl=%c£2=%c”ab,x,y,cl,c2);return0;
编程题:
编写程序,从终端键盘输入圆的半径r,凰柱的高h,分别计算出圆的周长cl、圆的面积cs和圆柱的体积cvz。
输出计算结果时要求有文宇说明,并取小数点后2位数宇。
编写程序,读入一个宇母,输出与之对应的ASCII码,输入输出都要有相应的文宇提示。
编写程序,从键盘输入两个整教,分别计算他们的商和余数,输出时,商要求保留两位小数,并对第三位四舍五入。
参考答案:
1-5:
ABCBP.6-10:
PPCPA,11-15:
PAB(B)BD,16-20:
BPAPC,21-27:
AABBBAP
埴空:
1、i:
duc=・4Qir=177774,hux=fffc,unsignc:
d=65532
2、*3.140000,3.142*
3、c:
dcc=120/>tc=170,hcx=78,ASCII=x
4、*d(l)=-2*d
(2)=□-2*d⑶二2口*
*d(4)=l77776*d(5)=□177776*d(6)=177776D*
5、*d(l)=-2*d
(2)=n-2*d⑶二-2D*
*d(4)=fffc*d(5)=⑹彳泯口□*
6、*d(l)=3.50000c+00*d⑵=3・5OOu+OO除d⑶二□3・5OOu+OO**d(4)=-3500(X)c+00*d(5)-350000c+00*d(6)=-3.5()0()c+00D*
7^x=lv=2*sum*=3
z
10Squaredis:
1(X)
&1)10
2)□□□□10
3)56.100000
4)□□□□□□3.141600
5)5.68100c+02
6)□□□3.14160c+00
7)3.1416
8)□□□□□□3.1416
9、1)123.456.000
2)□□□□□□□123.457
3)123.4560
4)8765.456700
5)□□□□□□8765.457
6)8765.4567
7)8765.4567
10、1)可以使同一输出语句中的输出宽度得以改变
2)##1
##□□3
11、输出数据左对齐
2)□□□□12##
i2nmn##
nnil415926(H)##
3.1415926()onn##
12.
a=+OO325D□ax=+3.14159c+00
13.
a=374D□a=0374
a=£aDn=0xfc
14.
24820.020.0
15.
55,,A
16、261
17、20
18、3.6
19、a=66,b=E
20、l)b2)b3)b
21、l)t=a2)c=t
22、1)格式控制符与变長类型不匹配。
sc;mf语句的正确形式应该是:
scanfC“%f”,&k);
2)位指明变星k的地址
23、1)scanf(“%d%f%f%c%c”,&%&b,&cl,&c2);
2)3口6・5口12.6&<回车〉
24、AODDBOD□<回车〉
25、a=3nb