第4章程序控制g.ppt

上传人:caoka****i345 文档编号:153284002 上传时间:2020-11-28 格式:PPT 页数:53 大小:1,007KB
返回 下载 相关 举报
第4章程序控制g.ppt_第1页
第1页 / 共53页
第4章程序控制g.ppt_第2页
第2页 / 共53页
第4章程序控制g.ppt_第3页
第3页 / 共53页
第4章程序控制g.ppt_第4页
第4页 / 共53页
第4章程序控制g.ppt_第5页
第5页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第4章程序控制g.ppt》由会员分享,可在线阅读,更多相关《第4章程序控制g.ppt(53页珍藏版)》请在金锄头文库上搜索。

1、第4章 程序控制,主要内容: for语句 do/while语句 switch 语句 多重循环 break和continue 的使用 逗号表达式 逻辑运算符,4.1 逗号运算符和逗号表达式,逗号运算符:“,”也叫顺序求值运算符。 逗号表达式:用“,”把两个表达式连接起来形式的表达式,叫逗号表达式。基本格式: 表达式1,表达式2 例如: 400+500,600*y 逗号表达式的值:最后一个表达式的值。 逗号运算符的优先级:最低。但()可以改变其运算顺序。 扩展的逗号表达式: 表达式1,表达式2,表达式3,,逗号表达式,例子: a=3*5,a*4 /* a=15*/ (a=3*5,a*4),a+5

2、/* a=15 */ x=(a=3,6*3) /* 赋值表达式*/ x=a=3,6*a /* 逗号表达式*/,注意:并不是所有出现逗号的地方都是逗号运算符。 printf(“%d,%d,%dn”,(a,b,c),b,c);,逗号表达式,非逗号表达式,60,20,a=3,x=18,x=3,a=3 表达式的值 18,4.2 逻辑运算及其表达式,用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式。 4.2.1 逻辑运算及其优先次序 1逻辑运算符及其运算规则 (1)逻辑运算符。 C语言提供三种逻辑运算符: break; case 常量2: 语句2或空; break; . . case 常量n

3、; 语句n或空; break; default: 语句n+1或空; ,执行switch开关语句时, 将变量逐个与case后的 常量进行比较, 若与其中 一 个相等, 则执行该常量 下的语句, 若不与任何一个 常量相等, 则执行default 后 面的语句。,switch语句,switch语句(开关分支语句) 一般形式:,E1-En里的语句组末尾需要break;否则执行顺序不一样。,说明: E1,E2,En是常量表达式,且值必须互不相同 必须用break跳出 case后可包含多个可执行语句,且不必加 switch可嵌套 多个case可共用一组执行语句,如: case A: case B: cas

4、e C: case D: printf(“score60n”); break; .,例 switch(score) case 5: printf(“Very good!”); case 4: printf(“Good!”); case 3: printf(“Pass!”); case 2: printf(“Fail!”); default : printf(“data error!”); ,运行结果:score为5时,输出: Very good! Good! Pass! Fail! data error!,上面程序的输出结果是: A) a=2, b=1 B) a=1, b=1 C) a=1,

5、b=0 D) a=2, b=2,例 void main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+;b+; break; case 3: a+;b+; printf(“na=%d,b=%d”,a,b); ,计算表达式(形如3+5,9/3的四则运算式)的值 #include #include main() float a,b,d; int flage; char op,ch; while(1) flage=1; printf(Enter yo

