c语言第5章循环结构练习题

合集下载

C语言循环结构选择题(新)2

C语言循环结构选择题(新)2

C语言循环结构选择题(新)2循环结构练习一1、若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是for (i=5;i;i--)for (j=0;j<4;j++){...}A) 20 B) 25 C) 24 D) 302、设i,j,k均为int型变量,则执行完下面的for循环后,k的值为for(i=0,j=10;i<=j;i++,j--) k=i+j;A) 12 B) 10 C) 11 D) 93、当执行以下程序段时x=-1;do { x=x*x;} while( !x);A) 循环体将执行一次 B) 循环体将执行两次C) 循环体将执行无限次 D) 系统将提示有语法错误4、若输入字符串:abcde<回车>,则以下while循环体将执行多少次。

while((ch=getchar())=='e') printf("*");A) 5 B) 4 C) 6 D) 15、有以下程序段int k=0;while (k=1) k++;while循环执行的次数是A) 无限次 B) 有语法错,不能执行 C) 一次也不执行D) 执行一次6、语句while(!e);中的条件 !e 等价于( )。

A) e==0 B) e!=1 C) e!=0 D) ~e7、以下for循环是( )。

for(x=0,y=0;(y!=123) && (x<4);x++)A) 无限循环 B) 循环次数不定 C) 执行4次 D) 执行3次8、C语言中while 和do-while 循环的主要区别是( )。

A) do-while的循环体至少无条件执行一次B) while 的循环控制条件比do-while 的循环控制条件严格C) do-while 允许从外部转到循环体内D) do-while 的循环体不能是复合语句9、以下叙述正确的是( )。

A) continue语句的作用是结束整个循环的执行B) 只能在循环体内和switch语句体内使用break语句C) 在循环体内使用break语句或continue语句的作用相同D) 从多层循环嵌套中退出时,只能使用goto语句10、对下面程序段,描述正确的是( )。

C语言循环结构复习题

C语言循环结构复习题

循环结构程序设计复习题一.选择题1.以下while循环中,循环体执行的次数是:()k=1;while (--k) k=10;a) 10次b) 无限次c) 一次也不执行d) 1次2.有以下程序段,其中x为整型变量,以下选项中叙述正确的是:()x=0;while (!x!=0) x++;a) 退出while循环后,x的值为0b) 退出while循环后,x的值为1c) while的控制表达式是非法的d) while循环执行无限次3. 有以下程序段,其中n为整型变量,执行后输出结果是:()n=20 ;while(n--) ; printf(“%d”,n) ;a) 2 b) 10 c) -1 d) 04. 有以下程序段,其中t为整型变量,以下选项中叙述正确的是:()t=1;while (-1){ t--;if(t) break;}a) 循环一次也不执行b) 循环执行一次c) 循环控制表达式(-1)不合法d) 循环执行2次5. 有以下程序段,其中x为整型变量,以下选项中叙述正确的是:()x=-1;do{;}while (x++);printf(“x=%d”,x);a) 该循环没有循环体,程序错误b) 输出x=1c) 输出x=0d) 输出x=-16. 有以下程序段,其中x,y为整型变量,程序输出结果是:()for(x=0,y=0;(x<=1)&&(y=1);x++,y--) ;printf(“x=%d,y=%d”,x,y);a) x=2,y=0 b) x=1,y=0x=0,y=0d) x=1,y=1 c)解析:在开始时 x=0,y=0;进入循环判断(x<=1)&&(y= 1) 条件成立,同时把1赋给y,此时x=0,y=1;然后执行 x++,y--,执行之后x=1,y=0;再进入循环判断(x<=1)&&(y= 1),条件成立,同时同时把1赋给y,此时x=1,y=1; 然后执行 x++,y--,执行之后x=2,y=0;再进入循环判断(x<=1)&&(y= 1),条件不成立,跳出循环输出x=2,y=0 。

C语言循环结构练习题带答案

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。

intx=-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语言循环结构选择题(新)

