c语言循环结构练习
(完整版)c语言第六章循环结构程序设计(习题册答案)

第六章循环结构程序设计基础练习(A)一、选择题1、C语言中while和do-while循环的主要区别是(A)。
A) do-while的循环体至少无条件执行一次B) while的循环控制条件比do-while的循环控制条件严格C) C)do-while允许从外部转到循环体内D) do-while的循环体不能是复合语句2、以下描述中正确的是(C)。
A) 由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C) 在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作D)do-while循环中,根据情况可以省略while3、设有程序段int k=10;while(k) k=k-1;则下面描述中正确的是(A)。
A)while循环执行10次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次4、下列循环语句中有语法错误的是( D )。
A) while(x=y) 5;B) while(0) ;C) do 2;while(x==b);D) do x++ while(x==10);5、已知int i=1;执行语句while (i++<4) ;后,变量i的值为(C)。
A) 3 B) 4 C) 5 D) 66、语句while(!E);中的表达式!E等价于(A)。
A)E==0 B)E!=1 C)E!=0 D)E==17、下面程序段的运行结果是(A)。
a=1; b=2; c=2;while(a<b<c) { 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,18、下面程序的运行结果是(C)。
#include <stdio.h>main(){int num=0;while(num<=2){num++;printf(“%d\n”,nu m);}}A)1 B)1 C)1 D)12 2 23 39、以下能正确计算1×2×3×…×10的程序段是(C)。
C语言循环结构练习

5、请编程序打印出以下数列:1、1、2、3、5、8、13、…的前 40 项。每行输出 4 个数。 (斐波那 契数列)
方法一: #include<stdio.h> #include <conio.h> void main() {int i; long f1=1,f2=1,f; clrscr(); printf("%12ld%12ld",f1,f2); for(i=3;i<=40;i++) {f=f1+f2; printf("%12ld",f); if(i%4==0) printf("\n"); f1=f2;f2=f; } printf("\n");
#include <stdio.h> #include <conio.h> void main() {int i,sum;clrscr(); for(i=1,sum=0;i<=100;i++) sum+=i; printf("1+2+3+...+100=%d\n",sum); }
(2)
请输入数 n,计算 n! 。 (连乘型)
Байду номын сангаас
/*当 k 为 5 的倍数时换行,即每行输出 5 个数*/ k++; printf("%6d",i);} }
(6) 的位置。
输入任意 n 个数,输出其中最大数和最小数,并输出它们在序列中
#include<stdio.h> #include <conio.h> void main() { int i,n,max_location=1,min_location=1; float x,max,min; clrscr(); printf("input n:"); scanf("%d",&n); /*输入数的个数*/ 4
(完整版)C语言循环结构练习题集带答案解析

第5章循环结构程序设计5.1 基本知识点while语句的使用格式和注意事项do-while语句的使用格式和注意事项for语句的使用格式和注意事项break和continue语句在循环语句中的应用循环结构的嵌套使用goto语句实现循环结构穷举法程序设计方法迭代程序设计方法5.2 练习题51. 单项选择题(1)语句while (!e);中的条件!e等价于 A 。
A. e==0B. e!=1C. e!=0D. ~e(2)下面有关for循环的正确描述是 D 。
A. for循环只能用于循环次数已经确定的情况B. for循环是先执行循环体语句,后判定表达式C. 在for循环中,不能用break语句跳出循环体D. for循环体语句中,可以包含多条语句,但要用花括号括起来(3)C语言中 D 。
A. 不能使用do-while语句构成的循环B. do-while语句构成的循环必须用break语句才能退出C. do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D. do-while语句构成的循环,当while语句中的表达式值为零时结束循环(4)C语言中while和do-while循环的主要区别是 A 。
A. do-while的循环体至少无条件执行一次B. while的循环控制条件比do-while的循环控制条件严格C. do-while允许从外部转到循环体内D. do-while的循环体不能是复合语句(5)以下程序段 C 。
int x=-1;do{x=x*x;}while (!x);A. 是死循环B. 循环执行二次C. 循环执行一次D. 有语法错误(6)下列语句段中不是死循环的是__C__。
A. i=100;while (1){i=i%100+1;if (i==20) break;}B. for (i=1;;i++)sum=sum+1;C. k=0;do{++k;} while (k<=0);D. s=3379;while (s++%2+3%2)s++;(7)与以下程序段等价的是__A__。
C语言第5章循环结构

