循环结构习题

合集下载

(完整版)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 。

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__。

循环结构练习题

循环结构练习题

循环结构练习题1、Visual Basic 程序段如下:该程序段运行后,变量s的值是()s=0For k=1 To 5s=s+5Next k(A) 0 (B) 5 (C) 10 (D) 252、应用计算机程序解决数学问题“求一元二次方程实数解”的步骤,通常是()。

A. 设计算法→编写程序B. 编写程序→调试程序→检测结果C. 分析问题→设计算法→编写程序→调试运行→检测结果D. 编写程序→调试运行3、“=”在Visual Basic程序中既可以表示赋值操作,也可以表示关系运算。

右图程序段中“=”作用和⑤相同的是A.①B.②C.③D.④4、用计算机解决问题时,首先应该确定程序“做什么?”,然后再确定程序“如何做?”请问“如何做?”是属于用计算机解决问题的哪一个步骤?()A.分析问题B.设计算法 C.编写程序D、调试程序5、流程图中表示判断的是()。

A.矩形框B.菱形框C.圆形框D.椭圆形框6、任何复杂的算法都可以用三种基本结构组成,下列不属于基本结构的是()A.顺序结构B.选择结构C.层次结构D.循环结构7、执行完循环语句For x=1 to 100 step 2Next x 后,x的值是()A.101 B.100 C.99 D.988、下列给出的赋值语句中正确的是()。

A.4 = M B.-M =M C.B=A-3 D.x + y = 0 9、以下程序中的循环体执行的次数是( )。

For A=1 To 100 Step 2S=S+ANext APrint SA.48 B.49 C.50 D.5110、下列程序代码中,循环体执行的次数是( )。

y = 1Do While y <= 6y = y+yLoopA、2B、3C、4D、511、有如下VB程序,其结构为( )。

Dim i As Integer, sum As Doublesum=0For i = 1 To 100sum =sum+1/iNext iPrint "sum= " & sumA、顺序结构B、分支结构C、循环结构D、选择结构12、阅读如下VB程序段,运行程序后,当n的值为5时,a的值为______。

第6章 循环结构练习题

第6章 循环结构练习题

循环结构练习题一、选择题。

2、对于DO UNTIL ……LOOP循环,正确的是()。

A 如果循环条上为常数0,则一次循环也不执行B 如果循环条件为常数0,则至少执行一次循环C 如果循环条件是不为0的常数,则至少执行一次循环D 无论循环条件是否为TRUE,都至少执行一次循环3、要在DO ……LOOP循环中退出循环,应使用()语句。

A EXITB EXIT DOC CONTINUED STOP LOOP4、以下循环结构中,VB不支持的是()。

A FOR……NEXTB FOR EACH……NEXTC DO…..LOOPD DO……ENDDO5、要在FOR……NEXT循环中退出循环,应使用()语句。

A EXITB EXIT FORC CONTINUED STOP LOOP6、下列关于FOR循环的说法中,正确的是()。

A 循环变量、初值、终值和步长都必须是数值型B STEP后面的值必须为正数C 初值必须小于终值D 初值必须大于终值7、下列关于DO……LOOP语句的叙述中,不正确的是()。

A DO……LOOP语句采用逻辑表达式来控制循环体执行的次数。

B DO WHILE……LOOP语句与DO UNTIL……LOOP语句中WHILE与UNTIL后面的表达式值为TRUE或非0时,循环继续。

C DO……LOOP WHILE与DO……LOOP UNTIL 语句都至少执行一次循环D DO WHILE…..LOOOP语句与DO UNTIL……LOOP语句可能不执行循环8、下面的循环程序在执行时将()。

FOR I=1 TO 10 STEP 0K=K+2NEXT IA 形成无限循环B 仅循环一次C 语法错误D 一次也不循环9、对于EXIT FOR,叙述正确的是()。

A EXIT FOR语句可以退出任何类型的循环B 一个循环只能有一条EXIT FOR语句C EXIT FOR表示返回到FOR语句执行D 一个FOR循环可以有多条EXIT FOR语句10、对于FOR循环中的初值、终值、步长,下列说法中,正确的是()。

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

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___。

循环练习题及答案

循环练习题及答案

循环练习题及答案练习题一:基础循环1. 编写一个程序,使用循环结构打印出1到10的数字。

2. 编写一个程序,使用循环结构打印出1到100之间所有3的倍数。

3. 编写一个程序,使用循环结构找出1到100之间所有偶数的和。

答案一:1. 程序代码:```pythonfor i in range(1, 11):print(i)```2. 程序代码:```pythonfor i in range(1, 101):if i % 3 == 0:print(i)```3. 程序代码:```pythonsum_even = 0for i in range(1, 101):if i % 2 == 0:sum_even += iprint("偶数之和:", sum_even)```练习题二:条件循环1. 编写一个程序,使用循环结构打印出1到50之间所有5的倍数,直到遇到第一个偶数为止。

2. 编写一个程序,使用循环结构计算并打印出1到100之间所有7的倍数的乘积。

