第2次-单元测试试卷(分支循环结构)
![第2次-单元测试试卷(分支循环结构)](https://img.360docs.net/img23/144sjgkn849q17b0n8qkebjua4owsqxu-31.webp)
![第2次-单元测试试卷(分支循环结构)](https://img.360docs.net/img23/144sjgkn849q17b0n8qkebjua4owsqxu-62.webp)
第二次单元测试试卷
一.单项选择题(共25题,每题2分,共50分)
1. 已有定义:int x=3, y=4, z=5; 则表达式!(x+y)+z-1 && y+z/2的值是( )。
A .6
B .0
C .2
D .1
2. 设x 、y 和z 都是int 类型变量,且x=3,y=4,z=5, 则下面的表达式中,值为0的表达式为( )。
A .’x ’ && ’y ’
B .x<=y
C .x||y+z && y-z
D .!((x 3. 逻辑运算符两侧运算对象的数据类型( )。 A .只能是0或1 B .只能是0或非0正数 C .只能是整型或字符型数据 D .可以是任何类型的数据 4. 以下关于运算符优先顺序的描述中正确的是( )。 A .关系运算符<算术运算符<赋值运算符<逻辑与运算符 B .逻辑与运算符<关系运算符<算术运算符<赋值运算符 C .赋值运算符<逻辑与运算符<关系运算符<算术运算符 D .算术运算符<关系运算符<赋值运算符<逻辑与运算符 5. 选择出合法的if 语句(设int x ,a ,b ,c ;)( )。 A .if(a=b) c++; B .if(a= C .if(a<>b) c++; D .if(a=>b) c++; 6.判断char 型变量s 是否为小写字母的正确表达式是( )。 A .’a ’ <= s<=’z ’ B .(s>=’a ’) & (s<=’z ’) C .(s>=’a ’) && (s<=’z ’) D .(’a ’<=s) and (’z ’>=s) 7.若希望当x 的值为奇数时,表达式的值为“真”,x 的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( )。 A .x%2==1 B .!(x%2==0) C .!(x%2) D .x%2 8.指出下列程序段所表示的逻辑关系是( )。 if(a { if(c= =d) x=10 ; } else x=-10; A .???≠≥=<-=d c b a d c b a x 且且1010 B .???≥=<-=b a d c b a x 且10 10 C .???≠<=<-=d c b a d c b a x 且且10 10 D .???≠=<-=d c d c b a x 且1010 9.已知int a=1,b=2,c=3; 以下语句执行后a,b,c 的值是( )。 if(a>b) c=a; a=b; b=c; A .a=1, b=2, c=3 B .a=2, b=3, c=3 C .a=2, b=3, c=1 D .a=2, b=3, c=2 10.以下程序的输出结果是( )。 #include ”stdio.h ” main() { int a=5, b=4, c=6, d; printf(”%d\n”, d=a>b? a>c?a:c :b); } A.5 B.4 C.6 D.不确定11.若a、b、c1、c2、x、y均为整型变量,正确的switch 语句是()。 A.switch (a+b); B.switch a { case 1: y=a+b; break; { case c1: y=a-b; break; case 0: y=a-b; case c2: x=a*d; break; break; default: x=a+b; } } C.switch (a*a+b*b) D.switch(a-b) { case 3: { default: y=a*b; break; case 1: y=a+b; break; case 3: x=a+b; break; case 3: y=b-a; break; case 10: case 11: y=a-b; break; } } 12.执行下列程序,输入为3的输出结果是()。 #include ”stdio.h” main() { int k; scanf(”%d”, &k); switch(k) { case 1: printf(”%d\n”, k++); case 2: printf(”%d\n”, k++); case 3: printf(”%d\n”, k++); case 4: printf(”%d\n”, k++); break; default: printf(”Full!\n”); } } A.3 B.4 C.3 D.4 4 4 13.以下程序的运行结果是()。 #include ”stdio.h” main() { int a=2,b= -1,c=2; if (a if (b<0) c=0; else c++; printf(”%d\n”,c); } A.0 B.1 C.2 D.3 14.以下程序的输出结果是( )。 main() { int n=4; while (n--) printf(“%d”,--n); } A.20 B.31 C.321 D.210 15.当执行以下程序段时()。 x=-1; do {x=x*x;} while (!x); A.循环体将执行一次B.循环体将执行两次 C.循环体将执行无数次D.系统将提示有语法错误16.若i,j已定义为int类型,则以下程序段中内循环体总的执行次数是()。 for (i=5;i;i--) for (j=0;j<4;j++) {…} A.20 B.24 C.25 D.30 17.有以下语句: i=1; for(;i<=100;i++) sum+=i; 与以上语句序列不等价的有( )。 A.for(i=1; ;i++) {sum+=i;if(i= =100)break;} B.for(i=1;i<=100;){sum+=i;i++;} C.i=1;for(;i<=100;)sum+=i; D.i=1;for(; ;){sum+=i;if(i= =100)break;i++;} 18.在下列选项中,没有构成死循环的程序段是()。 A.int i=100; while (1) { i=i%100+1; if(i>100) break; } B.for ( ;;); C.int k=1000; do {++k;}while (k>=10000); D.int s=36; while (s) ; --s; 19.下列程序运行的情况是()。 main() { int i=1,sum=0; while(i<10)sum=sum+1;i++; printf("i=%d,sum=%d",i,sum); } A.i=10,sum=9 B.i=9,sum=9 C.i=2,sum=1 D.运行出现死循环20.下面程序的运行结果为()。 main() { int n; for(n=1;n<=10;n++) { if(n%3==0)continue; printf("%d",n); } } A.12457810 B.369 C.12 D.12345678910 21.下列程序的输出是()。 #include main() { int i;char c; for(i=0;i<=5;i++) {c=getchar();putchar(c); } } 程序执行时从第一列开始输入以下数据, u w xsta A.uwxsta B.u C.u D.u w w w x xs xsta 22.下列程序的输出为()。 #include main() {int i,j,k=0,m=0; for(i=0;i<2;i++) { for(j=0;j<3;j++)k++;k-=j;} m=i+j; printf("k=%d,m=%d\n",k,m); } A.k=0,m=3 B.k=0,m=5 C.k=1,m=3 D.k=1,m=5 23.在C语言中,为了结束while语句构成的循环,while后一对圆括号中表达式的值应该为()。 A.0 B.1 C.true D.非0 24.在C语言中,为了结束由do-while语句构成的循环,while后一对圆括号中表达式的值应为()。 A.0 B.1 C.true D.非0 25.下列程序的输出为()。 #include main() { int k=0;char c='A'; do {switch(c++) { case 'A':k++;break; case 'B':k--; case 'C':k+=2;break; case 'D':k=k%2;continue; case 'E':k=k*10;break; default:k=k/3; } k++; } while(c<'G'); printf("%d\n",k); } A.k=3 B.k=4 C.k=2 D.k=0 二.阅读程序,并写出程序运行结果(共4题,每题5分,共20分) 1.若输入4,程序运行结果为【1 】,若输入-4,运行结果为【2 】,若输入10,运行结果为【3 】。 #include main() { int x,y; scanf("%d",&x); if(x<1) { y=x; printf("x=%d,y=x=%d\n",x,y); } else if(x<10) { y=2*x-1; printf("x=%d,y=2*x-1=%d\n",x,y); } else { y=3*x-11; printf("x=%d,y=3*x-11=%d\n",x,y); } } 2.当输入19,2,21时下列程序运行的结果是()。 #include main() {int a,b,c,max; printf("please scan three number a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if(max if(max printf("max is:%d",max); } 3.该程序运行的情况是()。 #include main() {int i; for(i=1;i+1;i++) { if(i>4){printf("%d\t",i++);break;} printf("%4d",i++); } } 4.下列程序的输出为()。 #include main() {int i; long f1,f2; f1=1; f2=1; for(i=0;i<5;i++) { printf("%6ld%6ld",f1,f2); if(i%2)printf("\n"); f1+=f2; f2=f1+f2; } } 三.编写程序(共3题,每题10分,共30分) 1.根据输入的三角形的三边,判断是否能组成三角形,若可以则输出它的面积和三角形的类型(仅区分直角三角形和一般三角形,构成三角形的充要条件是:任意两边之和大于第三边,两边之差的绝对值小于第三边)。 2.求100~499之间的所有水仙花数,即各位数字的立方和恰好等于该数本身的数。 3.编写程序打印出以下形式的乘法九九表。 (1) (2) (3) (4) (5) (6) (7) (8) (9) 1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 2 4 27 4 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54 7 14 21 28 35 42 49 56 63 8 16 24 32 40 48 56 64 72 9 18 27 36 45 54 63 72 81 循环结构测试题(四) 一:选择题 1:以下()是正确的for….next结构。 (A)for x=1 to step 10 (B) for x=3 to –3 step -3….. ….. next x next x (C ) for x=1 to 10 (D) for x=3 to step 3 re: …. …… Next x next y If I=10 then goto re 2:下列循环语句能正常结束循环的是() (A)I=5 (B) I=1 do do I=I+1 I=I+2 Loop until I<0 loop until I=10 (C) I=10 (D) I=6 do do I=I-1 I=I-2 Loop until I<0 loop until I=1 3:下面程序段的运行结果为( ) for I=3 to 1 step –1 print spc(5-I); for j=1 to 2*I-1 print “*”; next j print next I 4下列程序在文本框输入“ABCD ”四个字符时,窗体上显示的是( ) private sub text1_change( ) print ; end sub (A) ABCD (B) ( C ) AABABCABCD * * * * (B) * * * * * * * * (C) * * * * * * * * (D) * * * * * * * * A B C (D) A AB ABC 5哪个程序段不能分别正确显示1!,2!,3!,4!的( ) 二:填空题 1:要使下列For 语句循环执行20次,循环变量的初值应当是: for k=( ① ) to –5 step –2 2:下面程序段显示( ② )个“*” 。 For I=1 to 5 For j=2 to I Print “*”; Next j Next I 3: 下列第40句共执行了( ③ )次,第41句共执行(④ )次。 30 for j=1 to 12 step 3 40 for k=6 to 2 step –2 41 print j,k 42 next k (A ) for I=1 to 4 n=1 for j=1 to I (B ) for I=1 to 4 for j=1 to I n=1 (C) N=1 for j=1 to 4 (D) N=1 J=1 Do while j<=4 循环结构程序设计习题及答案 1、循环语句的三要素分别是、、。 2、for语句括号内的3个表达式的作用分别 是、、。 3、在2层循环嵌套中,外层循环语句的每个执行周期中,内层循环语句都要完整 地,只有当时,才结束整个循环。 4、在循环结构中,break语句的作用是;continue语句的作用是。 5、当循环条件一开始就为假时,对于while语句、do…while语句、for语句,分别执行循环体次、次、次。 6、下面程序段的执行次数: int a=0; while(a=0) { printf("good\n"); a--; } 7、下面程序段的执行次数: int a=0; while(a==0) { printf("good\n"); a--; } 8、下面程序段的执行次数: int a=1; while(a=1) { printf("good\n"); a++; } 9、下面程序段的执行次数: int a=1; while(a==1) { printf("good\n"); a++; } 10、下列程序段的运行结果是。 for(i=5;i>=0;i--) printf(“%d “,i); 11、下列程序段的运行结果是。 for(n=1;n<20;n=n+3) printf(“%d “,n); 12、下列程序段的运行结果是。 for( ch='a' ;ch<='e' ;ch++) printf(“%d“,ch-97); 13、下列程序段的运行结果是。 for(i=1,j=5 ; i 循环结构的优秀教案设计 课题: §1.1.3(3)循环结构 授课教师:山东省东营市胜利一中李玉华 教材:人教B版高中数学必修3 一、教学目标: 1.知识与技能目标 ①理解循环结构,能识别和理解简单的框图的功能。 ②能运用循环结构设计程序框图解决简单的问题。 2.过程与方法目标 通过模仿、操作、探索,学习设计程序框图表达,解决问题 的过程,发展有条理的思考与表达的能力,提高逻辑思维能力。 3.情感、态度与价值观目标 通过本节的自主性学习,让学生感受和体会算法思想在解决 具体问题中的意义,增强学生的创新能力和应用数学的意识。 三、教法分析 二、教学重点、难点 重点:理解循环结构,能识别和画出简单的循环结构框图, 难点:循环结构中循环条件和循环体的确定。 三、教法、学法 本节课我遵循引导发现,循序渐进的思路,采用问题探究式 教学。运用多媒体,投影仪辅助。倡导"自主、合作、探究" 的学习方式。 四、教学过程: (一)创设情境,温故求新 引例:写出求的值的一个算法,并用框图表示你的算法。 此例由学生动手完成,投影展示学生的做法,师生共同点评。鼓励学生一题多解--求创。 设计引例的目的是复习顺序结构,提出递推求和的方法,导 入新课。此环节旨在提升学生的求知欲、探索欲,使学生保 持良好、积极的情感体验。 (二)讲授新课 1.循序渐进,理解知识 【1】选择"累加器"作为载体,借助"累加器"使学生经历把"递推求和"转化为"循环求和"的过程,同时经历初始化变量,确定循环体,设置循环终止条件3个构造循环结构的关键步骤。 (1)将"递推求和"转化为"循环求和"的缘由及转化的方法和途径 引例"求的值"这个问题的自然求和过程可以表示为: 用递推公式表示为: 直接利用这个递推公式构造算法在步骤中使用了共100个变量,计算机执行这样的算法时需要占用较大的内存。为了节 实验五代码: 基础能力落实: 1)编写一个程序,将用分钟表示的时间转化成以小时和分钟表示的时间。使用#define 或者const来创建一个代表60的字符常量。使用while循环来允许用户重复键入值,并且当键入一个小于等于0的时间时终止循环。要求用while语句 #include 第三单元循环结构练习题 选择题: 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.7 5 3 B. 3 5 7 C.3 6 9 D.7 5 1 5、以下程序运行后的输出结果是( 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Ⅱ码值为97 A.d B.go C.god D.good 6、已知 int t=0; while(t=1){...} 则以下叙述正确的是( B )。 A)循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法 D)以上说法都不对 7、设有以下程序段 B int x=0,s=0; while(!x!=0)s+=++x; printf("%d",s); 则 A)运行程序段后输出0 程序框图、顺序结构、循环结构 1.程序框图 (1程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形. (2在程序框图中,一个或几个程序框的组合表示算法中的一个步骤;带有方向箭头的流程线将程序框连接起来,表示算法步骤的执行顺序. 2.常见的程序框、流程线及各自表示的功能 图形符号名称功能 终端框(起止框表示一个算法的起始和结束 输入、输出框表示一个算法输入和输出的信息 处理框(执行框赋值、计算 判断框判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时标明“否”或“N” 流程线连接程序框 ○连接点连接程序框图的 两部分 3.条件结构的概念 在一个算法中,经常会遇到一些条件的判断,算法的流程根据条件是否成立有不同的流向.条件结构就是处理这种过程的结构. 名称双条件结构单条件结构 结构 形式 特征两个步骤A、B根据条件是否满足选 择其中一个执行 根据条件是否成立选择是否执行步 骤A 4.循环结构的定义 在一些算法中,经常会出现从某处开始,按照一定的条件反复执行某些步骤的情况,这就是循环结构.反复执行的步骤称为循环体. 名称 双条件结构单条件结构 结构形式 特征 两个步骤 A 、 B 根据条件是否满足选择其中一个执行 根据条件是否成立选择是否执行步 骤A 对条件结构的理解 (1如图1-1-16是算法流程图的一部分,其算法的逻辑结构是( 图1-1-16 A .顺序结构 B .条件结构 C .判断结构 D .以上都不对 (2给出以下四个问题: ①输入一个数x ,输出它的相反数;②求面积为6的正方形的周长;③求三个数 a , b , c 中的最大数;④求函数f (x x -1,x ≥0,x +2,x <0 的函数值. 其中不需要用条件结构来描述其算法的有( A .1个 B .2个 C .3个 D .4个 [再练一题] 1.条件结构不同于顺序结构的特征是含有( A .处理框 B .判断框 C .输入、输出框 D .起止框 简单条件结构的设计 循环结构程序设计典型例题 例1有数列2/3、4/5、6/9、10/15……求此数列前30项的和。 算法分析: 对于数列的题,首先要找出通项公式,或前后项的计算关系公式,根据公式求所需。由于数列的题一般执行次数能确定,用for语句来编写比较方便。 此题,前后项的关系是:后一项的分子是前一项的分母加1,后一项的分母是前一 项的分子加分母。解题思路是用循环语句求各项,并把值累加,因为是求前30项的和,循环执行30次。 1.初值i=2,j=3,s=0; 2.用n从1到30循环 3.s=s+ i/j; 4.c=i; i=j+1; j=c+j; 5输出s; 程序: #in clude 第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; 则与上述程序段功能等价的赋值语句是_______。(等考2003年9月第22题)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值为。(等考1998年9月第29题) 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 循环结构程序设计复习题 一.选择题 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的值为0 b) 退出while循环后,x的值为1 c) while的控制表达式是非法的 d) while循环执行无限次 3. 有以下程序段,其中n为整型变量,执行后输出结果是:() n=20 ; while(n--) ; printf(“%d”,n) ; a) 2 b) 10 c) -1 d) 0 4. 有以下程序段,其中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=1 c) 输出x=0 d) 输出x=-1 6. 有以下程序段,其中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=0 x=0,y=0 d) 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 。 7. 有以下程序: main() { int x=0,y=0; while(x<5&&++y) y--,x++; printf(“%d,%d”,y,x); } 程序的输出结果是:() a) 0,5 b) 1,5 c) 0,4 d) 1,4 8. 有以下程序:main() int num=0; { do ,num); } { num++ ;printf(“%d\n” while(num<=2); } 程序的输出结果是:() 1 1c) 1 d) 教师课时教案备课人杨晓春授课时间 课题1.1.3循环结构 课标要求1.掌握程序框图的概念;2.会用通用的图形符号表示算法; 3.掌握画程序框图的基本规则,能正确画出程序框图; 教学目标 知识目标 掌握程序框图的概念;会用通用的图形符号表示算法,掌握算法的三 个基本逻辑结构;掌握画程序框图的基本规则,能正确画出程序框图。 技能目标 通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程; 学会灵活、正确地画程序框图。 情感态度价值观 通过本节的学习,使我们对程序框图有一个基本的了解;掌握算法语 言的三种基本逻辑结构,明确程序框图的基本要求;认识到学习程序 框图是我们学习计算机的一个基本步骤,也是我们学习计算机语言的 必经之路。 重点循环结构 难点综合运用这些知识正确地画出程序框图。 教学过程及方法 问题与情境及教师活动学生活动 一.导入新课 1.设计一个算法的程序框图的基本思路: 第一步,用自然语言表述算法步骤. 第二步,确定每个算法步骤所包含的逻辑结构,并用相应 的程序框图表示. 第三步,将所有步骤的程序框图用流程线连接起来,并加 上两个终端框. 2.算法的基本逻辑结构有哪几种?用程序框图分别如何表 示?(顺序结构、条件结构) 3.前面我们学习了顺序结构,顺序结构像一条没有分支的河 流,奔流到海不复回;条件结构像有分支的河流最后归入 大海;事实上很多水系是循环往复的,今天我们开始学习 循环往复的逻辑结构——循环结构. 二.研探新知 探究(一):循环结构 提出问题 (1)请大家举出一些常见的需要反复计算的例子. (2)什么是循环结构、循环体? (3)试用程序框图表示循环结构. (4)指出两种循环结构的相同点和不同点. 讨论结果: 循环结构程序设计典型例题 例1:有数列2/3、4/5、6/9、10/15……求此数列前30项的和。 算法分析: 对于数列的题,首先要找出通项公式,或前后项的计算关系公式,根据公式求所需。由于数列的题一般执行次数能确定,用for语句来编写比较方便。 此题,前后项的关系是:后一项的分子是前一项的分母加1,后一项的分母是前一项的分子加分母。解题思路是用循环语句求各项,并把值累加,因为是求前30项的和,循环执行30次。 1. 初值i=2,j=3,s=0; 2. 用n从1到30循环 3. s=s+ i/j; 4. c=i; i=j+1; j=c+j; 5.输出s; 程序: #include<> main( ) { int i=2,j=3,n,c; float s=0; for(n=1;n<=30;n++) { s=s+(float)i/j; c=i; i=j+1; j=c+j; } printf(“\n%f”,s); } 此题中的n与循环体中的执行语句没有数值上的联系,仅仅用做决定循环执行的次数。 例2:下面这个程序,想想它实现的是什么功能? #include<> main( ) { int i,s=0; for(i=1;i<=100;i++) {if(i%5==0) continue; s=s+i; } printf(“\n%d”,s); } 在左边的程序中,i从1到100循环,当i是5的倍数时,直接进入下一个i,当i不是5的倍数时,把i累加到s,最后输出s。所以,这个程序实现的是求1~100中间所有非5的倍数的数之和。 例3:输出n~m中(0 模块三循环程序设计习题及答案 一、填空题 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!=0 C、dn == 0 D、dn != 1 3、以下程序段,while循环执行的次数是() int k=0; while( k == 1) k++; A、无限次 B、有语法错,不能执行 C、一次也不执行 D、执行1次 4、在C语言中,当do while语句中的条件为()时,结束该循环。 A、0 B、1 C、TRUE D、非0 5、下面程序段的输出结果是() do { b-=a; a++; }while(b--<0); A、10,-1 B、2,8 C、9,0 D、4,-3 6、以下描述正确的是() A、由于do while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。 B、do while循环由do开始,用while结束,在while(表达式)后面不能写分号 C、在do while循环体中,一定要有能使while后面匠值变为零的操作 D、do while循环中,根据情况可以省略while 7、若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)。 s=c; 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; 8、假定a,b,c,d均已定义为整型变量,且a、c均已赋值,a大于0,c大于0,则与程序段for(d=a,b=1;b<=c;b++) d--;功能等价的语句是() A、d=a+b; B、d=a+c; C、d=a-b; D、d=a-c 9、下列关于for循环的说法正确的是() A、for循环只能用于循环次数已经确定的情况 精心整理 第5章循环结构程序设计 5.1基本知识点 ?while语句的使用格式和注意事项 ?do-while语句的使用格式和注意事项 ?for语句的使用格式和注意事项 ?break和continue语句在循环语句中的应用 ? ? ? ? 1. C. 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. C. COUT< main() { intnum=0; while(num<=2) { num++; cout< 一、循环结构(Iteration Structure)的概述 1.目的 为了解决含有重复处理内容的问题,必须采用循环语句(Loop Statement)来编程实现。 2.类型 (1)当型循环结构 (2)直到型循环结构 二、循环语句 1.while语句 ①功能:实现当型循环结构。 ②形式 while(表达式){ 循环体 } ③特点:先判断后执行。 ④举例:(累加和问题)编程计算整数1~100的和。 int i ; //循环变量 int sum = 0 ; //累加和清0 i = 1 ; //循环变量i赋初值 while( i <= 100){ sum = sum + i ; //循环变量累加到sum中 i = i + 1; //改变循环变量i的值 } 2.do-while语句 ①功能:实现直到型循环结构。 ②形式 do{ 循环体 }while(表达式); //注意最后的分号 ③特点:先执行后判断。 ④举例:修改上例。 /*利用do-while语句编程实现整数1~100的和。*/ int i ; //循环变量 int sum = 0 ; //累加和清0 i = 1 ; //循环变量i赋初值 do{ sum = sum + i ; //循环变量累加到sum中 i = i + 1; //改变循环变量i的值 }while(i<=100);//注意最后的分号 3.for语句 ①功能:实现当型循环结构。 ②形式 for(表达式1;表达式2;表达式3){ 循环体 } ③特点:先判断后执行;使用频率最高。 ④举例:修改上例。 /*使用for语句编程计算整数1~100的和。*/ int i ; //循环变量 int sum = 0 ; //累加和清0 for( i = 1 ; i <=100 ; i++ ){//第一个表达式完成循环变量i赋初值;第三个表达式实现改变循环变量i的值 sum = sum + i ; //循环变量累加到sum中 } 4.几种循环语句的比较 ①由于while语句和for语句均实现当型循环结构,两者是完全等价的。 for(表达式1;表达式2;表达式3){ 《循环结构》测试题 班别:姓名:学号:填空题: (1)在VB中,几种不同性质的运算符的优先级别如下:() A.算术运算符>字符运算符>关系运算符>逻辑运算符 B.算术运算符>关系运算符>字符运算符>逻辑运算符 C.关系运算符>算术运算符>字符运算符>逻辑运算符 D.字符运算符>算术运算符>关系运算符>逻辑运算符 (2)(06真题)下面程序段的运行结果是: FOR I=5 To 1 Step -2 Print i Next A. 5 B. 5 3 C. 5 3 1 D. 5 3 1 -1 (3)(05真题)下面程序段的运行结果是: FOR I=1 To 9 Step 3 Print I Next I A. 1 4 B. 1 4 7 C 1 4 7 10 D. 1 4 7 (4)下面哪一个不是程序设计的基本结构()。 (1)分析下列程序段,写出程序运行结果 x = 0 For k = 1 To 2 Step 0.3 x = x + k Next Print x, k (2)分析下列程序段,写出程序运行结果 For k = 15 To 1 Step -5 Print k Next (3)分析下列程序段,写出程序运行结果 For k = 1 To 3 Circle (2000, 2000), k * 300 Next (4)分析下列程序段,写出程序运行结果 Dim m, n, k As Integer m = 6 n = 1 For k = 1 To m Step 2 n = n * k Next Print "n="; n (5)分析下列程序段,写出程序运行结果 k = 1 For m = 1 To 5 Print k, k = k + 3 Next (6)在横线上填上适合的语句,使程序完成:计算s=1+2+3+4+5+…+150的和S=0 For k=_______ to ________ step ________ S=________________________________ Next Print “1+2+3+…+150=”;s (7)在横线上填上适合的语句,使程序完成:计算5-10的乘积 T=1 For k=5 to _________ T=_________________________ Next Print t 循环结构程序设计习题及答案1、循环语句的三要素分别 是、、。 2、for语句括号内的3个表达式的作用分别 是、、。 3、在2层循环嵌套中,外层循环语句的每个执行周期中,内层循环语句都要完整地,只有当时,才结束整个循环。 4、在循环结构中,break语句的作用是;continue语句的作用是。 5、当循环条件一开始就为假时,对于while语句、do…while语句、for 语句,分别执行循环体次、次、 次。 6、下面程序段的执行次数: int a=0; while(a=0) { printf("good\n"); a--; } 7、下面程序段的执行次数: int a=0; while(a==0) { printf("good\n"); a--; } 8、下面程序段的执行次数: int a=1; while(a=1) { printf("good\n"); a++; } 9、下面程序段的执行次数: int a=1; while(a==1) { printf("good\n"); a++; } 10、下列程序段的运行结果是。 for(i=5;i>=0;i--) printf(“%d “,i); 11、下列程序段的运行结果是。 for(n=1;n<20;n=n+3) printf(“%d “,n); 12、下列程序段的运行结果是。 for( ch='a' ;ch<='e' ;ch++) printf(“%d“,ch-97); 13、下列程序段的运行结果是。 for(i=1,j=5 ; i C语言循环结构练习题 带答案 Company Document number:WTUT-WT88Y-W8BBGB- 第5章循环结构程序设计 基本知识点 while语句的使用格式和注意事项 do-while语句的使用格式和注意事项 for语句的使用格式和注意事项 break和continue语句在循环语句中的应用 循环结构的嵌套 使用goto语句实现循环结构 穷举法程序设计方法 迭代程序设计方法 练习题5 1.单项选择题 (1)语句while(!e);中的条件!e等价于A。 ==0 !=1 !=0 D.~e (2)下面有关for循环的正确描述是D。 循环只能用于循环次数已经确定的情况 循环是先执行循环体语句,后判定表达式 C.在for循环中,不能用break语句跳出循环体 循环体语句中,可以包含多条语句,但要用花括号括起来(3)C语言中D。 A.不能使用do-while语句构成的循环 语句构成的循环必须用break语句才能退出 语句构成的循环,当while语句中的表达式值为非零时结束循环语句构成的循环,当while语句中的表达式值为零时结束循环(4)C语言中while和do-while循环的主要区别是A。 的循环体至少无条件执行一次 的循环控制条件比do-while的循环控制条件严格 允许从外部转到循环体内 的循环体不能是复合语句 (5)以下程序段C。 intx=-1; do { x=x*x; } while(!x); A.是死循环 B.循环执行二次 C.循环执行一次 D.有语法错误(6)下列语句段中不是死循环的是__C__。 =100; while(1) { i=i%100+1; if(i==20)break; } (i=1;;i++) sum=sum+1; =0; do { ++k; }while(k<=0); =3379; while(s++%2+3%2) s++; (7)与以下程序段等价的是__A__。 while(a) { if(b)continue; c; } (a) (c) {if(!b)c;} {if(!b)break;c;} (c) (a) {if(b)c;} {if(b)break;c;} (8)以下程序的输出结果是_B___。 #include<> main() { inti; for(i=4;i<=10;i++) { if(i%3==0)continue; COUT< 第5章循环结构程序设计 练习题 1. 单项选择题 (1)语句while (!e);中的条件!e等价于 A 。 A. e==0 B. e!=1 C. e!=0 D. ~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__。 第5章循环结构程序设计35 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___。 #include C语言练习题总汇 一、单选题: 【顺序结构程序设计】 1.己知int k,m=1;执行语句k=-m++;后k的值是(A )。(提示:负号与自加运算符同级,结合方向从右向左) A)-1 B) 0 C)1 D)2 2.若有定义int x=4;则执行语句x + = x * = x + 1;后,x的值为(C )。A)5 B)20 C)40 D)无答案 3.若有定义:float a=,b=,c=;则表达式1/2*(a+b+c)的值为( C )。 A) B)6 C) D)无答案 4.以下程序段的输出结果是( C )。(提示:a当约束过严时,约束失效。按自由格式输出。) int a=1234; printf("%2d\n",a); A)12 B)34 C)1234 D)提示出错,无结果 5.下列程序段的输出结果是(C)。 int a=1234; float b=; double c=; printf("%2d,%,%",a,b,c); A)无输出 B)12, , C)1234,, D)1234,, 6.设x, y均为整型变量,且x=8, y=5,则以下语句的输出结果是(D)。 printf("%d,%d\n",x--,++y); A)8,5 B)7,5 C) 7,6 D) 8,6 7.以下程序的输出结果是( A )。 int main() { int a=20,b=10; printf("%d,%%d\n",a+b,a-b); } A) 30,%d B)30,10 C)30,%10 D)以上答案均不正确(%%d中第一个%后面的表示字符) 8.下列程序的运行结果是(A)。 int main() { float x=; int y; y=(int)x; printf("x=%f,y=%d",x,y);} A) x=,y=2 B)x=,y=2 C)x=2,y=2 D) x=,y= 9.以下程序的输出结果是(A)。 int main() { char c=‘z’; printf("%c",c-25);} A)a B)z C)z-25 D)y (字母共有26个,而z是最后一个) 10.下面程序的输出结果是(C)。 int main( ) 实验教案 一、实验目的 (1) 掌握while、do~while、for语句的使用。 (2) 掌握循环体内使用break、continue语句的作用。 (3) 掌握循环及嵌套循环结构的程序设计方法。 二、实验准备 1.C语言实现循环的方法 ①goto 和if 构成的循环:由于goto是无条件转向,不符合结构化程序设计思想,所以不建议使用。 ②while循环:实现“当型”循环,首先判断循环条件,当条件为真,执行循环体,再判断循环条件……此种循环有可能一次也不执行循环体。 ③do~while循环:实现“直到型”循环,与while循环的区别是先执行循环体,再判断循环条件,当循环条件为真,再执行循环体……此种循环至少执行一次循环体。 ④for循环:与while循环类似,一般用于知道循环变量初值、终值及步长值的循环。 2.break 和continue 语句 ①break 语句:可用在循环体或switch语句中,作用是跳出其所在的控制结构。若是在循环体中,则是跳出其所在的循环,使得循环不止一个出口。 ②continue语句:只能用在循环体中,其作用是结束本层本次循环,注意不是退出循环。 3.阅读以下程序,并分析其功能,调试运行程序后再分析其运行结果。 ①掌握三种方法求1到100的累加和。 文件名为ex3-1-1.c,内容如下: # include VB循环结构测试题及答案
循环结构程序设计课后习题及答案
循环结构的优秀教案设计
循环结构程序设计代码
循环结构程序设计练习题 内含答案
程序框图、顺序结构、循环结构(精)
循环结构程序设计典型例题
循环结构典型试题
C语言循环结构复习题
循环结构教案
循环结构程序设计典型例题
循环程序设计习题及答案
C语言循环结构测习题带答案
循环结构程序设计:三种循环语句
循环结构测试题
循环结构程序设计课后习题及答案
C语言循环结构练习题带答案
C语言循环结构练习题带答案
顺序结构程序设计练习题
实验三 循环结构程序设计(教案)