C语言C程序流程设计.pptx
《C语言C程序流程设计.pptx》由会员分享,可在线阅读,更多相关《C语言C程序流程设计.pptx(43页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、2023/3/231复合语句在什么情况下使用复合语句?条件语句和循环语句在语法上只允许带一条语句当分支和循环中需要进行多项操作时 t=x;t=x;x=y;x=y;y=t;y=t;被当作一条语句来处理复合语句在语法上是一个整体,相当于一个语句。凡 是能 使用简单语句的地方,都可以使用复合语句。复合语句内还可以包含复合语句,即复合语句的嵌套 使用 第1页/共43页2023/3/232C程序的三种基本结构 结构化程序设计 基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(goto)结构化程序:三种基本结构反复嵌套构成 优点:结构清晰,易读,提程序质量和效率 三种基本结构 顺序结构
2、选择结构 二分支选择 多分支选择 循环结构 当型循环 直到型循环ABAB流程图N-S图PAB真假PBA真假kA1A2AiAnk=k2k=k1k=knk=ki.PA假真当P为真AAP真假A直到P为真第2页/共43页2023/3/2335.1关系运算符和表达式 功能:比较两个常量、变量或表达式的值的大小 符号:=!=结合方向:从左向右 优先级:=(6)=!=(7)关系表达式的值:逻辑“真”和“假”,用1和0表示 用途:循环语句和选择语句中例 ca+b /c(a+b)ab!=c /(ab)!=c a=bc /a=(bc /a=(bc)例int a=3,b=2,c=1,d,f;ab(ab)=cb+cb
3、f=abc例int a=3,b=2,c=1,d,f;ab/表达式值1(ab)=cb+cbf=abc例int a=3,b=2,c=1,d,f;ab/表达式值1(ab)=c/表达式值1b+cbf=abc例int a=3,b=2,c=1,d,f;ab/表达式值1(ab)=c/表达式值1b+cbf=abc例int a=3,b=2,c=1,d,f;ab/表达式值1(ab)=c/表达式值1b+cb/d=1f=abc例int a=3,b=2,c=1,d,f;ab/表达式值1(ab)=c/表达式值1b+cb/d=1f=abc/f=0例:若a=0;b=0.5;x=0.3;则 a=x=b的值为 例:若a=0;b=
4、0.5;x=0.3;则 a=x278在C中是允许的,值为例:5278在C中是允许的,值为 0例:int i=1,j=7,a;a=i+(j%4!=0);则a=例:int i=1,j=7,a;a=i+(j%4!=0);则a=2例 a0 结果为 A100 结果为例 a0 结果为 1 A100 结果为 0关系运算请注意:(1)应避免对实数作相等或不等的判断如 1.0/3.0*3.0=1.0 结果为 关系运算请注意:(1)应避免对实数作相等或不等的判断如 1.0/3.0*3.0=1.0 结果为 0关系运算请注意:(1)应避免对实数作相等或不等的判断如 1.0/3.0*3.0=1.0 结果为 0可改写为:
5、fabs(1.0/3.0*3.0-1.0)1E-6(2)注意区分“=”与“=”如 int a=0,b=1;if(a=b)printf(“a equal to b”);else printf(“a not equal to b”);(2)注意区分“=”与“=”如 int a=0,b=1;if(a=b)printf(“a equal to b”);else printf(“a not equal to b”);(2)注意区分“=”与“=”如 int a=0,b=1;if(a=b)printf(“a equal to b”);else printf(“a not equal to b”);(2)注意
6、区分“=”与“=”如 int a=0,b=1;if(a=b)printf(“a equal to b”);else printf(“a not equal to b”);第3页/共43页2023/3/2345.2逻辑运算符和表达式 功能:判断逻辑值和对逻辑值进行操作 符号:!&|逻辑运算真值表 结合方向:!从右向左,&|从左向右 优先级:!(2)&(11)|(12)逻辑运算中:运算参量:0表示假,非0表示真 运算结果:0表示假,1表示真 短路特性:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符ab!a!ba&ba|b真真真真真
7、真假假假假真真假假假假ab!a!ba&ba|b真真真真假假真真假假假假假假真真真真假假假假真真ab!a!ba&ba|b真真真真假假假假真真假假假假真真假假真真真真假假假假假假真真真真ab!a!ba&ba|b真真真真假假假假真真真真假假假假真真假假假假真真真真假假假假假假假假真真真真假假ab!a!ba&ba|b真真真真假假假假真真真真真真假假假假真真假假真真假假真真真真假假假假真真假假假假真真真真假假假假例a=x&xb&xya=b|x=y!a|ab例a=x&x=b/(a=x)&(xb&xya=b|x=y!a|ab例a=x&x=b/(a=x)&(xb&xy/(ab)&(xy)a=b|x=y!a|a
8、b例a=x&x=b/(a=x)&(xb&xy/(ab)&(xy)a=b|x=y/(a=b)|(x=y)!a|ab例a=x&x=b/(a=x)&(xb&xy/(ab)&(xy)a=b|x=y/(a=b)|(x=y)!a|ab/(!a)|(ab)例a=4;b=5;!aa&ba|b!a|b4&0|253&2|83&2|83&2|83&2|83&2|83&2|83&2|83)&2|(83&2|83)&2|(8b)&(n=cd)例a&b&c/只在a为真时,才判别b的值/只在a、b都为真时,才判别 c的值a|b|c/只在a为假时,才判别b的值/只在a、b都为假时,才判别 c的值a=1;b=2;c=3;d=
9、4;m=1;n=1;(m=ab)&(n=cd)/结果m=0,n=1第4页/共43页2023/3/2355.3 选择程序设计 if 语句(条件选择语句)if 语句的三种形式 形式一:格式:if(expression)statement 执行过程:形式二:格式:if(expression)statement1 else statement2 执行过程:exprstatement非0=0exprstatement1statement2非0=0例:if(xy)printf(“%d”,x);例:if(xy)max=x;else max=y;第5页/共43页2023/3/2365.3 选择程序设计 if
10、语句(条件选择语句)if 语句的三种形式 形式一:格式:if(expression)statement 执行过程:形式二:格式:if(expression)statement1 else statement2 执行过程:形式三:格式:执行过程:if(expr1)statement1else if(expr2)statement2else if(expr3)statement3.else statementn expr1statemnt1非0=0expr2expr3statemntnstatemnt3statemnt2非0非0=0=0例:if(salary1000)index=0.4;else
11、if(salary800)index=0.3;else if(salary600)index=0.2;else if(salary400)index=0.1;else index=0;第6页/共43页2023/3/237如:if(a=b&x=y)printf(“a=b,x=y”);if(3)printf(“OK”);if(a)printf(“%d”,a);例 考虑下面程序的输出结果:#include main()int x,y;scanf(“%d,%d”,&x,&y);if(xy)x=y;y=x;else x+;y+;printf(“%d,%dn”,x,y);例 考虑下面程序的输出结果:#in
12、clude main()int x,y;scanf(“%d,%d”,&x,&y);if(xy)x=y;y=x;else x+;y+;printf(“%d,%dn”,x,y);关于if语句的说明:if后面的表达式类型任意 语句可以是复合语句 if(x)if(x!=0)if(!x)if(x=0)Compile Error!第7页/共43页2023/3/238/*ch4_1.c*/#include main()int x,y;printf(Enter an integer:);scanf(%d,&x);y=x;if(yabsolute value:%dn,x,y);例1 求一个数的绝对值运行:Ent
13、er an integer:-12 integer:-12-absolute value:12第8页/共43页2023/3/239/*ch4_2.c*/#include main()int a,b;printf(Enter integer a:);scanf(%d,&a);printf(Enter integer b:);scanf(%d,&b);if(a=b)printf(a=bn);else printf(a!=bn);例2 输入两个数并判断两数相等否运行:Enter integer a:12 Enter integer b:12 a=b 运行:Enter integer a:12 Ent
14、er integer b:9 a!=b 第9页/共43页2023/3/2310/*ch4_3.c*/#include main()char c;printf(Enter a character:);c=getchar();if(c=0&c=A&c=a&c=z)printf(The character is a lower lettern);else printf(The character is other charactern);例3 判断输入字符种类运行:Enter a character:The character is a control character运行:Enter a cha
15、racter:8 The character is a digit运行:Enter a character:D The character is a capital letter运行:Enter a character:h The character is a lower letter运行:Enter a character:*The character is other character第10页/共43页2023/3/2311if(expr1)if(expr2)statement1 else statement2内嵌if if语句嵌套:if(expr1)if(expr2)statement
16、1else statement3 内嵌ifif(expr1)statement1else if(expr3)statement3 else statement4内嵌ifif(expr1)if(expr2)statement1 else statement2else if(expr3)statement3 else statement4内嵌if内嵌if第11页/共43页2023/3/2312例 输入两数并判断其大小关系/*ch4_4.c*/#include main()int x,y;printf(Enter integer x,y:);scanf(%d,%d,&x,&y);if(x!=y)if
17、(xy)printf(XYn);else printf(XYn);else printf(X=Yn);运行:Enter integer x,y:12,23 XY Enter integer x,y:12,12 X=Yif else 配对原则:缺省 时,else总是和它上面离它最近的未配对的if配对if()if()if()else.else.else.第12页/共43页2023/3/2313例:if(a=b)if(b=c)printf(“a=b=c”);else printf(“a!=b”);修改:if(a=b)if(b=c)printf(“a=b=c”);else printf(“a!=b”)
18、;实现if else 正确配对方法:加 例 考虑下面程序输出结果:main()int x=100,a=10,b=20;int v1=5,v2=0;if(ab)printf(“%d”,a);else printf(“%d”,b);printf(“%d”,ab?a:b);例 求 a+|b|printf(“a+|b|=%dn”,b0?a+b:a-b);例 x0?1:(x=0)?x:-x (c=a&cy?1:1.5 /xy ,值为1.0;x60n”);break;.例 switch(score)case 5:printf(“Very good!”);case 4:printf(“Good!”);cas
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 流程 设计
限制150内