C语言循环习题答案

合集下载

C语言逻辑推理例题(附答案)

C语言逻辑推理例题(附答案)

C语言逻辑推理例题(多重循环)例1明明找不到铅笔盒了,妈妈对他说:“我把铅笔盒放到三个抽屉中的一个抽屉里了,每个抽屉上都写了一句话。

不过,其中只有一句话是真的。

”明明看到的三句话是:左边抽屉:“铅笔盒不在这里”;中间抽屉:“铅笔盒不在这里”;右边抽屉:“铅笔盒在左边的抽屉”;例2甲、乙、丙、丁四人参加一次数学竞赛。

赛后,他们四人预测名次的谈话如下: 甲说:“丙得第一,我第三名”;乙说:“我第一名,丁第四名”丙说:“丁第二名,我第三名”丁没说话。

当最后结果公布时发现,甲乙丙都只说对了一半,请给出正确的四人名次。

例3一位法官在审理一起盗窃案时,对涉及到的四名嫌疑犯A、B、C、D进行了审问。

四人分别供述如下:A:“罪犯在B、C、D三人之中。

”B:“我没有作案,是C偷的。

”C:“在A和D中间有一个是罪犯。

”D:“B说的是事实”经过充分的调查,证实四人中只有两人说了真话,并且罪犯只有一个。

请确定真正的罪犯。

参考答案:(1)#include<stdio.h>#include<stdlib.h>main(){short a,b,c,d,l1,l2,l3,l4;for(a=0;a<=1;a++)for(b=0;b<=1;b++)for(c=0;c<=1;c++)for(d=0;d<=1;d++){ l1=(b+c+d==1);l2=(!b&&c);l3=(a+d==1);l4=l2;if(l1+l2+l3+l4==2&&a+b+c+d==1)printf("%d,%d,%d,%d\n",a,b,c,d);}system(“pause”);}参考答案:(2)#include<stdio.h>#include<stdlib.h>main(){short a,b,c,d,j,t;for(j=0;j<=15;j++){ a=(j&8)>>3;b=(j&4)>>2;c=(j&2)>>1;d=j&1;t=(b+c+d==1)+(!b&&c)+(a+d==1)+(!b&&c);if(t==2&&a+b+c+d==1)printf("%d,%d,%d,%d\n",a,b,c,d);}system("pause");}习题1、小狗、小兔、小猫、小猴和小鹿参加百米赛跑,比赛结束后,小猴说:“我比小猫跑得快。

C语言习题 循环1

C语言习题 循环1

循环1一、单项选择题1、以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是__A____。

A. if((a>b)&&(b>c)) k=1;B. if((a>b)||(b>c)) k=1else k=0; else k=0;C. if(a<=b) k=0;D. if(a>b) k=1;else if(b<=c) k=1; else if(b>c) k=1;else k=0;2、C语言的do_while循环中,循环由do开始,用while结束;而且在while表达式后面的___B___不能丢,它表示do_while循环的结束。

A. \nB. “;”C. “%”D. “,”3、执行程序段:x=-1; do { x=x*x;} while(!x); 的结果是__C____。

A. 死循环B. 循环执行2次C. 循环执行一次D. 有语法错误4、下面程序段的输出结果是__D____。

int i,sum;for(i=1;i<=10;i++)sum+=sum;printf("%d\n",i);A. 10B. 9C. 15D.不确定5、以下叙述正确的是___C___。

A. for循环中设置for(条件)break,当条件成立时中止程序执行。

B. for循环中设置for(条件)continue,当条件成立时中止本层循环。

C. for循环中设置for(条件)break,当条件成立时中止本层循环。

D. for循环中设置for(条件)break,当条件成立时暂停本次循环。

6、下面有关for循环的正确描述是__D____。

A. for循环只能用于循环次数已经确定的情况。

B. for循环是先执行循环体语句,后判断表达式。

C. 在for循环中,不能用break语句跳出循环体。

D. for循环的循环体语句中,可以包含多条语句。

c语言循环章节练习题(部分答案)

c语言循环章节练习题(部分答案)

循环章节练习题一、选择题1.设有程序段int k=10;while (k=0) k=k-1;则下面描述中正确的是_______.A. while循环执行10次。

B.循环是无限循环。

C.循环体语句一次也不执行。

D.循环体语句执行一次。

2.设有以下程序段:int x=0,s=0;while(!x!=0) s+=++x;printf(“%d”,s);则________。

A. 运行程序段后输出0。

B. 运行程序段后输出1。

C.程序段中的控制表达式是非法的。

D.程序段执行无限次。

