循环章节练习题目.docx
- 文档编号:12895329
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:25
- 大小:20.82KB
循环章节练习题目.docx
《循环章节练习题目.docx》由会员分享,可在线阅读,更多相关《循环章节练习题目.docx(25页珍藏版)》请在冰豆网上搜索。
循环章节练习题目
要交的上机作业:
(1)实验手册:
P26第3、9题;
(2)实验手册:
P32第2、4、6、7题
(3)课本后布置的编程题目
自己复习的练习题目包括以下内容
选择复习题
一、选择题
1.程序段如下,则以下说法中正确的是【】。
intk=20;
while(k=0)k=k+1;
A)while循环执行20次B)循环是无限循环
C)循环体语句一次也不执行D)循环体语句执行一次
2.程序段如下,则程序的执行结果是【】。
intk=0;
while(k++<=2);printf(”last=%d\n”,k);
A)2B)3
C)4D)无结果
3.在C语言中,用于直接中断最内层循环的语句是【】。
A)switchB)continue
C)breakD)if
4.若i,j已定义为int型,则以下程序段中循环体总的执行次数是【】(假定在循环体内不改变i,j的值)。
for(i=5;i;i--)
for(j=0;j<4;j++)
{……}
A)20B)24
C)25D)30
5.下面的循环结构中,哪一个不是无限循环【】。
A)for(i=1;;i++)printf("%d",i--);
B)i=1;while(i--){printf("%d",i++);}
C)i=1;do{printf("%d",i);i++;}while(--i);
D)for(i=1;i;i++)printf("%d",i);
6.设有程序段intk=10;while(k=0)k=k-1;则下面描述正确的是【】。
A)while循环执行10次B)循环是无限循环
C)循环体语句一次也不执行D)循环体语句执行一次
7.下列程序段不能实现阶乘8!
(结果存放在p中)的是【】。
A)p=1;for(i=1;i<9;i++)p=p*i;
B)p=2;for(i=8;i>3;i--)p=p*i;
C)p=1;i=1;while(i<9)p=p*i++;
D)p=1;i=8;do{p=p*i--;}while(i>1)
8.语句”while(!
e){……}”中的表达式!
e等价于【】。
A)e==0B)e!
=1
C)e!
=0D)e==1
9.下面程序段的运行结果是【】。
inta=1,b=2,c=2,t;
while(a
printf("\n%d,%d,%d",a,b,c);
A)1,2,0B)2,1,0C)1,2,1D)2,1,1
10.对for(表达式1;;表达式3)可以理解为【】。
A)for(表达式1;0;表达式3)
B)for(表达式1;1;表达式3)
C)for(表达式1;表达式1;表达式3)
D)for(表达式1;表达式3;表达式3)
11.下面有关for循环的正确描述是【】。
A)for循环只能用于循环次数已经确定的情况
B)for循环中是先执行循环体语句,后判断表达式
C)在for循环中,不能用break语句跳出循环
D)for循环的循环体可以包含多条语句,但必须用花括号括起来
12.执行语句for(i=1;i++<4;);之后,变量i的值为【】。
A)3B)4
C)5D)不确定
13.若x是int型变量,且有下面的程序片段:
for(x=3;x<6;x++)
printf((x%2)?
("**%d"):
("##%d\n"),x);
上面程序片段的输出结果是【】。
A)**3B)##3
**4##5**5
C)**3##4D)##3**4
**5**5
14.若运行以下程序时,从键盘输入2437<回车>,则以下程序段的输出结果是【】。
voidmain()
{
intc;
while((c=getchar())!
='\n')
{
switch(c-'2')
{
case0:
case1:
putchar(c+4);
case2:
putchar(c+4);break;
case3:
putchar(c+3);
default:
putchar(c+2);break;
}
}
printf("\n");
}
A)668779B)6879
C)2437D)087967
读程序训练
1.读程序,写结果
voidmain()
{
intj,n,s=1;
scanf("%d",&n);
for(j=0;j s=s*n; printf("“%d",s); } 程序实现的功能是什么? 2.#include main() {intm,n,sign,t; scanf("%d%d",&m,&n); while(m*n) {if(m>=0&&n>=0||m<=0&&n<=0)sign=0; elsesign=1; m=m>0? m: -m; n=n>0? n: -n; t=0; while(n--)t+=m; printf("\nTheresultis: "); if(sign)printf("-"); printf("%d\n",t); scanf("%d%d",&m,&n); } }_ 3.循环执行多少次? for(x=0,y=1;x! =123&&y<10;y=y+2); 4.程序实现了什么功能? #include main() {intn=0,sum=0; while(n<10) {n++; if(n==(n/2)*2) continue; sum=sum+n; } printf("sum=%d\n",sum); } 5.读程序,写结果 #include"stdio.h" voidmain() {intj=0,num; do {if(++j>9)break; num=j*10+2; if(num%3)continue; printf("%d",num); }while (1); }_ 6.读程序,写结果 #include main() {intn,i,j; scanf("%d",&n); for(i=0;i {for(j=0;j for(j=0;j<2*i+1;j++)printf("*"); printf("\n"); } }_ 7.读程序,程序实现了什么功能? main() {intn=0,posn=0,negn=0,a; printf("Inputintegers: \n"); while(n<20) {scanf("%d",&a); if(a==0)break; if(a>0)posn++; elsenegn++; } printf("posn=%d,negn=%d\n",posn,negn); } 8.读程序,写出程序实现的功能 voidmain() { longn=1,an=1,longs=0; while(s<2000000) { an=an*n; s=s+an; n++; } printf(“%ld%ld”,s,n); } 9.读程序,写出程序实现的功能。 main() { longa=1,b=1;inti; for(i=1;i<=20;i++) { printf("%16ld%16ld",a,b); if(i%2==0)printf("\n"); a=b+a; b=a+b; } } 改错题目: 1. 打印一个如下的九九乘法表的一部分: 1*1=1 2*1=22*2=4 3*1=33*2=63*3=9 4*1=44*2=84*3=124*4=16 程序中有两处错误,错误都在提示行: /***********found***********/的下面一行,请考生注意。 请改正程序中的错误,使它能得出正确的结果。 注意: 程序中的其它地方请考生不要随意改动,不得增行 或删行,也不得更改程序的结构! #include #include #include #include main() {inti,j,k; clrscr(); for(i=1;i<=4;i++) /************found************/ {for(j=1;j<=4;j++) printf("%3d*%3d=%3d",i,j,i*j); /************found************/ printf("n"); } } 2.学习优良奖的条件如下: 所考5门课的总成绩在450分(含)以上;或 者每门课都在88分(含)以上。 输入某学生5门课的考试成绩,输出 是否够学习优良奖的条件。 程序中有两处错误,错误都在提示行: /***********found***********/的下面一行,请考生注意。 请改正程序中的错误,使它能得出正确的结果。 注意: 程序中的其它地方请考生不要随意改动,不得增行 或删行,也不得更改程序的结构! #include #include #include #include main() {intscore,sum=0; inti,n=0; clrscr(); for(i=1;i<=5;i++) {scanf("%d",&score); sum+=score; /************found************/ n++; } /************found************/ if(sum>=450&&n==5) printf("Thestudentisverygood! \n"); else printf("Thestudentisnotverygood! \n"); } 3.输出100~200之间既不能被3整除也不能被7整除的整数并统计这些 整数的个数,要求每行输出8个数。 程序中有两处错误,错误都在提示行: /***********found***********/的下面一行,请考生注意。 请改正程序中的错误,使它能得出正确的结果。 注意: 程序中的其它地方请考生不要随意改动,不得增行 或删行,也不得更改程序的结构! #include #include #include #include main() {inti; /************found************/ intn; clrscr(); for(i=100;i<=200;i++) { /************found************/ if(i%3==0&&i%7==0) {if(n%8==0)printf("\n"); printf("%6d",i); n++; } } printf("\nNumbersare: %d\n",n); } 4.打印输出以下图形 * *** ***** ******* ********* 程序中有两处错误,错误都在提示行: /***********found***********/的下面一行,请考生注意。 请改正程序中的错误,使它能得出正确的结果。 注意: 程序中的其它地方请考生不要随意改动,不得增行 或删行,也不得更改程序的结构! #include #include #include #include main() {inti,j; clrscr(); for(i=1;i<=5;i++) /************found************/ {printf('\n'); for(j=1;j<=10-i;j++) printf(""); /************found************/ for(j=1;j<=2*i+1;j++) printf("*"); } printf("\n"); } 5. 20 求∑n! (即求: 1! +2! +3! +……+20! ) n=1 程序中有两处错误,错误都在提示行: /***********found***********/的下面一行,请考生注意。 请改正程序中的错误,使它能得出正确的结果。 注意: 程序中的其它地方请考生不要随意改动,不得增行 或删行,也不得更改程序的结构! #include #include #include #include main() /*************found**************/ {longints,t; intn; s=0;t=1; clrscr(); /*************found**************/ for(n=1;n<20;n++) {t=t*(n+1); s=s+t; } printf("1! +2! +3! +…+20! =%e\n",s); } 6. 输入一个百分制成绩,打印出五级记分成绩。 考试成绩在90分或90分以 上为优秀,80~89分为良好,70~79为中等,60~69为及格,低于60分 为不及格。 程序中有两处错误,错误都在提示行: /***********found***********/的下面一行,请考生注意。 请改正程序中的错误,使它能得出正确的结果。 注意: 程序中的其它地方请考生不要随意改动,不得增行 或删行,也不得更改程序的结构! #include #include #include #include main() {intscore,t; clrscr(); printf("Pleaseenterascore: "); do scanf("%d",&score); while(score<0||score>100); t=score/10; /*************found**************/ switch(score) {case10: case9: printf("Excellent! \n");break; case8: printf("Good! \n");break; case7: printf("Middle! \n");break; case6: printf("Pass! \n");break; /*************found**************/ else: printf("Fail! \n"); } } 填空题目 1.计算正整数num的各位上的数字之积。 例如,若输入: 252,则输出应该是: 20。 若输入: 202,则输出应该是: 0。 程序有两个空 (1)、 (2)需要补充完整。 并将程序调试出 所需的结果。 注意: 不要随意改动程序,不得增行或删行,也不得更 改程序的结构! #include #include main() {longintnum,k; /************found************/ _____ (1)_______ clrscr(); printf("\Pleaseenteranumber: "); scanf("%ld",&num); do {k*=num%10; /************found************/ _____ (2)______ }while(num); printf("\n%ld\n",k); } 2、计算1到100之间的奇数之和及偶数之和。 请填空。 程序有两个空 (1)、 (2)需要补充完整。 请将程序调试出 所需的结果。 注意: 不要随意改动程序,不得增行或删行,也不得更 改程序的结构! #include main() {inta,b,c,i; clrscr(); /**************found************/ ___ (1)___; for(i=0;i<=100;i+=2) {a+=i; /**************found************/ ___ (2)___; c+=b;} printf("sumofevensis%d\n",a); printf("sumofoddsis%d\n",c-101); } 3.从键盘上输入两个正整数x,y,求它们的最大公约数。 例如: 如果从键盘上输入24,36,程序的输出应为: maxis: 12。 程序有两个空 (1)、 (2)需要补充完整。 请将程序中的 ____ (1)____和____ (2)____删除后,在相应的位置填入正确 答案并调试直到得到正确结果为止。 注意: 不要随意改动程序,不得增行或删行,也不得更 改程序的结构! #include #include #include main() {intx,y,t,i; clrscr(); printf("Pleaseentertwonumbers: "); scanf("%d,%d",&x,&y); if(x {t=x;x=y;y=t;} t=x%y; while(t) {x=y; /************found************/ ____ (1)____; t=x%y; } /************found************/ printf("maxis: %d",____ (2)____); } 编程题目 1. 按下面的公式求s的近似值: 11111 s=1+——+——+——+——+……+———— 2*23*34*45*510*10 部分源程序存在文件PROG1.C中,请将运算结果存入变量s中,结果保留 2位小数。 请在/*******begin********/与/********end*********/ 之间填入你编写的若干语句,存盘并运行,直到得出正确结果。 如果需要定 义变量,可在前面添加,请勿改动其它位置的任何内容。 注意: main()函数中的最后一行以及main()函数后面的内容,考 生不必阅读,但千万不要对这些内容作任何改动。 #include"stdio.h" #include"math.h" #include"stdlib.h" main() {doubles; inti; /***********begin***********/ /************end************/ printf("s=%.2f\n",s); } 2.在考生目录下,要求程序PROG1.C的功能是: 将一个4位的整数m拆开,然后按相反顺序输出,每输出一位数其后留 2个空格。 例如,如果m=1234,则程序的输出结果应为: m=1234,4321。 部分源程序存在文件PROG1.C中。 请在/*******begin********/与/********end*********/ 之间填入你编写的若干语句,存盘并运行,直到得出正确结果。 请勿 改动其它位置的任何内容。 注意: main()函数中的最后一行以及main()函数后面的内容,考 生不必阅读,但千万不要对这些内容作任何改动。 #include"stdio.h" #include"math.h" #include"conio.h" #include"stdlib.h" main() {intm=1234,a,b,c,d,i; /***********begin***********/ /************end************/ printf("m=%d,%d%d%d%d\n",m,a,b,c,d); } 3. 判断m是否为素数。 如果m为素数使变量f的值为1,否则使变量f值为0。 部分源程序存在文件PROG1.C中。 请在/*******begin********/与/********end*********/ 之间填入你编写的若干语句,存盘并运行,直到得出正确结果。 请勿 改动其它位置的任何内容。 注意: main()函数中的最后一行以及main()函数后面的内容,考 生不必阅读,但千万不要对这些内容作任何改动。 () #include"stdio.h" #include"math.h" #include"conio.h" #include"stdlib.h" main() {intm=123,f=1,i; /***********begin***********/ /************end************/ if(f)printf("%disaprime\n",m); elseprintf("%disnotaprime\n",m); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环 章节 练习 题目