ImageVerifierCode 换一换
格式:DOCX , 页数:49 ,大小:31.95KB ,
资源ID:25168051      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25168051.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(最新C语言习题与答案1资料.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

最新C语言习题与答案1资料.docx

1、最新C语言习题与答案1资料5.1选择题【题5.1】设有程序段int k=10;while(k=0) k=k-1;则下面描述中正确的是 。A)while循环执行10次 B)循环是无限循环C)循环体语句一次也不执行 D)循环体语句执行一次【题5.2】设有以下程序段int x=0,s=0;while(!x!=0) s+=+x;printf(%d,s);则 。A)运行程序段后输出0 B)运行程序段后输出1C)循环的控制表达式不正确 D)程序段执行无限次【题5.3】语句while(!E);中的!E等价于 。A)E= =0 B)E!=1 C)E!=0 D)E= =1【题5.4】下面程序段的运行结果是 。a

2、=1;b=2;c=2;while(abc)t=a;a=b;b=t;c-;printf(%d,%d,%d,a,b,c);A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,1【题5.5】下面程序段的运行结果是 。x=y=0;while(x15)y+,x+=+y;printf(%d,%d,y,x);A)20,7 B)6,12 C)20,8 D)8,20【题5.6】下面程序段的运行结果是 。int n=0;while(n+=2);printf(%d,n);A)2 B)3 C)4 D)语法错误【题5.7】设有程序段t=0;while(printf(*)t+;if(t3) break;下面描述正

3、确的是 。A)其中循环控制表达式与0等价 B)其中循环控制表达式与0等价C)其中循环控制表达式是不合法的 D)以上说法都不对【题5.8】下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,请选择填空。#include main()int a,b,t;scanf(%d%d,&a,&b);while( )if (ab) t=a;a=b;b=t;printf(%d,%dn,a,b);scanf(%d%d,&a,&b);A)!a=b B)a!=b C)a=b D)a=b【题5.9】下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m,

4、n中的较大者#include main() int m=0,n=0;char c;while ((【1】)!=n) if(c=A&c=a&c=z) n+;printf(%d,m=a&cZ)【2】;printf(%c,c);【1】A)c+=2 B)c-=32 C)c=c+32+2 D)c-=30【2】A)c=B B)c=A C)c-=26 D)c=c+26【题5.11】下面程序的功能是在输入一批正整数中求出最大者,输入0结束循环,请选择填空 。#include stdio.hmain()int a,max=0;scanf(%d,&a);while ( )if (maxa) max=a; scan

5、f(%d,&a);printf(%d,max);A)a= =0 B)a C)a= =1 D)!a 【题5.12 】下面程序的运行结果是 。#include main()int num=0;while(num=2)num+;printf(%dn,num);A)1 B)1 C)1 D)1 2 2 2 3 3 4【题5.13】若运行以下程序时,从键盘输入2473(表示回车),则下面程序的运行结果是 。#include stdio.hint c; while (c=getchar()!=n) switch (c-2) case 0: case 1: putchar(c+4); case 2:putch

6、ar(c+4);break; case 3:putchar(c+3); default:putchar(c+2);break;printf(n);A)668977 B)668966 C)66778777 D)6688766【题5.14】以下程序的功能是计算一个整数的各位数字之和,请选择填空。 int n,m=1; scanf(“%d”,&n); for( ;n!=0;) m【】; n/=10; printf(“%d”,m); A) +=n%10 B) =n%10 C) +=n D) =n/10【题5.15】以下能正确计算10!的程序段是 。A)do i=1;s=1; B)doi=1;s=0;s

7、=s*i; s=s*i;i+; i+;while(i=10); while(i=10);C)i=1;s=1; D)i=1;s=0; dos=s*i; dos=s*i; i+; i+; while(i=10); while(i=10);【题5.16 】以下程序段 。x=-1;do x=x*x; while(!x);A)是死循环 B)循环执行两次C)循环执行一次 D)有语法错误【题5.17】以下描述中正确的是 。A)while,do-while,for循环中的循环体语句都至少被执行一次B)do-while循环中,在while(表达式)后面的分号可以省略C) while循环体中,一定要有能使whil

8、e后面表达式的值变为零(假)的操作D)do-while循环中,根据情况可以省略while。【题5.18】若有语句如下,则程序段的输出是 。int x=3;do printf(%d,x-=2);while(!(-x);A)1 B)1和-2 C)3和0 D)死循环【题5.19】下面程序的功能是计算正整数2345的各位数字平方和。#include stdio.hmain()int n,sum=0;n=2345;do sum=sum+【1】; n=【2】; while(n);printf(sum=%d,sum);【1】A)n%10 B)(n%10)*(n%10) C)n/10 D)(n/10)*(n/

