程序基本结构.pptx
《程序基本结构.pptx》由会员分享,可在线阅读,更多相关《程序基本结构.pptx(92页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023/3/261问题问题1 1的算法:的算法:S1:输入3个整数,分别赋值给a,b,cS2:如果ab,则ab bS3:如果ac,ac,则a ac cS4:S4:如果bc,bc,则b bc cS5:S5:输出a,b,ca,b,c的值分支结构分支结构输入输入a,b,ca,b,c的值的值N N ababY Yab b输出输出a,b,ca,b,c的值的值ac cbc c acacY YN N bcbcY YN N第1页/共92页2023/3/2622.1关系运算和逻辑运算2.1.1 关系运算符和关系表达式一、关系运算符一、关系运算符一、关系运算符一、关系运算符种:种:种:种:、=、=、=、!=!=
2、说明:说明:说明:说明:1 1 1 1、优先级优先级优先级优先级:前前前前4 4 4 4种相同,后种相同,后种相同,后种相同,后2 2 2 2种也相同,但前种也相同,但前种也相同,但前种也相同,但前4 4 4 4种高于后种高于后种高于后种高于后两种;所有关系运算符的优先级都两种;所有关系运算符的优先级都两种;所有关系运算符的优先级都两种;所有关系运算符的优先级都低于算术运算符低于算术运算符低于算术运算符低于算术运算符而而而而高于赋高于赋高于赋高于赋值运算符值运算符值运算符值运算符。2 2 2 2、结合性结合性结合性结合性:自左至右自左至右自左至右自左至右ab-cab-ca(b-c)a(b-c)
3、a=b=ca=b=ca=(b=c)a=(b=c)a=b!=ca=b!=ca=(b!=c)a=(b!=c)第2页/共92页2023/3/263 二、关系表达式二、关系表达式二、关系表达式二、关系表达式用用用用关系运算符将两个表达式连接起来的式子关系运算符将两个表达式连接起来的式子关系运算符将两个表达式连接起来的式子关系运算符将两个表达式连接起来的式子。其中其中其中其中被连接的表达式可以是被连接的表达式可以是被连接的表达式可以是被连接的表达式可以是算术表达式算术表达式算术表达式算术表达式、关系关系关系关系表达式表达式表达式表达式、逻辑表达式逻辑表达式逻辑表达式逻辑表达式、赋值表达式赋值表达式赋值表
4、达式赋值表达式或或或或字符表达式字符表达式字符表达式字符表达式。如:如:如:如:a+bc+da+bc+d、xy=c+dxy=c+d、aAaA关系表达式的值只能是关系表达式的值只能是关系表达式的值只能是关系表达式的值只能是1 1或或或或0 0,当表达式成立即为当表达式成立即为当表达式成立即为当表达式成立即为“真真真真”时,值为整数时,值为整数时,值为整数时,值为整数1 1;否则为;否则为;否则为;否则为“假假假假”,值为整数,值为整数,值为整数,值为整数0 0。因此可看作。因此可看作。因此可看作。因此可看作整型表达式整型表达式整型表达式整型表达式。假设假设a=3,b=2,c=1a=3,b=2,c
5、=1,求以下关系表达式的值:求以下关系表达式的值:ab(ab)=cab(ab)=cabcabcf=abb=c1 11 10 01 1第3页/共92页2023/3/2642.1.2 逻辑运算符和逻辑表达式一、逻辑运算符一、逻辑运算符一、逻辑运算符一、逻辑运算符种:种:种:种:&|!、优先级优先级优先级优先级:!(非非非非)&(与与与与)|(或或或或)!(非非非非)算术运算符算术运算符算术运算符算术运算符关系运算符关系运算符关系运算符关系运算符&|赋值运算符赋值运算符赋值运算符赋值运算符(高)(高)(低)(低)、结合性结合性结合性结合性:!是右结合性,是右结合性,是右结合性,是右结合性,&和和和和
6、|是左结合性是左结合性是左结合性是左结合性、逻辑运算真值表:、逻辑运算真值表:、逻辑运算真值表:、逻辑运算真值表:a a a ab b b b!a a a a!b b b ba&ba&ba&ba&ba|ba|ba|ba|b非非非非0 0 0 0非非非非0 0 0 00 0 0 00 0 0 01 1 1 11 1 1 1非非非非0 0 0 00 0 0 00 0 0 01 1 1 10 0 0 01 1 1 10 0 0 0非非非非0 0 0 01 1 1 10 0 0 00 0 0 01 1 1 10 0 0 00 0 0 01 1 1 11 1 1 10 0 0 00 0 0 0第4页/共
7、92页例:例:例:例:ab&x/yab&x/yab&x/yab&x/y(ab)&(x/y)ab)&(x/y)ab)&(x/y)a=1|!ba=1|!ba=1|!ba=1|!b(a=1)|(!b)a=1)|(!b)a=1)|(!b)a=1)|(!b)二、逻辑表达式二、逻辑表达式二、逻辑表达式二、逻辑表达式逻辑表达式的值应该是逻辑表达式的值应该是逻辑表达式的值应该是逻辑表达式的值应该是“逻辑真逻辑真逻辑真逻辑真”或或或或“逻辑假逻辑假逻辑假逻辑假”。语言以数值语言以数值语言以数值语言以数值代表代表代表代表“真真真真”,以数值以数值以数值以数值代表代表代表代表“假假假假”;但参加运算的运算量可以是;
8、但参加运算的运算量可以是;但参加运算的运算量可以是;但参加运算的运算量可以是任何数值任何数值任何数值任何数值,进行判断时,进行判断时,进行判断时,进行判断时,非零值非零值非零值非零值代表代表代表代表“真真真真”,零值零值零值零值代表代表代表代表“假假假假”。若若若若a=100a=100a=100a=100,b=5b=5b=5b=5,则则则则!a a a a=?=?=?=?a&ba&ba&ba&b=?=?=?=?a|ba|ba|ba|b=?=?=?=?!a&b!a&b!a&b!a&b=?=?=?=?4&0|24&0|24&0|24&0|2=?=?=?=?a+b|ca+b|ca&0a&038&2|
9、58&2|5=-1&x=-1&x=-1&x=-1&x=1不能写为:不能写为:不能写为:不能写为:-1=-1=-1=-1=x=1x=1x=1xb)&(n=cd)(m=ab)&(n=cd)m=?n=?m=?n=?0 01 1注意:注意:第6页/共92页2023/3/267C语言运算符的“优先级口决”1 小括中括指向点,(),-,.)非反后来自加减;(!+-)负类指针有地址,(-,类型转换,*,&)长度唯一右在前.(sizeof,单目运算,从右至左)先乘除,再求余,(*,/,%)加减后,左右移,(+,-,)关系运算左为先.(,)等于还是不等于,(=,!=)按位运算与异或;(&,|)逻辑与,逻辑或,(
10、&,|)条件运算右至左.(?:)赋值运算虽然多,(=,+=,-=,*=,/=,%=,=,全体单目第二;/所有的单目运算符比如+-+(正)-(负)指针运算*&乘除余三,加减四;/这个“余”是指取余运算即%移位五,关系六;/移位运算符:,关系:=b,ab,则则a a b bS3:S3:输出a,ba,bC C语言单分支结构:语言单分支结构:if(if(表达式表达式)语句语句;第9页/共92页2023/3/2610if(if(if(if(表达式表达式表达式表达式)语句语句语句语句一般形式:表达式表达式语句语句真真(非非0)0)假假(0)(0)流程图:注意:此位置不注意:此位置不注意:此位置不注意:此位
11、置不使用分号使用分号使用分号使用分号“;”!第10页/共92页#includevoidmain()inta,b,temp;printf(Inputa,b:);scanf(%d%d,&a,&b);if(ab)/*判断a、b的关系*/temp=a;a=b;b=temp;/*a大于b,则交换a,b的值*/printf(“Resultis%d,%dn,a,b);/*按从小到大顺序输出*/例2.1的C语言程序如下:复合语句:复合语句:在同一个在同一个条件下作为一个整体条件下作为一个整体执行的多条语句执行的多条语句第11页/共92页例例2.22.2输入三个数输入三个数x1,x2,x3,x1,x2,x3,按
12、从小到大的顺序输出这三个数。按从小到大的顺序输出这三个数。#includevoidmain()intx1,x2,x3,temp;scanf(“%d%d%d”,&x1,&x2,&x3);if(x1x2)temp=x1;x1=x2;x2=temp;if(x1x3)temp=x1;x1=x3;x3=temp;if(x2x3)temp=x2;x2=x3;x3=temp;printf(“%d,%d,%d”,x1,x2,x3);输入输入a,b,ca,b,cab?ab?a ab bac?ac?bc?bc?a ac cb bc c输出输出a,b,ca,b,c是是是是是是否否否否否否输入:输入:3 5 13 5
13、 1输出:输出:1 1,3 3,5 5第12页/共92页2023/3/26132.2.2 双分支结构例2.32.3:输入两个整数,输出其中较大的一个。算法:算法:S1:S1:输入两个整数输入两个整数a,ba,bS2:S2:如果如果ab,ab,则输出则输出a a,否则输出b bC C语言单分支结构:语言单分支结构:if(if(表达式表达式)语句语句1;1;elseelse 语句语句2;2;第13页/共92页2023/3/2614一般形式:if(if(if(if(表达式表达式表达式表达式)语句语句语句语句1 1 1 1elseelseelseelse 语句语句语句语句2 2 2 2流程图:表达式表
14、达式语句语句2 2真真(非非0)0)假假(0)(0)语句语句1 1第14页/共92页2023/3/2615例例2.32.3输入两个整数,输出其中较大的一个。输入两个整数,输出其中较大的一个。N-SN-S流程图流程图输入输入x1,x2x1,x2x1x2x1x2Y YN N输出输出x1x1输出输出x2x2#includevoidmain()intx1,x2;scanf(“%d%d”,&x1,&x2);if(x1x2)printf(“%dn”,x1);elseprintf(“%dn”,x2);第15页/共92页2023/3/26172.2.3 多分支结构一、一、ifif语句嵌套语句嵌套一般形式:流程
15、图:if(if(if(if(表达式表达式表达式表达式1)1)1)1)语句语句语句语句1 1 1 1else if(else if(else if(else if(表达式表达式表达式表达式2)2)2)2)语句语句语句语句2 2 2 2 else if(else if(else if(else if(表达式表达式表达式表达式3)3)3)3)语句语句语句语句3 3 3 3 else if(else if(else if(else if(表达式表达式表达式表达式n)n)n)n)语句语句语句语句n n n n else else else else 语句语句语句语句n+1n+1n+1n+1表达式表达式1
16、 1语句语句2 2真真(非非0)0)假假(0)(0)语句语句1 1表达式表达式2 2真真(非非0)0)语句语句1 1语句语句2 2假假(0)(0)第17页/共92页关于关于关于关于if if语句的说明语句的说明语句的说明语句的说明:1 1 1 1、表达式一般为关系表达式或逻辑表达式。但在、表达式一般为关系表达式或逻辑表达式。但在、表达式一般为关系表达式或逻辑表达式。但在、表达式一般为关系表达式或逻辑表达式。但在C C C C语言语言语言语言中它也中它也中它也中它也可以是任意的数值表达式可以是任意的数值表达式可以是任意的数值表达式可以是任意的数值表达式。if(3)if(3)n=1;n=1;if(
17、a)if(a)printf(%d,a);printf(%d,a);if(n=3-3)if(n=3-3)x=1;x=1;elseelsex=-1;x=-1;2 2 2 2、表达式后面不能有任何标点符号表达式后面不能有任何标点符号表达式后面不能有任何标点符号表达式后面不能有任何标点符号!3 3 3 3、elseelseelseelse只能与只能与只能与只能与ifififif配对使用配对使用配对使用配对使用。仅。仅。仅。仅elseelseelseelse本身不能单独作为一个语本身不能单独作为一个语本身不能单独作为一个语本身不能单独作为一个语句使用。句使用。句使用。句使用。if (x5)if (x5)
18、;y=x;y=x;elseelse y=2*x-1;y=2*x-1;if (x5)if (x5);y=x;y=x;elseelse y=2*x-1;y=2*x-1;将出现语法错误将出现语法错误将出现语法错误将出现语法错误第18页/共92页2023/3/26194 4、每个语句序列可以是一个语句也可以是若干个语句,、每个语句序列可以是一个语句也可以是若干个语句,、每个语句序列可以是一个语句也可以是若干个语句,、每个语句序列可以是一个语句也可以是若干个语句,但要但要但要但要用花括号括起来用花括号括起来用花括号括起来用花括号括起来构成复合语句构成复合语句构成复合语句构成复合语句。if(ab)t=a;
19、a=b;b=t;if(a+bc&b+ca&c+ab)s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(area=%.2fn,area);elseprintf(Itisnotatrilateral!n);复合语句的复合语句的复合语句的复合语句的花括号后不能再写分号花括号后不能再写分号花括号后不能再写分号花括号后不能再写分号。复合语句。复合语句。复合语句。复合语句在语法上是一个整体,相当于一个语句。在语法上是一个整体,相当于一个语句。在语法上是一个整体,相当于一个语句。在语法上是一个整体,相当于一个语句。第19页/共92页2023/3/262
20、05 5 5 5、ifififif语句的嵌套语句的嵌套语句的嵌套语句的嵌套在在在在ifififif语句的原语句的原语句的原语句的原“语句语句语句语句”中又包含一个或多个中又包含一个或多个中又包含一个或多个中又包含一个或多个ifififif语句语句语句语句1.1.if(if(表达式表达式表达式表达式1)1)if(if(表达式表达式表达式表达式2)2)语句语句语句语句2.2.if(if(表达式表达式表达式表达式1)1)语句语句语句语句1 1elseelse if(if(表达式表达式表达式表达式2)2)语句语句语句语句2 23.3.if(if(表达式件表达式件表达式件表达式件1)1)语句语句语句语句
21、1 1elseelse if(if(表达式表达式表达式表达式2)2)语句语句语句语句2 2elseelse语句语句语句语句3 34.4.if if(表达式表达式表达式表达式1)1)if if(表达式表达式表达式表达式2)2)语句语句语句语句1 1elseelse 语句语句语句语句2 2二义性?二义性?二义性?二义性?语言规定:语言规定:语言规定:语言规定:elseelse总是与它前面最近的且未曾配对的总是与它前面最近的且未曾配对的总是与它前面最近的且未曾配对的总是与它前面最近的且未曾配对的if if配对。配对。配对。配对。if(if(表达式表达式表达式表达式1)1)if(if(表达式表达式表达
22、式表达式2)2)语句语句语句语句1 1elseelse语句语句语句语句2 2 if(if(表达式表达式表达式表达式1)1)if(if(表达式表达式表达式表达式2)2)语句语句语句语句11 elseelse 语句语句语句语句2 2第20页/共92页2023/3/2621例例2.42.4输入输入3 3个数,判断组成什么类型三角形个数,判断组成什么类型三角形if(a+b)c&(b+c)a&(a+c)b)if(a+b)c&(b+c)a&(a+c)b)if(if(a=b&b=ca=b&b=c)printf(“dengbian!n”);)printf(“dengbian!n”);elseif(a=b|b=
23、c|a=c)printf(“dengyao!n”);elseif(a=b|b=c|a=c)printf(“dengyao!n”);elseprintf(“budengbian!n”);elseprintf(“budengbian!n”);elseprintf(“Erro!n”);elseprintf(“Erro!n”);第21页/共92页2023/3/2622例例例例2.2.2.2.5 5 5 5 编程求解函数:编程求解函数:编程求解函数:编程求解函数:-1-1 0 0 1 1(x0)x0)(x0)y=y=程序1:if(x0)y=-1;elseif(x=0)y=0;elsey=1;y=-1y=
24、0y=1x0 x=0)if(x0)y=1;elsey=0;elsey=-1;y=-1y=0y=1x=0 x=0 x0 x0真假真假eg502.c第22页/共92页程序3:y=0;if(x!=0)if(x0)y=1;elsey=-1;y=y=0 0 0 0 x!=0 x!=0 x0 x0y=1y=-1真真假假-1-1 0 0 1 1(x0)x0)(x0)y=y=第23页/共92页2023/3/2624例:求一元二次方程ax2+bx+c=0的根,a,b,c由键盘输入。分析:对于一元二次方程有以下几种可能:a=0,不是二次方程;b2-4ac=0,有两个相等的实根;b2-4ac0,有两个不等的实根;b
25、2-4acb?(a=100):(b=100)ab?printf(“”%dn”,a):printf(“%dn”,b)(4)表达式1、表达式2和表达式3的类型都可以不同。表达式值的类型是表达式2、3中类型较高的类型。例如:xy?1:1.5表达式值是double类型(1)优先级高于赋值,低于关系运算符和算数运算符例:例:x=ab?a:b+1;x=(ab)?a:(b+1);ab?a:cd?c:dab?a:(cd?c:d)if(ab)x=a;elsex=b+1;第27页/共92页2023/3/2628例2.7:输入一个字符,如果是大写字母,转换为小写,如果不是不转换。最后输出。#includevoidm
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 基本 结构
限制150内