内容发布更新时间 : 2024/12/23 0:04:58星期一 下面是文章的全部内容请认真阅读。
第三部分 循环结构 ·36·
while(cocks<=19)
{ hens=0;
while(hens<=33)
{ chicks=100.0-cocks-hens;
if(5.0*cocks+3.0*hens+chicks/3.0==100.0) printf(\【1】; }
【2】; }
}
19.爱因斯坦的阶梯问题:设有一阶梯,每步跨2阶,最后余1阶;每步跨3阶,最后余2
阶;每步跨5阶,最后余4阶;每步跨6阶,最后余5阶;只有每步跨7阶时,正好到阶梯顶。问共有多少阶梯。 main()
{int ladders=7;
while(【 1 】)ladders+=14; printf(\
}
20.下列程序计算平均成绩并统计90分及以上人数。
main()
{int n,m;
float grade,average; average=n=m=【1】; while(【2】) { scanf(\if(grade<0)break; n++;
average+=grade; if(grade<90)【3】; m++; }
if(n)printf(\}
21.下列程序计算Fibonacci数列:1,1,2,3,5,8,13……的前40项。
main()
{int I;long f1,f2; 【1】;
for(I=0;I<20;I++)
{ printf(\if(I%2)printf(\f1+=f2; 【2】; }
第三部分 循环结构 ·37·
}
22.下列程序判断一个数是否为素数。
#include
scanf(\k=sqrt(【1】); for(I=2;I<=k;I++) if(m%I==0)【2】;
if(【3】)printf(\else printf(\
}
23. 求100~499之间的所有水仙花数,即各位数字的立方和恰好等于该数本身的数。
main()
{int I,j,k,m,n;
for(I=1;【1】;I++) for(j=0;j<=9;j++) for(k=0;k<=9;k++) {【2】;
n=I*I*I+j*j*j+k*k*k; if(【3】)
printf(\ } }
24.从键盘上输入两个整数m和n,求其最大公约数。
main()
{int a,b,num1,num2,temp;
scanf(\if(【1】) { temp=num1; num1=num2; num2=temp; }
a=num1;b=num2; while(b!=0) { temp=【2】; a=b; b=temp; }
printf(\}
第三部分 循环结构 ·38·
3.3 答案及部分解题分析
一.选择题答案
1.A 2.D 3.A 4.D 5.D 6.A 7.A 8.C 9.D 10.C 11.C 12.C 13.D 14C 15.A 16.C 17.C 18.D 19.C 20.B 21.A 22.C 23.B 24.B
25.A 26.A 27.B 28.A 29.C 30.C 1. 答案:A
解析:此题中判断while后面的条件时,先使用n的值再n--,而打印时打印的是n减1
后的值。所以第一次循环,n=4,执行完后n=2,打印出2;第二次循环,n=2, 经过n—和
—n,n变成了0,打印出0;第三次循环时while后面的条件不成立(n=0),所以循环结束。故输出为20。
2. 答案:D
解析:第一次循环时打印的x和y的值都是10,然后x通过x—后变成9,因此第二次循环时x=9, 而“y=++i‖执行完后,y变成1,所以第二次循环时打印的x和y的值是9
和1 ,然后x—变成8; 第三次循环时,x>8条件不成立,循环结束。故D为正确
答案。
3. 答案:A
解析:对于一个不为0的数,!x即为0,故对于x=-1,while后条件不成立,但是do循环体是先执行的,故等判断条件时,循环体已执行了一次。
4. 答案:D
解析:此题是一个do-while循环,当y值为1时,while后的条件--y变成0,从而循环
结束,这时打印出0,然后y--变成-1。故D为正确答案。
5. 答案:D
解析:此题中循环进行了1次,但判断了2次,第一次x加1变成4,y减1变成5,a
加1变成1;第2次while后面的条件不成立,因为!=的左边先使用x的值4来判断,右边表达式的值为4,即y由5变成4,判断结束后4变成5,循环结束。故D为正确答案。
6. 答案:A
解析:此题中外层for要进行5次,内层for循环要进行4次,所以共进行4*5=20次循
环。 二.填空题答案 1. 答案:21
2. 答案:【1】c C 【2】等待继续输入,直到输入小写字母。 3. 答案:1,0,0,1
4. 答案:【1】x=4,y=2*x-1=7 【2】x=-4,y=x=-4 【3】x=10,y=3*x-11=19 5. 答案:55 6. 答案:8,14,1 7. 答案:1 3 5 7 8. 答案:1234
第三部分 循环结构 ·39·
9. 答案:5,5 10.答案:1 3 5 11.答案:8
12.答案:4 7 10 13.答案:1 2 3