答案二:1. 程序代码:```pythonfor i in range(1, 51):if i % 5 == 0:if i % 2 == 0:print(i)breakprint(i)```2. 程序代码:```pythonproduct = 1for i in range(1, 101):if i % 7 == 0:product *= iprint("7的倍数的乘积:", product)练习题三:嵌套循环1. 编写一个程序,使用嵌套循环打印出如下的三角形图案: ```11 21 2 3...1 2 3 (10)```2. 编写一个程序,使用嵌套循环打印出以下图案:```AB BC C C...Z Z Z ...```答案三:1. 程序代码:```pythonfor i in range(1, 11):for j in range(1, i + 1):print(j, end=' ')print()2. 程序代码:```pythonfor i in range(65, 91): # ASCII值 65 到 90 对应 A 到 Z for j in range(1, i - 64 + 1): # 减去64是因为ASCII 值A是65print(chr(i), end='')print()```结束语:通过上述练习题及答案,我们不仅复习了循环结构的基本概念,还学习了如何使用条件循环和嵌套循环来解决实际问题。

循环结构习题

循环结构习题

循环结构习题循环结构一.选择题1.下面程序段int k=2;while (k=0) {printf(“%d”,k);k--;}则下面描述中正确的是。

A)while循环执行10次B)循环是无限循环C)循环题语句一次也不执行D)循环体语句执行一次2.以下程序段的循环次数是。

for (i=2; i==0; ) printf(“%d” , i--) ;A)无限次B)0次C)1次D)2次4.下面程序的输出结果是。

main ( ){ char c=’A’;int k=0;do {switch (c++) {case ‘A’ : k++ ; break ;case ‘B’ : k-- ;case ‘C’ : k+=2 ; break ;case ‘D’ : k%=2 ; continue ;case ‘E’ : k*=10 ; break ;default : k/=3 ;}k++;} while (c<’G’) ;printf (“k=%d”,k) ;}A)k=3 B)k=4 C)k=2 D)k=05.下面程序的输出结果是。

main ( ){ int x=9;for (; x>0; x--) {if (x%3==0) {prin tf(“%d”,--x);continue ;}}}A)741 B)852 C)963 D)8754216.以下不是死循环的程序段是。

A)int i=100; B)for ( ; ; ) ;while (1) {i=i%100+1 ;if (i>100) break ;}C)int k=0; D)int s=36;do { ++k; } while (k>=0); while (s) ; --s ;7.下述程序段的运行结果是。

int a=1,b=2, c=3, t;while (a<b<="" p="" {t="a;">printf(“%d,%d,%d”,a,b,c);A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,18.下面程序的功能是从键盘输入一组字符,从中统计大写字母和小写字母的个数,选择填空。

循环结构练习题

循环结构练习题

第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次。

循环结构程序设计练习题内含答案

循环结构程序设计练习题内含答案

第三单元循环结构练习题选择题:1、有以下程序执行后的输出结果是( D )。

main( ){ int i,s=0; for(i=1;i<10;i+=2)s+=i+1;printf("%d\n",s);}A.自然数 1~9的累加和B.自然数 1~10 的累加和C.自然数 1~9中的奇数之和D.自然数 1~10 中的偶数之和2、以下关于 for 语句的说法不正确的是( A )。

A. for循环只能用于循环次数已经确定的情况B. for循环是先判断表达式,后执行循环体语句C. for循环中,可以用 break 跳出循环体D. for循环体语句中,可以保含多条语句,但要用花括号括起来3、若 i和 k 都是 int 类型变量,有以下 for语句for(i=0,k=-1;k=1;k++) printf("*****\n");下面关于语句执行情况的叙述中正确的是(d)。

A. 循环体执行两次B.循环体执行一次C.循环体一次也不执行D. 构成无限循环4、以下程序程序的执行后的输出结果是(c)。

main(){int i,t[][3]={9,8,7,6,5,4,3,2,1};for(i=0;i<3;i++) printf(“%d”,t[2 -i][i]);}A.753B.357C.369D.7515、以下程序运行后的输出结果是( A )。

void fun(char*s){ while(*s){ if(*s%2==0)printf(“%c”,*s);s++;}}main(){ char a[]={“good”};fun( a) ;printf(“ n”);}注意:字母 a 的 ASCⅡ码值为 97A.dB.goC.godD.good6、已知 int t=0 ; while ( t=1 ){...}则以下叙述正确的是( B)。

A)循环控制表达式的值为 0B)循环控制表达式的值为 1C)循环控制表达式不合法D)以上说法都不对7、设有以下程序段 Bint x=0,s=0;while (!x!=0 ) s+=++x;printf ( "%d",s );则A)运行程序段后输出0B)运行程序段后输出 1C)程序段中的控制表达式是非法的D)程序段执行无限次8、设 i ,j ,k 均为 int型变量,则执行完下面的 for 语句后, k 的值为( C)。

循环结构习题有答案

循环结构习题有答案

第6章循环结构程序设计1.以下叙述正确的是()A、do-while语句构成的循环不能用其它语句构成的循环代替。

B、d o-while语句构成的循环只能用break语句退出。

C、用do-while语句构成的循环,在while后的表达式为非零时结束循环。

D、用do-while语句构成的循环,在while后的表达式为零时结束循环。

