C语言程序设计习题答案.docx
- 文档编号:9072214
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:21
- 大小:25.86KB
C语言程序设计习题答案.docx
《C语言程序设计习题答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计习题答案.docx(21页珍藏版)》请在冰豆网上搜索。
C语言程序设计习题答案
习题2参考答案
一、基础题
1.若二维数组a有m列,则在a[i][j]前的元素个数为:
A)j*m+iB)i*m+j
C)i*m+j-1D)i*m+j+1
B
2.在C语言中(以16位PC机为例),五种基本数据类型存储空间长度的排列顺序是:
A)char B)char=int C)char D)char=int=longint<=float A 3.在C语言的变量类型说明中,int,char,float等类型的长度是: A)固定的B)由用户自己定义的 C)任意的D)与机器字长有关的 D 4.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f的数据类型是: A)int型B)float型C)double型D)不确定 C 5.C语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符: A)必须为字母B)必须为下划线 C)必须为字母或下划线D)可以是字母,数字或下划线中的任意一种 C 6.设a=1,b=2,c=3,d=4,则表达式a c d的值是: A)4B)3C)2D)1 D 7.以下程序的输出结果是: main() {inta=12,b=12; printf("%d,%d\n",--a,++b); } A)10,10B)12,12C)11,10D)11,13 D 8.若有代数式(3ae)/(bc),则下面不正确的C语言表达式是: A)a/b/c*e*3B)3*a*e/b/cC)3*a*e/b*cD)a*e/c/b*3 C 9.已知x=43,ch='A',y=0,则表达式(x>=y&&ch<'B'&&! y)的值是: A)0B)语法错C)1D)"假" C 10.下面程序的输出结果是: main() {inta=-1,b=4,k; k=(a++<=0)&&(! (b--<=0)); printf("%d,%d,%d\n",k,a,b); } A)1,1,2B)1,0,3C)0,1,2D)0,0,3 B 11.已知字母A的ASCII码为十进制的65,下面程序的输出是: main() {charch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A)67,DB)B,CC)C,DD)不确定的值 A 12.下面程序的输出的是 main() {intx=10,y=3; printf("%d\n",y=x/y); } A)0B)1C)3D)不确定的值 C 二、程序设计题 1.从键盘上输入一个小写字母,编程输出其对应的大写字母以及它们的十进制ASCII码。 程序如下: #include<> voidmain() { charch; printf("Pleaseinputalowercharacter: "); ch=getchar(); printf("Loweris%c,ASCIIis%d\n",ch,ch); printf("Upperis%c,ASCIIis%d\n",ch-32,ch-32); } 2.一个水分子的质量约为×10-23g,1夸脱水大约950g。 编写一个程序,要求输入水的夸脱数,然后显示这么多水中包含多少水分子。 程序如下: #include<> voidmain() { doubleq,m; printf("Pleaseinputthequalityofwater(quart): "); scanf("%lf",&q); m=q*; printf("Themoleculusof%fquartwateris%e\n",q,m); } 3.写出下列程序的运行结果: #include<> voidmain() { charc1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’; printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3); printf(“\t\b%c%c\n”,c4,c5); } 运行结果: aabbccabc AN 4.若a=3,b=4,c=5,x=,y=,z=,u=51274,n=128765,c1='a',c2='b'。 写出程序,使之输出下面的结果。 a=3b=4c=5 x=,y=,z= x+y=y+z=z+x= u=51274n=127865 c1=‘a’orc1=97 c2=‘b’orc2=98 程序如下: #include<> voidmain() { inta=3,b=4,c=5; doublex=,y=,z=; unsignedintu=51274,n=128765; charc1='a',c2='b'; printf("a=%db=%dc=%d\n",a,b,c); printf("x=%f,y=%f,z=%f\n",x,y,z); printf("x+y=%y+z=%z+x=%\n",x+y,y+z,z+x); printf("u=%un=%u\n",u,n); printf("c1='%c'orc1=%d\n",c1,c1); printf("c2='%c'orc2=%d\n",c2,c2); } 5.用下面的scanf函数输入数据,使a=3,b=7,x=,y=,c1='A',c2='a'。 说明在键盘上如何输入数据。 #include<> voidmain() { inta,b; floatx,y; charc1,c2; scanf(“a=%db=%d”,&a,&b); scanf(“x=%fy=%e”,&x,&y); scanf(“c1=%c,c2=%c”,&c1,&c2); } 输入数据: a=3b=7x=y==A,c2=a<回车> 验证程序: #include<> voidmain() { inta,b; floatx,y; charc1,c2; scanf("a=%db=%d",&a,&b); scanf("x=%fy=%e",&x,&y); scanf("c1=%c,c2=%c",&c1,&c2); printf("a=%db=%d\n",a,b); printf("x=%.2fy=%.2f\n",x,y); printf("c1=%c,c2=%c\n",c1,c2); } 6.编写程序,输入一个华氏温度,求出相应的摄氏温度(输出结果保留两位有效数字)。 公式为: 程序如下: #include<> voidmain() { floatf,c; printf("Pleaseinputf="); scanf("%f",&f); c=9*(f-32); printf("f=%,c=%\n",f,c); } 习题3 一、基础题 1.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为0的表达式是 A)'a'&&'b'B)a<=b C)a||b+c&&b-cD)! ((a c||1) D 2.设x.y.z.t均为int型变量,则执行以下语句后,t的值为 x=y=z=1; t=++x||++y&&++z; A)不定值B)4C)1D)0 C 3.若运行下面程序时,给变量a输入15,则输出结果是()。 main() {inta,b; scanf("%d",&a); b=a>15a+10: a-10; printf("%d\n",b); } A)5B)25C)15D)10 A 4.下面程序的输出结果是 #include<> main() {inta=2,b=7,c=5; switch(a>0) {case1: switch(b<0) {case1: printf("@");break; case0: printf("! ");break; } case0: switch(c==5) {case0: printf("*");break; case1: printf("#");break; default: printf("%%");break; } default: printf("&"); }printf("\n"); } A)&B)! #&C)%%D)@*& B 5.以下程序的运行结果是()。 main() {inta=0,b=1,c=0,d=20,x; if(a)d=d-10; elseif(! b) if(! c)x=15; elsex=25; printf("%d\n",d); } A)15B)25C)20D)10 C 6.若k是int型变量,且有下面的程序片段: k=8; if(k<=0) if(k==0)printf("####") elseprintf("&&&&"); elseprintf("****"); 上面程序片段的输出结果是 A)####B)&&&&C)****D)有语法错误,无输出结果 D(第一个printf语句少分号) 7.假定所有变量均已正确说明,下列程序段运行后x的值是 a=b=c=0;x=35; if(! a)x--; elseif(b); if(c)x=3; elsex=4; A)34B)4C)35D)3 B 8.若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是 for(i=5;i;i--) for(j=0;j<4;j++){...} A)20B)25C)24D)30 A 9.设i,j,k均为int型变量,则执行完下面的for循环后,k的值为 for(i=0,j=10;i<=j;i++,j--)k=i+j; A)12B)10C)11D)9 B 10.有以下程序段 intk=0; while(k=1)k++; while循环执行的次数是 A)无限次B)有语法错,不能执行C)一次也不执行D)执行一次 A 11.C语言中while和do-while循环的主要区别是()。 A)do-while的循环体至少无条件执行一次 B)while的循环控制条件比do-while的循环控制条件严格 C)do-while允许从外部转到循环体内 D)do-while的循环体不能是复合语句 A 12.以下叙述正确的是()。 A)continue语句的作用是结束整个循环的执行 B)只能在循环体内和switch语句体内使用break语句 C)在循环体内使用break语句或continue语句的作用相同 D)从多层循环嵌套中退出时,只能使用goto语句 B 13.对下面程序段,描述正确的是()。 for(t=1;t<=100;t++) {scanf("%d",&x); if(x<0)continue; printf("%d\n",t); } A)当x<0时,整个循环结束B)当x>=0时,什么也不输出 C)printf函数永远也不执行D)最多允许输出100个非负整数 D 14.以下程序的输出结果是()。 #include<> main() {inti; for(i=1;i<=5;i++) if(i%2) printf("*"); elsecontinue; printf("#"); printf("$\n"); } A)***#$B)#*#*#*$C)*#*#*#$D)**#*$ A 15.以下程序的输出结果是()。 #include<> main() {intcount,i=0; for(count=1;count<=4;count++) {i+=2;printf("%d",i);} } A)20B)246C)2468D)2222 C 16.下面程序的输出结果是()。 main() {unsignedintnum,k; num=26;k=1; do{ k*=num%10; num/=10; }while(num); printf("%d\n",k); } A)2B)12C)60D)18 B 17.下面程序的输出结果是()。 main() {intx=10,y=10,i; for(i=0;x>8;y=++i) printf("%d%d",x--,y); } A)10192B)9876C)10990D)101091 D 18.设有以下程序 main() {intn1,n2; scanf("%d",&n2); while(n2! =0) {n1=n2%10; n2=n2/10; printf("%d",n1); } } 程序运行后,如果从键盘上输入1298,则输出结果为(8921)。 8921 19.下面程序的运行结果是()。 main() {ints=0,i=1; while(s<=10) {s=s+i*i; i++; } printf("%d",--i); } A)4B)3C)5D)6 B 20.以下程序运行后的输出结果是()。 #include<> main() {ints=0,k; for(k=7;k>=0;k--) {switch(k) { case1: case4: case7: s++;break; case2: case3: case6: break; case0: case5: s+=2;break;} } printf("s=%d\n",s); } A)s=5B)s=1C)s=3D)s=7 D 21.下面程序的功能是: 计算1到10之间奇数之和及偶数之和,请填空。 #include<> main() {inta,b,c,i; a=c=0; for(i=0;i<=10;i+=2) {a+=i; ______; c+=b; } printf("偶数之和=%d\n",a); printf("奇数之和=%d\n",c-11); } A)i+=2B)i++C)b=b+1D)b=i+1 D 22.运行以下程序后,如果从键盘上输入12,8<回车>,则输出结果为()。 main() {inta,b,n1,n2,t; scanf("%d,%d",&n1,&n2); if(n1>n2) {t=n1;n1=n2;n2=t;} a=n1;b=n2; while(b! =0) {t=a%b; a=b; b=t;} printf("%d,%d\n",a,n1*n2/a); } A)2,6B)4,24C)4,12D)8,96 B 二、程序设计题 1.输入一个实数x,计算并输出下式的值,直到最后一项的绝对值小于10-5(保留两位小数)。 程序如下: #include<> #include<> main() { floatx; intn=1; floats=,term; printf("Pleaseinputthex: "); scanf("%f",&x); term=*x/n; while(fabs(term)>10e-5) { s=s+term; n=n+1; term=term*x/n; } printf("Theresultis: %.2f\n",s); } 2.输入园的半径r,求该圆的周长、面积。 结果保留两位小数。 程序如下: #include<> voidmain() { floatpi=,s,c,r; printf("请输入圆的半径: "); scanf("%f",&r); s=pi*r*r; c=2*pi*r; printf("圆的面积为: %f,周长为: %f\n",s,c); } 3.有一分数序列,求出这个数列前20项之和。 程序如下: #include<> voidmain() { inti,n=20; doubles=0,a,b,c; for(a=2,b=1,s=0,i=1;i<=n;i++){ s+=a/b; c=b,b=a,a=a+c;..=%d\n",sn); } 7.编写一程序,功能是输入一个整数,将它反向输出。 例如,输入12345,则输出54321。 程序如下: #include<> voidmain() { intx; printf("inputx: "); scanf("%d",&x); while(x>0){ printf("%d",x%10); x=x/10; } } 8.编程解决数学题: 有一长阶梯,若每步跨2阶,最后剩1阶;若每步跨3阶,最后剩2阶;若每步跨5阶,最后剩4阶;若每步跨6阶,最后剩5阶;只有每步跨7阶,最后才正好1阶不剩。 问这条阶梯共有多少阶 程序如下: #include<> voidmain() { intStep=0; while (1) { if((Step%2==1)&&(Step%3==2)&&(Step%5==4)&&(Step%6==5)&&(Step%7==0))break; Step++; } printf("TheStepis%d\n",Step); } 9.编程解决三色球问题。 若一个口袋中放有12个球,其中3个红色球,3个白色球,6个黑色球,从中任取8个球,问共有多少种不同的颜色搭配 程序如下: #include<> main() { intwhite,red,black,count=0; for(white=1;white<=3;white++) for(red=1;red<=3;red++) { black=8-white-red; if(black<=6){ count=count+1; printf("white\t%d\tred\t%d\tblack\t%d\n",white,red,black); } } printf("Thetotalis%d\n",count); } 10.一位百万富翁遇到一位陌生人,陌生人找他谈一个换钱计划: 我每天给您10万元,而您第1天只需要给我1分钱,第2天我仍然给您10万元,您只需要给我2分钱,第3天我仍然给您10万元,您只需要给我4分钱……您每天给我的钱是前一天的2倍,直到30天后,计划终止。 请编写一个程序,如果按计划执行,计算30天后富翁给了陌生人多少钱,陌生人给了富翁多少钱。 程序如下: #include<> main() { intn; doublet=,MillionairePay=,StrangerPay=; for(n=1;n<=30;n++) { StrangerPay=StrangerPay+; MillionairePay=MillionairePay+t; t=t*2; } printf("Millionairepay: %.2lf\n",MillionairePay); printf("Strangerpay: %.2lf\n",StrangerPay); printf("Strangergain: %.2lf\n",MillionairePay-StrangerPay); } 11.编程: 输入整数n,输出n的所有质因子。 例如n=13860,则输出: 2,2,3,3,5,7,11。 程序如下: #include<> voidmain() { inti,n,k,flag=0; printf("Pleaseinputn="); scanf("%d",&n); do { flag=0; for(i=2;i<=n;i++) { if(n%i==0){flag=1;k=i;break;} } if(flag==1) { printf("%d\n",k); n=n/k; } }while(n! =1); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 习题 答案