《循环语句》习题
- 格式:doc
- 大小:177.50 KB
- 文档页数:9
循环习题集锦一.选择题1.for(i=0;i<10;i++);结束后,i的值是;A 9B 10C 11D 122.下面程序的循环次数是:#include<>void main(){int k=0;while(k<10){if(k<1) continue;if(k==5) break;k++;}printf(“k=%d\n”,k);}A. 5 B 6 C 4 D 死循环,不能确定循环次数3.下面程序的输出结果是()#include<>void main(){int s,k;for(s=1,k=2;k<5;k++)s=s+k;printf(“%d\n”,s);}A 1B 9C 10D 154.要使下面程序输出10个整数,则在下画线处填入正确的数是:#include<>void main(){int i;for(i=0;i<= ;)printf(“i=%d\n”,i=i+2);} (显示的是:2,4,6,8,10,12, (20)A 9B 10C 18D 205.运行下面程序:#include<>void main(){int i=10,j=0;do{j=j+i; /*第一:10,第二:19第三:27第四:34第五:40*/i--;}while(i>5);printf(“%d\n”,j);}输出结果是:A 45B 40C 34D 556.运行下面程序#include <>main(){int k=0,a=1;while(k<10){for( ; ;){ if((k%10)==0)/*当循环开始的时候时,k=0,此时和10取3余的结果就等于0,就跳出了for循环开始下面的循环*/ break;elsek--;}k=k+11;a=a+k;printf(“k=%d \n a=%d\n”,k,a);}则输出的结果是()A 21 32B 21 33C 11 12D 10 117.以下叙述正确的是:A. do---while语句构成的循环不能用其他语句构成的循环来代替。
循环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循环的循环体语句中,可以包含多条语句。
一、单选题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等价于()。
js循环语句习题1、打印出下列图形 ●●●●●●●● ●●●●●●●● ●●●●●●●● ●●●●●●●● ●●●●●●●● ●●●●●●●● ●●●●●●●●//循环的⾏数 for(var x=1;x<=7;x++){ //循环的列数 for(var y=1;y<=8;y++){ document.write('●'); } //循环完每⼀⾏输出⼀个换⾏ document.write('<br />'); } ● ●● ●●● ●●●● ●●●●● for(var x=1;x<=5;x++){ for(var y=1;y<=x;y++){ document.write('●'); } document.write('<br />'); } ●●●●● ●●●● ●●● ●● ● for(var i=5;i>=1;i--){ for(var j=1;j<=i;j++){ document.write("●") } document.write("<br>")} □□□□● □□□●● □□●●● □●●●● ●●●●●for(var i=1;i<=5;i++){ for(var a=1;a<=5-i;a++){ document.write("□"); } for(var b=1;b<=i;b++){ document.write("●"); } document.write("<br>");}2、公园⾥有⼀只猴⼦和⼀堆桃⼦,猴⼦每天吃掉桃⼦总数的⼀半,把剩下⼀半中扔掉⼀个坏的。
到第七天的时候,猴⼦睁开眼发现只剩下⼀个桃⼦。
问公园⾥刚开始有多少个桃⼦?for循环//最后⼀天剩下⼀个桃⼦ var peach= 1; //反推 for(var i=1;i<=6;i++){ peach=(peach+1)*2; } console.log("公园⾥刚开始有"+peach+"个桃⼦");while循环var peach=1,a=1;while(a<=6){ peach=(peach+1)*2; a++;}console.log("公园⾥刚开始有"+peach+"个桃⼦");do-while循环var peach=1,a=1;do{ peach=(peach+1)*2; a++;}while (a<=6)console.log("公园⾥刚开始有"+peach+"个桃⼦");3、循环输出1~100之间数字的和var sum=0; for(var i=1;i<=100;i++){ sum+=i; }document.write(sum);4、1~100奇数和var sum=0; for(var i=1;i<=100;i+=2){ sum+=i; }document.write(sum+"<br />");5、1~100偶数和var sum=0; for(var i=2;i<=100;i+=2){ sum+=i; }document.write(sum);6、99乘法表倒着写for(var i=9;i>=1;i--){ for(var j=1;j<=i;j++){ document.write(i+"x"+j+"="+i*j+"  ") } document.write("<br>")}7、⼩明单位发了100元的购物卡,⼩明到超市买三类洗化⽤品,洗发⽔(15元),⾹皂(2元),⽛刷(5元)。
循环习题集锦一.选择题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语句跳出循环体。
for循环语句练习题在计算机编程中,循环语句是一种重要的工具,能够帮助我们在程序中重复执行某些特定的操作。
其中,for循环语句是常用的一种形式,用于对一个代码块进行指定次数的重复执行。
在本文中,我们将通过一些练习题来巩固和拓展自己对for循环语句的理解和应用。
练习题1:输出1到10的整数请使用for循环语句输出1到10的整数,请将结果打印在屏幕上。
```pythonfor i in range(1, 11):print(i)```练习题2:计算1到10的整数之和请使用for循环语句计算1到10的整数之和,并将结果打印在屏幕上。
```pythonsum = 0for i in range(1, 11):sum += iprint("1到10的整数之和为:", sum)```练习题3:输出1到100的偶数请使用for循环语句输出1到100的所有偶数,请将结果打印在屏幕上。
```pythonfor i in range(2, 101, 2):print(i)```练习题4:计算1到100的奇数之和请使用for循环语句计算1到100的所有奇数之和,并将结果打印在屏幕上。
```pythonsum = 0for i in range(1, 101, 2):sum += iprint("1到100的奇数之和为:", sum)```练习题5:输出10以内的乘法口诀表请使用for循环语句输出10以内的乘法口诀表,请将结果打印在屏幕上。
```pythonfor i in range(1, 11):for j in range(1, i + 1):print(i, "*", j, "=", i * j, end=" ")print()```练习题6:计算阶乘请使用for循环语句计算给定数字的阶乘,并将结果打印在屏幕上。
[教材习题研讨]P21思考答案:当计算机遇到UNTIL语句时,先执行一次循环体,再判断是否满足条件,若不满足,再执行循环体,然后再检查是否满足条件,如此反复.当满足条件时,将不执行循环体,转而执行LOOP UNTIL后的语句. 方法点拨WHILE语句称为前测试型,UNTIL语句称为后测试型.P22思考答案:课本上的算法可以改进.将循环条件“WHILE d<=n-1 AND flag=1”改为“WHILE d<=SQR(n)AND flag=1”即可.改进后循环次数少了,提高了解题速度.P23练习1.解:a=1b=2c=0.005DOx=(a+b)/2f(a)=a∧2-2f(x)=x∧2-2IF f(x)=0 THENPRINT “方程根为:”;x ELSEIF f(a)*f(x)<0 THENb=x若改为INPUT“请输入a、b的值:”;a、bINPUT “请输入误差范围c:”;c则该题的区间范围、误差范围还可以改变、限制.ELSEa=xEND IFEND IFLOOP UNTIL ABS(a-b)<=c PRINT “方程的近似根为:”;x END|a-b|<=c不成立时循环,成立时则停止循环.2.解:x=1WHILE x<=20y=x∧2-3*x+5PRINT “x=”;xPRINT “y=”;yx=x+1WENDEND计算一个、输出一个,再计算、输出下一个,如此反复.3.解:t=1i=1INPUT “请输入n的值:”;n DOt=t*ii=i+1LOOP UNTIL i>nPRINT “这个数的阶乘为:”;t 也可以用WHILE语句WHILE i<=nt=t*ii=i+1WEND输出语句可写成PRINT n;“!=”;tENDP 23 习题1.2A 组1.解:(1)输入你的名字,输出你的名字. (2)A =1 A =1×2=2 A =2×3=6 A =6×4=24 A =24×5=120 输出 5! 是120正确理解输入语句、输出语句和赋值语句.2.解:INPUT “梯形的上底、下底、高分别为:”;a ,b ,h c =(a +b )/2 S =c *hPRINT “梯形的面积S =”;S ENDa ,b ,h 可分别输入,写成三个INPUT 语句. 3.解:INPUT “请输入两个整数a ,b :”;a ,b IF a MOD b =0 THENPRINT “a 能被b 整除” MOD 表示取余数,整除即余数为0.输出语句可以写成 ELSEPRINT “a 不能被b 整除” END IF END4.解:INPUT “请输入加数的个数n :”;nt =1 i =2 PRINT a ;“能被”;b ;“整除”sum=0 DOsum=sum+i t =t +1i =tt 1s um=s um+i 是累加求和,t =t +1表示计数器.LOOP UNTIL t >n PRINT “和s =”;sum END可以用WHILE 语句,条件是t <=n .5.解:s =1t =1 p =1 i =1 j =1 k =1INPUT “请输入n ,m 的值:”;n ,m DOs =s *i i =i +1LOOP UNTIL i >n设置三个计数器,三个独立的循环结构.DOt =t *j j =j +1可以写成WHILE 语句,同学们自己写出.LOOP UNTIL j>mDOp=p*kk=k+1LOOP UNTIL k>n-ma=t*pb=s/aPRINT “组合数的值为:”;b ENDB组1.解:R=0.5a=1000i=1DOa=a*(1+R)i=i+1LOOP UNTIL i>6PRINT “2008年底的资金总额为:”;a END2008年底资金总额为1000(1+0.5)6万元,设计成累乘的形式,用循环结构.如用INPUT语句输入a、R的值,则具有一般意义.2.解:INPUT “请输入x的值:”;x IF x<1 THENy=xPRINT “y=”;yELSEIF x<10 THENy=2*x-1PRINT “y=”;yELSEy=3*x-11PRINT “y=”;yEND IFEND IFEND分段函数对应于条件结构,用条件语句的形式,可以形成嵌套.3.解:INPUT “请输入数字a和加数的个数n:”;a,n s=0b=ai=1DOs=s+bb=b*10+ai=i+1LOOP UNTIL i>nPRINT “s=”;sEND实数aaaa=a×103+a×102+a ×10+a,aaaa=aaa×10+a,类推.。
高中信息技术VB循环语句浏览题阅览题会考复习题学校:___________姓名:___________班级:___________考号:___________一、选择题1.下列程序运行后的运行结果为▁▁▁。
X=8:Y=X:Z=10IF X<=Y THENPRINT X;Y;ELSEIF Z>=X THENPRINT ZEND IFEND IFA.10 8B.8 8C.10 10D.8 10【答案】B【解析】2.数组排序。
点击“产生随机数”按钮,让计算机随机产生10个整数,并对这10个整数进行标号,再点击“排序”按钮,对这10个整数进行从大到小排序。
如图所示。
程序代码如下:Dim a(1 To 10) As IntegerDim i, j, k, kt As IntegerPrivate Sub Command1_Click()List1.Clear'清除列表框数据For i =1 To 10Randomize'随机数初始化a(i) =Int(Rnd() * 1000)List1.AddItem Str(i) +”=” +Str(a(i))Next iCommand2.Enabled =True'激活排序按钮End SubPrivate Sub Command2_Click()For i =1 To 9k =iFor j =____①____To 10If a(j) > a(k) Then k =jNext jIf i <> k Then__②____End IfNext iList2.ClearFor i =1 To 10List2.AddItem Str(i) +” =” +Str(a(i))Next iEnd Sub请在①、②划线处填入合适的语句或表达式,把程序补充完整:程序中①划线处应填入__________________;程序中②划线处应填入__________________。
青少年软件编程(图形化)等级考试《循环语句》练习题含答案
一、选择题
1.以下程序按绿旗执行后,角色面向?()
A. 向上
B. 向下
C. 向左
D. 向右
2.街头自动红绿灯的程序是一个什么结构?()
A. 顺序结构
B. 条件结构
C. 循环结构
D. 顺序和循环结构
3.以下程序按绿旗执行后,角色大小为?()
A. 50
B. 60
C. 100
D. 150
4.下面程序运行完成后,角色的说出来的内容是?()
A. 50
B. 49
C. 51
D. 55
二、判断题
1.以下循环一共执行了20次。
()
正确错误
2.在以下语句中,除了停止程序,无法停止这个死循环。
()
正确错误
【答案解析】
一、选择题
1.A
2.D
3.B
4.A大小大于50不成立即为大小小于等于50。
二、判断题
1.表述错误
2.表述错误。
一、选择题1、以下程序段的输出结果是( D )int k, j, s=0;for(k=2;k<6;k++,k++){s = 1;for(j=k;j<6;j++)s+=j;}System.out.print(s);A)9 B)1 C)11 D)102、以下程序段的输出是( C )int i, j, m=0;for(i=1;i<=15;i+=4){for(j=3;j<=19;j+=4)m++;}System.out.print(m);A)12 B)15 C)20 D)253、以下程序段的输出是( A )int i,sum=0;for(i=1;i<6;i++)sum+=i;System.out.print(sum);A)15 B)14 C)不确定D)04、以下程序段的输出是( D )int x=3,y=6,a=0;while(x++!=(y-=1)){a+=1;if(y<x)break;}System.out.print(“x=”+x+”,y=”+y+”,a=”+a);A)x=4,y=4,a=1 B)x=5,y=5,a=1 C)x=5,y=1,a=3 D)x=5,y=4,a=15、定义如下变量:int n = 10 ;则下列循环的输出结果是( B )while(n>7){n-- ;System.out.println(n) ;}A)10 B)9 C)10 D)99 8 9 88 7 8 77 66、以下程序段的输出是( C )int x=3;do{System.out.print(x-=2);}while(--x==0)A)1 B)3 0 C)1 -2 D)死循环7、以下程序段的输出是( B )int a,b;for(a=1,b=1;a<100;a++){if(b>=20) break;if(b%3==1){b+=3;continue;}b-=5;}System.out.print(a);A)7 B)8 C)9 D)108、以下程序段的输出是( C )int num=0;while(num<=2){num++;System.out.print(num);}A)1 B)2 2 C)1 2 3 D)1 2 3 49、以下循环体的执行次数是( C )int i,j ;for(i=0,j=1 ;i<=j+1 ;i+=2,j--)System.out.print(i) ;A)3 B)2 C)1 D)010、设j为int型变量,则下面for循环语句的执行结果是( B )for(j=10 ;j>3 ;j--){if(j%3 !=0)j-- ;--j ;--j ;System.out.print(j) ;}A)6 3 B)7 4 C)6 2 D)7 311、在循环for,while,do-while语句中,用于直接中断内层循环的语句是( C )A)switch B)continue C)break D)if二、填空题1、以下程序段的输出结果是_1024___int k, n, m;n = 10;m = 1;k = 1;while(k<=n){m = m*2;k++;}System.out.print(m);2、以下程序段的输出结果是_10___int x=2;while(x--!=0){System.out.print(x);}3、在循环中,continue语句与break语句的区别是:_continue语句是跳出本次循环,进入下一次循环;break语句是终止某个循环,程序跳转到循环块外的下一条语句。
第5章循环结构(一)本章学习的目的和要求(二)本章学习的重点(三)复习题1.1单选题1.以下说法正确的是( )。
A.不能使用do-while语句构成的循环B.do-while语句构成的循环必须用break语句才能退出C.do-while语句构成的循环,当while语句中的表达式值为假时结束循环D.do-while语句构成的循环,当while语句中的表达式值为真时结束循环C语言支持的循环语句有:()A for循环B while循环C do while循环D以上都是1.2多选题1.3判断题1.continue语句用于循环语句内部中。
当遇到continue语句之后,循环体中continue语句后面的语句将被跳过,计算机将接着开始执行下一次循环。
()2.for(表达式1;表达式2;表达式3){},其中表达式1只执行一次。
3.若int i=0,k=8;while(i=8) i=k--;则while循环体的执行次数为0.4.多重循环是指循环语句的循环体中,又嵌套了另一个或多个循环语句,多个内层循环可以相互交叉嵌套。
5.在复合语句中定义的变量可在该复合语句所在的函数的其它地方使用。
6.在函数体内定义的变量称全局变量,可以被程序中的所有函数引用。
7.continue语句用在循环体中,可使整个循环不结束。
8.continue语句可以用于switch结构中。
9.break语句只能用于循环语句中。
10.do......while循环语句至少要执行一次循环体。
11.语句while(!E);中的条件!E等价于E==0。
12.语句for(;;){循环体}和while(1){循环体}是等价的。
13.在C语言中,for语句既可以用于计数类型循环又可以用于条件类型循环。
14.在while循环中允许使用嵌套循环,但只能是嵌套while循环。
15.在实际编程中,do-while循环完全可以用for循环替换。
16.continue语句只能用于三个循环语句中。
循环习题集锦一.选择题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 10D 无限次10.下面有关for 循环的正确描述是(D)A.for 循环只能用于循环次数已经确定的情况B.for 循环是先执行循环体语句,后判断表达式C.在for 循环中,不能用break 语句跳出循环体。
循环章节练习题一、选择题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.下面程序的运行结果是______。
第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】有以下程序段: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 的值为 。
1.2.3循环语句
一、基础过关
1.下列给出的四个框图,其中满足WHILE语句格式的是()
A.(1)(2) B.(2)(3)
C.(2)(4) D.(3)(4)
2.循环语句有WHILE和UNTIL语句两种,下面说法错误的是
()
A.WHILE语句和UNTIL语句之间可以相互转化
B.当计算机遇到WHILE语句时,先判断条件真假,如果条件符合,就执行WHILE 和WEND之间的循环体
C.当计算机遇到UNTIL语句时,先执行一次DO和UNTIL之间的循环体,再对UNTIL后的条件进行判断
D.WHILE语句与UNTIL语句之间不可以相互转化
3.下面的程序运行后第3个输出的数是()
i=1
x=1
DO
PRINT x
i=i+1
x=x+1/2
END
A .1
B .32
C .2
D .52
4.下面程序执行后输出的结果是 ( )
n=5
S=0
WHILE S<15
S=S+n
n=n-1
WEND
PRINT n
END
A .-1
B .0
C .1
D .2 5.下面的程序是一个________问题的算法.
x=1
WHILE x ^2<1 000
PRINT x
x=x+1
WEND
END
6.运行下面的程序,输出的值为__________.
S=0
i=1
WHILE S<18
S=S+i
i=i+1
WEND
PRINT i
END
7.分别用当型和直到型循环语句编写一个程序,计算2×4×6×…×100的值.
二、能力提升
8.读程序:
甲:
INPUT i=1
S=0
WHILE i<=1 000
S=S+i
i=i+1
WEND
PRINT S
END
乙:
INPUT i=1 000
S=0
DO
S=S+i
i=i-1
LOOP UNTIL i<1
PRINT S
END
对甲、乙两程序和输出结果判断正确的是() A.程序不同,结果不同
B.程序不同,结果相同
C.程序相同,结果不同
D.程序相同,结果相同
9.运行下面的程序,执行后输出的s的值是()
i=1
WHILE i<6
i=i+2
s=2*i+1
WEND
PRINT s
END
A.11 B.15 C.17 D.19
10.以下程序运行后的输出结果是________.
i=1
DO
i=i+2
s=2*i+3
LOOP UNTIL i<8
PRINT s
END
11.求200以内(包括200)的所有偶数和,试用两种循环结构画出其程序框图并编写程序.
12.设计算法求1
1×2+1
2×3+
1
3×4+…+
1
99×100的值,并画出程序框图及编写程序.
1.答案 B
解析 WHILE 语句的特点是“前测试”.
2.答案 D
3..答案 C
解析 该程序中关键是循环语句,
第一次输出的数是1,
第二次输出的数是x =1+12=32
, 第三次输出的数是x =1+12+12
=2. 4.答案 B
解析 由于5+4+3+2=14,这时仍满足条件“S<15”,
∴n =2-1=1时,S =14+1=15,
当执行完循环体n =1-1=0后,再判断条件,此时不满足条件“S<15”,
接着执行“PRINT n ”.所以n =0.
5.答案 求满足x 2<1 000的所有正整数x 的值
6.答案 7
解析 由于循环体是先执行S =S +i ,再执行i =i +1,然后进行判断,当S =1+2+3+4+5=15时,执行i =5+1=6,这时15<18成立,再循环一次S =15+6=21,i =6+1=7,这时再判断21<18不成立,于是执行“PRINT i ”,即i =7.
7.解 (1)当型:
i=2
A=1
WHILE i<=100
A=A*i
i=i+2
WEND
PRINT A
END
(2)直到型:
i=2
A=1
DO
A=A*i
i=i+2
LOOP UNTIL i>100
PRINT A
END
8.答案B
9.答案 B
解析当i=3时,s=7,当i=5时,s=11,此时仍满足条件“i<6”,因此再循环一次,
即i=7时,s=15,此时不满足“i<6”,
所以执行“PRINT s”,即s=15.
10.答案21
11.解当型循环,程序框图如图所示:
程序为
i=2
sum=0
WHILE i<=200
sum=sum+i
i=i+2
WEND
PRINT “偶数和为”;sum
END
直到型循环,程序框图如图所示:
程序为
i=2
sum=0
DO
sum=sum+i
i=i+2
LOOP UNTIL i>200
PRINT “偶数和为”;sum
END
12.解算法如下:
第一步:令S=0,i=1;
第二步:若i≤99成立,则执行第三步;否则,输出S,结束算法;
第三步:S=S+
1
i i+
;
第四步:i=i+1,返回第二步.程序框图:
程序如下:
S=0
i=1
S=S+1/(i*(i+1))
WEND PRINT S
END。