C语言循环习题
C程序设计(循环)习题与答案

一、单选题1、有以下程序段:int k=2;while (k=0) { printf("%d",k) ; k-- ; }则下面描述中正确的是()。
A.循环体语句一次也不执行B.while循环执行10次C.循环是无限循环D.循环体语句执行一次正确答案:A2、下面程序段执行后的输出结果是()。
int a=1,b=2,c=3,t;while (a<b<c){t=a;a=b;b=t;c--;}printf("%d,%d,%d",a,b,c);A.2,1,0B.2,1,1C.1,2,0D.1,2,1正确答案:D3、下面程序段执行后的输出结果是()。
#include <stdio.h>int main(){ int x=0,y=5,z=3;while(z-->0&&++x<5) y=y-1;printf("%d,%d,%d",x,y,z);return 0;}A.4,3,-1B.5,-2,-5C.3,2,0D. 3,2,-1正确答案:D4、下面程序的功能是从键盘输入一组字符,从中统计大写字母和小写字母的个数,选择()填入到【】中。
#include <stdio.h>int main(){ int m=0,n=0; char c;while ((【】)!='\n') {if (c>='A' && c<='Z') m++ ;if (c>='a' && c<='z') n++ ;}return 0;}A.scanf("%c",&c)B.c==getchar()C.getchar()D.c=getchar()正确答案:D5、语句while (!E){......}; 中的表达式!E等价于()。
C语言循环习题答案

循环习题集锦一.选择题1.for(i=0;i<10;i++);结束后,i的值是;(10)A 9B 10C 11D 122.下面程序的循环次数是:(D)int k=0;while(k<10){if(k<1) continue;if(k==5) break;k++;}A. 5 B 6 C 4 D 死循环,不能确定循环次数3.下面程序的输出结果是(10)main(){int s,k;for(s=1,k=2;k<5;k++)s+=k;printf(“%d\n”,s);}A 1B 9C 10D 154.要使下面程序输出10个整数,则在下画线处填入正确的数是:(c)for(i=0;i<= ;)printf(“%d\n”,i+=2);A 9B 10C 18D 205.运行下面程序:(B)main(){ int i=10,j=0;do{ j=j+i;i--;}while(i>5);printf(“%d\n”,j);}输出结果是:A 45B 40C 34D 55 6.运行下面程序#include “stdio.h”main(){ int k=0,a=1;while(k<10){for( ; ;){ if((k%10)==0)break;elsek--;}k+=11;a+=k;}printf(“%d %d\n”,k,a);}则输出的结果是(C)A 21 32B 21 33C 11 12D 10 117.以下叙述正确的是:(D)A.do---while语句构成的循环不能用其他语句构成的循环来代替。
B.do---while语句构成的循环只能用break语句退出。
C.用do---while语句构成的循环,在while 后的表达式为非零时结束循环。
D.用do---while语句构成的循环,在while后的表达式为零时结束循环。
8.有如下程序:main(){ int x=3;do{printf(“%d”,x--);}while(!x);}该程序的执行结果是:(C)A 3 2 1B 2 1 0C 3D 29.若k为整型变量,则下面while循环执行的次数为:(A)k=10;while(k==0) k=k-1;A 0B 1C 10 D无限次10.下面有关for循环的正确描述是(D)A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体。
《C语言基础》(循环)部分复习备考练习题