C语言循环结构选择题(新)
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) 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)

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语言循环结构上机习题

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的所有可能组合,最后得到问题的解。

cyu第5章循环(新)

cyu第5章循环(新)
即不为循环变量赋初值,不设置循环条件(认为表达式2 为真值),不修改循环变量的值,无终止地执行循环体。 此时应在循环体内设法结束循环,否则会成为死循环
for( ; ; ) { printf("这将一直进行下去 这将一直进行下去"); 这将一直进行下去 i = getchar(); if(i == 'X' || i == 'x') break; }
int i=1;s=0; while(i<1) ( ) { s=s+i; i=i+1; } printf("s=%d\n",s); ( ) }
17
int i=1,s=0; do { s=s+i; i=i+1; } while(i<1); printf("s=%d\n",s);
左边的程序结果为:s=0,而右边的程序结果为 而右边的程序结果为:s=1。 左边的程序结果为 而右边的程序结果为 。
折扣(y) 无 1% 2% 5% 10%
3
本章目标
理பைடு நூலகம்为什么使用循环结构 熟练掌握while循环的使用 熟练掌握do-while循环的使用 理解while 和 do-while 循环的区别
4
循环的必要性
int a1,a2,a3, a4,a5; a1 = 1 * 10; printf("1 × 10 = %d a2 = 2 * 10; printf("2 × 10 = %d a3 = 3 * 10; printf("3 × 10 = %d a4 = 4 * 10; printf("4 × 10 = %d a5 = 5 * 10; printf("5 × 10 = %d \n",a1); \n",a2); \n",a3); \n",a4); \n",a5);

选择结构、循环结构--习题

选择结构、循环结构--习题

下列各语句中,能够且仅输出整型变量 a、b中最大值的是( (3) (3)下列各语句中,能够且仅输出整型变量 下列各语句中,能够且仅输出整型变量a
A. if(a>b) printf( ”%d\n ”,a); printf( ”%d\n ”,b); printf(” %d\n” printf(” %d\n” B. printf( ”%d\n ”,b); if(a>b) printf( ”%d\n ”,a); printf(” %d\n” printf(” %d\n” C. if(a>b) printf( ”%d\n ”,a); else printf( ”%d\n ”,b); printf(” %d\n” printf(” %d\n” D. if(a<b) printf( ”%d\n ”,a); printf( ”%d\n ”,b); printf(” %d\n” printf(” %d\n”
x的值是( (2) 假定所有变量均已正确定义,下列程序段运行后 假定所有变量均已正确定义,下列程序段运行后x )。
,x=35 ; a=b=c=0 a=b=c=0, x=35; if(!a) x- ; else if(b) ;if(c) x=3 ;else x=4; -; x=3; A.34 B.4 C.35 D.3 )。
C)0.500000
D)1.000000
5.18 以下 4 个选项中,不能看做一条语句的是 A); B)a=5,b=2.5,c=3.6; C)if(a<5); D)if(b!=5)x=2;y=6; 5.19 若 int k=8;则执行下列程序后,变量 k 的正确结果是 main() {int k=8; switch(k) {case 9:k+=1; case 10:k+=1; case 11:k+=1;break; default:k+=1;} printf("%d\n",k);} A)12 B)11 C)10 5.20 阅读如下程序段 #include "stdio.h" main() { int a=45,b=40,c=50,d; d=a>30?b:c; switch(d) { case 30 : printf("%d,",a); case 40 : printf("%d,",b); case 50 : printf("%d,",c); default : printf("#");}} 则输出的结果是
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第5章循环结构练习题一、选择题1.以下程序的输出结果是()。

ma i n(){i n t n=4;w h i l e(n--)p r i n t f(〞%d〞,--n);}A.20B.31C.321D.210 2.以下程序的输出结果是()。

ma i n(){i n t x=10,y=10,i;f o r(i=0;x>8;y=++i)p r i n t f("%d%d",x--,y);}A.10192B.9876C.10990D.101091 3.当执行以下程序段时。