答案:D2.以下程序的输出结果是( )A、10,1 9,2B、9,8 7,6C、10,9 9,0D、10,10 9,1main( ){int x=10,y=10,i;for(i=0;x>8;y=++i)printf("%d,%d",x--,y);}答案:D注解:循环执行2次,由x控制循环的执行次数;输出值为两次循环过程中x每次的自减值和y在for语句的第三个表达式中得到的i自增变化后的值。

3.以下程序的输出结果是( )A、2 0B、3 1C、3 2 1D、2 1 0main( ){ int n=4;while(n--) printf("%d ",--n);}答案:A4.以下程序的输出结果是( )A、#*#*#B、#####C、*****D、*#*#*main( ){ int i;for(i=1;i<6;i++){ if(i%2) {printf("#");continue;}printf("*");}printf("\n");}答案:A注解:循环控制变量i的值从1变化到5,i为1、3、5时,i%2为1,if语句的条件为真,则执行if后的子句,输出#,然后执行continue语句,终止本次循环的执行,进入下一轮循环,i为2、4时,i%2为0,if语句的条件为假,则if后的子句并不执行,直接输出*,所以最后的输出为#*#*#。

5.以下程序的输出结果是( )A、编译不通过,无输出B、acegC、acegiD、abcdefghimain( ){ int i;for(i='A';i<'I';i++,i++) printf("%c",i+32);printf(" \n");}答案:B注解:循环控制变量i的取值为A、C、E、G,将它们转化为小写字母的格式输出。

循环结构练习题

循环结构练习题

1、编写一个程序计算1到正整数n之间的奇数之和以及偶数之和。

2、一百万富翁遇到一陌生人,陌生人找他谈一个换钱的计划,该计划如下:我每天给你十万元,而你第一天只需给我一分钱,第二天我仍给你十万元,你给我二分钱,第三天我仍给你十万元,你给我四分钱,……,你每天给我的钱是前一天的两倍,直到满一个月(30天),百万富翁很高兴,欣然接受了这个契约。

请编写一个程序计算这一个月中陌生人给了百万富翁多少钱,百万富翁给陌生人多少钱。

3、从键盘输入一位整数,当输入是1~7时,显示对应的英文星期名称的简写:1:MON 2:TUE 3:WED 4:THU 5:FRI 6:SA T 7:SUN直到输入数0为止。

编写一个程序实现上述功能。

4、编写一个程序求出200~300之间的数,且满足条件:他们三个数字之积为42,三个数字之和为12。

5、编写一个程序求出满足下列条件的四位数:该数是一个完全平方数;第一、三位数字之和为10,第二、四位数字之积为12。

6、已知n/2是完全平方数,n/3是立方数,编写一个程序求最小的正数n。

7、编写一个程序求1-1/2+1/3-1/4+……+1/99-1/100的值。

8、学校有近千名学生,在操场上排队,5人一行余2人,7人一行余3人,3人一行余1人,编写一个程序求该校的学生人数。

9、小明今年12岁。

她母亲比他大20岁。

编写一个程序计算出她母亲在几年后比他的年龄大一倍,那时他们俩人的年龄各多少。

10、编写一个程序计算用一角、二角和五角凑成一元有多少种组合,并打印出每种组合。

11、一个正整数与3的和是5的倍数,与3的差是6的倍数,编写一个程序求符合条件的最小数。

12、已知四位数a2b3能被23整除,编写一个程序求此四位数。

13、编写一个程序对于用户输入的正偶数n,将其分解成两个素数之和。

14、鸡兔共有30只,脚共有90只,编写一个程序计算鸡兔各有多少只。

15、已知xyz+yzz=532,其中x、y、z都是数字,编写一个程序求出x、y、z分别代表什么数字。

循环结构练习题

循环结构练习题

循环结构练习题循环结构是计算机编程中十分重要的一种结构,它可以重复执行一段代码块,实现一定的逻辑功能。

为了帮助读者更好地理解和掌握循环结构,本文将提供一些循环结构的练习题,希望能够帮助读者提升编程技能。

1. 题目一打印从1到100的所有偶数。

解答:```pythonfor i in range(1, 101):if i % 2 == 0:print(i)```2. 题目二计算并输出1到100的所有奇数的和。

解答:```pythonsum_odd = 0for i in range(1, 101):if i % 2 != 0:sum_odd += iprint("1到100的所有奇数的和为:", sum_odd)```3. 题目三打印出九九乘法表。

解答:```pythonfor i in range(1, 10):for j in range(1, i+1):print(i, "*", j, "=", i*j, end="\t")print()```4. 题目四计算并输出1到100的所有能被3整除的数的平均值。

解答:```pythoncount = 0sum_multiple_of_three = 0for i in range(1, 101):if i % 3 == 0:count += 1sum_multiple_of_three += iaverage = sum_multiple_of_three / countprint("1到100的所有能被3整除的数的平均值为:", average) ```5. 题目五使用while循环实现从1加到100的和。

解答:```pythoni = 1sum = 0while i <= 100:sum += ii += 1print("1加到100的和为:", sum)```通过以上练习题,我们可以运用循环结构解决不同的问题。

循环结构练习题

循环结构练习题