《C语言基础》(循环)部分复习备考练习题13C语言的for语句中的表达式可以部分或全部省略,但两个( )不可省略。
但当三个表达式均省略后,因缺少判断条件,循环会无限制地进行下去,形成死循环。
A) < B) ++ C) ; D) ,14下面有关for循环的正确描述是( )。
A) for循环只能用于循环次数已经确定的情况B) for循环是先执行循环体语句,后判定表达式C) 在for循环中,不能用break语句跳出循环体D) for循环体语句中,可以包含多条语句,但要用花括号括起来15以下程序段( )。
x=-1;do{ x=x*x;}while(!x)A) 是死循环 B) 循环执行2次 C) 循环执行一次 D) 有语法错误16如下的数组中,数组array占用的内存空间是( )个字节。
char array[]={'c','h','i','n','a'};A. 1B. 5C. 6D. 不确定17设有程序段int k=10;while(k=0) k=k-1;则下面描述正确的是( )。
A) while 循环执行10次B) 循环是无限循环C) 循环体语句一次也不执行D) 循环体语句执行一次18下列程序段的运行结果是( )int n=0;while(n++<3);printf("%d",n)A. 2B. 3C. 4D. 以上都不对19设有程序段t=0;while(printf("*"));{ t++;if (t<3) break;}下面描述正确的是( )。
A) 其中循环控制表达式与0等价B) 其中循环控制表达式与'0'等价C) 其中循环控制表达式是不合法的D) 以上说法都不对20下面程序的运行结果是( )。
#include <stdio.h>main(){ int y=10;do { y--;} while(--y);printf("%d\n",y--);}A) -1 B) 1 C) 8 D) 021以下程序段的输出结果是( ).main(){ int i=5;for ( ;i<=15; ){ i++;if (i%4==0) printf("%d ",i);else continue;}}A. 8 12 16B. 8 12C. 12 16D. 8 22以下不是无限循环的语句为( )。
C语言单元复习题 第06部份 循环

C.用do...while语句构成循环时,在while后的表达式为零时不一定结束循环
D.用do...while语句构成循环时,在while后的表达式为零时结束循环
(知识点:do...while语句; 难度系数:1; 答案:D )
10.以下关于do...while语句的叙述中,正确的是:( )。
(知识点:循环的基本概念; 难度系数:1; 答案:D )
2.以下关于循环的描述中,错误的是:( )。
A.while、do...while和for语句的循环体都可以是空语句
B.for和do...while语句都是先执行循环体,后进行循环条件判断
C.while语句是先进行循环条件判断,后执行循环体的
D.使用while和do...while语句时,循环变量初始化的操作应在循环语句之前完成
A.break语句和continue语句都只能用于循环结构
B.break语句和continue语句都只能用于switch结构
C.break语句用于跳出循环体,continue语句用于跳出当次循环
D.continue语句用于跳出循环体,break语句用于跳出当次循环
(知识点:continue语句; 难度系数:1; 答案:C )
A.x==0B.x==1C.x!=lD.x!=0
(知识点:while语句; 难度系数:1; 答案:D )
5.在C语言中,当while语句构成的循环中的条件为( )时,结束循环。
A.0B.1C.真D.非0
(知识点:while语句; 难度系数:1; 答案:A )
6.有以下程序段:
int k=0;
while(k=1) k++;
C语言循环习题答案

循环习题集锦一.选择题1.for(i=0;i<10;i++);结束后,i得值就是;(10)A 9B 10C 11D 122.下面程序得循环次数就是:(D)int k=0;while(k<10){if(k<1) continue;if(k==5) break;k++;}A、 5 B 6 C 4 D 死循环,不能确定循环次数3.下面程序得输出结果就是(10)main(){int s,k;for(s=1,k=2;k<5;k++)s+=k;printf(“%d\n”,s);}A 1B 9C 10D 154、要使下面程序输出10个整数,则在下画线处填入正确得数就是:(c)for(i=0;i<= ;)printf(“%d\n”,i+=2);A 9B 10C 18D 205、运行下面程序:(B)main(){ int i=10,j=0;do{ j=j+i;i--;}while(i>5);printf(“%d\n”,j);}输出结果就是:A 45B 40C 34D 556.运行下面程序#include “stdio、h”main(){ int k=0,a=1;while(k<10){for( ; ;){ if((k%10)==0)break;elsek--;}k+=11;a+=k;}printf(“%d %d\n”,k,a);}则输出得结果就是(C)A 21 32B 21 33C 11 12D 10 117.以下叙述正确得就是:(D)A.do---while语句构成得循环不能用其她语句构成得循环来代替。
B.do---while语句构成得循环只能用break语句退出。
C.用do---while语句构成得循环,在while 后得表达式为非零时结束循环。
D.用do---while语句构成得循环,在while后得表达式为零时结束循环。
8.有如下程序:main(){ int x=3;do{printf(“%d”,x--);}while(!x);}该程序得执行结果就是:(C)A 3 2 1B 2 1 0C 3D 29.若k为整型变量,则下面while循环执行得次数为:(A)k=10;while(k==0) k=k-1;A 0B 1C 10 D无限次10.下面有关for循环得正确描述就是(D)A.for循环只能用于循环次数已经确定得情况B.for循环就是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体。
C语言各章节单元测试题及答案——循环结构程序设计

