循环结构程序设计典型例题

合集下载

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

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

循环结构程序设计习题与答案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>;}。

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。

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.k=0;do{++k;}while(k<=0);D.s=3379;while(s++%2+3%2)s++;(7)与以下程序段等价的是__A__。

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

C 循环结构23道题[含答案解析]

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

循环结构(50题) - 副本

循环结构(50题) - 副本

固定循环1.画出打印前10个偶数乘积的流程图2.画出流程图:接受50个数,还显示奇数和偶数的总个数3.画出显示键入的任何10个数中最大者的流程图4.绘制流程图以生成前10奇数,并显示这些数值的平均值?5.绘制流程图以显示前100个自然数的平方根6.绘制流程图生成Fibonacci数列。

前两个数应是0和1,最后一个数应是89。

提示:Fibonacci数列的数为:01 1 2 3 5 8 13 21 34 55 89。

除了前两个数0和1,数列中的每个数是前两个数之和。

7.办公室电话都有两个分机,分机号为1和2。

在任何时间点,只有一个分机忙。

以下给出的序列显示了分机1和分机2接收来电的顺序。

1、1、1、1、2、2、2、1、2、1、2、1、2、2、2、1、2具体某一天接收来电的总数为200。

绘制流程图以显示分机1和分机2接收来电的总数。

8.对以下情形绘制流程图:接受的100本书包括了书数、书名、书类和销售价。

显示以下详细信息:序列号No书数BookNo书名BookName销售价NetPrice类别Cat折扣SP净价(净价=销售价-折扣)Discount根据书的类别给出书的折扣,如下表所示:9.一个班级有20名学生。

每个学生参加5个测验。

每测验满分为100分。

计算并显示每个学生的平均分。

提示:创建模块计算平均得分。

10.求100~150之间和400~500之间能被9整除的数,将结果输出到屏幕上11.任意输入10个数,对这10个数按从小到大排列显示。

画出流程图12.已知XYZ+YZZ=532,其中X,Y,Z为0~9的数字,求出X,Y,Z,且显示出来。

画出流程图13.设有计算阶乘的函数f(n)=n!,试设计一个计算阶乘的方法和相应的类,并利用这个类计算f(5)和f(17)的值!画出流程图14.从键盘逐个输入字符,直到输入‘!’时结束,输出字符的个数(不包括‘!’)。

15.输出所有在正整数200和300之间能被6整除、但不能被4整除的数。

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

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

第三单元循环结构练习题选择题: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)。

程序设计_循环结构(附带答案)

程序设计_循环结构(附带答案)