第13题图 循环结构练习题1、Visual Basic 程序段如下:该程序段运行后,变量s 的值是( ) s=0 For k=1 To 5 s=s+5 Next k (A ) 0 (B ) 5 (C ) 10 (D ) 252、应用计算机程序解决数学问题“求一元二次方程实数解”的步骤,通常是( )。

A. 设计算法→编写程序B. 编写程序→调试程序→检测结果C. 分析问题→设计算法→编写程序→调试运行→检测结果D. 编写程序→调试运行3、“=”在Visual Basic 程序中既可以表示赋值操作,也可以表示关系运算。

右图程序段中“=”作用和⑤相同的是 A .① B .② C .③ D .④4、用计算机解决问题时,首先应该确定程序“做什么?”,然后再确定程序“如何做?”请问“如何做?”是属于用计算机解决问题的哪一个步骤?( )A .分析问题B .设计算法C .编写程序D 、调试程序5、流程图中表示判断的是( )。

A.矩形框 B.菱形框 C.圆形框 D.椭圆形框6、任何复杂的算法都可以用三种基本结构组成,下列不属于基本结构的是( )A .顺序结构B .选择结构C .层次结构D .循环结构 7、执行完循环语句For x=1 to 100 step 2 ……Next x 后,x 的值是( )A .101B .100C .99D .98 8、下列给出的赋值语句中正确的是( )。

A .4 = MB .-M =MC .B=A -3D .x + y = 0 9、以下程序中的循环体执行的次数是( )。

For A=1 To 100 Step 2 S=S+A Next A Print SA.48 B.49 C.50 D.5110、下列程序代码中,循环体执行的次数是( )。

y = 1Do While y <= 6y = y+yLoopA、2B、3C、4D、511、有如下VB程序,其结构为( )。

Dim i As Integer, sum As Doublesum=0For i = 1 To 100sum =sum+1/iNext iPrint "sum= " & sumA、顺序结构B、分支结构C、循环结构D、选择结构12、阅读如下VB程序段,运行程序后,当n的值为5时,a的值为______。

第五章循环结构习题与答案

第五章循环结构习题与答案

第五章循环结构一、选择题1)下面有关for循环的正确描述是< )A)for循环只能用于循环次数已经确定的情况B)for循环是先执行循环体语句,后判断表达式C)在for循环中,不能用break语句跳出循环体D)for循环的循环体中,可以包含多条语句,但必须用花括号括起来2)对表达式for<表达式1。

表达式3)可理解为A)for<表达式1。

0。

表达式3)B)for<表达式1。

1。

表达式3)C)for<表达式1。

表达式1。

表达式3)D)for<表达式1。

表达式3。

表达式3)3)以下描述中正确的是< )A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B)do-while循环由do开始,用while结束,在while<表达式)后面不能写分号C)在do-while循环体中,是先执行一次循环,再进行判断D)do-while循环中,根据情况可以省略while4)以下程序段的描述,正确的是< )x=-1。

do{x=x*x。

}while(!x>。

A)是死循环B)循环执行两次C)循环执行一次D)有语法错误5)设有以下程序段int x=0,s=0。

while(!x!=0>s+=++x。

printf(″%d″,s>。

则< )A)运行程序段后输出0B)运行程序段后输出1C)程序段中的控制表达式是非法的 D)程序段执行无限次6)有如下程序#include<stdio.h>void main(>{ int n=9。

while(n>6>{n--。

printf(″%d″,n>。

}}该程序的输出结果是< )A)987 B)876C)8765 D)98767)在下列选项中,没有构成死循环的是< )A)int i=100。

B)for<。

)。