x=-1;d o{x=x*x;}w h i l e(!x);A.循环体将执行一次B.循环体将执行两次C.循环体将执行无数多次D.系统将提示有语法错误4.执行以下程序后输出的结果是()。

ma i n(){i n t y=10;d o{y--;}w h i l e(--y);p r i n t f("%d\n",y--);}A.-1B.1C.8D.05.下面程序的输出结果是()。

ma i n(){i n t x=3,y=6,a=0;w h i l e(x++!=(y-=1)){a+=1;i f(y<x)b r e a k;}p r i n t f("x=%d,y=%d,a=%d\n",x,y,a);}A.x=4,y=4,a=1B.x=5,y=5,a=1C.x=5,y=4,a=3D.x=5,y=4,a=16.若i,j已定义为i n t类型,则以下程序段中内循环的总的执行次数是()。

f o r(i=5;i;i--)f o r(j=0;j<4;j++){…}A.20B.24C.25D.30 7.请读程序:#i n c l u d e<s t d i o.h>ma i n(){i n t x=1,y=0,a=0,b=0;s w i t c h(x){c a s e1:s w i t c h(y){c a s e0:a++;b r e a k;c a s e1:b++;b r e a k;}c a s e2:a++;b++;b r e a k;}p r i n t f("a=%d,b=%d\n",a,b);}上面程序的输出结果是()。

A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2 8.若有以下程序段,w和k都是整型变量w=k;L B:i f(w==0)g o t o L E;w--;p r i n t f(〞*〞);g o t o L B;L E:则不能与上面程序段等价的循环语句是()。

A.f o r(w=k;w!=0;w--)p r i n t(〞*〞);B.w=k;w h i l e(w--!=0)p r i n t f(〞*〞);w++;C.w=k;d o{w--;p r i n t f(〞*〞);}w h i l e(w!=0);D.f o r(w=k;w;--w)p r i n t f(〞*〞);9.下面程序的输出是()。

ma i n(){c h a r*s=〞12134211〞;i n t k,v1=0,v2=0,v3=0,v4=0;f o r(k=0;s[k];k++)s w i t c h(s[k]){d e f a u l t:v4++;c a s e1:v1++;c a s e2:v2++;c s s e3:v3++;}p r i n t f(〞v1=%d,v2=%d,v3=%d,v4=%d\n〞,v1,v2,v3,v4);}A.v1=4,v2=2,v3=1,v4=1B.v1=4,v2=9,v3=3,v4=1C.v1=5,v2=8,v3=6,v4=1D.v1=8,v2=8,v3=8,v4=8 10.有以下程序#i n c l u d e〞s t d i o.h〞i n t a b c(i n t u,i n t v);ma i n(){i n t c,a=24,b=16;c=a b c(a,b);p r i n t f(〞%d\n〞,c);}i n t a b c(i n t u,i n t v){i n t w;w h i l e(v){w=u%v;u=v;v=w;}r e t u r n u;}输出结果是()。

A.6B.7C.8D.9 11.在下列选项中,没有构成死循环的程序段是()。

A.i n t i=100;w h i l e(1){i=i%100+1;i f(i>100)b r e a k;}B.f o r(;;);C.i n t k=1000;d o{++k;}w h i l e(k>=10000);D.i n t s=36;--s;12.若输入B,以下程序的运行结果为()。

ma i n(){c h a r g r a d e;s c a n f("%c",&g r a d e);s w i t c h(g r a d e){c a s e'A':p r i n t f(">=85.");c a s e'B':c a s e'C':p r i n t f(">=60.");c a s e'D':p r i n t f("<60.");d e f a u l t:p r i n t f("e r r o r.");}}A.>=85.B.>=60.C.>=60.<60.e r r o r.D.e r r o r. 13.列程序运行的情况是()。

ma i n(){i n t i=1,s u m=0;w h i l e(i<10)s u m=s u m+1;i++;p r i n t f("i=%d,s u m=%d",i,s u m);}A.i=10,s u m=9B.i=9,s u m=9C.i=2,s u m=1D.运行出现错误14.有以下语句:i=1;f o r(;i<=100;i++)s u m+=i;与以上语句序列不等价的有()。