计算机程序设计基础_循环结构班级学号姓名成绩一、单选题(18*4=72)1.以下叙述正确的是▁D▁▁▁A)do-while 语句构成的循环不能用其它语句构成的循环来代替B)do-while 语句构成的循环只能用break 语句退出C)用do-while 语句构成的循环,在while后的表达式为非零时结束循环D)用do-while 语句构成的循环,在while后的表达式为零时结束循环2.设int a,b;则执行以下语句后b的值为▁D▁▁▁a=1; b=10;do{ b-=a;a++;}while (b--<0);A)9 B) –2 C) –1 D) 83.以下程序段的执行结果是▁D▁▁▁int a, y;a=10; y=0;do{ a+=2; y+=a;cout<<“a=”<<a<<”,y=”<<y<<endl;if (y>20) break;}while (a=14);A)a=12,y=12 B) a=12,y=12a=14,y=16 a=14,y=26C) a=12,y=12 D) a=12,y=12a=14,y=44 a=16,y=284. 设int i;执行语句: for (i=1;i++<4;);后,变量i 的值是▁C▁▁A) 3 B) 4 C) 5 D)不定值5.以下循环体的执行次数是▁▁C▁▁#include <iostream.h>void main(){ int i, j;for (i=0,j=1; i<=j+1; i+=2, j--)cout<<i<<endl; }A) 3 B) 2 C) 1 D) 06. 当执行以下程序段时▁C▁▁▁int y=-1 ;do {y--;} while(--y);cout<<y--<<endl;A) 循环体将执行一次 B)循环体将执行两次C) 循环体将执行无限次 D)系统将提示有语法错误7.在下列选项中,没有构成死循环的程序是▁C▁▁▁A) int i =100; B) for (;;);while(1){ i=i%100+1;if (i>100) break; }C) int k=1000; D) int s=36;do {++k;} while(k<=1000); while (s); --s;8. 设int x,y;则执行下的循环后,y值为▁C▁▁▁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) 89.设int j;,则下面for循环语句的执行结果是▁B▁▁for( j=10;j>3;j--){ if(j%3) j--;--j; --j;cout<<j;}A) 6 3 B) 7 4 C) 6 2 D) 7 310.以下程序的输出结果是▁B▁▁▁#include <iostream.h>void main( ){ int i, j;for(j=10;j<11;j++)for(i=9;i<=j-1;i++)cout<<j;}A) 11 B) 10 C) 9 D) 10 1111. 以下程序的执行结果是▁C▁▁▁#include <iostream.h>void main( ){ int i,sum;for(i=1;i<=3;sum++)sum+=i;cout<<sum<<endl;}A) 6 B) 3 C) 死循环 D) 012. 以下程序的执行结果是▁B▁▁▁#include <iostream.h>void main( ){ int x=23;do { cout<<x--<<endl;} while(!x);}A) 22 B) 23C) 24 D) 陷入死循环13.有如下程序, 该程序段的输出结果是▁B▁▁▁1#include <iostream.h>void main( ){ int n=9;while(n>6){ n--; cout<<n;} }A) 987 B) 876 C) 8765 D) 987614.以下程序的输出结果是▁D▁▁▁#include <iostream.h>void main( ){ int x=10,y=10,i;for(i=0;x>8;y=++i)cout<<x--<<" "<<y<<" ";cout<<endl; }A)10 1 9 2 B)9 8 7 6C)10 9 9 0 D)10 10 9 115.以下程序的输出结果是▁A▁▁▁#include <iostream.h>void main( ){ int n=4;while(n--) cout<<--n;}A)2 0 B)3 1 C)3 2 1 D)2 1 016.以下程序的输出结果是▁▁A▁▁#include <iostream.h>void main( ){ int i;for(i=1;i<6;i++){ if(i%2) { cout<<"#";continue;} cout<<"*";}cout<<"\n";}A)#*#*# B)##### C)***** D)*#*#*17.以下程序的输出结果是▁▁B▁▁#include <iostream.h>void main( ){ char i;for(i='A';i<'I';i++,i++) cout<<i;cout<< "\n";}A)编译不通过,无输出 B)ACEGC)ACEGI D)ABCDEFG18.运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为▁▁C▁▁#include <iostream.h>#include <stdio.h>void main( ){ int v1=0,v2=0; char ch ;while ((ch=getchar())!='#')switch (ch ){ case 'a':case 'h':default: v1++;case '0':v2++; }cout<<v1<<”,”<<v2<<endl;}A)2,0 B)5,0 C) 5,5 D)2,5二、填空题(3+3+2=8)设i, j, k 均为int型变量,则执行完下面的for循环后,i的值为___6___; j的值为__4____;k 的值为 ___10____。

C语言各章节单元测试题及答案——循环结构程序设计

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的分别。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
27
例5 求费波那西(Fibonacci)数列的前 40个数。这个数列有如下特点:第1、2 两个数为1、1。从第3个数开始,该数是 其前面两个数之和。即:
F1 1 F2 1 F F F n 1 n2 n
(n 1) ( n 2) (n 3)
28
这是一个有趣的古典数学问题:
void main()
{ int i,j,n=0;
for (i=1;i<=4;i++)
累计输出数据的个数
for (j=1;j<=5;j++,n++)
{ if (n%5==0) printf (“\n”);
printf ("%d\t",i*j);
}
printf("\n"); }
控制一行内输 出5个数据
30
f1=1,f2=1 输出f1,f2 For i=1 to 38 f3=f1+f2 输出f3 f1=f2 f2=f3
31
#include <stdio.h>
void main()
{ int f1=1,f2=1,f3; int i; printf("%12d\n%12d\n",f1,f2); for(i=1; i<=38; i++) { f3=f1+f2;
4
#include <stdio.h> #define SUM 100000 void main() { float amount,aver,total; int i; for (i=1,total=0;i<=1000;i++) { printf("please enter amount:"); scanf("%f",&amount); 应该执行1000次 total= total+amount; if (total>=SUM) break; } aver=total / i ; printf(“num=%d\naver=%10.2f\n“ ,i,aver); }
24
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); }
16
#include <stdio.h>
void main()
{ int i,j,n=0; for (i=1;i<=4;i++)
控制输出4行
for (j=1;j<=5;j++,n++) { if (n%5==0) printf (“\n”);
printf ("%d\t",i*j);
} printf("\n"); }
26
#include <stdio.h> #include <math.h> void main() { int sign=1; double pi=0,n=1,term=1; while(fabs(term)>=1e-6) 改为1e-8 { pi=pi+term; n=n+2; sign=-sign; term=sign/n; } pi=pi*4; printf("pi=%10.8f\n",pi); }
printf("%12d\n",f3);
f1=f2;
f2=f3; 代码可改进
} }