9、10) 【2】A)n/1000 B)b/100 C)n/10 D)n%10【题5.20】下面程序是从键盘输入学号,然后输出学号中百位数是3的学号,输入0时结束循环。请选择填空。#include main()long int num;scanf(%ld,&num);doif(【1】) printf(%ld,num); scanf(%ld,&num);while(【2】);【1】A)num%100/10=3 B)num/100%10=3 C)num%10/10=3 D)num/10%10=3【2】A)!num B)num0=0 C)!num=0 D)!num!=0【题5.21】等比数列的第一项a=

10、1,公比q=2,下面程序的功能是求满足前n项和小于100的最大n,请选择填空。#include main()int a,q,n,sum;a=1;q=2;n=sum=0;do【1】;+n;a*=q;while(sum100);【2】;printf(%dn,n);【1】A)sum+ B)sum+=a C)sum*=a D)a+=sum【2】A)n=n-2 B)n=n C)n+ D)n-=1【题5.22】下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除。请选择填空。#include main() int i=0,j,k;doi+;k=316-13*i;while( );j

11、=k/11;printf(316=13*%d+11*%d,i,j);A)k/11 B)k%11 C)k/11=0 D)k/11=0【题5.23】下面程序的运行结果是 。#include main() int y=10; do y-;while(-y); printf(%dn,y-);A)-1 B)1 C)8 D)0【题5.24】若运行以下程序时,从键盘输入,则下面程序的运行结果是 。#include main() char c;int v1=0,v2=0;do switch(c=getchar()case a: v1+=1; case t:case T:v2+=1; default: v1+=

12、1;v2+=1; while(c!=n);printf(v1=%d,v2=%dn,v1,v2);A) v1=3,v2=4 B) v1=4,v2=4C) v1=6,v2=8 D) v1=7,v2=9【题5.25】下面程序的运行结果是 。#include main()int a=1,b=10;dob-=a;a+;while(b-0);printf(a=%d,b=%dn,a,b);A)a=3,b=11 B)a=2,b=8 C)a=1,b=-1 D)a=4,b=9【题5.26】下面有关for循环的正确描述是 。A)for循环只能用于循环次数已经确定的情况B)for循环是先执行循环体语句,后判断表达式C

13、)在for循环中,不能用break语句跳出循环体D)for循环的循环体可以包括多条语句,但必须用花括号括起来【题5.27】对for(表达式1; ;表达式3)可理解为 。A) for (表达式1;0;表达式3) B) for (表达式1;1;表达式3)C) for (表达式1; 表达式1;表达式3) D) for (表达式1; 表达式3;表达式3) 【题5.28】若i为整型变量,则以下循环执行次数是 。for (i=2;i= =0;)printf(%d,i-);A)无限次 B)0次 C)1次 D)2次【题5.29】以下for循环的执行次数是 。for(x=0,y=0;(y=123)&(x+y;x

14、=i+) i=x;B)for(;x+=i);C)while(1)x+;D)for(i=10;i-) sum+=i;【题5.31】下面程序段的运行结果是 。for(y=1;y10;)y=(x=3*y,x+1),x-1);printf(x=%d,y=%d,x,y);A)x=27,y=27 B)x=12,y=13 C)x=15,y=14 D)x=y=27【题5.32】下面程序段的运行结果是 。for(x=3;x100)break; B) for(;);C) int k=0;do+k;while(k=0);D) int s=36;while(s);-s;【题5.34】执行语句for(i=1;i+4;)

15、;后变量的值为 。A)3 B)4 C)5 D)不定【题5.35】有一堆零件(100到200之间),如果分成4个零件一组则多出2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多出5个零件。下面程序是求这堆零件总数,请选择填空。#include main() int i;for(i=100;i200;i+) if(i-2)%4=0) if(!(i-3)%7) if(【】) printf(%d,i);A)i%9=5 B)i%9!=5 C)(i-5)%9!=0 D)i%9=5【题5.36】下面程序的功能是计算150中是7的倍数的数值之和,请选择填空。#includemain()int

16、 i,sum=0;for(i=1;i=50;i+) if( 【1】 )sum+=i;printf(%d,sum);A)(int)(i/7)= =i/7 B)(int)i/7=i/7 C)i%7!=0 D)i%7= =0【题5.37】下面程序的功能是计算110之间的奇数之和和偶数之和。请选择填空。#includemain() int a,b,c,i;a=c=0;for(i=0;i=10;i+=2) a+=i; 【1】; c+=b; printf(偶数之和=%dn,a);printf(奇数之和=%dn, 【2】 );【1】A)b=i- B)b=i+1 C)b=i+ D)b=i-1【2】A)c-10

17、 B)c C)c-11 D)c-b【题5.38】下面程序的运行结果是 。#includemain() int i;for(i=1;i=5;i+) switch(i%5) case 0:printf(*);break; case 1:printf(#);break; default:printf(n);break; case 2:printf(&); A)#&* B)#& C)# D)#& & & &* & * &*【题5.39】下面程序的运行结果是 。#includemain() int x,i;for(i=1;i=100;i+) x=i;if(+x%2=0) if(+x%3=0) if(+x