A.f o r(i=1;;i++){s u m+=i;i f(i==100)b r e a k;}B.f o r(i=1;i<=100;){s u m+=i;i++;}C.i=1;f o r(;i<=100;)s u m+=i;D.i=1;f o r(;;){s u m+=i;i f(i==100)b r e a k;i++;}15.下面程序的运行结果为()。

ma i n(){i n t n;f o r(n=1;n<=10;n++){i f(n%3==0)c o n t i n u e;p r i n t f("%d",n);}}A.12457810B.369C.12D.12345678910 16.下面程序的运行结果是()。

ma i n(){i n t x,y,z;x+=-z---y;p r i n t f("x=%d\n",x);}A.x=4B.x=0C.x=2D.x=317.标有/**/的语句的执行次数是()。

i n t y,i;f o r(i=0;i<20;i++){i f(i%2==0)c o n t i n u e;y+=i;/**/}A.20B.19C.10D.918.在C语言中,i f语句后的一对圆括号中,用以决定分支的流程的表达式。

A.只能用逻辑表达式B.只能用关系表达式C.只能用逻辑表达式或关系表达式D.可用任意表达式19.在以下给出的表达式中,与d o-w h i l e(E)语句中的(E)不等价的表达式是()。

A.(!E==0)B.(E>0||E<0)C.(E==0)D.(E!=0)20.假定所有变量均已正确定义,下列程序段运行后x的值为()。

k1=1;k2=2;k3=3;x=15;i f(!k1)x--;e l s e i f(k2)i f(k3)x=4;e l s e x=3;A.14B.4C.15D.321.执行下面语句的输出为()。

i n t i=-1;i f(i<=0)p r i n t f(“****\n”);e l s e p r i n t f(“%%%%\n”);A.****B.%%%%C.%%%%cD.有错,执行不正确22.下列程序的输出是()。

#i n c l u d e<s t d i o.h>ma i n(){i n t i;c h a r c;f o r(i=0;i<=5;i++){c=g e t c h a r();p u t c h a r(c);}}程序执行时从第一列开始输入以下数据,<C R>代表换行符。

u<C R>w<C R>x s t a<C R>A.u w x s t aB.uC.uD.uw w wx x s x s t a23.下列程序的输出为()。

#i n c l u d e"s t d i o.h"ma i n(){i n t i,j,x=0;f o r(i=0;i<2;i++){x++;f o r(j-0;j<=3;j++){i f(j%2)c o n t i n u e;x++;}x++;}p r i n t f("x=%d\n",x);}A.x=4B.x=8C.x=6D.x=1224.下列程序的输出为()。

#i n c l u d e<s t d i o.h>ma i n(){i n t i,j,k=0,m=0;f o r(i=0;i<2;i++){f o r(j=0;j<3;j++)k++;k-=j;}m=i+j;p r i n t f("k=%d,m=%d\n",k,m);}A.k=0,m=3B.k=0,m=5C.k=1,m=3D.k=1,m=5 25.在C语言中,为了结束w h i l e语句构成的循环,w h i l e后一对圆括号中表达式的值应该为()。

A.0B.1C.t r u e D.非026.在C语言中,为了结束由d o-w h i l e语句构成的循环,w h i l e后一对圆括号中表达式的值应为()。

A.0B.1C.t r u e D.非027.下列程序的输出为()。

#i n c l u d e<s t d i o.h>ma i n(){i n t k=0;c h a r c='A';d o{s w i t c h(c++){c a s e'A':k++;b r e a k;c a s e'B':k--;c a s e'C':k+=2;b r e a k;c a s e'D':k=k%2;c o n t i n u e;c a s e'E':k=k*10;b r e a k;d e f a u l t:k=k/3;}k++;}w h i l e(c<'G');p r i n t f("%d\n",k);}A.k=3B.k=4C.k=2D.k=028.C语言的i f语句嵌套时,i f与e l s e的配对关系是()。

相关文档
最新文档