while<1){i=i%100+1。

循环练习题

循环练习题

第三部分循环结构一、基础题【1】有以下程序段:int k,j,s;for ( k=2; k<6; k++,k++){ s =1;for (j=k;j<6;j++)s +=j;}printf(“%d \n”,s);程序段的输出结果是(A)9 (B)1 (C)11 (D)10 【2】有以下程序段:int i,j,m;for( i=1;i<=15;i+=4)for(j=3;j<=19;j+=4) m++;printf(“%d \n”,m);程序段的输出结果是(A)12 (B)15 (C)20 (D)25 【3】有以下程序段:int n =10;while (n>7){ n--;printf(“%d \n”,n);}程序段的输出结果是(A)10 (B)9 (C)10 (D)99 8 9 88 7 8 77 6【4】有以下程序段:int x=3;do{printf(“%3d”, x-=2);}while(! (--x));程序段的输出结果是(A)1 (B)30 (C)1 -2 (D)死循环【5】有以下程序段:#include <stdio.h>min(){int i,sum;for( i =1;i<6;i++) sum +=sum;printf(“%d\n”,sum);} 程序段的输出结果是(A)15 (B)14 (C)不确定(D)0【6】有以下程序段:#include <stdio.h>min(){int y=10;for ( ; y>0; y--)if( y%3= = 0){printf(“%d”,--y); continue;}程序段的输出结果是(A)741 (B)852 (C)963 (D)875421 【7】有以下程序段:int x;for (x =3; x<6 ; x++)printf((x%2)?(“**%d”):(“##%d \n”) , x );程序段的输出结果是(A)**3 (B)##3 (C)##3 (D)**3##4##4 **4 **4##5 **5**5 ##5【8】有以下程序段:#include<stdio.h>Main(){ int i;For( i=1;i<=5;i++){ if(i%2) printf(“*”);Else continue;Printf(“#”);}Printf(“$\n”);}程序段的输出结果是(A)*#*#*#$ (B)#*#*#*$(C)*#*#$ (D)#*#*$【9】以下叙述中正确的是()(A)do-while语句构成的循环不能用其他语句构成的循环来代替 (B) do-while 语句构成的循环只能用break 语句退出 (C) 用do-while 语句构成循环时,只有在while 后的表达式为非零时结束循环(D) 用do-while 语句构成循环时,只有在while 后的表达式为零时结束循环 【10】以下程序的输出结果是#include<stdio.h> main() { int x=2; while(x--); printf(“%d \n”,x); } 【11】以下程序的输出结果是 int i = 0, sum =i ; do {sum+=i++;}while (i<5); printf(“%d \n”,sum); 答案:1.D; 2.C; 3.D; 4.C; 5.C; 6.B; 7.D 8.A; 9.B 10.-1 11.10. 二、提高题 【1】设x 和y 均为int 型变量则执行下面的循环后,y 的值为 。

C语言程序设计习题集第4章循环结构(答案)

C语言程序设计习题集第4章循环结构(答案)

C语言程序设计习题集第4章循环结构(答案)第4章循环结构题择一、选1、有以下程序段intk=0;while(k=1)k++;是(A)while循环执行的次数A)无限次B)有语法错,不能执行C)一次也不执行D)执行1次,t的值为0i nt类型,进入下面的循环之2、t为前while(t=1){??}则以下叙述中正确的是(B)A)循环控制表达式的值为0B)循环控制表达式的值为 1C)循环控制表达式不合法D)以上说法都不对3、在C程序中,与while(m)中表达式m完全等价的是(B)A)m==0B)m!=0C)m==1D)m!=14、有以下程序,程序运行后的输出结果是(C)。

main(){inti=1,sum=0;while(i<=4)sum=sum+i;i=i+1;}printf(“%n”d,sum);}A)4B)5C)10D)死循环5、有以下程序,程序运行后的输出结果是(D)。

main(){inti=1,sum=0;while(i<=4)sum=sum+i;i=i+1;printf(“%n”d,sum);}A)4B)5C)10D)死循环6、有如下程序main(){intn=9;while(n>6){n--;printf(“%d”,n);}}该程序段的输出结果是(B)A)987B)876C)8765D)98767、以下程序的输出结果是(B)main(){intnum=0;while(num<=2){num++;printf(“%n”d,num);}}A)1B)1C)1D)l22248、有以下程序,若运行时输入3.62.4<回车>,则输出的结果是(B)。

main(){floatx,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(“n%”f,y);}A)1.500000B)1.600000C)2.000000D)2.4000009、执行以下程序段时x=-1;do{x=x*x;}while(!x);则下面描述正确的是(A)A)循环体将执行一次B)循环体将执行两次C)循环体将执行无限次D)系统将提示有语法错误10、有以下程序段其输出结果是(C)intx=3;do{printf("%d",x-=2);}while(!(--x));A)1B)30C)1-2D)死循环11、有如下程序main(){intx=23;do{printf(“%d”,x);x--;}while(!x);}该程序的执行结果是(B)A)321B)23C)不输出任何内容D)陷入死循环12、有以下程序段intn=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345&&n<3); 此处do—while循环的结束条件是(D)A)P的值不等于12345并且n的值小于3B)P的值等于12345并且n的值大于等于3C)P的值不等于12345或者n的值小于3D)P的值等于12345或者n的值大于等于313、以下不构成无限循环的语句或语句组是(A)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+=i;14、若i为整型变量,则以下循环执行的次数是(B) for(i=2;i==0;)printf(“%-d-”);,iA)无限次B)0次C)1次D)2次15、执行语句for(i=1;i++<4;)后,变量i的值是(C)A)3B)4C)5D)不定16、有以下程序main(){inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的运行结果是(C)A)741B)963C)852D)87542117、以下程序执行后sum的值是(C)A)15B)14C)不确定D)0main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf(“n%”d,sum);}18、有如下程序{inti,sum=0;for(i=1;i<=3;sum++)sum+=i;printf(“%n”d,sum);}该程序的执行结果是(C)A)6B)3C)死循环D)019、执行语句for(i=3;i>0;i--);i--;后,变量i的值是(C)A)0B)10C)-1D)120、执行下面程序片段的结果是(A)。

循环结构习题有答案

循环结构习题有答案

第6章循环结构程序设计1.以下叙述正确的是()A、do-while语句构成的循环不能用其它语句构成的循环代替。

B、d o-while语句构成的循环只能用break语句退出。

C、用do-while语句构成的循环,在while后的表达式为非零时结束循环。

D、用do-while语句构成的循环,在while后的表达式为零时结束循环。

答案:D2.以下程序的输出结果是( )A、10,1 9,2B、9,8 7,6C、10,9 9,0D、10,10 9,1main( ){int x=10,y=10,i;for(i=0;x>8;y=++i)printf("%d,%d",x--,y);}答案:D注解:循环执行2次,由x控制循环的执行次数;输出值为两次循环过程中x每次的自减值和y在for语句的第三个表达式中得到的i自增变化后的值。