18、%7=0) printf(%3d,x); A) 39 81 B)42 84 C)26 68 D)28 70【题5.40】下面程序段的功能是计算1000!的末尾含有多少个零。请选择填空。(提示:只要计算出1000!中含有因子5的个数即可)for(k=0,i=5;i=1000;i+=5) m=i; while( )k+;m=m/5;A)m%5=0 B)m=m%5=0 C)m%5=0 D)m%!=0【题5.41】下面程序的功能是求算式xyz+yzz=532中x,y,z的值(其中xyz和yzz分别表示一个三位数),请选择填空。#includemain() int x,y,z,i,result=532;

19、for(x=1;x10;x+) for(y=1;y10;y+) for(【1】;z10;z+) i=100*x+10*y+z+100*y+10*z+z; if(【2】)printf(x=%d,y=%d,z=%dn,x,y,z); 【1】A)z=x B)z=1 C)z=0 D)z=y【2】A)i/result=1 B)i=result C)i!=result D)i=result【题5.42】下面程序是对输出一个正整数等差数列的前十项,此数列前四项之和及积分别是26和880,请选择填空。#includemain() int a,d,i,s,f,x;for (a=1;a=6;a+) for(d=1

20、;【1】;d+) s=0;f=1;x=a; for(i=1;i=4;i+) s=s+x; f=f*x; x=x+d; if(s=26&f=880) for(i=0;i10;i+) printf(%3d, 【2】 ; printf(“n”);【1】A)d=a B)空 C)d=5 D)da【2】a+i*d B)i*d C)a+(i+1)*d D)a+d【题5.43】下面程序的运行结果是 。#includemain() int i,b,k=0;for(i=1;i=0) k+; printf(%d,%d,k,b);A)3,-1 B)8,-1 C)3,0 D)8,-2【题5.44】以下正确的描述是 。A

21、)continue语句的作用是结束整个循环的执行。B)只能在循环体内和switch语句体内使用break语句。C)在循环体内使用break语句或continue语句的作用相同。D)从多层循环嵌套中退出时,只能使用goto语句。【题5.45】下面程序段 。for(t=1;t=100;t+) scanf(%d,&x); if(x0)continue; printf(%3d,t); A)当x=0时什么也不输出C)printf函数永远也不执行 D)最多允许输出100个非负整数【题5.46】下面程序段【 】 x=3; do y=x-; if(!y) printf(“x”); continue; prin

22、tf (“#”); while (1=x=2);A) 将属出B) 将输出*C) 是死循环D) 含有不合发的控制表达式【题5.47】以下是死循环的程序段是【 】A) for (i=1; ; ) if (+i%2= =0) continue; if ( +i%3= =0) break;B) i=32767;do if (i0) break; while(+i);C) for (i=1; ; ) if(+i10) continue;D) i=1;while (i-);【题5.48】以下描述正确的是【 】A) goto语句只能用于退出多层循环B) switch语句中不能出现continue语句C) 只

23、能用continue语句来终止本次循环 D) 在循环中break语句不能独立出现【题5.49】与下面程序段等价的是【 】 for(n=100;n=200;n+) if(n%3= =0) continue; printf(“%4d”,n); A) for(n=100; (n%3&n=200;n+) printf(“%4d”,n);B) for (n=100;(n%3) | | n=200;n+) printf(“%4d”,n);C) for (n=100;n=200;n+) if(n%3!=0) printf(“%4d”,n);D) for(n=100;n=200;n+) if(n%3) pri

24、ntf(“%4d”,n); else continue; break;【题5.50】下面程序的功能是将从键盘输入的偶数写成两个素数之和。请选择填空【】 include #include main() int a,b,c,d; scanf (“%4d”,&a); for (b=3;b=a/2;b+=2) for(c=2;csqrt(b) d=【】; else break; for(c=2;csqrt(d) printf (“%d=%d+%dn”,a,b,d); A) a+bB) a-bC) a*bD) a/b【题5.51】下面程序的运行结果是【 】 include main() int k=0;

25、char c=A; do switch(c+) case A: k+;break; caseB: k-; caseC: k+=2;break; caseD: k=k%2;continue; caseE: k=k*10;break; default: k=k/3; k+; while(cG); pintf(“k=%dn”,k); A) k=3B) k=4C) k=2D) k=0【题5.52】若运行以下程序时,从键盘输入3.6 2.4 ,则下面程序的运行结果是【】 include #include main() float x,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(“%fn”,y); A) 1.500000 B) 1.600000 C) 2.000000 D) 2.400000【题5.53】下面程序的运行结果是【 】 include main() int a,b; for

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1