第五章循环结构程序设计一、选择题1.以下叙述正确的是。
A)do-while语句构成的循环不能用其它语句构成的循环来代替B)do-while语句构成的循环只能用break 语句退出C)用do-while语句构成的循环,在while后的表达式为非零时结束循环D)用do-while语句构成的循环,在while后的表达式为零时结束循环2.循环语句中的for语句,其一般形式如下:for(表达式1;表达式2;表达式3)语句其中表示循环条件的是。
A)表达式1 B)表达式2 C)表达式3 D)语句3.设int a,b;则执行以下语句后b的值为。
a = 1;b = 10;do{ b-=a;a++;}while (b--<0);A)9 B)–2 C)–1 D)84.执行语句:for (i=1;i++<4;); 后,变量i的值是。
A)3 B)4 C)5 D)不定值5.程序段如下int k=-20;while(k=0) k=k+1;则以下说法中正确的是。
A)while循环执行20次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次6.以下循环体的执行次数是。
int i, j;for (i=0,j=1; i<=j+1; i+=2, j--)printf (“%d\n”, i);A)3 B)2 C)1 D)07.有如下程序, 该程序段的输出结果是。
int n=9;while (n>6){ n--;printf(“%d”,n);}A)987 B)876 C)8765 D)98768.以下程序的输出结果是。
int i;for (i=1;i<6;i++){ if (i%2) { printf("#");continue;}printf("*");}A)#*#*# B)##### C)***** D)*#*#*9.以下能正确计算1×2×3×…×10的程序段是。
C 循环结构23道题[含答案解析]
![C 循环结构23道题[含答案解析]](https://img.taocdn.com/s3/m/682b712acc7931b765ce1588.png)
题目、描述、输入、输出、输入样例、输出样例、测试输入、测试输出循环01:最大数写一个程序,可以输入一批正数,输入0时结束循环,并且输出最大的正数。
输入39 28 5 63 18 27 0输出63测试:输入153 26 963 28 75 90 156 0输出963#include<iostream>using namespace std;int main(){int i,max=0;cin>>i;while(i!=0){if(i>max)max=i;cin>>i;}cout<<max<<endl;return 0;}循环02:素数输入正数n,判断n是否为素数。
若为素数则输出1,否则输出0。
(提示:素数是指只可以被1和其本身整除的正数(1除外))输入10输出0输入7输出1测试:输入9输出0#include<iostream>using namespace std;int main(){int n,i,d;cin>>n;for(i=2;i<n;i++){d=n%i;if(n%i==0)break;}if(n==i)cout<<"1"<<endl;elsecout<<"0"<<endl;return 0;}循环03:数列求和输入一个正整数n,计算前n项之和:1+1/4+1/7+1/10..+1/(3*n-2)。
输入5输出1.56978输入4输出1.49286#include<iostream>using namespace std;int main(){int i,n;double s=0;cin>>n;for(i=1;i<=n;i++)s+=1.0/(3*i-2);cout<<s<<endl;return 0;}循环04:西瓜卖几天n个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?说明:当西瓜个数为奇数时,卖一半为一半的整数,如当西瓜个数为5时,卖一半为卖2个。
C语言循环结构练习题带答案.doc

第 5 章循环结构程序设计练习题1.单项选择题( 1)语句 while (!e);中的条件!e等价于A。
A. e==0B. e!=1C. e!=0D. ~e( 2)下面有关for循环的正确描述是D。
A. for循环只能用于循环次数已经确定的情况B. for循环是先执行循环体语句,后判定表达式C. 在 for循环中,不能用break 语句跳出循环体D. for循环体语句中,可以包含多条语句,但要用花括号括起来(3)C语言中D。
A.不能使用do-while语句构成的循环B. do-while 语句构成的循环必须用break 语句才能退出C. do-while 语句构成的循环,当while 语句中的表达式值为非零时结束循环D. do-while 语句构成的循环,当while 语句中的表达式值为零时结束循环( 4) C 语言中 while 和 do-while 循环的主要区别是A 。
A. do-while的循环体至少无条件执行一次B. while的循环控制条件比do-while的循环控制条件严格C. do-while允许从外部转到循环体内D. do-while的循环体不能是复合语句( 5)以下程序段C。
int x=-1;do{x=x*x;}while (!x);A.是死循环B. 循环执行二次C. 循环执行一次D. 有语法错误( 6)下列语句段中不是死循环的是__C__。
A.i=100;while (1){i=i%100+1;if (i==20) break;}B.for (i=1;;i++)sum=sum+1;C.k=0;do{++k;} while (k<=0);D.s=3379;while (s++%2+3%2)s++;( 7)与以下程序段等价的是__A__。
while (a){if (b) continue;c;}A.while (a)B.while (c){ if (!b) c; }{ if (!b) break; c; }C. while (c)D. while (a){ if (b) c; }{ if (b) break; c; }( 8)以下程序的输出结果是_B___。
循环结构练习题

第4章循环结构(一)、是非题1. C语言中,do-while语句构成的循环只能用break语句退出。
A.对B.错2.在循环外的语句不受循环的控制,在循环内的语句也不受循环的控制。
A.对B.错3.从语法角度看,for(表达式1;表达式2;表达式3)语句中的3个表达式均可省略。
A.对B.错4.for、while和do while循环结构的循环体均为紧接其后的第一个语句(含复合语句)。
A.对B.错5.由i=-1;while(i<10) i+=2;i++;可知,此while循环的循环体执行次数为6次。
A.对B.错6.循环for( ; ; )的循环条件始终为真。
A.对B.错7.do…while语句的循环体至少执行1次,while和for循环的循环体可能一次也不执行。
A.对B.错8.break;语句执行时退出本层循环,continue;语句结束本次循环。
A.对B.错9.for循环、while循环和do while循环结构之间可以相互转化。
A.对B.错10.break;语句执行时退出到包含该break;语句的所有循环外。
A.对B.错11.二重循环for(i=0;i<5;i+=2) for(j=0;j<5;j++)的循环体的执行次数为15。
A.对B.错12.执行i=-1; while(i<10) i+=2;i++; 后,i的值为11。
A.对B.错13.int i=1;while(1) i++; 则在任何条件下,该循环语句都会执行无穷多次A.对B.错14.while和do…while的功能完全相同。
A.对B.错15.while后的表达式只能是逻辑或关系表达式。
A.对B.错16.语句while(E);中的表达式E等价于E!=0。
A.对B.错17.只能在循环体内和switch语句体内使用break语句。
A.对B.错18.程序段 int k=10; while(k=0)k=k-1; 中,while循环执行10次。
C语言第四份练习题(循环结构)

一、选择题1. 设有如下程序段,则下面描述正确的是int k=10;while (k=0) k=k-1;A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次2. 下面程序段的运行结果是a=1; b=2; c=2;while(a<b<c) { t=a; a=b; b=t; c--;}pirntf(“%d, %d, %d”,a,b,c);A.1,2,0 B.2,1,0 C.1,2,1 D.2,1,13. 下面程序段的运行结果是。
int n=0;while(n<=2) n++; printf(“%d”,n);A.2 B.3 C.4 D.有语法错误4. 设有如下程序段,则描述正确的是。
t=0;while (printf(“*”)){t++; if(t<3) break;}A.其中循环控制表达式与0等价B.其中循环控制表达式与‘0’等价C.其中循环控制表达式是不合法的D.以上说法都不对5. 下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对等数时结束循环,请选择填空。
#include<stdio.h>int main(){int a,b,t;scanf("%d%d",&a,&b);while( ){if(a>b) {t=a;a=b;b=t;}printf("%d,%d\n",a,b);scanf("%d%d",&a,&b);}return 0;}A.!a=b B.a!=b C.a==b D.a=b6. 下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请选择填空。
#include<stdio.h>int main(){int m=0,n=0;char c;while(( )!='\n'){if(c>='a' && c<='z') n++;if(c>='A' && c<='Z') m++;}printf("%d\n",m<n? );return 0;}A.c= =getchar( ) B.getchar( ) C.c=getchar( ) D.scanf(“%c”,c)A.n:m B.m:n C.m:m D.n:n7. 下面程序的功能是将小写字母变成对应大写字母后的第二个字母。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2015-2016(2)循环结构练习题一、单选题(共40题,共100分)1. 以下正确的描述是()(2分)语句的作用是结束整个循环的执行B.只能在循环体内和switch语句体内使用break语句C.在循环体内使用break语句或continue语句的作用相同D.从多层循环嵌套中退出时,只能使用goto语句标准答案:B\考生答案:2. 下面的关键字中,不能够从循环体中跳出循环体外的是()(2分)标准答案:D考生答案:3. 以下叙述中错误的是()(2分)A.语句标号是由合法的标识符后面加一个冒号构成语句的作用是把程序的执行转向语句标号所在的位置语句必须与语句标号在同一个函数内D.结构化程序设计主张使用goto语句,使用goto语句的程序可读性强#标准答案:D考生答案:4. 有以下程序段,while 循环执行的次数是()int k=0;while(k=1)k++; (2分)A.无限次B.有语法错,不能执行C.一次也不执行D.执行1次标准答案:A考生答案:5. 运行以下程序的结果为()·main(){int num=0;while (num<=2){num++;printf("%d",num);}} (2分)标准答案:B>考生答案:6. 下述程序的输出结果是()。
main(){ int Y=100;while(Y--);printf("y=%d",Y);(2分)=0 =1 =随机值 =-1标准答案:D;考生答案:7. 执行下面的程序后的输出结果为()int x,y,z;x=20,y=40,z=15;while(y>x)x+=4,y-=4;z/=2;printf("%d,%d,%d",x,y,z); (2分),36,30 ,8,7 ,28,7 ,28,标准答案:C?考生答案:8. 以下程序段的输出结果是()int x=0,y=5,z=3;while(z-->0&&++x<5) y=y-1;printf("%d,%d,%d\n",x,y,z); (2分),2,0 ,2,-1 ,3,-1 ,-2,-5标准答案:B考生答案:9. 下述语句执行后,变量k的值是()int k=1;~while(k++<10); (2分)D.此为无限循环,值不定标准答案:B考生答案:10. 下面程序的运行结果是()。
main(){ int c1=2, c2=0;while(!c2--)printf("%d,%d", c1--, c2);,} (2分),-1 B.不输出任何内容,-1 ,0标准答案:C考生答案:11. 运行以下程序后,如果从键盘上输入china#main( ) { int v1=0,v2=0;while((ch=getchar())!='#')switch(ch);{case 'a':case 'h':default: v1++;case '0': v2++;}printf("%d,%d\n",v1,v2);(2分),0 ,0 ,5 ,5标准答案:C'考生答案:12. main( ){int p[7]={11,13,14,15,16,17,18}, i=0,k=0;while(i<7&&p[i]%3) {k =k+ p[i]; i++;}printf("%d\n", k);}*执行后输出结果是()(2分)标准答案:C考生答案:13. 有以下程序段: int x=3; do { printf("%d",x-=2);} while(!(--x)); 其输出结果是( ) (2分)D.死循环标准答案:C考生答案:14. 以下叙述正确的是( ) (2分)语句构成的循环不能用其它语句构成的循环来代替。
?语句构成的循环只能用break语句退出。
C.用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D.用do-while语句构成的循环,在while后的表达式为零时结束循环标准答案:D考生答案:15. 以下程序段的输出是()int x=7,y=5,z=1;do{if(!(z%x))(if(!(z%y))}while(z!=0); (2分)标准答案:B考生答案:16. 有以下程序段:int x=23;do%{ printf("%d",x--);}while(!x);其输出结果是( ) (2分)C.不输出任何内容D.死循环标准答案:B考生答案:17. 有以下程序段:int s=0,a=1,n;scanf("%d",&n);—do{s+=1;a=a-2;}while(a!=n);printf("%d\n",s);若要使程序的输出值为2,则应该从键盘给n输入的值是( ) (2分)标准答案:B考生答案:、18. 有以下程序段:int i=0,s=0;do{if(i%2){i++;continue;}i++;s+=i;}while(i<7);printf("%d\n",s);其输出结果是( ) (2分)~标准答案:A考生答案:19. 下列程序段的输出结果是()int i,n=0;for(i=2;i<5;i++){if(i%3)continue;、n++;}while(!i);n++;}printf("n=%d\n",n); (2分)=5 =2 =3 =4标准答案:D考生答案:20. 在C语言的循环语句for,while,do-while语句中,用于直接中断最内层循环的语句是() (2分)、标准答案:C考生答案:21. 执行以下语句后sum的值为 ( )int i=10;sum=0;do{sum+=i; i++;}while(i<10); (2分)标准答案:D考生答案:,22. 以下程序段满足什么条件时循环会结束:int n=0,p;do{scanf("%d",&p);n++;}while(p!=12345&&n<3); (2分)的值不等于12345并且n的值小于3的值等于12345并且n的值大于等于3的值不等于12345或者n的值小于3【的值等于12345或者n的值大于等于3标准答案:D考生答案:23. 设j为int型变量,则下面for循环语句的执行结果是()for(j=10;j>3;j--){ if(j%3) j--;--j;--j;printf("%d ",j);} (3分)3 4 2 3!考生答案:24. 以下程序的输出结果是( )main(){ int i,s=0;for (i=1;i<10;i+=2) s+=i+1;printf("%d\n",s);} (3分)A.自然数1到9的累加和B.自然数1到10的累加和C.自然数1到9中奇数之和D.自然数1到10中偶数之和!标准答案:D考生答案:25. 以下程序的输出结果是( )main(){int i;for(i='A';i<'I';i++,i++)printf("%c",i+32);printf("\n");} (3分)A.编译不通过,无输出%标准答案:B考生答案:26. 下述for语句,假定运行时输入的值不是876int i,x;for(i=0,x=1;i<=9&&x!=876;i++)scanf("%d",&x); (3分)A.循环10次B.循环9次C.无限循环D.一次也不循环标准答案:A考生答案:$27. 以下程序段的输出结果是()#include ""main(){int k=4,n;for(n=0;n<k;n++){if(n%3!=0)continue;k--;}【printf("%d,%d",n,k);(3分),1 ,2 ,3 ,4标准答案:C考生答案:main(){ int i,sum;for(i=1;i<6;i++) sum+=i;printf("%d\n",sum);)} (3分)C.不确定标准答案:C考生答案:29. 以下程序的输出结果是()main(){int i=0,s=0;for(;;){{if(i==3||i==5)continue;if(i==6) break;i++;s+=i;}printf("%d\n",s);} (3分)D.程序进入死循环标准答案:D、考生答案:30. 下面程序段的输出结果是()int a=1,b;for(b=1;b<=10;b++){if(a>=8) break;if(a%2==1){a+=5;continue;}a-=3;}printf("%d\n",b); (3分);标准答案:B考生答案:31. 下列程序的输出结果是( ) main( ){int i, j, m=0, n=0;for(i=0; i<2; i++)for(j=0; j<2; j++)if(j>=i) m=1; n++;printf("%d\n",n);(3分)标准答案:D考生答案:32. 下列程序段的输出结果是()int k=0,m=0;int i,j;for(i=0;i<2;i++){&for(j=0;j<3;j++)k++;k-=j;}m=i+j;printf("k=%d,m=%d",k,m); (3分)=0,m=3 =0,m=5 =1,m=3 =1,m=5 标准答案:B考生答案:33. 以下程序的输出结果是】main(){ int i,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);} (3分)=4 =8 =6 =12标准答案:B考生答案:34. 以下循环体的执行次数是( )main(){ int i,j;for(i=0,j=1;i<=j+1;i+=2,j--)printf("%d \n",i);} (3分):标准答案:C考生答案:35. 以下程序段的输出结果为()for(i=1;i<=50;i++){x=i;if(x%2==0){¥x++;if(x%3==0){x++;if(x%7==0){ x++;printf("%d ",i);}}}} (3分)~标准答案:D考生答案:36. 以下程序段不是死循环的是()(5分)i=100;while(1){i=i%100+1;if(i>100) break;}(;;) ;;k=0;do{++k;}while(k<10);s=36;while(s);--s;标准答案:C考生答案:37. 以下程序的输出结果是( )main()~{ int i;for(i=1;i<6;i++){ if(i%2){printf("#");continue;}printf("*");}} (3分)A.#*#*#B.#####C.*****D.*#*#* 标准答案:A考生答案:main(){ int a,b;for(a=1,b=1;a<=100;a++){if(b>=10) break;if (b%3==1){b+=3;continue;}}printf("%d\n",a);(3分)标准答案:D考生答案:39. 设x和y均为int型变量,则执行以下的循环后,y值为 ( ) for(y=1,x=1;y<=50;y++){if(x==10)break;if (x%2==1){x+=5;continue;}x-=3;} (3分)标准答案:C考生答案:40. 下面程序段的输出结果为()int i,s;s=0;for(i=1;i<101;i++){s+=i;if(s>5) break;}printf("s=%d\n",s); (3分)标准答案:B考生答案:。