6、ur expression:n); scanf(%f%c%f, ,if(flage=1) printf(%.0f%c%.0f=%.2fn,a,op,b,d); else if(flage=0) printf(Division by zero!n); else printf(Unknown operator!n); printf(continue(Y/N)?); flushall(); scanf(%c, ,1. do-while语句,一般格式: do 语句 while(表达式);,语句,表达式,真,假,用do-while()求:s=1+2+3+100。,main() int i,sum; i=

7、1;sum=0; do sum+=i; i+; while(i=100); printf(“%d”,sum); ,for语句,for语句的一般格式: for(表达式1;表达式2;表达式3)语句 100 例如:求i 1 for( i=1 ; i=100 ; i+ ) sum+=i;,表达式1,表达式2,语句,表达式3,假,真,for(循环变量初始化;循环条件;循环变量增量) 语句,void main() int i,sum=0; for(i=1;i=100;i+) sum+=i; printf(“sum=%dn”,sum); ,void main() int i,sum=0; i=1; for(

8、 ; i=100;i+) sum+=i; printf(“sum=%dn”,sum); ,void main() int i,sum=0; i=1; for( ; i=100;) sum+=i; i+; printf(“sum=%dn”,sum); ,void main() int i,sum=0; i=1; for(;) sum+=i; i+; if(i100) break; printf(“sum=%dn”,sum); ,for()语句的其他形式: 1) char c; int i; for( i=0 ; (c=getchar()!=n ; i+=c ); printf(“sum=%dn”

9、,i); 2)char c; for( ; (c=getchar()!=n ; ) printf(“%c”,c); 3)int i,j; for(i=0,j=100;i=j; i+, j-) printf(“%d %dn”,i,j);,没有语句 (循环体),任意 表达式,逗号 表达式,break和continue语句,break语句:结束循环,执行循环后的下个语句。,#define PI 3.1415926 main() float area; int r; for(r=1;r100) break; printf(“r=%d,area=%fn”,r,area); printf(“The end

10、. Press any key to go on.”); ,结束循环,执行下一个语句,continue语句:结束本次循环,继续下一次循环。,例 把100200不能被3整除的数输出。 main() int n; for(n=100;n=200;n+) if(n%3=0) continue; printf(“%d n”,n); ,1. 统计输入一篇文章中的字符个数。 2. 统计输入一篇文章中的的行数 3. 统计输入一篇文章中的的行数、单词数与字符数 4. 统计一篇文章中的数字、空白符及字符。,示例,#include /*e2.c*/ /* count characters in input; 1s

11、t version */ main() long nc; nc = 0; while (getchar() != EOF) +nc; printf(nc=%ldn, nc); ,1. 统计一篇文章中输入的字符个数。,#include /* count lines in input */ main() int c, nl; nl = 0; while (c = getchar() != EOF) if (c = n) +nl; printf(n1=%dn, nl); ,2. 统计一篇文章中输入的行数。,#include #define IN 1 #define OUT 0 /* count li

12、nes, words, and characters in input */ void main() int c, nl, nw, nc, state; state = OUT; nl = nw = nc = 0; while (c = getchar() != EOF) +nc; if (c = n) +nl; if (c = | c = n|c=t) state = OUT; else if (state = OUT) state = IN; +nw; printf(“lines=%d,words=%d,ch=%dn, nl, nw, nc); ,3. 统计一篇文章中输入的行数,单词个数及

13、字符个数。,#include void main() int c, i, nwhite, nother; int ndigit10; nwhite = nother = 0; for (i = 0; i = 0 ,4. 统计一篇文章中的数字、空白符及字符。,循环的嵌套,一个循环体内包含另一个循环,叫循环嵌套。 循环嵌套必须是完全嵌套。,while() while() ,do do while(); while();,for(;) for(;) ,for(;) ,for(;) ,while() ,例1编程打印如下图案,* * *,分析: 1. 外循环控制行数 (i=13) 2.内循环控制空格数k

14、 =2,1,0 3. 内循环控制“*” 个数( j=1,3,5),#include void main() int i,j,k; for(i=1;i=3;i+) for(k=1; k=3-i;k+) printf(“ “); for( j=1;j=2*i-1;j+) printf(“*”); printf(“n”); ,例2编程打印如下图案,i j k 1 1 3 2 3 2 3 5 1 4 7 0 5 5 1 6 3 2 7 1 3,#include #include void main() int i,j,k; for(i=1;i=7;i+) for(k=1; k=abs(4-i); k+

15、) printf(“ “); for( j=1;j=7-2*abs(4-i);j+) printf(“*”); printf(“n”); ,* * * * * * * * * * * * * * * * * * * * * * * * *,j=7-2*abs(i-4) k=abs(4-i),a b b b c c c c c d d d d d d d c c c c c b b b a,上机实验:输出如下图案,1 2 2 3 3 3 4 4 4 4,* * * * * * * * * * * * * * *,例: 输出10100之间的全部素数。所谓素数n是指,除1和n之外,不能被2(n-1)之间的任何整数整除。 算法设计要点: (1)显然,只要设计出判断某数n是否是素数的算法,外面再套一个for循环即可。 (2)判断

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号