顺序结构程序设计练习题.docx
- 文档编号:11904017
- 上传时间:2023-04-08
- 格式:DOCX
- 页数:21
- 大小:22.26KB
顺序结构程序设计练习题.docx
《顺序结构程序设计练习题.docx》由会员分享,可在线阅读,更多相关《顺序结构程序设计练习题.docx(21页珍藏版)》请在冰豆网上搜索。
顺序结构程序设计练习题
C语言练习题总汇
一、单项选择题:
【顺序构造程序设计】
1.己知intk,m=1;执行语句k=-m++;后k的值是〔A〕。
〔提示:
负号与自加运算符同级,结合方向从右向左〕
A)-1B)0C)1D)2
2.假设有定义intx=4;那么执行语句x+=x*=x+1;后,x的值为〔C〕。
A)5B)20C)40D)无答案
3.假设有定义:
floata=3.0,b=4.0,c=5.0;那么表达式1/2*(a+b+c)的值为〔C〕。
A)6.0B)6C)0.0D)无答案
4.以下程序段的输出结果是〔C〕。
〔提示:
a当约束过严时,约束失效。
按自由格式输出。
〕
inta=1234;
printf("%2d\n",a);
A)12B)34C)1234D)提示出错,无结果
5.以下程序段的输出结果是〔C〕。
inta=1234;
floatb=123.456;
doublec=12345.54321;
printf〔"%2d,%,%",a,b,c〕;
A)无输出B)12,123.46,12345.5C
6.设x,y均为整型变量,且x=8,y=5,那么以下语句的输出结果是〔D〕。
printf〔"%d,%d\n",x--,++y〕;
A)8,5B)7,5C)7,6D)8,6
7.以下程序的输出结果是〔A〕。
intmain〔〕
{inta=20,b=10;
printf〔"%d,%%d\n",a+b,a-b〕;}
A)30,%dB)30,10C)30,%10D)以上答案均不正确〔%%d中第一个%后面的表示字符〕
8.以下程序的运行结果是〔A〕。
intmain〔〕
{floatx;
inty;
y=〔int〕x;
printf〔"x=%f,y=%d",x,y〕;}
A)x=2.500000,y=2B)x=2.5,y=2C)x=2,y=200
9.以下程序的输出结果是〔A〕。
intmain〔〕
{charc=‘z’;
printf〔"%c",c-25〕;}
A)aB)zC)z-25D)y(字母共有26个,而z是最后一个)
10.下面程序的输出结果是〔C〕。
intmain()
{doubled=3.2;
intx,y;
y=(x+3.8)/5.0;
printf("%d\n",d*y);}
A)3B)3.2C)0D)
11.下面程序的输出结果是(C)。
(提示:
输出时无定界符)
intmain()
{intk=17;
printf("%d,%o,%x\n",k,k,k);}
A)17,17,17B)17,021,0x11C)17,21,11D)17,0x11,021
12.以下程序执行后的输出结果是〔C〕。
intmain〔〕
{charx=OxFFFF;
printf〔"%d\n",x--〕;}
A)-32767B)FFFEC)-1D)=-32768
13.printf("a\bre\'hi\'y\\\bou\n");的输出结果是〔C〕。
A)a\bre\'hi\'y\\\bouB)a\bre\'hi\'y\bou
C)re'hi'youD)abre'hi'y\bou
14.有定义语句:
intx,y;假设要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中错误的选项是〔A〕。
A)11<空格>12<回车>B)11,<空格>12<回车>
C)11,12<回车>D)11,<回车>12<回车>
15.有以下程序段:
intm=0,n=0;
charc=‘a';
scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d\n",m,c,n);
假设从键盘上输入:
10A10<回车>,那么输出结果是〔A〕。
A)10,A,10B)16,a,10C)10,a,0D)10,A,0
16.假设变量已正确说明为int类型,要通过语句scanf("%d%d%d",&a,&b,&c);给a赋值1,b赋值2,c赋值3,不正确的输入形式是〔B〕。
A)1<空格>2<空格>3<回车>B)1,2,3<回车>C)1<回车>2<空格>3<回车>D)1<空格>2<回车>3<回车>
b,c被定义为int型变量,假设从键盘给a,b,c输入数据,正确的输入语句是(D)
A)inputa,b,c;B)read("%d%d%d",&a,&b,&c);C)scanf("%d%d%d",a,b,c);D)scanf("%d%d%d",&a,&b,&c);
18.a,b,c为int型变量,假设从键盘输入:
1,2,3<回车>,使a的值为1,b的值为2,c的值为3,以下选项中正确的输入语句是〔B〕。
A)scanf("%2d,%2d,%2d",a,b,c);B)scanf("%d,%d,%d",&a,&b,&c);
C)scanf("%d%d%d",&a,&b,&c);D)scanf("i=%dj=%d,k=%d",&a,&b,&c);
:
123<空格>456<空格>789<回车>,输出结果是(D)。
intmain〔〕
{chars;
intc,i;
scanf〔"%c",&c〕;
scanf〔"%d",&i〕;
scanf〔"%c",&s〕;
printf〔"%c,%d,%c\n",c,i,s〕;}
A)123,456,789B)1,456,789C)1,23,456,789D)1,23,
20.已定义c为字符型变量,那么以下语句中正确的选项是(C)。
A〕c='97'B〕c=“97“C〕c=97D〕c=“a〞
21.以下程序的功能是:
给r输入数据后计算半径为r的圆面积s。
程序在编译时出错。
#include
voidmain()
{
intr;
floats;
scanf("%d",&r);
s=p*r*r;
printf("s=%f\n",s);
}
出错的原因是〔〕。
A〕注释语句书写位置错误
B〕存放圆半径的变量r不应该定义为整型
C〕输出语句中格式描绘符非法
D〕计算圆面积的赋值语句中使用了非法变量
答案:
D
22.有以下程序
#include
voidmain()
{
intm=12,n=34;
printf("%d%d",m++,++n);
printf("%d%d\n",n++,++m);
}
程序运行后的输出结果是〔〕。
A〕12353514B〕12353513C〕12343514D〕12343513
答案:
A
23.数字字符0的ASCII值为48,假设有以下程序
#include
voidmain()
{
chara='1',b='2';
printf("%c,",b++);
printf("%d\n",b-a);
}
程序运行后的输出结果是______。
A〕3,2B〕50,2C〕2,2D〕2,50
答案:
C
24.有以下程序
#include
voidmain()
{
charc1='1',c2='2';
c1=getchar();c2=getchar();putchar(c1);putchar(c2);
}
当运行时输入:
a<回车>后,以下表达正确的选项是______。
A〕变量c1被赋予字符a,c2被赋予回车符
B〕程序将等待用户输入第2个字符
C〕变量c1被赋予字符a,c2中仍是原有字符2
D〕变量c1被赋予字符a,c2中将无确定值
答案:
A
25.
【选择构造程序设计】
1.有变量说明语句inta,b,c;,顺序执行下面语句:
a=b=c=1;
++a||++b&&++c;
那么,变量b的值应是〔B〕
A.2B.1C.0D.3
2.有变量说明inta=3;,那么表达式a<1&&--a>1的运算结果和a的值应该是〔B〕
A.0和2B.0和3C.1和2D.1和3
3.设inta=3,b=4,c=5;,以下表达式的值不为1的是〔A〕。
A〕a+b>c&&b==cB〕a||b+c&&b-c
C〕!
(a>b)&&!
c||1D〕!
(a+b)+c-1&&b+c/2
4.#include
intmain()
{
inta,b,c;
a=10;b=50;c=30;
if(a>b)a=b;b=c;c=a;
printf(“a=%d,b=%d,c=%d\n〞,a,b,c);
}
程序的输出结果是〔C〕。
A.a=10,b=50,c=10B.a=10,b=50,c=30
C.a=10,b=30,c=10D.a=50,b=30,c=50
5.假设整型变量a、b、c、d中的值依次为:
1、4、3、2。
那么条件表达式a
a:
c c: d的值是(A)。 〔A〕1〔B〕2〔C〕3〔D〕4 6.假设x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是〔C〕。 A〕abs(x-y)<10B〕x-y>-10&&x-y<10C〕! (x-y)<-10||! (y-x)>10D〕(x-y)*(x-y)<100 7.假设有定义: inta=7;f1oatx=2.5,y=4.7;那么表达式x+a%3*(int)(x+y)%2/4的值是(A)。 A〕2.5B〕2.7C 8.假设有定义和语句: ints,p; s=p=5;p=s++,++p,p+2,p++;那么执行语句后p的值是〔C〕 A)9B)8C)7D)6 9.假设有定义: inta,b;那么表达式a=4,b=3,a+b+2,a++,a+b+2的值为〔C〕。 A)12B)11C)10D)无答案 10.己知intk=10,m=3,n;那么以下语句的输出结果是〔B〕。 printf〔"%d\n",n=〔k%m,k/m〕〕; A)2B)3C)4D)5 11.设x和y均为int型变量,那么以下语句: x+=y;y=x-y;x-=y;的功能是〔〕。 A)把x和y按从大到小排列B)把x和y按从小到大排列 C)无确定结果D)交换x和y中的值 答案: D 12.设inti=2,j=3,k=4,a=4,b=5,c=3;,那么执行表达式〔a=i A〕0B〕1C〕2D〕3 答案: D 13.假设x、a、b、c均为int型变量,那么执行表达式x=(a=4,b=8,c=12)后,x的值为_______。 A〕4B〕8C〕12D〕24 答案: C 14.以下程序的输出结果是_______。 #include voidmain() { inta=-1,b=4,k; k=(++a<0)&&(b+=5); printf("%d%d%d\n",k,a,b); } A〕104B〕103C〕003D〕004 答案: D 15.以下运算符中,结合方向为自左向右的是〔〕。 〔A〕? : 〔B〕,〔C〕+=〔D〕++ 答案: 〔B〕 16.以下运算符中优先级最高的是〔〕 A〕! B〕%C〕-=D〕&& 答案: 〔A〕 17.有以下程序 #include voidmain() { intm=3,n=4,x; x=-m++; x=x+8/++n; printf("%d\n",x); } 程序运行后的输出结果是〔〕。 A〕3B〕5C〕-1D〕-2 答案: D 18. 【循环构造练习题】 面有关for循环的正确描绘是() A.for循环只能用于循环次数已经确定的情况 B.for循环是先执行循环体语句,后断定表达式 C.在for循环中,不能用break语句跳出循环体 D.for循环体语句中,可以包含多条语句,但要用花括号括起来 答案: D 于for(表达式1;;表达式3)可理解为〔〕 A.for(表达式1: 1;表达式3) B.for(表达式1;1;表达式3) C.for(表达式1;表达式1;表达式3) D.for(表达式1;表达式3;表达式3) 答案: B 3.以下正确的描绘是()。 A.continue语句的作用是完毕整个循环的执行 B.只能在循环体内和switch语句体内使用break语句 C.在循环体内使用break语句或continue语句的作用一样 D.从多层循环嵌套中退出时,只能使用goto语句 答案: B 4.下面程序段不是死循环的是()。 A.intI=100;B.for(;;); while (1) {I=I%100+1; if(I>100)break;} C.intk=0;D.ints=36; do{--k;}while(s); while(k>=0);--s; 答案: C 5.以下能正确计算1*2*3*……*10的程序是()。 A.do{i=1;s=1;B.do{i=1;s=0; s=s*i;s=s*i; i++;i++; }while(i<=10);}while(i<=10); C.i=1;s=1;D.i=1;s=0; do{s=s*i;do{s=s*i; i++;i++; }while(i<=10);}while(i<=10); 答案: C 6.下面程序的运行结果是()。 #include intmain() {inty=10; do{y--;} while(--y); printf("%d\n",y--);} A.-1B.1C.8D.0 答案: D 7.下面程序的运行结果是()。 #include intmain() {intnum=0; while(num<=2) {num++; printf("%d\n",num); } } A.1B.12C.123D.1234 答案: C 8.假设运行以下程序时,从键盘输入3.62.4 #include #include voidmain() {floatx,y,z; scanf(“%f%f〞,&x,&y); z=x/y; while (1) {if(fabs(z)>1.0) {x=y;y=z;z=x/y;} else break; } printf(“%f\n〞,y); } A.1.500000B.1.600000C 答案: B 9.有以下程序: #include voidmain() { inti=0,s=0; for(;;) { if(i==3||i==5)continue; if(i==6)break; i++; s+=i; }; printf("%d\n",s); } 程序运行后的输出结果是〔〕。 A〕10B〕13C〕21D〕程序进入死循环 答案: D 10.假设有程序段: for(m=1;m<=100;m++) { scanf("%d",&y); if(y<0)continue; printf("%3d",m); } 正确的描绘是〔〕。 A〕当y<0时整个循环完毕B〕y>=0时什么也不输出 C〕printf函数永远也不执行D〕最多允许输出100个非负整数 答案: D 11.以下程序的运行结果是〔〕。 #include“stdio.h〞 voidmain() {inti=23; do{++i;} while(i); printf(“%d〞,i); } A〕23B〕24C〕死循环D〕无任何结果 答案: C 12. 二、填空题 【顺序构造程序设计】 1.有以下程序: intmain〔〕 {intm,n,p; scanf〔"m=%dn=%dp=%d",&m,&n,&p〕; printf〔"%d%d%d\n",m,n,p〕;} 假设想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,那么正确的输入是 m=123n=456p=789。 28。 intmain〔〕 {inta=2,b=3,c=4; a*=16+(b++)-(++c); printf〔"%d",a〕;} 3.以下程序段的输出结果是5。 intx=17,y=26; printf〔"%d",y/=〔x%=6〕〕; 4.以下程序的输出结果为12。 intmain〔〕 {intx=3,y=5; printf〔"%d",x=(x--〕*〔--y)〕;} 5.假设有以下程序: intmain〔〕 {chara; a=‘H’-‘A’+‘0’;(‘0’,’o’) printf〔"%c,%d\n",a,a〕;} 执行后的输出结果是7,55。 261。 voidmain〔〕 {inta=177; printf〔"%o\n",a〕;} 0(-32767~32767int)。 voidmain() {unsignedshorta=65536;intb; printf("%d\n",b=a);} 提示: 当unsignedshort和int均占2个字节时。 8.输入“12345,xyz〞,以下程序输出的结果是。 intmain() {intx;chary; scanf(“%3d%3c〞,&x,&y); printf(“%d,%c〞,x,y);} 答案: 123,4 9.以下程序的运行结果是。 #include voidmain() { inti=8,j=9,m,n; m=++i; n=j++; printf("%d,%d,%d,%d\n",i,j,m,n); } 答案: 9,10,9,9 10.以下程序的输出结果是。 #include voidmain() { inta=3,b=14,c=5; c=c+a*a+b%5*10; printf("%o\n",c); } 答案: 66 11.阅读程序,并按给定的输出格式将程序运行结果写在“运行结果: 〞之后 #include voidmain() { inta,b,c; a=(b=(c=3)*5)*5; printf("a=%d,b=%d,c=%d\n",a,b,c); } 运行结果是: 答案: 运行结果是: a=75,b=15,c=3 12. 【选择构造程序设计】 。 #include voidmain() { inta,b,c; a=1;b=2;c=3;a=b--<=a||a+b! =c; printf("%d,%d",a,b); } 答案: 1,1 。 #include voidmain() { inta,b,c; a=b=c=1; if(a++||++b)c++; printf("%d,%d,%d\n",a,b,c); } 答案: 2,1,2 。 #include voidmain() { intk,i=0,j=2; k=i++&&j++; printf("%d,%d,%d\n",i,j,k); } 答案: 1,2,0 4. 【循环构造程序设计】 1.假设运行以下程序时,从键盘输入ADescriptor↙,那么下面程序的运行结果是v0=12,v1=4,v2=12。 #include voidmain() {charc; intv0=0,v1=0,v2=0; do{ switch(c=getchar()) {case’a’: case’A’: case’e’: case’E’: case’i’: case’I’: case’o’: case’O’: case’u’: case’U’: v1+=1; default: v0+=1;v2+=1;} }while(c! =’\n’); printf(“v0=%d,v1=%d,v2=%d\n〞,v0,v1,v2); } 8,-2。 #include voidmain() {inti,b,k=0; for(i=1;i<=5;i++) {b=i%2; while(b-->=0)k++; } printf(“%d,%d〞,k,b); } 8,22。 #include voidmain() {inta,b; for(a=1,b=1;a<=100;a++) {if(b>=20)break; if(b%3==1){b+=3;continue;} b-=5; } printf(“%d,%d\n〞,a,b); } x=8。 #include voidmain() {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); } *#*#*#$。 #include voidmain() {inti; for(i=1;i<=5;i++) {if(i%2)printf(“*〞); elsecontinue; printf(“#〞); } printf(“$\n〞); } 4。 #include voidmain() { inti,j,a=0; for(i=0;i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 顺序 结构 程序设计 练习题