第3章循环结构程序设计3.1 典型考试题剖析3.1.1 选择题【例1】若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c 均已赋值(c大于0)s=a;for(b=1;b<=c;b++) s=s+1;则与上述程序段功能等价的赋值语句是_______。
A)s=a+b; B)s=a+c; C)s=s+c; D)s=b+c;✧考点:本例考查for循环。
✧分析:初始赋值时s=a,那么s的值一定与a有关,C、D答案中不含a所以排除掉。
只用清楚for循环的次数,不管b以前的值为多少,第一次循环时b=1,当b>c时循环结束,那么显然s要加c次1。
所以s的值为a与c的和。
✧答案:B【例2】设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;}A) 2 B) 4 C) 6 D) 8✧考点:本例考查for循环中break和continue的用法,以及区别。
✧分析:break用在循环中,只能退出一层循环。
尤其是在嵌套循环中,只能退出它所在的那一层循环。
不能期望用break从最内层循环一下子退出最外层循环(可以用goto实现)。
continue语句只能用在循环中,它的作用是跳过其后面的语句,直接将控制转移到下一轮循环条件的测试。
语句“if(x>=10) break;”中的break只有当x>=10时,才会执行,并且跳出for循环;语句“x+=5;continue;”是每次执行完一次跳过其后面的语句,直接将控制转移到下一轮循环条件的测试for(y=1,x=1;y<=50;y++)中。
✧答案:C【例3】以下程序中,while循环的循环次数是_______。
main(){ int i=0;while(i<10){ if(i<1) continue;if(i==5) break;i++;}......}A) 1 B) 10 C) 6 D) 死循环,不能确定次数✧考点:本例考查while循环的用法,以及continue和break的分别。
C语言循环控制语句经典练习百题
D)k%11==0
5.23 下面程序的运行结果是 D 。
#include <stdio.h> main() {int y=10;
do {y--;}while(--y); printf("%d\n",y--); } A)-1 B)1 C)8 D)0
5.24 若运行以下程序时,从键盘输入 Adescriptor<CR>(<CR>表示回车),则下面程序的运行结
{if(【1】B ) printf("%ld",num); scanf("%ld",&num);
}while(【2】C ); }
【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)num>0==0 C)!num==0 D)!num!=0
A) for (表达式 1;0;表达式 3) B) for (表达式 1;1;表达式 3)
C) for (表达式 1;null;表达式 3) D)缺少一个表达式
5.28 若 i 为整型变量,则以下循环执行次数是 B 。 for (i=2;i==0;)printf("%d",i--); A)无限次 B)0 次 C)1 次 D)2 次
【2】A)c='B' B)c='A' C)c-=26
D)c=c+26
5.11 下面程序的功能是在输入一批正整数中求出最大者,输入 0 结束循环,请选择填
空
。
#include "stdio.h"
main()
{int a,max=0;
(完整版)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语言循环语句训练题
for(i=1;i<=26;++i)//printf the i line
{ if(i==26) break;
for(j=1;j<=d;j++)
printf(" ");
for(k=0;k<=26-i;++k)
printf("%c ",c-k);
printf("\n");
d+=1;
5.编程求:
6.输入r进制数字串,将其转换为十进制数输出。
7.输入r进制小数字串,将其转换为十进制小数输出
8.打印下边两个图形
9.判断n!末尾零的个数。
10.编程将文件中的C程序的注释部分去掉后写入到
另一个文件中(注释以\* *\标志)。
11.任意读入一批数据,求其最大、最小值、平均
值,并统计其中低于均值和高于均值的数的个数。
if(y>s/n) num1++;
if(y<s/n) num2++;
}
printf("%f%f",min,max);
printf("%f",s/n);
printf("%d%d",num1,num2);
}
1.守形数
#include<stdio.h>
#include<math.h>
int main()
{
int i,j,num,x,num1,ii,jj;
scanf("%d",&x);
if(x==1) printf("1");
C语言循环习题集答案解析
循环习题集锦一.选择题1.for(i=0;i<10;i++);结束后,i的值是;(10)A 9B 10C 11D 122.下面程序的循环次数是:(D)int k=0;while(k<10){if(k<1) continue;if(k==5) break;k++;}A. 5 B 6 C 4 D 死循环,不能确定循环次数3.下面程序的输出结果是(10)main(){int s,k;for(s=1,k=2;k<5;k++)s+=k;printf(“%d\n”,s);}A 1B 9C 10D 154.要使下面程序输出10个整数,则在下画线处填入正确的数是:(c)for(i=0;i<= ;)printf(“%d\n”,i+=2);A 9B 10C 18D 205.运行下面程序:(B)main(){ int i=10,j=0;do{ j=j+i;i--;}while(i>5);printf(“%d\n”,j);}输出结果是:A 45B 40C 34D 55 6.运行下面程序#include “stdio.h”main(){ int k=0,a=1;while(k<10){for( ; ;){ if((k%10)==0)break;elsek--;}k+=11;a+=k;}printf(“%d %d\n”,k,a);}则输出的结果是(C)A 21 32B 21 33C 11 12D 10 117.以下叙述正确的是:(D)A.do---while语句构成的循环不能用其他语句构成的循环来代替。
B.do---while语句构成的循环只能用break语句退出。
C.用do---while语句构成的循环,在while 后的表达式为非零时结束循环。
D.用do---while语句构成的循环,在while后的表达式为零时结束循环。
8.有如下程序:main(){ int x=3;do{printf(“%d”,x--);}while(!x);}该程序的执行结果是:(C)A 3 2 1B 2 1 0C 3D 29.若k为整型变量,则下面while循环执行的次数为:(A)k=10;while(k==0) k=k-1;A 0B 1C 10 D无限次10.下面有关for循环的正确描述是(D)A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
循环习题集锦
一. 选择题
1.for(i=0;i<10;i++);结束后,i的值是;
A 9 B 10 C 11 D 12
2.下面程序的循环次数是:
int k=0;
while(k<10)
{if(k<1) continue;
if(k==5) break;
k++;
}
A. 5 B 6 C 4 D 死循环,不能确定循环次数
3.下面程序的输出结果是()
main()
{
int s,k;
for(s=1,k=2;k<5;k++)
s+=k;
printf(“%d\n”,s);
}
A 1 B 9 C 10 D 15
4.要使下面程序输出10个整数,则在下画线处填入正确的数是:
for(i=0;i<= ;)
printf(“%d\n”,i+=2);
A 9 B 10 C 18 D 20
5.运行下面程序:
main()
{ int i=10,j=0;
do
{ j=j+i;
i--;
}while(i>5);
printf(“%d\n”,j);
}
输出结果是:
A 45 B 40 C 34 D 55
6.运行下面程序
#include “stdio.h”
main()
{ int k=0,a=1;
while(k<10)
{
for( ; ;)
{ if((k%10)==0)
break;
else
k--;
}
k+=11;
a+=k;
}
printf(“%d %d\n”,k,a);
}
则输出的结果是()
A 21 32 B 21 33 C 11 12 D 10 11
7.以下叙述正确的是:
A. do---while语句构成的循环不能用其他语句构成的循环来代替。
B. do---while语句构成的循环只能用break语句退出。
C.用do---while语句构成的循环,在while 后的表达式为非零时结
束循环。
D.用do---while语句构成的循环,在while后的表达式为零时结束
循环。
8.有如下程序:
main()
{ int x=3;
do{
printf(“%d”,x--);
}while(!x);
}
该程序的执行结果是:
A 3 2 1 B 2 1 0 C 3 D 2
9.若k为整型变量,则下面while循环执行的次数为:
k=10;
while(k==0) k=k-1;
A 0 B 1 C 10 D无限次
10.下面有关for循环的正确描述是
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判断表达式
C.在for循环中,不能用break语句跳出循环体。
D.for循环的循环体语句汇总,可以包含多条语句,但必须用花括号
括起来。
11.对for(表达式1;;表达式3)可理解为
A for(表达式1;0;表达式3)
B for(表达式1;1;表达式3)
C for(表达式1;表达式1;表达式3)
D for(表达式1表达式2;表达式3)
12.若i为整型变量,则以下循环执行的次数是()
for(i=2;i==0;)printf(“%d”,i--);
A.无限次 B 0次 C 1次 D 2次
13.以下循环体的执行次数是;
main()
{
int I,j;
for(i=0,j=3;i<=j;i+=2,j--)
printf(“%d\n”,i);
}
A 3 B 2 C 1 D 0
14.执行以下程序后,输出结果是:
main()
{ int y=10;
do { y--;}while(--y);
printf(“%d”,y--);
}
A -1 B 1 C 8 D 0
15 以下程序的输出结果是:
mian()
{ int a,b;
for(a=1,b=1;a<=100;a++)
{
if(b>=10) break;
if(b%3==1) {b+=3; continue;}
}
printf(“%d”,a);
}
A 101 B 3 C 4 D 5
二、填空题
1. 循环的3个常见语句分别是?
2. 下面程序的运行结果为:
main()
{int a=10,y=0;
do
{a+=2;y+=a;
if(y>50) break;
}while(a<14);
printf(“a=%d,y=%d\n”,a,y);
}
3.从键盘输入1 2 3 4 5 -1 回车,则下面程序运行的结果是:
main()
{ int n,k=0;
do
{ scanf(“%d”,&n);
k+=n;
}while(n!=-1);
printf(“k=%d,n=%d”,k,n);
}
4.下面程序的运行结果为:
main()
{int i,j,s=0;
for(i=1,j=5;i
printf(“\n%d”,s);
}
5.下面程序的运行结果是
main()
{
int i=10,s=0;
for(;--i;)
if(i%3==0)
s+=i;
s++;
printf(“\ns=%d”,s);
}
6.下面程序的运行结果是
main()
{int a=2,n=5,s;
s=a;
for(;--n;)
s=s*10+a;
printf(“%d”,s);
}
7.下面的程序运行时,循环体语句“a++”运行的次数为:
main()
{int i,j,a=0;
for(i=0;i<2;i++)
for(j=4,j>=0;j--)
a++;
}
8.下面的程序运行后,a的值为:
main()
{ int i,j,a=0;
for(i=0;i<2;i++) a++;
for(j=4,j>=0;j--) a++;
}
9.下面程序的运行结果为:
int i=1,s=3;
do{
s+=i++;
if(s%7==0) continue;
else ++i;
}while(s<15);
printf(“%d”,i);
10.当运行以下程序时,从键盘输入China# 回车,则下面程序的运
行结果是:
#include “stdio.h”
main()
{ int v1=0,v2=0;
char c;
while((c=getchar())!=‟#‟)
{ switch(c)
{ case „a‟:
case „h‟:
default:v1++;
case „o‟:v2++;
}
}
printf(“%d,%d\n”,v1,v2);
}
三、改错题
1. for(i-0,i<5,i++) j++;
2. while(j<10); {j++;i=j;}
3. do {j++;a=j;}while(j<10)
4. 用下面程序来实现5!
int s=1,i=1;
while(i<=5)
s*=i;
i++;
5.下面程序段实现求半径r=1到r=10的圆面积,直到面积大于100
为止。
For(r=1;r<=10;r++)
{s=3.14*r*r;
if(s>100) continue;
printf(“%f”,s);
}
四、编程题
1. 求1-2+3-4+…+99-100。
2. 任意输入10个数,分别计算输出其中的正数和负数之和。
3. 计算1---100以内的所有含6的数的和。
4
.
输出所有的3位水仙花数。所谓水仙花数是指所有位的数字的立
方之和等于该数,例如:153=13+33+5
3
5. 编写程序输出下面图形。
1
23
456
7890
6. 编写程序输出下面图形
*
***
*****
*******
*****
***
*