循环结构习题解析
循环结构程序设计课后习题及答案
循环结构程序设计习题与答案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<j ; i++,j-->printf<"i=%d j=%d\n",i,j>;14、下列程序段的运行结果是.for<n=1 ; n*n<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; { if<i<0> break;} }while<++i>;C、i=1;D、for<i=1; ; >while<i-->; if<++i<10> break;2、下列程序段中,不是死循环的是〔〕A、inti=10;B、for< ; 1;>while<1>{ i=i%100+1;if<i>100> break;}C、int a=0;D、int x=21;do while<x>{ ++a; --x;}while<a>=0>;三、阅读程序,写出程序运行结果.1、#include"stdio.h"main<>{inti=0,sum=1;do{sum+=i;i++;}while<i<5>;printf<"%d\n",sum>;}程序运行结果:2、#include"stdio.h"main<>{inta,b;b=10;a=1;while<a<=b>a*=2;printf<"%d\n",a>;}程序运行结果:3、#include"stdio.h"main<>{int x=2;while<x-->;printf<"%d\n",x>;}程序运行结果:4、#include"stdio.h"main<>{int x=3;do{printf<"%d\n",x-=2>;}while<!x>;}程序运行结果:5、#include"stdio.h"main<>{inti;for<i=1;i<=5;i++>switch<i%5>{case 0:printf<"*">;break; case 1:printf<"#">;break; case 2:printf<"&">;break; default:printf<"\n">;}}程序运行结果:6、#include"stdio.h"main<>{charch;while<<ch=getchar<>>!='!'>putchar<++ch>;}程序运行结果:7、#include"stdio.h"main<>{inti,j;for<i=0;i<=5;i++>{for<j=1;j<10;j++>if<j==5> break;if<i<2> continue;if<i>2> break;printf<"j=%d\n",j>;}printf<"i=%d\n",i>;}程序运行结果:8、#include"stdio.h"main<>{int x ,y;x=37,y=13;while<x!=y>{if<x>y>x=x-y;if<y>x>y=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.1 4 7 10 13 16 1912.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<>{inti,j;for<i=1;i<=5;i++>{for<j=1;j<=i;j++>printf<"%d ",i*j>;printf<"\n">;}}2.#include"stdio.h"main<>{inti,j;for<i=5;i>=1;i-=2>{for<j=1;j<=i;j++>printf<"*">;printf<"\n">;}}3.#include"stdio.h"main<>{inti,y=1,s=0;for<i=2;i<=102;i+=2>{ s=s+y*i;y*=-1; 〔y=-y>; } printf<"2-4+6+...-100+102=%d",y>;}4.#include"stdio.h"main<>{inti;for<i=1500;i<=2500;i++>if<i%4==0&&i%100!=0||i%400==0> printf<"%d ",i>;}5.#include"stdio.h"main<>{floatcj,min,max=0;printf<"请输入学生成绩,输入负数时结束:\n">; scanf<"%f",&cj>;min=cj;while<cj>=0>{if<cj>max>max=cj;if<cj<min>min=cj;scanf<"%f",&cj>;}printf<"max=%f\nmin=%f",max,min>;}。
循环结构程序设计典型例题
循环结构程序设计典型例题例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<stdio、h>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;}pr intf(“\n%f”,s);}此题中的n与循环体中的执行语句没有数值上的联系,仅仅用做决定循环执行的次数。
例2:下面这个程序,想想它实现的就是什么功能?#include<stdio、h>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<n<m)能被3整除,且至少有一个数字就是5的所有数。
算法分析:1 输入n与m的值2 用整型变量a从n-m循环,每次值加13、若a能被3整除,执行第4步,否则执行第9步4令整型变量x=a5、若x>0,执行第6步,否则执行第9步6、i=x%107、若i值不为5,执行第8步,否则输出a,并执行第9步8、x=x/10,并返回第5步9、返回第2步,察瞧下一个a程序:#include<stdio、h>main( ){ long a,x,i,t,n,m;scanf(“%ld%ld”,&n,&m);for(a=n;a<=m;a++)if(a%3==0){ x=a;while(x>0){ i=x%10;if(i==5) {printf(“\t%ld”,a);break;}x=x/10;}}}问:能把a%3==0也放到for循环语句的表式2中,写成a<=m&&a%3==0不?答:不可以!例4:求3-150中所有素数的与。
循环结构例题解析
开始 s=0 n=1 s= s + n
For循环 For n=1 to 99 step 2 S=s+n Next n
n=n+2 否 n<=99 是
输出s 结束
直到型循环 N=1 Do S=s+n N=n+2 Loop while n<=99
back
例题解析:
1、变量设置及初始值
变量名称 Max: max=0 d: s: s=0 c: c=0
循环结构
——例题解析
【例1】
设计一个算法,计算一批数据的算术平均值。 这批数据由使用者从键盘输入,可不必预先 指定数据的个数,并约定:输入0时表示本 次计算所需全部数据已输入完毕(即所有有 效数据,其值均不为0,这是为了对问题的 叙述方便起见而作的假定,实际上完全不必 如此限制).
例题解析:
1、变量设置及初始值
变量名称 d: sum: Sum=0 c: c=0
作用 用来存储用户从键盘输入的数据, 或表示输入结束的数学记号0。 累加器,用来计算有效数据和。 计数器,用来统计已经输入的有效 数据的个数。
循环条件的设定
约定当用户输入的数据为0时表示输入结束
y
d=0?
n
有效数据
输入结束,计算算 术平均值。
循环体
作用 用来记录最高分 用来存储用户输入的学生成绩 累加器,用来求学生的总成绩 计数器,用来统计学生的总人数
循环条件的设定
设定当用户输入的成绩为0时表示输入结 束(假定班级中没有成绩为0分的)
d=0?
n y
有效成绩
输入结束,输出最 高分,计算平均分
循环体
(1) (2)
y
s=s + d
循环结构习题有答案
第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.答案:B①N的值为10,n>7为真,执行循环体,n的值减1后为9,输出n的值9②N的值为9,n>7为真,执行循环体,n的值减1后为8,输出n的值8③N的值为8,n>7为真,执行循环体,n的值减1后为7,输出n的值7④N的值为7,n>7为假,结束循环。
2.答案:Ak的值为5,进入循环,(--k)表达式的值为4(真),同时k的值改变为4,输出表达式k-=3的值1,同时k的值为1。
k为1,表达式(—k)的值为0, 结束循环。
3.答案:A1.X=0,y=5,z=3,(z>0&&x<4)值为真,进入循环体,y值为4,z值为2, x值为12.(z>0&&x<4)值为真,进入循环体, y值为3,z值为1, x值为23.(z>0&&x<4)值为真,进入循环体, y值为2,z值为0, x值为34.(z>0&&x<4)值为假,结束循环。
5.输出x,y,z的值3,2,04.答案:D分析:当K的值为3时,只执行case 3后面的语句n+=k,n的值为3;当k的值为2时,先执行case 2后面的语句,但没有break,所以不会退出,继续执行case 3后面的语句n+=k,n的值为5;当k的值为1时,先执行case 1后面的语句n+=k,n的值为6,先执行case 2后面的语句(没有),继续执行case 3后面的语句n+=k,n的值为7。
输出n的值7。
5.答案:B在循环体中有“s+=1;”s的初始值为0,要让s的值等于2必须是循环体执行两遍。
当循环提执行两遍后a的值等于-3,所以在n=-3的时候循环体执行两遍后条件表达试(a!=0)为假,会退出循环。
6.答案:A分析:t值为1,s的值为0。
从键盘中输入-3后,n的值为-3.先执行循环体。
执行s=s+t;s的值为1,执行t=t-2;t的值为-1.再判断表达式的值t!=n为真,再次执行循环体。
C 循环结构23道题[含答案解析]
题目、描述、输入、输出、输入样例、输出样例、测试输入、测试输出循环01:最大数写一个程序,可以输入一批正数,输入0时结束循环,并且输出最大的正数。
输入39 28 5 63 18 27 0输出63测试:输入153 26 963 28 75 90 156 0输出963#include<iostream>using namespace std;int main(){int i,max=0;cin>>i;while(i!=0){if(i>max)max=i;cin>>i;}cout<<max<<endl;return 0;}循环02:素数输入正数n,判断n是否为素数。
若为素数则输出1,否则输出0。
(提示:素数是指只可以被1和其本身整除的正数(1除外))输入10输出0输入7输出1测试:输入9输出0#include<iostream>using namespace std;int main(){int n,i,d;cin>>n;for(i=2;i<n;i++){d=n%i;if(n%i==0)break;}if(n==i)cout<<"1"<<endl;elsecout<<"0"<<endl;return 0;}循环03:数列求和输入一个正整数n,计算前n项之和:1+1/4+1/7+1/10..+1/(3*n-2)。
输入5输出1.56978输入4输出1.49286#include<iostream>using namespace std;int main(){int i,n;double s=0;cin>>n;for(i=1;i<=n;i++)s+=1.0/(3*i-2);cout<<s<<endl;return 0;}循环04:西瓜卖几天n个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?说明:当西瓜个数为奇数时,卖一半为一半的整数,如当西瓜个数为5时,卖一半为卖2个。
第五章循环结构程序设计习题解答
5、设某县2000年工业产值为200亿元,如果该县预计平均 每年工业总产值增长率为4.5%,那么多少年后该县工业总 产值将超过500亿? 算法步骤: 第一步,输入2000年的年生产总值. 第二步,计算下一年的年生产总值. 第三步,判断所得的结果是否大于 500.若是,则输出该年的年份;否则,返 回第二步. (1)确定循环体:设a为某年的年生产 总值,t为年生产总值的年增长量,n为 年份,则循环体为t=0.045a,a=a+t,n=n+1. (2)初始化变量: n=2000, a=200. (3)循环控制条件: a>500
3、从键盘输入一个正整数n,计算该数的各位数字之和并输出。 #include <stdio.h> void main() { long n; int s, i=1,j=10; scanf("%ld",&n); s=n%10; while(n/j!=0) { s=s+n/j%10; j=j*10; i++; } printf("i=%d, s=%d ",i,s); }
11、 九· 九表----1
1 1 2 3 4 5 6 7 8 9 2 2 4 6 8 10 12 14 16 18 3 3 6 9 12 15 18 21 24 27 4 4 8 12 16 20 24 28 32 36 5 5 10 15 20 25 30 35 40 45 6 6 12 18 24 30 36 42 48 54 7 7 14 21 28 35 42 49 56 63 8 8 16 24 32 40 48 56 64 72 9 9 18 27 36 45 54 63 72 81
2、输入一串字符,直到输入一个星号为止, 统计(输出)其中的字de <stdio.h> void main() { char ch; int char_num=0,int_num=0; ch=getchar(); while(ch!='*') { if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')) char_num++; else if(ch>='1'&&ch<='9') int_num++; ch=getchar(); } printf("char_num = %d, int_num = %d\n",char_num,int_num); }
循环程序设计习题及答案
循环程序设计习题及答案循环程序设计习题及答案1-基本循环控制结构1-1 基本循环结构示例<代码示例>1-2 循环条件<代码示例>答案:循环条件是一个布尔表达式,如果条件为true,循环将继续执行。
如果条件为false,循环将终止。
1-3 循环计数器<代码示例>答案:循环计数器是一个变量,用于记录循环执行的次数。
1-4 循环控制语句1-4-1 break语句<代码示例>答案:break语句用于提前终止循环,并跳出循环体。
1-4-2 continue语句<代码示例>答案:continue语句用于跳过当前循环体中剩余的代码,直接进入下一次循环。
2-常见循环题型2-1 计算累加和<代码示例>答案:使用循环结构,每次迭代都将当前值累加到一个变量中。
2-2 计算阶乘<代码示例>答案:使用循环结构,每次迭代都将当前值与累积值相乘,并更新累积值。
2-3 猜数字游戏<代码示例>答案:使用循环结构,与用户交互对比猜测的数字与目标数字,直到猜测正确或达到最大猜测次数。
3-循环的嵌套和嵌套控制结构3-1 嵌套循环结构示例<代码示例>3-2 循环的嵌套控制3-2-1 嵌套循环的break语句<代码示例>答案:break语句可以终止当前循环,并直接跳出嵌套循环的外层循环。
3-2-2 嵌套循环的continue语句<代码示例>答案:continue语句可以跳过当前循环体中的剩余代码,并继续下一次迭代。
4-附件本文档没有涉及附件。
5-法律名词及注释5-1 循环:程序中一种重复执行的结构,可通过循环变量控制执行次数。
5-2 循环条件:循环结构中的判断条件,决定循环是否继续执行。
5-3 循环计数器:循环结构中用于记录循环次数的变量。
5-4 break语句:用于提前终止循环,并跳出循环体的语句。
5-5 continue语句:用于跳过当前循环体中剩余的代码,直接进入下一次循环的语句。
高中数学循环结构 典型例题
【例1开始输出“是闰年”y 输出“是闰年”y 输出“不是闰年”y 输出“不是闰年”y y :=2000是是是否否4整除y 100整除y 400整除y(1(2(3三部分构成解:(1(2)(3【例2程图.次比较..i >100是循开始输出b 结束i := 2i := i +11b := a b := ab a<是 是否否输入…a ,a ,a ,1 2 10i ii >100图2-2-32【例3】菲波拉契数列表示的是这样一列数:0,1,1,2,3,5,…,后一项等于前两项的和.设计一个算法流程图,输出这个数列的前50项.分析:输出数列的前50项,当然需设置50个变量:A 1,A 2,…,A 50,若A i -2,A i -1,A i 分别表示数列中连续的三项,则有A i =A i -2+A i-1,即知任何一项的前2项,就可以把这项写出来. 解法一:流程图如图2-2-33.开始输入 , A A 输出A 结束A := 0A := 1A := A + A i := 3i := i +1i >50是 否图2-2-33解法二:流程图如图2-2-34.i 为循环变量,3为i 的初始值;循环体为A i =A i -2+A i -1;终止条件为i >50.法一中有50个变量,输出后不再进行其他操作,因此可只设三个变量A 1,A 2,A 3.图2-2-34【例4】设区间[0,1]是方程f(x)=0的有解区间,画出用二分法算法求方程f(x)=0在区间[0,1]上的一个近似解的流程图.要求精确度为ε.分析:结合求精确度为ε的近似解的算法.(1)由f(a)·f(b)<0,确定有解区间[a,b];(2)取[a,b]的中点2ba+;(3)判断函数值f(2ba+)是否为0.①如果为0,则x=2ba+是方程的解,问题解决完毕.②如果不为0,则有两种情形.a.若f(a)·f(2ba+)<0,则(a,2ba+)为新的有解区间.b.若f(2ba+)·f(b)<0,则(2ba+,b)为新的有解区间.(4)判断新的有解区间的长度是否小于ε.①若大于ε,则在新的有解区间的基础上重复上述步骤.②若不大于ε,则取新的有解区间的中点为方程的近似解.解:算法流程图如图2-2-35.先写出算法,再根据算法写流程图.其算法原理是不断取区间中点得到新的有解区间,同时使精度提高,最终得到满足条件的解.设置两个循环变量a,b,其初始值分别为0,1,终止条件为f(2ba+)=0或b-a≤ε.输出结束a b+2a b +2。
第5章 循环结构程序设计习题解答
第5章循环结构程序设计习题解答1.输入n个整数,求这n个数之中的偶数平均值,并输出。
#include<stdio.h>void main(){int n,i,x,k=0,s=0;printf("Input a number(n):");scanf("%d",&n);printf("Input %d numbers:",n);for(i=0;i<n;i++){scanf("%d",&x);if(x%2==0){s+=x;k++;}}s/=k;printf("average=%d\n",s);}2.输入一串字符,直到输入一个星号*为止,统计(输出)其中字母个数和数字字符个数。
#include<stdio.h>void main(){int n=0,m=0;char c;printf("Input a string character:");do{scanf("%c",&c);if(c>='0'&&c<='9')n++;else if(c>='A'&&c<='Z'||c>='a'&&c<='z')m++;}while(c!='*');printf("number_char=%d\n",n);printf("letter_char=%d\n",m);}3.从键盘输入一正整数n,计算该数各位数字之和并输出。
例如,输入数是5246,则计算5+2+4+6=17并输出。
#include<stdio.h>void main(){int n,r,m=0,s=0;printf("Input a number(int):");scanf("%d",&n);do{r=n%10;s=s+r;n/=10;if(m==0)printf("%d",r);//加式中的第1项不带“+”elseprintf("+%d",r);m++;}while(n>0);printf("=%d\n",s);}4.输入一个字符串,将其中的大写字母改为小写字母,小写字母改为大写字母,然后输出。
while循环语句例题及解析
题目:while循环语句例题及解析在编程语言中,while循环是一种常见的循环语句,它能够根据给定的条件重复执行一段代码。
通过while循环,开发者可以实现对一个条件的反复检查,并在满足条件时执行相应的操作。
本文将通过一些例题及其解析,帮助读者更好地理解和掌握while循环的用法和特点。
1. 例题1:使用while循环计算1到100的和给定一个整数n,计算1到n的和。
当n=100时,应计算1+2+3+...+100的结果。
解析:这是一个经典的求和问题,可以通过while循环轻松实现。
我们需要一个变量sum来存储累加的结果,初始值为0。
通过while循环,对从1到n的数字依次累加到sum中,直到累加到n为止。
```pythonn = 100sum = 0i = 1while i <= n:sum += ii += 1print("1到d的和为:d" (n, sum))```在上述代码中,我们使用了变量n来表示需要计算的范围,sum来存储累加的结果,i作为循环的控制变量。
通过while循环,当i小于等于n时,执行累加操作并将i递增1。
最终输出1到100的和为5050。
2. 例题2:使用while循环找出100以内的所有质数给定一个整数n,找出所有小于等于n的质数。
当n=100时,应找出所有小于等于100的质数。
解析:质数是指除了1和本身外,没有其他正因子的数。
在这个例题中,我们可以利用while循环逐个检查1到n之间的每个数,判断其是否为质数。
具体的算法思路如下:- 我们需要一个列表prime_list来存储所有找到的质数,初始为空列表。
- 我们使用while循环,从2开始逐个判断每个数是否为质数。
对于每个数i,从2开始逐个检查是否存在能整除i的数,若不存在,则将i加入到prime_list中。
- 输出prime_list中找到的所有质数。
```pythonn = 100i = 2prime_list = []while i <= n:j = 2while j <= (i/j):if i j == 0:breakj += 1if j > i/j:prime_list.append(i)i += 1print("100以内的质数有:", prime_list)```在上述代码中,我们先对每个数i进行了从2到i的遍历,通过while 循环对每个数遍历寻找质数。
循环结构程序设计典型例题
2
22 7
1 1 1 1 4 3 5 7
每项的分子都是1
后一项的分母是前一项的分母加2
第1项的符号为正,从第2项起,每一项的符 号与前一项的符号相反
1 n
1 n2
25
#include <stdio.h> #include <math.h> void main() { int sign=1; double pi=0,n=1,term=1; while(fabs(term)>=1e-6) { pi=pi+term; 求绝对值的函数 n=n+2; sign=-sign; term=sign/n; } 只保证前5位小数是准确的 pi=pi*4; printf("pi=%10.8f\n",pi); }
(教材P98 例 4.24 )
(教材P101 例 4.27 )
23
ቤተ መጻሕፍቲ ባይዱ题思路:
求 近似值的方法很多,本题是一种
其他方法:
1 1 1 1 2 2 2 2 6 1 2 3 n 2 2 4 4 66 (n 1)2 2 1 3 3 5 5 7 n (n 2)
} printf("\n");
}
遇到第3行第1列, 终止内循环
21
#include <stdio.h> void main() { 3int i,j,n=0; 原来第 行第 1个 for (i=1;i<=4;i++) 数据3没有输出 for (j=1;j<=5;j++,n++) { if (n%5==0) printf (“\n”);
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的分别。
循环结构程序设计习题及答案
第6章循环结构程序设计6-1.比较while语句、do–while语句和for语句的异同。
答:(1)while语句、do-while语句用于条件循环,for语句用于计数循环。
(2)while语句、for语句是先判断循环条件,后执行循环体,如果循环条件一开始就不成立,则循环体一次也不被执行;而do-while语句是是先执行循环体,后判断循环条件,所以循环体至少被执行一次。
(3)知道循环的次数可选用for语句实现循环,不知道循环的次数可选用while语句或do-while语句实现循环.(4)一般而言,三种循环语句可等价实现.6-2 仔细阅读下面的程序,指出程序的运行结果.#include<>void main(){ int i;for(i=0;++i;i<5){ if(i==3){printf("%d\n",++i);break;}printf("%d\n",++i);}}答:24思考:语句“for(“i=0;++i;i<5”)在编译时为何会给出语法警告错误当将其改为“for(i=0;i<5;++i)”时,运行结果又将如何6-3 仔细阅读下面的语的程序,指出程序的运行结果。
#include""void main(){ int i, a=0;for(i=1;i<=5;i++){do{i++;a++;} while(i<3);}i++;printf("a=%d,i=%d",a,i);}答:a=3,i=7思考:在for循环中嵌套着do-while循环,那么do-while循环中对i的修改会对for循环产生影响吗6-4编写程序,用1000个单词”computer”填充屏幕,每行60个.解:#include<>void main(){ int i;for(i=1;i<=1000;i++){ printf("computer.");if(i%60==0)printf("\n");}}思考:在for循环中,”if(i%60==0)printf(“\n”);”语句的作用是什么没有此语句将会是什么状况6-5输入一行字符(以$结束),统计其中的数字字符、空格字符出现的次数。
数学高考复习循环结构专题练习(附解析)
数学 2019 届高考复习循环结构专题练习(附解析)循环结构可以减少源程序重回信写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机专长的程序结构。
以下是循环结构专题练习,请考生及时进行练习。
一、选择题1.以下说法不正确的选项是 ()A.序次结构是由若干个依次执行的办理步骤组成的,每一个算法都离不开序次结构B.循环结构是在一些算法中从某处开始依照必然的条件,屡次执行某些办理步骤,故循环结构必然包含选择结构C.循环结构不用然包含选择结构D.用算法框图表示的算法更形象、直观,简单理解[答案]C[ 解析 ]显然循环结构必然包含选择结构,应选 C.2. 框图 ( 以以下图 ) 中的循环体是 ()A.AB.BC.CD.D[答案]B[ 解析 ]此框图中 A 部分是赐予循环变量的初始值1,预示循环开始 ;B 部分是屡次执行的部分,称为循环体;C 部分是判断可否连续执行循环体,称为循环的停止条件,则循环体是B.3.执行以以下图的程序框图,则输出的 S 的值是 () A.4B.C. D.-1[答案]D[ 解析 ] i=1,S=4;i=2 时, S==-1;i=3 时, S==;i=4 时, S==;i=5 时, S==4;i=6 时, S==-1,此时跳出循环,输出S 的值 -1.4.执行以以下图的程序框图,输出的 S 值为 ()A.2B.4C.8D.16[答案]C[ 解析 ]初始:S=1,k=0,第一次循环:由03 知 S=1, k=1,第二次循环:由13 知 S=2, k=2;第三次循环:由23 知, S=8, k=3;此时跳出循环,输出S为 8.5.(2019安徽理,3)以以下图,程序框图( 算法流程图 ) 的输出结果是 ()A.34B.55C.78D.89[答案]B[ 解析] 本题观察程序框图,循环结构 . 当输入 x=1,y=1,执行 z=x+y 及 z50,x=y , y=z 后, x, y,z 的值依次对应以下:x=1, y=1, z=2;x=1, y=2, z=3;x=2, y=3, z=5;x=3, y=5, z=8;x=5, y=8, z=13;x=8, y=13, z=21;x=13, y=21, z=34;x=21, y=34, z=55.由于 5550 不成立,故输出55.6.若是执行下边的程序框图,输入正整数N(N2) 和实数 a1,a2,, aN,输出 A, B,则 ()A.A+B 为 a1, a2,, aN 的和B.为 a1, a2,, aN 的算术平均数C.A 和B 分别是a1,a2,,aN 中最大的数和最小的数 D.A 和 B 分别是 a1, a2,,aN 中最小的数和最大的数[答案]C[ 解析 ]本题观察了循环结构中嵌套了条件结构的问题. 读懂流程图,理解循环结构及条件结构时解题的重点. 二、填空题7.(2019江苏,3)以下图是一个算法流程图,则输出的n 的值是 ________.[答案]5[ 解析 ]本题观察程序框图.本题实质上就是求不等式2n20 的最小整数解 .2n20 整数解为n5,因此输出的n=5.8.以以下图,程序框图 ( 算法流程图 ) 的输出结果是________.[答案]15[ 解析 ]该题观察算法程序框图的循环结构.T=0+1+2++14=(1+14)7=157=105 ,此时 k=14,再循环一次停止,k=15.三、解答题9. 设计一个计算2+4+6++100 的值的算法,并画出算法框图. [ 解析 ]算法以下:1.S=0.2.i=2.3.S=S+i.5.若是 i 大于 100,则执行 6,否则执行 3,4.6.输出 S.算法流程图以以下图所示.一、选择题1.(2019江西文,8)阅读以下程序框图,运行相应的程序,则程序运行后输出的结果为()A.7B.9C.10D.11[答案]B[ 解析 ]本题主要观察循环结构的程序框图,由框图运行程序我们可知 .第步,运行i=1 , S=0+lg=lg-1第步, i=3 , S=lg+lg=lg-1第步, i=5 , S=lg+lg=lg-1第步, i=7 , S=lg+lg=lg-1第步, i=9 , S=lg+lg=lg-1程序框图结束此时输出i=9 ,应选 B,本题解题重点是找到对数的运算规律,要掌握好每执行一步程序,i 与 S 的函代关系 .2. 执行下边的程序框图,若是输入a=4,那么输出的n 的值为 ()C.4D.5[答案]B[ 解析 ]本题观察了算法循环结构的直到型的流程图问题 .n=0 ,p=0+40=1, q=2+1=3;n=1, p=1+41=5,q=6+1=7;n=2, p=5+42=21,q=14+1=15, n=3,pq.算法的观察多以流程图的形式出现,重点观察的是循环结构 .二、填空题3.阅读以以下图所示的算法框图,若输入m=4, n=3,则输出a=________, i=________.[答案]62[ 解析 ]该算法框图的执行过程是:m=4n=3i=1a=4+1=53整除5否i=1+1=2a=4+2=63整除6是输出 a=6, i=2.4.(2019山东理,11)执行下边的程序框图,若输入的x 的值为 1,则输出的 n 的值为 ________.[答案]3[ 解析 ] 由 x2-4x+30 ,解得 13,当 x=1 时,满足 13,因此 x=1+1=2, n=0+1=1;当 x=2 时,满足 13,因此 x=2+1=3, n=1+1=2;当 x=3 时,满足 13,因此 x=3+1=4, n=2+1=3;当 x=4 时,不满足 13,因此输出 n=3. 三、解答题5. 画出求 ( 共 6 个 2) 的值的算法的流程图.[ 解析 ]这个式子实际上是求和,取倒数; 再求和,取倒数;屡次五次即达到目的. 第一个和为2+.[ 解析 ]流程图以以下图所示.6.设计算法,输出 1 000 以内能同时被 3 和 5 整除的所有正整数,画出算法的流程图 .[ 解析 ] 算法以下:1.n=1.2.a=15n ,输出 a.3.n=n+1.4.若 n66,则执行 5,否则执行 2,3.5.结束 .6.算法流程图以以下图:7.设计一个计算 20 个数的平均数的算法,并画出相应的流程图 .[解析] 算法以下 .1S=0.2i=1.3输入 G.4S=S+G.5 i=i+1.6 若是 i 不大于 20,转 3; 若是 i 大于 20,退出循环 .7A=.8输出 A.循环结构专题练习及答案的所有内容就是这些,查字典数学网希望可以帮助考生顺利复习。
循环结构程序设计练习题 内含问题详解
第三单元循环结构练习题选择题: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 3B. 3 5 7C.3 6 9D.7 5 15、以下程序运行后的输出结果是( 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 )。
第五章循环结构习题与答案
第五章循环结构一、选择题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 在三种选择结构中,能用2个条件,控制从3个操作中选择一个操作执行的选择结构是______选择结构【分析】能用1个条件,控制某个操作做或不做的选择结构是单分支结构;能用1个条件,控制从2个操作中选择一个操作执行的选择结构是双分支结构;能用n(n>l)个条件,控制从n+ l个操作中选择一个操作执行的选择结构是多分支结构。
【答案】多分支2 在三种循环结构中,先执行循环操作内容(即循环体),后判断控制循环条件的循环结构是______循环结构。
【分析】当型循环结构是先判断控制循环的条件,条件成立,执行循环体;条件不成立,则退出循环体。
次数型循环结构也是先判断是否达到循环次数,没有达到循环次数,执行循环体;达到循环次数的,退出循环。
只有直到型循环结构才是先执行循环体,然后再判断控制循环的条件,如果条件成立,进行循环;条件不成立,退出循环。
【答案】直到型3 使用“getchar( )”函数时,程序的开头必须写一条包含命令为____________。
【分析】凡是使用系统函数的程序,都要在程序的开头写一条包含命令,包含命令中的“头函数.h”是一个文件,其中有关于该系统函数的定义。
系统函数“getchar( )”是在名为“stdio.h(标准输入输出函数)”的头函数文件中定义的。
【答案】#include"stdio.h"或#include<stdio.h>4 执行输入语句“scanf("x=%c,y=%d",&x,&y);”,要使字符型变量X的值为'A'、整型变量y的值为12,则从键盘上正确的输入是( )①'A'/②A/③x=A/ ④x=A,y=12/12/ 12/ y=12/ 说明:备选答案中的"/"表示回车换行键【分析】输入语句的格式控制符串中的“x=”、“,”、“y=”都是非格式控制符,在输入时必须原样位置输人,所以只有备选答案④才符合这个要求。
(完整版)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 在三种选择结构中,能用2个条件,控制从3个操作中选择一个操作执行的选择结构是______选择结构【分析】能用1个条件,控制某个操作做或不做的选择结构是单分支结构;能用1个条件,控制从2个操作中选择一个操作执行的选择结构是双分支结构;能用n(n>l)个条件,控制从n+ l个操作中选择一个操作执行的选择结构是多分支结构。
【答案】多分支2 在三种循环结构中,先执行循环操作内容(即循环体),后判断控制循环条件的循环结构是______循环结构。
【分析】当型循环结构是先判断控制循环的条件,条件成立,执行循环体;条件不成立,则退出循环体。
次数型循环结构也是先判断是否达到循环次数,没有达到循环次数,执行循环体;达到循环次数的,退出循环。
只有直到型循环结构才是先执行循环体,然后再判断控制循环的条件,如果条件成立,进行循环;条件不成立,退出循环。
【答案】直到型3 使用“getchar( )”函数时,程序的开头必须写一条包含命令为____________。
【分析】凡是使用系统函数的程序,都要在程序的开头写一条包含命令,包含命令中的“头函数.h”是一个文件,其中有关于该系统函数的定义。
系统函数“getchar( )”是在名为“stdio.h(标准输入输出函数)”的头函数文件中定义的。
【答案】#include"stdio.h"或#include<stdio.h>4 执行输入语句“scanf("x=%c,y=%d",&x,&y);”,要使字符型变量X的值为'A'、整型变量y的值为12,则从键盘上正确的输入是( )①'A'/②A/③x=A/ ④x=A,y=12/12/ 12/ y=12/ 说明:备选答案中的"/"表示回车换行键【分析】输入语句的格式控制符串中的“x=”、“,”、“y=”都是非格式控制符,在输入时必须原样位置输人,所以只有备选答案④才符合这个要求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)66778777 D)6688766二.填空题1.C语言三个循环语句分别是语句,语句和语句。
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循环替换。
【】3.continue语句只能用于三个循环语句中。
【】4.在不得已的情况下(例如提高程序运行效率),才使用goto语句。
【】5.语句标号与C语言标识符的语法规定是完全一样的。
【】6.for循环的三个表达式可以任意省略,while,do-while也是如此。
【】7.do-while允许从外部转到循环体内。
【】8.while的循环控制条件比do-while的循环控制条件严格。
【】9.do-while循环中,根据情况可以省略while。
【】10.do-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) ; prin tf(“%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*=y ;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)空使程序完整。