3.以下程序的输出结果是( )A、2 0B、3 1C、3 2 1D、2 1 0main( ){ int n=4;while(n--) printf("%d ",--n);}答案:A4.以下程序的输出结果是( )A、#*#*#B、#####C、*****D、*#*#*main( ){ int i;for(i=1;i<6;i++){ if(i%2) {printf("#");continue;}printf("*");}printf("\n");}答案:A注解:循环控制变量i的值从1变化到5,i为1、3、5时,i%2为1,if语句的条件为真,则执行if后的子句,输出#,然后执行continue语句,终止本次循环的执行,进入下一轮循环,i为2、4时,i%2为0,if语句的条件为假,则if后的子句并不执行,直接输出*,所以最后的输出为#*#*#。

5.以下程序的输出结果是( )A、编译不通过,无输出B、acegC、acegiD、abcdefghimain( ){ int i;for(i='A';i<'I';i++,i++) printf("%c",i+32);printf(" \n");}答案:B注解:循环控制变量i的取值为A、C、E、G,将它们转化为小写字母的格式输出。

循环结构程序设计课后习题及答案

循环结构程序设计课后习题及答案

循环结构程序设计习题及答案1、循环语句的三要素分别是、、;2、for语句括号内的3个表达式的作用分别是、、;3、在2层循环嵌套中,外层循环语句的每个执行周期中,内层循环语句都要完整地,只有当时,才结束整个循环;4、在循环结构中,break语句的作用是;continue语句的作用是;5、当循环条件一开始就为假时,对于while语句、do…while语句、for语句,分别执行循环体次、次、次;6、下面程序段的执行次数:int a=0;whilea=0{ printf"good\n";a--;}7、下面程序段的执行次数:int a=0;whilea==0{ printf"good\n";a--;}8、下面程序段的执行次数:int a=1;whilea=1{ printf"good\n";a++;}9、下面程序段的执行次数:int a=1;whilea==1{ printf"good\n";a++;}10、下列程序段的运行结果是;fori=5;i>=0;i--printf“%d “,i;11、下列程序段的运行结果是;forn=1;n<20;n=n+3printf“%d “,n;12、下列程序段的运行结果是;for ch='a' ;ch<='e' ;ch++printf“%d“,ch-97;13、下列程序段的运行结果是;fori=1,j=5 ; i<j ; i++,j--printf“i=%d j=%d\n“,i,j;14、下列程序段的运行结果是;forn=1 ; nn<20 ; n++printf“%d \n“,n+n;二、选择题1、下列程序段中,死循环的是A、for i=1; ;B、i=32767;{ if++i%2==0 continue; doif++i%3==0 break; { ifi<0 break;} }while++i;C、i=1;D、fori=1; ;whilei--; if++i<10 break;2、下列程序段中,不是死循环的是A、int i=10;B、for ; 1;while1{ i=i%100+1;ifi>100 break;}C、int a=0;D、int x=21;do whilex{ ++a; --x;}whilea>=0;三、阅读程序,写出程序运行结果;1、include"stdio.h"main{int i=0,sum=1;do{sum+=i;i++;}whilei<5;printf"%d\n",sum;}程序运行结果:2、include"stdio.h"main{int a,b;b=10;a=1;whilea<=ba=2;printf"%d\n",a;}程序运行结果:3、include"stdio.h"main{int x=2;whilex--;printf"%d\n",x;}程序运行结果:4、include"stdio.h"main{int x=3;do{printf"%d\n",x-=2;}whilex;}程序运行结果:5、include"stdio.h"main{int i;fori=1;i<=5;i++switchi%5{case 0:printf"";break;case 1:printf"";break;case 2:printf"&";break;default:printf"\n";}}程序运行结果:6、include"stdio.h"main{char ch;whilech=getchar=''putchar++ch;}程序运行结果:7、include"stdio.h"main{int i,j;fori=0;i<=5;i++{forj=1;j<10;j++ifj==5 break;ifi<2 continue;ifi>2 break;printf"j=%d\n",j;}printf"i=%d\n",i;}程序运行结果:8、include"stdio.h"main{int x ,y;x=37,y=13;whilex=y{ifx>yx=x-y;ify>xy=y-x;}printf"x=%d\n",x;}程序运行结果:四、编程题1、输出下列图案12 43 6 94 8 12 165 10 15 20 252、输出下列图案3、编程求2-4+6-8+…-100+102的值;4、输出公元1500年至2500年所有的闰年的年号;5、从键盘上输入若干学生的C语言成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入;循环结构程序设计参考答案一、填空题、1.循环条件循环体循环控制变量2.循环变量赋初值循环测试条件循环变量更新3.执行整个周期外层循环条件为假4.提前结束包含它的循环语句的执行提前结束本次循环周期开始执行下一次循环周期5.0 1 06.07. 18.无数9. 110.5432111.147****161912.0123413.I=1,j=5I=2,j=414.14916二、选择题1. B2. D三、程序运行结果1.112.163.-14.15.&6.bgufsoppo7.i=5J=38.x=1四、编程题1.include"stdio.h"main{int i,j;fori=1;i<=5;i++{forj=1;j<=i;j++printf"%d ",ij;printf"\n";}}2.include"stdio.h"main{int i,j;fori=5;i>=1;i-=2{forj=1;j<=i;j++printf"";printf"\n";}}3.include"stdio.h"main{int i,y=1,s=0;fori=2;i<=102;i+=2{ s=s+yi;y=-1; y=-y; }printf"2-4+6+...-100+102=%d",y;}4.include"stdio.h"main{int i;fori=1500;i<=2500;i++ifi%4==0&&i%100=0||i%400==0printf"%d ",i;}5.include"stdio.h"main{float cj,min,max=0;printf"请输入学生成绩,输入负数时结束:\n";scanf"%f",&cj;min=cj;whilecj>=0{ifcj>maxmax=cj;ifcj<minmin=cj;scanf"%f",&cj;}printf"max=%f\nmin=%f",max,min; }。

