预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共26页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第五章循环控制用处: 1.与if语句一起构成循环结构; 2.从循环体中转到循环体外,(从多层循环的内层跳转到外层循环,但不符合结构化原则)例5.2试编制一程序,从键盘上输入数据,并累加起来,当输入-1时,输出结果 main() {intx,sum=0;执行结果 m1:scanf(“%d”,&x);1 if(x==-1)gotom2;2 elsesum+=x;gotom1;3 m2:printf(“\nsum=%d\n”,sum);-1 }sum=6 while语句可以表示为: 初始表达式; while(循环条件) { 语句; 循环增量表达式; } 例1用while循环,把26个大写字母顺序输出。 main() {chari; i=‘A’; while(i<=’Z’) {printf(“%c”,i); i++; } }例2:计算s=1+2+3+…+n(n≥1) #include“stdio.h” main() {ints,k,n; printf(“Inputn=“);scanf(“%d”,&n); s=0;k=1;/*L1*/ while(k<=n){s+=k;k++;}/*L2*/ printf(“s=%d\n”,s); } 程序中,/*L2*/行可以简化为 while(k<=n)s+=k++;则可省去复合词句。问题与思考: /*L1*/行中,若令k的初值为0,请填空: s=0;k=0; while()s+=k++; 答:应填入k<=n或k<n+1 (2)将/*L2*/行进行如下改动,请填空: s=0;k=; while(){k++;s+=k;} 答:第一空应填入0,或-1 第二空应填入k<n或k<=n-1 例3:空语句做为循环体while(…); intn=0;while(n++<=2); printf(“%d”,n); 死循环while(1)…while(任何非0常数)…例5.11译密码。为使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文。如,可以按以下规律将电文变成密码:字母A变成字母E,a变成字母e,W变成字母A,X变成字母B,Y变成字母C,Z变成字母D,字母按上述规律转换,非字母字符不变。如”China”转换为“Glmer!” ABCDEFGHIJKLMNOPQRSTUVWXYZ 输入一行字符,要求输出其相应的密码。 #include“stdio.h” main() {charc; while((c=getchar())!=’\n’) {if((c>=’a’&&c<=’z’)||(c>=’A’&&c<=’Z’)) {c=c+4; if((c>=’Z’&&c<=’Z’+4||c>=’z’)c=c-26; } printf(“%c”,c); } }二、do…while循环语句 格式:do语句while(条件式)例1:(用do…while实现) 计算s=1+2+3+…+n(n≥1) s=0;k=1; do{s+=k;k++;}while(k<=n); 例2:用dowhile循环,把26个大写字母顺序输出。 main() {chari; i=‘A’; do {printf(“%c”,i); i++; } while(i<=’Z’); } 死循环do…while(1);三、for循环语句 格式:for([表达式1];[表达式2];[表达式3])语句例1:(用for循环实现) 计算s=1+2+3+…+n(n≥1) for(k=1;k<=n;k++)s+=k; 例2:说明以下循环语句的循环次数。 for(i=0;i<n-1;i++);答:次 (2)for(i=n;i>=0;i--);答:次 (3)i=1;while(i<n)++i;答:次 (4)i=4;doi--;while(i<0);答:次 (5)m=5;while(m<5)m+=2;答:次 (6)for(i=1,j=2;i>j;i++,j--);答:次 例3:分析以下程序的输出结果 x=3; do{x--;printf(“%d”,x);} while(x>=0); 答: (2)s=0;for(i=0,j=100;i<=j;i++,j--)s+=i+j; printf(“%d”,s); 答: main() {intn,i;doubles=1; for(i=1;i<=;i++)s*=i; printf(“sm=%f\n”,s); }main() {longi,sum=0,t=1; for(i=1;i<=20;++i) { t=t*i; sum=sum+t; } printf(“sum=%ld\n”,sum); } 结果:sum=268040729例7C语言常用字符有96个,其中ASCII码值在32与127之间,其中32为空白字符(即空格)的ASCI