3.下面程序段的运行结果是________。

x=y=0;while(x<15) {y++;x+=++y;}printf(“%d,%d”,y,x);A.20,7 B. 6,12C. 20,8D. 8,203.下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n 中的较大者,请选择填空。

#incldue <stdio.h>main(){ int m=0,n=0;char c;while( (___1____)!=’\n’){ if(c>=’A’&&’Z’) m++;if(c>=’a’&&’z’) n++;}printf(“%d\n”,m<n?___2____);}1)A.c=getchar() B.getchar()C.c=getcharD.scanf(“%c”,c);2)A. n:m B. m:n C. m:m D. n:n4.下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,请选择填空。

#include <stdio.h> main(){ int a,max=0;scanf(“%d”,&a);while(_______){ if(max<a) max=a;scanf(“%d”,&a);}printf(“%d”,max); }A.a==0B.aC.!a=1D. !a5.下面程序的运行结果是______。

广技师C语言复习题4. 练习(循环结构)(有答案)

广技师C语言复习题4. 练习(循环结构)(有答案)

一、选择题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,1 3. 下面程序段的运行结果是。

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=b8. 下面程序的功能是在输入的一系列正整数中求出最大者,输入0结束循环,请选择填空。

#include<stdio.h>int main(){int a,max=0;scanf("%d",&a);while( ){if(max<a) max=a;scanf("%d",&a);}printf("%d\n",max);return 0;}A.!a=0 B.a!=0 C.a= =0 D.a=09. 下面程序的运行结果是。

循环程序设计习题与答案

循环程序设计习题与答案

循环程序设计习题与答案模块三循环程序设计习题及答案一、填空题1、当在数据处理中要重复执行相同的操作时,宜采用程序结构来实现。

2、循环的 3 要素是、、。

3、在循环语句体中包含另一个循环语句的用法称为。

4、执行循环语句体中的break 语句后将使用包含它的循环语句。

5 、要结束当前正在执行循环体语句而直接进入下一循环周期,需要执行语句。

6、在for 语句中表达式允许省略,但不能少,语句for( ; ;) ;构成的是循环。

7、在for 语句中,省略表达式 2 时,则循环为循环。

8、执行语句for(i=1;i++<4; );后变量i 的值是。

9、要使用循环程序提前结束本次循环周期并开始下一个循环周期,应在循环体内有条件使用语句。

10、在每次循环周期均要执行一次的语句,称为。

11、for 语句括号内的3 个表达式的作用分别是、和循环控制变量的更新。

二、选择题1、若k 为整形变量,则while 循环共循环()。

k=5;while(k>=0) k-1;A、无限循环B、6 次C、5 次D、4 次2、与while( ! n) ; 中表达式!dn 等价的是()。

A、dn>=0 B 、dn!=0C、dn == 0D、dn != 13、以下程序段,while 循环执行的次数是()int k=0;while( k == 1) k++;A、无限次B、有语法错,不能执行C、一次也不执行D、执行 1 次4、在C语言中,当do while 语句中的条件为()时,结束该循环。

A、0B、1C、TRUED、非05、下面程序段的输出结果是()do{ b-=a;a++;}while(b--<0);A、10,-1B、2,8C、9,0D、4,-36、以下描述正确的是()A、由于do while 循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。

B、do while 循环由do 开始,用while 结束,在while( 表达式)后面不能写分号C、在do while 循环体中,一定要有能使while 后面匠值变为零的操作D、do while 循环中,根据情况可以省略while7、若有如下程序段,其中s、a、b、c 均已定义为整型变量,且a、c 均已赋值(c大于0)。

C语言单元复习题 第06部份 循环

C语言单元复习题  第06部份 循环
B.只有do...while语句构成的循环能用break语句退出
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语言复习题4. 练习(循环结构)(有答案)

广技师C语言复习题4. 练习(循环结构)(有答案)

一、选择题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=b8. 下面程序的功能是在输入的一系列正整数中求出最大者,输入0结束循环,请选择填空.#include〈stdio.h>int main(){int a,max=0;scanf(”%d”,&a);while( ){if(max〈a)max=a;scanf("%d”,&a);}printf(”%d\n",max);return 0;}A.!a=0 B.a!=0 C.a= =0 D.a=09。

C语言习题 循环2

C语言习题 循环2

循环2一、单项选择题1. 以下程序的输出结果是______。

#include<stdio.h>void main(){ int num=0; while(num<=2) { num++; printf("%d",num); } }A. 2B. 1C. 123D. 12参考标准答案:C2. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是______。