循环结构练习题

循环结构练习题

1、求s=11+22+33+..+NN
2、鸡兔同笼,头30,脚90, 求鸡兔各几只?
3、输入一个整数,若是素数,输出“YES”,否则输出“NO”
4、任给一个自然数n,求出这个自然数不同因数的个数。

如:n=6时,因为1,2,3,6这四个数均是6的因数,故输出为
total=4。

5、输入一列图形(字母金字塔)
a
a b
a b c
. .
a b c ……y z
6、把一张一元钞票换成一分,二分和五分的硬币,每种至少一枚。

问有哪几种换法?
7、百鸡问题:一只公鸡值5元,一只母鸡值3元,而1元可买3只小鸡。

现有100元钱,想买100只鸡。

问可买公鸡、母鸡、小鸡各几只?
8、某人想将手中的一张面值100元的人民币换成10元、5元、2元和1元面值的票子。

要求换正好40张,且每种票子至少一张。

问:有几种换法?应适当考虑减少重复次数。

9、有一堆100多个的零件,若三个三个数,剩二个;若五个五个数,剩三个;若七个七个数,剩五个。

请你编一个程序计算出这堆零件至少是多少个?
10、输入二个正整数,求出它们的最大公约数和最小公倍数。

11、求1-100之间的所有素数(素数是大于1,且除1和它本身外,不能被任何其它整数所整除的整数)。

12.小球从100高处自由落下,着地后又弹回高度的一半再落下。

求第20次着地时, 小球共通过多少路程?。

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

循环结构一.选择题1.下面程序段int k=2;while (k=0) {printf(“%d”,k);k--;}则下面描述中正确的是。

A)while循环执行10次B)循环是无限循环C)循环题语句一次也不执行D)循环体语句执行一次2.以下程序段的循环次数是。

for (i=2; i==0; ) printf(“%d” , i--) ;A)无限次B)0次C)1次D)2次4.下面程序的输出结果是。

main ( ){ char c=’A’;int k=0;do {switch (c++) {case ‘A’ : k++ ; break ;case ‘B’ : k-- ;case ‘C’ : k+=2 ; break ;case ‘D’ : k%=2 ; continue ;case ‘E’ : k*=10 ; break ;default : k/=3 ;}k++;} while (c<’G’) ;printf (“k=%d”,k) ;}A)k=3 B)k=4 C)k=2 D)k=05.下面程序的输出结果是。

main ( ){ int x=9;for (; x>0; x--) {if (x%3==0) {prin tf(“%d”,--x);continue ;}}}A)741 B)852 C)963 D)8754216.以下不是死循环的程序段是。

A)int i=100; B)for ( ; ; ) ;while (1) {i=i%100+1 ;if (i>100) break ;}C)int k=0; D)int s=36;do { ++k; } while (k>=0); while (s) ; --s ;7.下述程序段的运行结果是。

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)1,2,0 B)2,1,0 C)1,2,1 D)2,1,18.下面程序的功能是从键盘输入一组字符,从中统计大写字母和小写字母的个数,选择填空。

main ( ){ int m=0,n=0;char c;while ((【】) ! ’\n’){if (c>=’A’ && c<=’Z’) m++;if (c>=’a’ && c<=’z’) n++;}}A)c=getchar( ) B)getchar( ) C)c==getchar( ) D)sca nf(“%c”,&c)9.下述语句执行后,变量k的值是。

int k=1;while (k++<10);A)10 B)11 C)9 D)无限循环,值不定10.下面程序的输出结果是。

main ( ){ int k=0,m=0,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) ;A)k=0,m=3 B)k=0,m=5 C)k=1,m=3 D)k=1,m=511.下面for循环语句。

int i,k;for (i=0, k=-1; k=1; i++, k++)printf(“***”);A)判断循环结束的条件非法B)是无限循环C)只循环一次D)一次也不循环12.语句while (!E); 括号中的表达式!E等价于。

A)E==0 B)E!=1 C)E!=0 D)E==113.以下是死循环的程序段是。

A)for (i=1; ; ) {if (i++%2==0) continue ;if (i++%3==0) break ;}B)i=32767;do { if (i<0) break ; } while (++i) ;C)for (i=1 ; ;) if (++I<10) continue ;D) i=1 ; while (i--);14.执行语句for (i=1;i++<4;) ; 后变量i的值是。

A)3 B)4 C)5 D)不定15.以下程序段。

