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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言考试题.docx

1、C语言考试题循环控制 试题一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。) 6.1 对表达式for(表达式1; ;表达式3)可理解为 A)for(表达式1;0;表达式3) B)for(表达式1;1;表达式3) C)for(表达式1;表达式1;表达式3) D)for(表达式1;表达式3;表达式3) 6.2 在下列选项中,没有构成死循环的是 A)int i=100; while(1) i=i+1; if(i100)break; B)for(;); C)int k=10000; dok+;while(k10000); D)int

2、s=36; while(s)-s; 6.3 下面有关for循环的正确描述是 A)for循环只能用于循环次数已经确定的情况 B)for循环是先执行循环体语句,后判断表达式 C)在for循环中,不能用break语句跳出循环体 D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 6.4 若int i,j;,则for(i=j=0;i10&j8;b=+k) printf(%d,%d,a- -,- -b); printf(n); A)10,10,10,0, B)10,9,9,0, C)10,10,9,1, D)9,9,9,1, 6.6 有一堆零件(100到200之间),如果分成4个零件一

3、组的若干组,则多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-5)%9=0 6.7 下列程序的输出结果是 #include stdio.h main() int i,a=0,b=0; for(i=1;i10;i+) if(i%2= =0) a+; continue; b+; pri

4、ntf(a=%d,b=%d,a,b); A)a=4,b=4 B)a=4,b=5 C)a=5,b=4 D)a=5,b=5 6.8 阅读下列程序,则执行结果是 #include stdio.h main() int a=0,b=0,c=0,i; for(i=0;i2;m- -) k=0; for(n=m;n1;n- -) k=k+m*n; printf(%fn,k); A)5.000000 B)15.000000 C)25.000000 D)35.000000 6.10 下面程序的运行结果是(代码有错误) #include stdio.h main() int j,i,k=0; for(j=50;

5、j=j-1) printf(%d,j); k+; A)5359 B)5953 C)3595 D)9535 6.11 已知 int t=0; while(t=1) . 则以下叙述正确的是 A)循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法 D)以上说法都不对 6.12 设有以下程序段 int x=0,s=0; while(!x!=0)s+=+x; printf(%d,s); 则 A)运行程序段后输出0 B)运行程序段后输出1 C)程序段中的控制表达式是非法的 D)程序段执行无限次 6.13 下列程序的输出结果是 #include stdio.h main() int

6、 i=6; while(i- -) printf(%d,- -i); printf(n); A)531 B)420 C)654321 D)死循环 6.14 对下,两个语句描述正确的是 .while(1).for(;) A)都是无限循环 B)是无限循环,错误 C)循环一次,错误 D)以上答案都错 6.15 以下程序段的描述,正确的是 x=-1; do x=x*x; while(!x); A)是死循环 B)循环执行两次 C)循环执行一次 D)有语法错误 6.16 若有如下语句 int x=3; do printf(%dn,x-=2);while(!(- -x); 则上面程序段 A)输出的是1 B)

7、输出的是1和-2 C)输出的是3和0 D)是死循环 6.17 下面程序的运行结果是 #include main() int a=1,b=10; do b-=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 6.18 若运行以下程序时,从键盘输入 ADescriptor(表示回车),则下面程序的运行结果是#include main() char c; int v0=1,v1=0,v2=0; doswitch(c=getchar() case a:case A: case e

8、: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=%dn,v0,v1,v2); A)v0=7,v1=4,v2=7 B)v0=8,v1=4,v2=8 C)v0=11,v1=4,v2=11 D)v0=13,v1=4,v2=12 6.20 C语言中 while 和do-while循环的主要区别是 A)do-while的循环体至少无条件执行一次 B)while的循环控制条件比do-while的循环控制条件更严格 C)do-

