C语言试题库-循环结构
C语言循环结构选择题(新)
else if (ch>='a' && ch<'z') ch=ch-32;
printf("%c",ch);
}
printf("\n");
}
A) ABCdef
B) abcDEF
i++;
} while(i!=0);
}
A) 7
B) 6
C) 5
D) 4
C
31、下面程序的运行结果是( )。
main( )
{ int s=0,i=1;
while (s<=10)
{ s=s+i*i;
i++;
}
printf("%d",--i);
}
A) 4
B) 3
C) 5
D) 6
B
32、以下程序的输出结果是( )。
{ int s=0,k;
for(k=7;k>=0;k--)
{switch(k)
{
case 1:
case 4:
case 7: s++; break;
case 2:
case 3:
case 6: break;
case 0:
case 5: s+=2; break; }
}
printf("s=%d\n",s);
for(t=1;t<=100;t++) { scanf("%d",&x);
C语言程序设计第五次作业——循环结构(1)
C语⾔程序设计第五次作业——循环结构(1)(⼀)改错题输出华⽒摄⽒温度转换表:输⼊两个整数lower和upper,输出⼀张华⽒摄⽒温度转换表,华⽒温度的取值范围是{lower,upper},每次增加2℉。
计算公式如下:c = 5×(f-32)/9其中,c表⽰摄⽒温度,f表⽰华⽒温度。
输⼊输出样例1: Enter lower:32 Enter upper:35 fahr celsius 32 0.0 34 1.1输⼊输出样例2: Enter lower:40 Enter upper:30 fahr celsius源程序(有错误的程序)#include <stdio.h>int main(void){int fahr , lower, upper; /* fahr表⽰华⽒度 */double celsius; /* celsius表⽰摄⽒度 */printf("Enter lower:");scanf("%d",&lower);printf("Enter upper:");scanf("%d",&upper);printf("fahr celsius\n"); /* 显⽰表头 *//* 温度转换 */for (fahr = lower , fahr <= upper, fahr ++) ;celsius = 5 /9 * (fahr - 32.0);printf("%3.0f %6.1f\n", fahr, celsius);return 0;}对源程序进⾏编译,结果如下:错误信息1:错误原因:for语句后⾯加了分号。
改正⽅法:将分号去掉。
错误信息2:错误原因:for语句下没有加“{}“改正⽅法:在for语句下加上“{}”错误信息3:错误原因:发现for语句内语句⽤逗号隔开了。
c语言循环结构上机习题
1、计算n的阶乘(n!),n的取值在1~10之间。
分别使用while、do…while和for 语句实现。
(三个程序)给循环变量赋初值循环条件循环体循环变量的增值2、输入一行字符,分别统计输入了多少个字母、数字、空格和其他字符。
3、假设函数f(x)=3x2+2x+1,试利用for循环语句分别求出1<=x<=9的f(1)~f(9)各函数值。
4、有分数序列2/1,3/2,5/3,8/5,13/8,21/13…求这个数列的前20项和。
(分析提示:每个分子等于前一个数据分子与分母的和,每个分母等于前一个数据的分子)5、输出显示1~100之间可以被n整除的所有整数,运行时n由键盘输入。
要求每一行显示5个数,并且统计一共有多少个整数能被n整除。
6、下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。
main(){ float x,amax,amin;scanf("%f",&x);amax=x;amin=x;while( ①){ if(x>amax) amax=x;if( ②) amin=x;scanf("%f",&x);}printf("\namax=%f\namin=%f\n",amax,a min);}7、使用循环语句输出以下图形8、有一个数学等式:AB*CD=BA*DC,式中的一个字母代表一位数字,试找出所有符合上述要求的乘积式并打印输出。
8、一百个铜钱买了一百只鸡,其中公鸡一只5钱、母鸡一只3钱,小鸡一钱3只,问一百只鸡中公鸡、母鸡、小鸡各多少)。
分析:这是一个古典数学问题,设一百只鸡中公鸡、母鸡、小鸡分别为x,y,z,问题化为三元一次方程组:100=x*5+y*3+z/3100=x+y+z这里x,y,z为正整数,且z是3的倍数;由于鸡和钱的总数都是100,可以确定x,y,z 的取值范围:1) x的取值范围为1~202) y的取值范围为1~333) z的取值范围为3~99,步长为3对于这个问题我们可以用穷举的方法,遍历x,y,z的所有可能组合,最后得到问题的解。
(完整版)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语言单元复习题 第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语言程序设计习题集第4章 循环结构(答案)
第4章循环结构一、选择题1、有以下程序段int k=0;while(k=1)k++;while 循环执行的次数是(A)A)无限次B)有语法错,不能执行C) 一次也不执行D)执行1次2、t为int类型,进入下面的循环之前,t的值为0while(t=1){ …… }则以下叙述中正确的是(B)A) 循环控制表达式的值为0B)循环控制表达式的值为1C) 循环控制表达式不合法D)以上说法都不对3、在C程序中,与while(m)中表达式m完全等价的是(B )A) m==0 B) m!=0 C) m==1 D)m!=14、有以下程序,程序运行后的输出结果是(C).main(){int i=1,sum=0;while(i<=4){sum=sum+i;i=i+1;}printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环5、有以下程序,程序运行后的输出结果是(D ).main(){int i=1,sum=0;while(i<=4)sum=sum+i;i=i+1;printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环6、有如下程序main(){int n=9;while(n>6){n-—;printf(“%d",n);}}该程序段的输出结果是(B)A)987 B) 876 C) 8765 D) 98767、以下程序的输出结果是(B)main(){int num= 0;while(num<=2){num++;printf(“%d\n”,num);}}A) 1 B) 1 C)1 D)l2 2 23 348、有以下程序,若运行时输入3.6 2.4<回车〉,则输出的结果是( B)。
main(){float x,y,z;scanf(“%f%f”,&x,&y);z=x/y;while(1){if(fabs(z)>1。
0){x=y;y=z;z=x/y;}elsebreak;}printf(“%f\n”,y);}A)1.500000 B)1.600000 C)2。
c语言循环的选择题
c语言循环的选择题在C语言中,循环结构是编程中常用的一种控制结构,用于重复执行一段代码。
以下是一些关于C语言循环结构的选择题,旨在检测对循环语句的理解和运用能力。
每个问题都附有详细的解析,以帮助理解概念。
1. 下列哪个关键字用于在C语言中创建循环?•A. repeat•B. loop•C. while•D. for解析:•正确答案是C。
在C语言中,while和for关键字用于创建循环结构。
2. 下列哪个循环结构的执行次数在执行前就确定了?•A. while•B. for•C. do-while•D. 以上都有可能解析:•正确答案是B。
for循环结构的执行次数在循环开始前就确定了。
3. 在for循环中,分号(;)的作用是什么?•A. 表示循环体•B. 分隔初始化语句、条件表达式和增量表达式•C. 结束循环•D. 以上都不对解析:•正确答案是B。
在for循环中,分号用于分隔初始化语句、条件表达式和增量表达式。
4. 下列哪个循环结构至少会执行一次循环体?•A. while•B. for•C. do-while•D. 以上都有可能解析:•正确答案是C。
do-while循环结构至少会执行一次循环体,因为它的条件判断是在循环体执行之后进行的。
5. 在while循环中,什么情况下循环体会被执行?•A. 当条件表达式为真•B. 当条件表达式为假•C. 当条件表达式为0•D. 当条件表达式为非零解析:•正确答案是A。
while循环中,只有当条件表达式为真时,循环体才会被执行。
6. 下列代码片段的输出是什么?#include <stdio.h>int main(){int i =0;while(i <5){printf("%d ",i);i++;}return0;}•A. 0 1 2 3 4•B. 1 2 3 4 5•C. 0 1 2 3•D. 1 2 3 4解析:•正确答案是A。
C语言全国试题(五-循环结构程序设计)
填空题(全国二级C 2008C2-8)
若有定义:int k;,以下程 序段的输出结果是__#_#_2_#_#_4__。
for (k=2; k<6; k++,k++ ) printf (“##%d”,k);
选择题(全国二级C 2007Q1-22)
C 有以下程序,程序的运行结果是 。
#include <stdio.h>
{ int i;
for ( i=1 ; i<=40; i++)
{ if (i++%5==0)
if (++i%8==0)printf("%d ",i); }
printf("\n"); }
A) 5
B) 24
C) 32
D) 40
选择题(全国二级C 2005Q1-27)
设变量已正确定义,则以下能正确
计算f=n!的程序段是 D 。
有以下程序段,且变量已正确定义和赋值
for ( s=1.0,k=1;k<=n; k++ ) s=s+1.0/(k*(k+1));
printf(“s=%f\n\n”,s); 请填空,使下面程序段的功能与之完全相同
s=1.0; k=1; while ( ___k_<_=_n__ ) { s=s+1.0/(k*(k+1)); __k_+_+__ ; } printf(“s=%f\n\n”,s);
以下程序的功能是计算: s=1+12+123+1234+12345。请填空。 main( ) { int t=0, s=0, i; for(i=1; i<=5; i++)
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. 下面程序的功能是将小写字母变成对应大写字母后的第二个字母。
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语言复习题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. 下面程序的运行结果是。
C语言 循环结构程序设计模拟题
C语言循环结构程序设计模拟题-CAL-FENGHAI.-(YICAI)-Company One1第五章循环结构程序设计一、选择题1.while循环语句中,while后一对圆括号中表达式的值决定了循环体是否进行,因此,进入while循环后,一定有能使此表达式的值变为的操作,否则,循环将会无限制地进行下去。
(0级)A)0 B)1 C)成立 D)22.在do-while循环中,循环由do开始,用while结束;必须注意的是:在while表达式后面的不能丢,它表示do-while语句的结束。
(0级)A)0 B)1 C); D),3.for语句中的表达式可以部分或全部省略,但两个不可省略。
但当三个表达式均省略后,因缺少条件判断,循环会无限制地执行下去,形成死循环。
(0级)A)0 B)1 C); D),4.程序段如下int k=-20;while(k=0) k=k+1;则以下说法中正确的是。
(1级)A)while循环执行20次 B)循环是无限循环C)循环体语句一次也不执行 D)循环体语句执行一次5.程序段如下int k=1;while(!k==0) {k=k+1;printf("%d\n",k);}说法正确的是。
(1级)A)while循环执行2次 B)循环是无限循环C)循环体语句一次也不执行 D)循环体语句执行一次6.以下for循环是。
(1级)for(a=0,b=0;(b!=123)&&(a<=4);a++)A)无限循环 B)循环次数不定 C)执行4次 D)执行5次7.在下列程序中,while循环的循环次数是。
(1级)main( ){ int i=0;while(i<10){if(i<1) continue;if(i= =5) break;i++;}......}A)1 B)10 C)6 D)死循环、不能确定次数8.程序段如下int k=0; while(k++<=2) printf("%d\n",k);则执行结果是。
C语言习题五循环结构程序设1
习题五循环结构程序设计1. 有以下程序main(){ int i, j;for(i=1;i<4;i++){ for(j=i;j<4;j++) printf("%d*%d=%d ",i,j,i*j);printf("\n");} }程序运行后的输出结果是。
A、1*1=1 1*2=2 1*3=3B、1*1=1 1*2=2 1*3=32*1=2 2*2=4 2*2=4 2*3=63*1=3 3*3=9C、1*1=1D、1*1=11*2=2 2*2=4 2*1=2 2*2=41*3=3 2*3=6 3*3=9 3*1=3 3*2=6 3*3=9解析:本题考查的是循环嵌套。
在一个循环体内又完整地包含了另一个循环,称为循环嵌套。
外循环i 的值分别为1、2、3,当i=1,内循环j=1时,输出1*1=1;当内循环j=2时,输出1*2=2;当内循环j=3时,输出1*3=3;当i=2,内循环j=2时,输出2*2=4;当内循环j=3时,输出2*3=6;当i=3,内循环j=3时,输出3*3=9。
故本题答案选B。
2. 有以下程序main(){ int k=5, n=0;do{switch(k){case 1: case 3: n+=1; k--; break;default: n=0; k--;case 2: case 4: n+=2; k--; break;}printf("% d",n);}while(k>0 && n<5);}程序运行后的输出结果是______。
A、235B、0235C、02356D、2356解析:本题考查的是循环嵌套。
do-while语句的特点是先执行循环体,然后判断循环条件是否成立,当循环条件的值为0时循环结束。
执行switch语句,寻找与5吻合的case 5分支,没有寻找到,于是执行default后的语句,n=0,k的值变为4,继续执行switch语句,寻找与4吻合的case 4分支,开始执行其后的各语句:n+=2=0+2=2,k的值变为3,遇到break语句跳出该switch语句体。
C语言循环结构练习题
(1)编写一个程序,求100199********-++-+-Λ之值。
(2)编写一个程序,求s=1+(1+2)+(1+2+3)+…+(1+2+3+…+n)的值。
(3)编写一个程序,用户输入一个正整数,把它的各位数字前后颠倒一下,并输出颠倒后的结果。
(4)编写一个程序,求出200到300之间的数,且满足条件:它们三个数字之积为42,三个数字之和为12。
(5)编写一个程序,求出满足下列条件的四位数:该数是个完全平方数,且第一、三位数字之和为10,第二、四位数字之积为12。
(6)编写一个程序,求e 的值。
!1!21!111n e ++++≈Λ (7)编写一个程序,求满足如下条件的最大的n :10003212222≤++++n Λ(8)某人摘下一些桃子,卖掉一半,又吃了一只;第二天卖掉剩下的一半,又吃了一只;第三天、第四天、第五天都如此办理,第六天一看,发现就剩下一只桃子了。
编写一个程序,采用迭代法问某人共摘了多少只桃子。
(9) 输入一批非0数,直到输入0时为止,计算其中奇数的平均值和偶数的乘积。
(东师大,01年)(10)求一组整数中的正数之积与负数之和,直到遇到0时结束。
(东师大,03年)(11)输入一组实数,求前10个正数的平均值。
(东师大,02年)(12)编程求1~200中能被2,3,5除余1的前10个整数。
(东师大,02年)(13)输入100个整数,统计这些数中能被3或5整除数所占的百分比。
(东师大,02年)(14)计算并输出200—600中能被7整除,且至少有一位数字是3的所有数的和。
(东师大,01年)(15)输出1~999中能被5整除,且百位数字是5的所有整数。
(东师大,04年)(16)设N 是一个四位数,它的9倍恰好是其反序数(例如:1234的反序数是4321),求N 值。
(东师大,03年)\(17)有这样一个三位数,该三位数等于其每位数字的阶乘之和,即abc=a !+b !+c !。
(如:145=1!+4!+5!)(东师大,04年)(18)编写程序求出满足下列条件的四位数:该数是个完全平方数;千位、十位数字之和为10,百位、个位数字之积为12。
C语言-第5章 循环结构程序设计
第5章循环结构程序设计一、单项选择题1.在C语言中,下列说法中正确的是()。
A) do-while语句构成的循环不能用其它语句构成的循环来代替。
B) do-while语句构成的循环只能用break语句退出。
C) do-while语句构成的循环在while后的表达式非零时结束循环。
D) do-while语句构成的循环,在while后的表达式为零时结束循环。
2. break语句不能出现在语句中()A) switch B)for C) while D) if…else3.对于break语句和continue语句的说法错误的是()A) break语句不能用于循环语句和switch语句之外的任何其他语句中。
B) break和continue也可以用于if语句中C) continue语句只结束本次循环,而不是终止整个循环的执行。
D) break语句是结束整个循环过程,不再判断执行循环的条件是否成立。
4. 语句while(!y);中的表达式!y等价于A)y==0 B)y=1 C)y=!0 D) y==15. 若有“int a=1,x=1;”,则循环语句“while(a<10) x++; a++;”的循环执行()。
A)无限次B)不确定次C)10次D)9次6. 有以下程序段int k=0while(k) k++;则while循环体执行的次数是A) 无限次B) 有语法错,不能执行C) 一次也不执行D) 执行1次7. 下列循环语句中有语法错误的是( )A while(x=y) 5;B while(0) ;C do 2;while(x= =b);D do x++ while(x= =10);8. 当运行时输入:abcd$abcde ,下面程序的运行结果是。
#include<stdio.h>main(){char c;while(putchar(getchar())!='$');printf("end");}A)abcd$abcde B)abcd$end C)abcdend D)abcd$abcdeend 9. 以下程序段( )x=-1;do { x=x*x; }while(x>0);A) 是死循环B) 循环执行一次C) 循环执行二次D) 有语法错误10. 下面程序段执行后的结果为: ( )int sum=0, n=10;do { sum=sum+n;n++; }while(n<10);printf(“%d,%d”,sum,n);A. 0, 10 B) 10, 11C) 0, 11 D) 以上结果都不对12. 循环“for(i=0,x=1;i=10&&x>0;i++);”的循环执行()。
C语言循环结构(1)
③ <循环表达式>亦可省略,但在循环语句体中必须有 语句来修改循环变量,以使条件表达式的值在某一时 刻为0,从而能正常结束循环。 如:for(sum=0, i=1; i<=100;)
{ sum = sum +i; i++;
{
int i,n; long s;
printf("please enter a integer:\n");
scanf("%d",&n);
if(n>=0)
{
s=1;
i=1;
while(i<=n)
{
s=s*i;
i++;
}
printf("%d!=%ld",n,s);
}
else
printf("Invalid input!");
do_while语句是另一种用于产生循环动作的语句。 一般形式为:
do { <循环体语句> }while(<表达式>);
do_while语句的流程图 :
功能:先执行一次<循环体语句>,然后计算<表达式>的值, 假设该值为“真〞,那么重复以上的操作,直到该值为 “假〞,那么退出循环语句,执行下一条语句。
while的下一条语句
循环语句的选择
if〔循环次数〕 使用for语句
else
/* 循环次数未知 */
if (循环条件在进入循环时明确)
使用while语句
else /* 循环条件需要在循环体中明 确 */
c语言循环题库
c语言循环题库一、在C语言中,以下哪个循环结构不是基于条件的循环?A. for循环B. while循环C. do-while循环D. goto语句(答案)二、以下哪个选项不是for循环的控制表达式?A. 初始化表达式B. 循环条件表达式C. 循环体D. 迭代表达式(答案:C是循环体,不是控制表达式)三、在C语言的while循环中,循环条件通常是一个什么类型的表达式?A. 赋值表达式B. 关系表达式或逻辑表达式(答案)C. 算术表达式D. 逗号表达式四、以下哪个选项描述的do-while循环的特点是不正确的?A. 循环体至少执行一次B. 循环条件在循环体之后判断C. 循环条件为真时,循环继续执行D. 循环条件通常是一个赋值表达式(答案)五、在C语言中,如何跳出当前所在的循环体?A. 使用continue语句B. 使用break语句(答案)C. 使用return语句D. 使用goto语句六、以下哪个选项不是使用循环结构时需要注意的问题?A. 循环条件的设置B. 循环体的设计C. 循环变量的初始化(答案:虽然重要,但相比其他选项更偏向于编程习惯)D. 避免无限循环的发生七、在嵌套循环中,如何跳出最外层的循环?A. 使用多次break语句B. 在最外层循环中使用goto语句配合标签跳出(答案)C. 使用continue语句D. 无法直接跳出,需要重新设计循环结构八、以下哪个选项描述的for循环的语法结构是不正确的?A. for(初始化表达式; 循环条件表达式; 迭代表达式) 循环体;B. for(循环条件表达式; 初始化表达式; 迭代表达式) 循环体;(答案)C. for(;;) 循环体; // 相当于一个无限循环D. for(初始化表达式; ; 迭代表达式) { 如果条件满足则执行循环体; } // 需要内部判断条件九、在C语言中,continue语句的作用是?A. 跳出当前循环体,继续执行下一轮循环(答案,但描述略有歧义,实际上是结束当前迭代,进入下一次迭代条件判断)B. 跳出当前函数C. 跳出所有循环D. 结束整个程序十、以下哪个选项不是循环结构在程序设计中的应用场景?A. 重复执行相同的操作直到满足某个条件B. 遍历数组或集合中的每个元素C. 实现递归算法(答案)D. 计算累加、累乘等需要重复计算的问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题1.以下叙述正确的是A: do-while 语句构成的循环不能用其它语句构成的循环来代替。
B: do-while 语句构成的循环只能用break 语句退出。
C: 用do-while 语句构成的循环,在while 后的表达式为非零时结束循环。
D: 用do-while 语句构成的循环,在while 后的表达式为零时结束循环。
2.下面有关for 循环的正确描述是A: for 循环只能用于循环次数已经确定的情况B: for 循环是先执行循环体语句,后判定表达式C: 在for 循环中,不能用break 语句跳出循环体D: for 循环体语句中,可以包含多条语句,但要用花括号括起来3.C 语言中while 和do-while 循环的主要区别是A: do-while 的循环体至少无条件执行一次B: while 的循环控制条件比do-while 的循环控制条件严格C: do-while 允许从外部转到循环体内;D: do-while 的循环体不能是复合语句;4.下列关于switch 语句和break 语句的结论中,正确的是A: break 语句是switch 语句中的一部分B: 在switch 语句中可以根据需要使用或不使用break 语句C: 在switch 语句中必须使用break 语句D: switch 语句是break 语句的一部分5..以下正确的描述是A: continue 语句的作用是结束整个循环的执行;B: 只能在循环体内和switch 语句体内使用break 语句;C: 在循环体内使用break 语句或continue 语句的作用相同;D: 从多层循环嵌套中退出时,只能使用goto 语句;6.语句while(!e);中的条件!e 等价于A: e==0B: e!=0C: e!=1D: ~e7.在以下给出的表达式中,与while(E)中的E不等价的表达式是A: !E=0B: E>0||E<0C: E==0D: E!=08.在C 语言中,当do-while 语句中的条件为()时,结束该循环。
A: TUREB: 1C: 0D: 非09.对于for(表达式1;;表达式3)可理解为A: for(表达式1;0;表达式3)B: for(表达式1;1;表达式3)C: for(表达式1;表达式1;表达式3)D: for(表达式1;表达式3;表达式3)10.以下不是死循环的语句为()A: for(y=1,x=1;x>=++y;x++)B: for(;;x++)C: while(1){x++;}D: for(i=10;;i--)11.以下不构成无限循环的语句或者与语句组是A: n=0;do{++n;}while{n<=0};B: n=0;while(1){n++;}C: n=10;while(n);{n--;}D: for(n=0,i=1;i++) n+=1;12.下列循环语句中有语法错误的是A: while(x=y) 5;B: while(0) ;C: do 2;while(x==b);D: do x++ while(x==10);13.在C 语言中,设已定义k 为int 整型变量,则有下面while 循环执行( ) 次。
k=10;while(k==0) k=k-1;A: 10B: 无限C: 0D: 114.有如下程序main( ){ int n=9;while(n>6) {n--;printf(“%d”,n);}}该程序段的输出结果是A: 987B: 876C: 8765D: 987615.以下程序的输出结果是( )。
main( ){ int n=4;while(n--)printf("%d ",--n);}A: 2 0B: 3 1C: 3 2 1D: 2 1 016.以下程序的输出结果是()。
main(){ int num= 0;while(num<=2){ num++; printf(“%d\n”,num);}}A: 1234B: 123C: 12D: 117.定义如下变量: int n=10; 则下列循环的输出结果是while(n>7){ n--;printf("%d\n",n);}A: 10987B: 9876C: 1098D: 98718.以下程序的输出结果是()main(){ int num=0;while(num<=2){ num++;printf(“%d,”,num);}}A: 1,B: 1,2,C: 1,2,3,D: 1,2,3,4,19.请读程序:#include<stdio.h>main(){ int mun=0;while(num<=2){ num++; printf("%d\n",num);} }上面程序的输出结果是A: 12B: 123C: 1234D: 120.下面程序片段,退出while 循环时,s 的值是_____。
int i=0,s=1;while(i<3) s+=(++i);A: 7B: 6C: 5D: 421.下面程序片段,退出while 循环时,s 的值是____。
int i=0,s=1;while(i<3) s+=(i++);A: 6B: 5C: 4D: 322.以下程序的输出结果是()main(){ int x=0,y=0;while(x<15) y++,x+=++y;printf(“%d,%d”,y,x);}A: 20,7B: 6,12C: 20,8D: 8,2023.以下程序的输出结果是()main(){ int n=0;while(n++<=2);printf(“%d”,n);}A: 2B: 3C: 4D: 有语法错误24.以下程序的输出结果是()main(){ int n=10;while(n>7){ n--;printf(“%d,”,n);} }A: 10,9,8,B: 9,8,7,C: 10,9,8,7,D: 9,8,7,6,25.在执行以下程序时,如果从键盘上输入,ABCdef<回车>,则输出为#include<stdio,h>main(){ char ch;while((ch=getchar())!='\n'){ if(ch>='A' && ch<='Z') ch=ch+32;else if(ch>='a' && ch<='z') ch=ch-32;printf("%c",ch);}printf("\n");}A: ABCdefB: abcDEFC: abcD: DEF26.有以下程序:#includemain(){int y=10;while(y--);printf("y=%d\n",y);}程序执行后的输出结果是()。
A.y=0B.y=-1C.y=lD.while构成无限循环27.以下程序的输出结果是()main(){ int a=1,b=2,c=2,t;while(a<b<c) { t=a;a=b;b=t;c--;}printf(“%d,%d,%d”,a,b,c);}A: 1,2,0B: 2,1,0C: 1,2,1D: 2,1,128.有以下程序段#includemain(){while(getchar()!=’\n’);}以下叙述中正确的是( )。
A.此while语句将无限循环B.getchar()不可以出现在while语句的条件表达式中C.当执行此while语句时,只有按回车键程序才能继续执行D.当执行此while语句时,按任意键程序就能继续执行29.有以下程序:#includemain(){int a=1,b=2;while(a<6){b+=a;a4+=2;b%=l0;)printf("%d,%d\n",a,b);}程序运行后的输出结果是()。
A.5,11B.7,1C.7,11D.6,130.有以下程序:#include,main(){int S;scanf("%d",&s);while(s>O){switch(s){case l:printf("%d",s+5);case 2:printf("%d",s+4);break;case 3:printf("%d",s+3);default:("%d",s+1);break;}scanf("%d",&s);}}运行时,若输入1 2 3 4 5 0<回车>,由输出结果是( )。
A.6566456B.66656C.66666D.666665631.下面的程序main(){ int x=3;do {printf("%d\n",x-=2);}while(!(--x));}A: 输出的是1B: 输出的是1 和-2C: 输出的是3 和0D: 是死循环32.以下程序段是()x=-1;do{ x=x*x;} while(!x);A: 死循环B: 循环执行两次C: 循环执行一次D: 有语法错误33.有以下程序段int x=3do{ printf(“%d”,x-=2); }while (!(--x));其输出结果是A: 1B: 3 0C: 1 -2D: 死循环34.有以下程序段int n,t=1,s=0;scanf("%d",&n);do{ s=s+t; t=t-2; }while (t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是()。
A: 任意正奇数B: 任意负偶数C: 任意正偶数D: 任意负奇数35.下面的程序main(){ int x=3;do {printf("%d\n",x-=2);}while(!(--x));}A: 输出的是1B: 输出的是1 和-2C: 输出的是3 和0D: 是死循环36.有如下程序main( ){ int x=23;do{ printf(“%d”,x--);}while(!x);}该程序的执行结果是A: 321B: 23C: 不输出任何内容D: 陷入死循环37.有以下程序main(){ int s=0,a=1,n;scanf("%d",&n);do{ s+=1; a=a-2; }while(a!=n);printf("%d\n",s);}若要使程序的输出值为2,则应该从键盘给n 输入的值是A: -1B: -3C: -5D: 038.假定a 和b 为int 型变量,则执行以下语句后b 的值为a=1; b=10;do{ b-=a; a++; }while (b--<0) ;A: 9B: -2C: -1D: 839.执行以下程序后,输出的结果是。