#include <stdio.h>void main(){ int x; scanf("%d",&x);if(x>5)printf("%d",x);else printf("%d\n",x--);}A. 7和5B. 6和3C. 7和4D. 6和4参考标准答案: D3. 以下描述中正确的是______。

A. 由于do-while循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。

B. do-while循环由do开始,用while结束,因此在while(表达式)后无需加分号。

C. 在do-while循环体中,一定要有能使while后面表达式的值变为“假”的操作。

D. do-while循环中,根据情况可以省略while。

参考标准答案: C4. 下面程序段的输出结果是______。

int i=10;while(i>7) { i--; printf(" %d",i); }A. 10 9 8B. 9 8 7C. 10 9 8 7D. 8 9 10参考标准答案:B5. 若i为整型变量,则以下循环执行的次数是______。

for(i=2;i==0;) printf("%d",i--);A. 无限次B. 0次C. 1次D. 2次参考标准答案:B6. 执行下面程序段后,i值是______。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

循环习题集锦
一.选择题
1.for(i=0;i<10;i++);结束后,i的值是;(10)
A 9
B 10
C 11
D 12
2.下面程序的循环次数是:(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 1
B 9
C 10
D 15
4.要使下面程序输出10个整数,则在下画线处填入正确的数是:(c)
for(i=0;i<= ;)
printf(“%d\n”,i+=2);
A 9
B 10
C 18
D 20
5.运行下面程序:(B)
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);
}
则输出的结果是(C)
A 21 32
B 21 33
C 11 12
D 10 11
7.以下叙述正确的是:(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 1
B 2 1 0
C 3
D 2
9.若k为整型变量,则下面while循环执行的次数为:(A)
k=10;
while(k==0) k=k-1;
A 0
B 1
C 10 D无限次
10.下面有关for循环的正确描述是(D)
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判断表达式
C.在for循环中,不能用break语句跳出循环体。

D.for循环的循环体语句汇总,可以包含多条语句,但必须用花括号括起来。

11.对for(表达式1;;表达式3)可理解为(B)
A for(表达式1;0;表达式3)
B for(表达式1;1;表达式3)
C for(表达式1;表达式1;表达式3)
D for(表达式1表达式2;表达式3)
12.若i为整型变量,则以下循环执行的次数是(B)
for(i=2;i==0;)printf(“%d”,i--);
A.无限次 B 0次 C 1次 D 2次13.以下循环体的执行次数是;(B) 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.执行以下程序后,输出结果是:(D) main()
{ int y=10;
do { y--;}while(--y);
printf(“%d”,y--);
}
A -1
B 1
C 8
D 0
15 以下程序的输出结果是:(C) 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个常见语句分别是?(for,while,do,break,continue)2.下面程序的运行结果为:(14,26)
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 回车,则下面程序运行的结果是:(14,-1)main()
{ int n,k=0;
do
{ scanf(“%d”,&n);
k+=n;
}while(n!=-1);
printf(“k=%d,n=%d”,k,n);
}
4.下面程序的运行结果为:39 (--i= 1,i=2两次循环)
main()
{int i,j,s=0;
for(i=1,j=5;i<j;i++,j--)
s+=i*10+j;
printf(“\n%d”,s);
}
5.下面程序的运行结果是19 (i=9,s=9;i=6,s=15;i=3,s=18)
main()
{
int i=10,s=0;
for(;--i;)
if(i%3==0)
s+=i;
s++;
printf(“\ns=%d”,s);
}
6.下面程序的运行结果是–22222(n=4,s=22; n=4,s=222;n=2,s=2222;n=1,s=22222)
{int a=2,n=5,s;
s=a;
for(;--n;)
s=s*10+a;
printf(“%d”,s);
}
7.下面的程序运行时,循环体语句“a++”运行的次数为:10 main()
{int i,j,a=0;
for(i=0;i<2;i++)
for(j=4;j>=0;j--)
a++;
}
8.下面的程序运行后,a的值为:7
main()
{ int i,j,a=0;
for(i=0;i<2;i++) a++;
for(j=4;j>=0;j--) a++;
}
9.下面程序的运行结果为:(8) --(s=4,i=3;s=7,i=4;s=11,i=6;s=17,i=8) int i=1,s=3;
s+=i++;
if(s%7==0) continue;
else ++i;
}while(s<15);
printf(“%d”,i);
10.当运行以下程序时,从键盘输入China# 回车,则下面程序的运行结果是:5,5
#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+53
. 5.编写程序输出下面图形。

1
23
456
7890
6.编写程序输出下面图形
*
***
*****
*******
*****
***
*
精选范本。

相关文档
最新文档