程序设计基础4_第八讲

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

程序设计基础A第4章基本控制结构谭晓程序对数据的处理流程:程序的主要功能就是对数据的处理,其整个流程主要包括数据的输入、数据的处理、数据的输出。数据处理数据输入数据输出C程序中如何实现数据输入?C程序中如何实现数据输出?32020/1/29第四章基本控制结构本章知识点4.1顺序结构4.2选择结构4.3循环结构4.4C语言控制结构应用举例42020/1/29第四章基本控制结构作用是,根据所指定的条件是否满足,决定从给定的两组操作选择其一52020/1/29第四章基本控制结构4.2.1关系运算和逻辑运算1.关系运算符及其表达式关系运算实际上是一种比较运算关系运算符种类:====!=结合方向:自左向右优先级别:算术运算——〉关系运算——〉赋值运算例ca+b//c(a+b)ab!=c//(ab)!=ca==bc//a==(bc)a=bc//a=(bc)4.2选择结构====!=优先级高优先级低62020/1/29第四章基本控制结构4.2.1关系运算和逻辑运算1.关系运算符及其表达式运算对象:既可以是表达式或变量,也可以是常量,只要其数据类型是可以直接进行比较的数值,例如整数、实数等即可。关系表达式的值:关系表达式的值是逻辑值“真”或“假”,c语言用1代表真,以0代表假假设int型变量a=7b=8c=94.2选择结构表达式表达式的值3303=31a==a1aa0b=b1a!=a0a!=b1a*bc1(a/b)(b/c)0b*b–4*a*c0072020/1/29第四章基本控制结构4.2.1关系运算和逻辑运算2.逻辑运算符及其表达式逻辑运算符:“逻辑与”、“逻辑或”和“逻辑非”,简称“与”、“或”和“非”。逻辑符号:!&&||逻辑非逻辑与逻辑或逻辑运算真值表4.2选择结构ab!a!ba&&ba||b真假真假假假真真真假假假假假真真假假真真真假真真82020/1/29第四章基本控制结构!&&||高低优先级结合方向!:从右向左&&:从左向右||:从左向右例a=x&&x=bab&&xya==b||x==y!a||ab//(a=x)&&(x=b)//(ab)&&(xy)//(a==b)||(x==y)//(!a)||(ab)()!(非)算术运算符关系运算符&&||赋值运算符高低92020/1/29第四章基本控制结构4.2.1关系运算和逻辑运算2.逻辑运算符及其表达式运算对象:具有表示真或假的非O值或0值的常量、变量或逻辑表达式逻辑表达式的值:逻辑表达式的值是逻辑值“真”或“假”,c语言用1代表真,以0代表假假设int型变量a=6b=7c=84.2选择结构表达式值((a+b)c)&&(c7)1(ab)&&(bc)0(ab)||(bc)1!(ab)0!a0102020/1/29第四章基本控制结构4.2.1关系运算和逻辑运算3.编程中的运用在实际解决问题时,可以把关系运算或逻辑运算的值(1或0)参与算术运算、赋值运算等,从而把复杂的条件描述巧妙的表示出来。例4.5名次预测正确性的表达式。有人在赛前预测A、B、C、D、E、F六名选手在比赛中会按顺序分获第一名到第六名,但是这一预测只猜对了三人的名次。写出这一预测正确情况的逻辑表达式。4.2选择结构112020/1/29第四章基本控制结构4.2.1关系运算和逻辑运算3.编程中的运用例4.5名次预测正确性的表达式。设使用int型变量a~f分别表示6名选手的名次,则这6个猜测可以分别写成关系表达式:a==1、b==2、c==3、d==4、e==5、f==6则猜测的正确性的逻辑表达式为:((a==1)+(b==2)+(c==3)+(d==4)+(e==5)+(f==6))==34.2选择结构122020/1/29第四章基本控制结构4.短路原则由逻辑运算符&&和||连接的表达式按照从左至右的顺序求值。在这一求值过程一旦可以确定表达式的值,求值过程就立即停止。图1多次逻辑与运算流程图图2多次逻辑或运算流程图4.2选择结构132020/1/29第四章基本控制结构例a&&b&&c//只在a为真时,才判别b的值;只在a、b都为真时,才判别c的值例a||b||c//只在a为假时,才判别b的值;只在a、b都为假时,才判别c的值例a=1;b=2;c=3;d=4;m=1;n=1;(m=ab)&&(n=cd)例输入数据时:(c=getchar()!=EOF&&c=‘a’&&c=‘z’)EOF是表示输入数据结束的符号常量。//结果m=0,n=14.短路原则4.2选择结构142020/1/29第四章基本控制结构4.2.2if语句分支结构也叫选择控制结构,是根据所列条件满足与否选择执行路径。选择控制结构有三种形式:单分支结构,双分支结构,多分支结构。if语句是C语言实现选择控制结构的最基本的方式,有多种语句形式,支持嵌套使用,非常灵活。4.2选择结构152020/1/29第四章基本控制结构4.2.2if语句1.if语句的单分支形式语句格式:if(表达式)语句;功能:首先计算表达式的值,若其值非0(“真”),则执行表达式后面的语句,再执行if语句的后继语句;否则跳过该语句,直接执行if语句的后继语句。4.2选择结构162020/1/29第四章基本控制结构1.if语句的单分支形式例4.6求给定整数的绝对值#includestdio.hvoidmain(){intx,y;scanf(%d,&x);y=x;if(x0)y=-x;printf(x=%d,|x|=%d,x,y);}4.2选择结构真(非0)假(0)x0x=-x输出x值172020/1/29第四章基本控制结构1.if语句的单分支形式例4.7输入两个整数,输出其中的大数。#includestdio.hvoidmain(){inta,b,max;printf(\ninputtwonumbers:);scanf(%d%d,&a,&b);max=a;if(maxb)max=b;printf(max=%d,max);}4.2选择结构182020/1/29第四章基本控制结构例4.8输入3个浮点数x,y,z,把这三个数由小到大输出。分析:用x与y进行比较,如果xy,则将x与y的值进行交换;然后再用x与Z进行比较,如果xz,则将x与z的值进行交换,这样x中就是最小数。接着采用同样方法比较y与Z的大小,将最大数存在Z中。#includestdio.hvoidmain(){floatx,y,z,temp;printf(\ninputthreenumbers:);scanf(%f%f%f,&x,&y,&z);4.2选择结构192020/1/29第四章基本控制结构例4.8输入3个浮点数x,y,z,把这三个数由小到大输出。if(xy){temp=x;x=y;y=temp;}if(xz){temp=z;z=x;x=temp;}if(yz){temp=y;y=z;z=temp;}printf(smalltobig:%f,%f,%f\n,x,y,z);}4.2选择结构202020/1/29第四章基本控制结构4.2.2if语句2.if-else形式:双分支结构语句格式:if(表达式)语句1;else语句2;功能:①首先计算表达式的值。②若表达式的值为“真”,则执行语句1;否则,执行语句2,即在2种路径中选择其中的一种。③然后继续执行if结构的后继语句。4.2选择结构212020/1/29第四章基本控制结构例4.9输入三个数,输出它们的最大者和最小者.分析:采用打擂法解决该问题首先,设一个“擂主”max用来存储所有数中的最大者,“打擂”的数据都存储在变量中,第一个“上台”的数是初始擂主。接下来,剩余的数也依次与max作比较,最终留在max中的就是最大值4.2选择结构222020/1/29第四章基本控制结构#includestdio.hvoidmain(){inta,b,c,max,min;printf(\ninputthreenumbers:);scanf(%d%d%d,&a,&b,&c);max=a;min=a;if(ab)min=b;elsemax=b;if(cmax)max=c;elseif(cmin)min=c;printf(max=%d,min=%d,max,min);}4.2选择结构232020/1/29第四章基本控制结构例4.10输入1个正整数,判断其奇偶性。分析:对于一个正整数,要么是奇数,要么是偶数,共两种情况,则可以采用双分支选择结构实现程序功能。正整数的奇偶性可以使用求余(%)运算的结果来判断.4.2选择结构242020/1/29第四章基本控制结构#includestdio.hvoidmain(){intnumber;printf(\ninputanumberfortesting:);scanf(%d,&number);if(number%2==1)printf(\n%disanoddnumber,number);elseprintf(\n%disanevennumber,number);}4.2选择结构(number%2)252020/1/29第四章基本控制结构3.if-else-if形式:多路分支选择结构语句格式:if(表达式1)语句1;elseif(表达式2)语句2;elseif(表达式3)语句3;……elseif(表达式n)语句n;else语句n+1;4.2选择结构262020/1/29第四章基本控制结构4.2.2if语句3.if-else-if形式:多路分支选择结构功能:依次计算表达式的值。当某个表达式的值为非0时,则执行其对应的语句,然后跳到整个if语句之外继续执行程序,即结束整个if语句。如果某个表达式的值为0时,则计算其下一个表达式的值,再进行判断。如果所有的表达式均为0,则执行语句n+1。然后继续执行后继语句。4.2选择结构272020/1/29第四章基本控制结构例4.11从键盘任意输入一个字符,判断其是数字、大写字母、小写字母或其它字符。分析:可以根据输入字符的ASCII码来判别类型。由ASCII码表可知,ASCII值小于32的为控制字符;在“0”和“9”之间的为数字;在“A”和“Z”之间的为大写字母;在“a”和“z”之间的为小写字母;其余为其它字符。4.2选择结构282020/1/29第四章基本控制结构程序:#includestdio.hvoidmain(){charc;printf(\ninputacharacter:);c=getchar();4.2选择结构if(c32)printf(\n\%c\isacontrolcharacter.\n,c);elseif(c='0'&&c='9')printf(\n\%c\isadigitcharacter.\n,c);elseif(c='A'&&c='Z')printf(\n\%c\isanupper.\n,c);elseif(c='a'&&c='z')printf(\n\%c\isalower.\n,c);elseprintf(\n\%c\isanothercharacter.\n,c);}292020/1/29第四章基本控制结构例4.12从键盘任意输入一个百分制成绩,判断其学业等级:优、良、中、及格或不及格,分别用A、B、C、D、E表示。分析:首先输入一个百分制分数,利用多分支结构判断此分数的取值范围,并根据取值范围确定该分数的等级范围:优、良、中、及格或不及格等。4.2选择结构302020/1/29第四章基本控制结构voidmain(){floatscore;printf(\nscore=?);scanf(%f,&score);if(score=90)printf(\n%4.1fisA.\n,score);elseif(score=80)printf(\n%4.1fisB.\n,score);e

1 / 121
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功