32
#include <stdio.h>
5
#include <stdio.h> #define SUM 100000 void main() { float amount,aver,total; int i; for (i=1,total=0;i<=1000;i++) { printf("please enter amount:"); scanf("%f",&amount); total= total+amount; if (total>=SUM) break; } 达到10万,提前结束循环 aver=total / i ; printf(“num=%d\naver=%10.2f\n“ ,i,aver); }
2
编程思路:
变量amount,用来存放捐款数 变量total,用来存放累加后的总捐款数
变量aver,用来存放人均捐款数
定义符号常量SUM代表100000
3
#include <stdio.h> #define SUM 100000 指定符号常量SUM代表100000 void main() { float amount,aver,total; int i; for (i=1,total=0;i<=1000;i++) { printf("please enter amount:"); scanf("%f",&amount); total= total+amount; if (total>=SUM) break; } aver=total / i ; printf(“num=%d\naver=%10.2f\n“ ,i,aver); }
18
#include <stdio.h>
void main()
{ int i,j,n=0;
for (i=1;i<=4;i++)
i=1时
for (j=1;j<=5;j++,n++)
{ if (n%5==0) printf (“\n”);
printf ("%d\t",i*j); j由1变到5 } i*j的值是1,2,3,4,5 printf("\n"); }
if (i==3 && j==1) continue;
printf ("%d\t",i*j);
} printf("\n");
}
22
1 1 1 例4 用 4 1 3 5 7 公式求 的近似值 ,直到发现某一项的绝对值小于10-6 为止(该 项不累计加)。


(教材P96 例 4.21 )
循环结构程序设计典型例题
例1 在全系1000学生中,征集慈善募 捐,当总数达到10万元时就结束,统 计此时捐款的人数,以及平均每人捐 款的数目。
1
编程思路:
循环次数不确定,但最多循环1000次 在循环体中累计捐款总数
用if语句检查是否达到10万元
如果达到就不再继续执行循环,终止累加
计算人均捐款数
8
例2 要求输出100~200之间的不能被 3整除的数。 编程思路:
对100到200之间的每一个整数进行检查
如果不能被3整除,输出,否则不输出
无论是否输出此数,都要接着检查下一个 数(直到200为止)。
9
n=100 n≤200 Y n能被3整除 N 输出n n=n+1
for(n=100;n<=200;n++) { if (n%3==0) continue; printf("%d ",n); } N Y
7
#include <stdio.h> #define SUM 100000 void main() { float amount,aver,total; int i; for (i=1,total=0;i<=1000;i++) { printf("please enter amount:"); scanf("%f",&amount); total= total+amount; if (total>=SUM) break; } 只能用于循环语句和switch aver=total / i ;语句之中,而不能单独使用 printf(“num=%d\naver=%10.2f\n“ ,i,aver); }
有一对兔子,从出生后第3个月起每个月都生 一对兔子。 小兔子长到第3个月后每个月又生一对兔子。 假设所有兔子都不死,问每个月的兔子总数为 多少?
29
第几 小兔子 中兔子 老兔子 兔子 个月 对数 对数 对数 总数 1 1 0 0 1 2 0 1 0 1 3 1 0 1 2 4 1 1 1 3 5 2 1 2 5 6 3 2 3 8 7 5 3 5 13 ┇ ┇ ┇ ┇ ┇
Y
Y
强行退出循环
只结束本次循环
12
例3 输出以下4*5的矩阵。
1 2 3 4 5
2
3
4
6
6
8 10
9 12 15
4
8 12 16 20
13
解题思路: 可以用循环的嵌套来处理此问题 用外循环来输出一行数据 用内循环来输出一列数据 按矩阵的格式(每行5个数据)输出
相关文档
最新文档