x=-1;do{ x=x*x; }while (!x);A)是死循环B)循环执行2次C)循环执行1次D)有语法错误16.下面程序的功能是在输入的一批正数中求最大者,输入0结束循环,选择填空。

main ( ){ int a,max=0;scanf(“%d”,&a);while (【】) {if (max<a) max=a ;scanf (“%d”,&a);}printf(“%d”,max);}A)a==0 B)a C)!a==1 D)!a17.以下不是死循环的语句是。

A)for (y=9,x=1;x>++y;x=i++) i=x ;B)for ( ; ; x++=i ) ;C)while (1) { x++ ; }D)for (i=10 ; ; i--) sum+=i ;18.下面程序段的运行结果是。

x=y=0;while (x<15) y++,x+=++y ;printf(“%d,%d”,y,x);A)20,7 B)6,12 C)20,8 D)8,2019.以下for循环的执行次数是。

for (x=0,y=0; (y=123) && (x<4) ; x++) ;A)无限循环B)循环次数不定C)4次D)3次20.若运行以下程序时,输入2473↙,则程序的运行结果是。

main ( ){ int c;while ((c=getchar( )) ! =’\n’)switch (c-‘2’) {case 0 :case 1 : putchar (c+4) ;case 2 : putchar (c+4) ; break ;case 3 : putchar (c+3) ;default : putchar (c+2) ; break ;}printf(“\n”);}A)668977 B)668966 C)D)6688766二.填空题语言三个循环语句分别是语句,语句和语句。

2.至少执行一次循环体的循环语句是。

3.循环功能最强的循环语句是。

5.程序段for (a=1,i=-1; -1<i<1; i++){ a++ ; printf(“%2d”,a); } ;printf(“%2d”,i) ;的运行结果是。

三.判断题1.在while循环中允许使用嵌套循环,但只能是嵌套while循环。

【】2.在实际编程中,do-while循环完全可以用for循环替换。

【】语句只能用于三个循环语句中。

【】4.在不得已的情况下(例如提高程序运行效率),才使用goto语句。

【】5.语句标号与C语言标识符的语法规定是完全一样的。

【】循环的三个表达式可以任意省略,while,do-while也是如此。

【】允许从外部转到循环体内。

【】的循环控制条件比do-while的循环控制条件严格。

【】循环中,根据情况可以省略while。

【】循环的while后的分号可以省略。

【】四.程序阅读题1.写出下面程序运行的结果。

main ( ){ int x,i ;for (i=1 ; i<=100 ; i++) {x=i;if (++x%2==0)if (++x%3==0)if(++x%7==0)printf(“%d ”,x) ;}}2.写出下面程序运行的结果。

main ( ){ int i,b,k=0 ;for (i=1; i<=5 ; i++) {b=i%2;while (b--=0) k++ ;}printf(“%d,%d”,k,b);}3.写出下面程序运行的结果。

main ( ){ int a,b;for (a=1,b=1 ; a<=100 ; a++) {if (b>=20) break;if (b%3==1) { b+=3 ; continue ; } b-=5;}printf(“%d\n”,a);}4.写出下面程序运行的结果。

main ( ){ int k=1,n=263 ;do { k*= n%10 ; n/=10 ; } while (n) ; printf(“%d\n”,k);}5.写出下面程序运行的结果。

main ( ){ int i=5 ;do {switch (i%2) {case 4 : i-- ; break ;case 6 : i-- ; continue ;}i-- ; i-- ;printf(“%d”,i);}while (i>0) ;}6.写出下面程序运行的结果。

main ( ){ int i,j;for (i=0;i<3;i++,i++) {for (j=4 ; j>=0; j--) {if ((j+i)%2) {j-- ;printf(“%d,”,j);continue ;}--i ;j-- ;printf(“%d,”,j) ;}}}7.写出下面程序运行的结果。

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) ;}8.写出下面程序运行的结果。

main ( ){ int i,j,k=19;while (i=k-1) {k-=3 ;if (k%5==0) { i++ ; continue ; } else if (k<5) break ;i++;}printf(“i=%d,k=%d\n”,i,k);}9.写出下面程序运行的结果。

main ( ){ int y=2,a=1;while (y--!=-1)do {a++ ;} while (y--) ;printf(“%d,%d\n”,a,y);}10.写出下面程序运行的结果。

main ( ){ int i,k=0;for (i=1; ; i++) {k++ ;while (k<i*i) {k++ ;if (k%3==0) goto loop ;}}loop:printf(“%d,%d\n”,i,k);}六.程序填空题1.下述程序用“碾转相除法”计算两个整数m和n的最大公约数。

该方法的基本思想是计算m 和n相除的余数,如果余数为0则结束,此时的被除数就是最大公约数。

否则,将除数作为新的被除数,余数作为新的除数,继续计算m和n相除的余数,判断是否为0,等等,请填(3)空使程序完整。

main ( ){ int m,n,w;scanf(“%d,%d”,&m,&n);while (n) {w=【1 】;m=【2 】;n=【3 】;}printf(“%d”,m);}2.下面程序的功能是输出1至100之间每位数的乘积大于每位数的和的数,请填(3)空使程序完整。

相关文档
最新文档