9、while允许从外部转到循环体内 D)do-while 的循环体不能是复合语句 6.21 下列说法中错误的是 A)只能在循环体内使用break语句 B)在循环体内使用break语句可以使流程跳出本层循环体,从而提前结束本层循环 C)在while和dowhile循环中,continue语句并没有使整个循环终止 D)continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环判断 二、填空题(请将每一个空的正确答案写在答题卡相应序号后。) 6.22 设i,j,k均为int型变量,则执行完下面的for语句后,k的值为【1】。10for(i=0, j=10; i=j;

10、 i+, j- -) k=i+j; 6.23 下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请填空。 (x%2!=0)main() int i, x, y=1; scanf(%d, &x); for(i=2; i0; y- -) if (y%3= =0) printf(%d, - -y); continue; 6.25 阅读下面程序段,则执行后的输出结果为 【4】 。2 , 7,12#include stdio.h main() int a=1; for(;a=15;) if(+a%5!=2) continue; else printf(%d,a); printf(

11、n); 6.26 阅读下面语句,则执行后的输出结果为 【5】 (代码有错误)#include stdio.h main() char a,b; for(a=0,b=9;aprintf(%c%c,a,b); printf(n); 6.27 阅读下面程序,则执行后程序的结果为 【6】 15 ,16#include stdio.h main() int a=0,b=0; while(a15)a+; while(b+15); printf(%d,%dn,a,b); 三、编程题(来自于经典C语言编程100例 )【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?程

12、序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。#include stdio.hmain() int i , j , k; for(i=1;i5;i+) /三层循环嵌套, for(j=1;j5;j+) for(k=1;k5;k+) if(i!=j & i!=k & j!=k) /三个位上的数都不重复则输出 printf(%d%d%dt,i,j,k); return 0;【程序4】题目:输入某年某月某日,判断这一天是这一年的第几天?程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考

13、虑多加一天。#include stdio.h main() int day,month,year,sum; do /判断用户的输入是否有误 printf(请输入年月日); scanf(%d%d%d,&year,&month,&day); if(month12) printf(输入的月份有误,请重新输入!n); if(year=0) printf(输入的年份有误,请重新输入!n); if(day31) printf(输入的日期有误,请重新输入!n); while(year=0 | month12 | day31); switch(month) /计算各月份的天数 case 1: sum=0 ;

14、break; case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break; case 11:sum=304;break; case 12:sum=334;break; default:printf(data error);break; sum=sum+day; /加上某

15、天 if(year%400=0|(year%4=0 & year%100!=0) /判断是不是闰年 if( month2) /如果是闰年则判断月份是否大于2 sum+; printf(%d年%d月%d日是那一年的第%d天!n,year,month,day,sum);【程序5】题目:输入三个整数x,y,z,请把这三个数由小到大输出。程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果xy则将x与y的值进行交换,然后再用x与z进行比较,如果xz则将x与z的值进行交换,这样能使x最小。#include int main() int x,y,z,temp; printf(请输入三个数:);

16、 scanf(%d%d%d,&x,&y,&z); if(xy) /如果xy,把x和y对调 temp = x; x = y; y = temp; if(xz) /如果xz,把x和z对调,始终保持x最小 temp = x; x = z; z = temp; if(yz) /如果yz,把y和z对调, temp = x; x = z; z = temp; printf(%d %d %dn,x,y,z);【程序8】题目:输出9*9口诀。程序分析:分行与列考虑,共9行9列,i控制行,j控制列。#include int main() for(int i = 1 ; i = 9 ; i+) for(int j

17、 = 1 ; j = i ; j+) printf(%dx%d=%dt,j,i,i*j); printf(n); 【程序12】题目:判断101-200之间有多少个素数,并输出所有素数。程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 #include #include int main() printf(101-200之间的素数有:); for(int i = 101 ; i = 200 ; i+) int s = (int)sqrt(i); for(int j = 2 ;j = s ; j+) if(i%2 = 0) break; if(j=s) printf(%dt,i); printf(n); return 0;【程序20】题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?#include main() float s=100.0,h=s/2; int n; for(n=2;n=10;n+) s=s+2*h; /共进过的米数 h=h/2; /反弹的高度 printf(第十次落地时经过的米数 %fn,s); printf(第十次反弹的高度为:%fn,h);

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

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