书签 分享 收藏 举报 版权申诉 / 59
上传文档赚钱

类型C语言第3章课件-.ppt.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3471157
  • 上传时间:2022-09-03
  • 格式:PPT
  • 页数:59
  • 大小:1.02MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《C语言第3章课件-.ppt.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    语言 课件 ppt
    资源描述:

    1、第第3 3章章 分支结构程序设计分支结构程序设计例题链接例题链接例题链接例题链接 例例3.5例例3.4例例3.6例例3.7例例3.9例例3.10例例3.11例例3.12例例3.1例例3.2例例3.3例例3.13例例3.83.1 3.1 关系运算符和关系表达式关系运算符和关系表达式 P56返回返回所谓所谓“关系运算关系运算”实际上是实际上是“比较运比较运算算”。将两个值进行比较,判断其。将两个值进行比较,判断其比较的结果是否符合给定的条件。比较的结果是否符合给定的条件。3.1.1 3.1.1 关系运算符关系运算符 、=、=、0”隐含隐含 x 的值是否大于的值是否大于0 P563.1.2 3.1.

    2、2 关系表达式关系表达式用用关系运算符关系运算符将两个表达式将两个表达式(可以是算术表达可以是算术表达式或关系表达式、逻辑表达式、赋值表达式或关系表达式、逻辑表达式、赋值表达式、字符表达式式、字符表达式)连接起来的式子,称连接起来的式子,称关系关系表达式表达式。例如,下面都是合法的关系表达式:例如,下面都是合法的关系表达式:ab,abbc,(a=3)(b=5),ab,(ab)(bc)P563.1.2 3.1.2 关系表达式关系表达式n判断结果只有两种可能:判断结果只有两种可能:“真真”或或“假假”n关系成立为关系成立为“真真”,不成立为,不成立为“假假”只能是只能是0或或1表达式的值表达式的值

    3、1 结果为结果为“真真”时时0 结果为结果为“假假”时时P56x=1;printf(“%d”,x 0);真真输出输出 1x=1;a=x=0;printf(“%d”,a);假假 输出输出 0 x=3;a=x 0;b=x5;printf(“%d”,a=b);真真 a的值的值1真真 b的值的值1真真 输出输出1x=-3;printf(“%d”,0=x=2);假假 0=2输出输出1注意:表达式注意:表达式0=x=0&x=2 (双目运算符(双目运算符,结合方向:自左至右)结合方向:自左至右)n|:逻辑或逻辑或 x3(双目运算符(双目运算符,结合方向:自左至右)结合方向:自左至右)n!:逻辑非逻辑非 !(

    4、x3)(一目运算符(一目运算符,结合方向:自右至左)结合方向:自右至左)n优先次序:优先次序:!&|P573.2.1 3.2.1 逻辑运算符逻辑运算符逻辑运算的真值表:逻辑运算的真值表:P57 a b !a!ba&b a|b真真真真假假假假 真真 真真真真假假假假真真 假假 真真假假真真真真假假 假假 真真假假假假真真真真 假假 假假3.2.2 3.2.2 逻辑表达式逻辑表达式用逻辑运算符将关系表达式或逻辑量连接起用逻辑运算符将关系表达式或逻辑量连接起来的式子就是来的式子就是逻辑表达式逻辑表达式。n判断结果只有两种可能:判断结果只有两种可能:“真真”或或“假假”n逻辑运算的结果为非零时:逻辑运

    5、算的结果为非零时:“真真”逻辑运算的结果为零时:逻辑运算的结果为零时:“假假”表达式的值表达式的值1 结果为结果为“真真”时时0 结果为结果为“假假”时时也只能也只能是是0或或1P58 x=1;printf(%d ,x=0&x=0&x=2);printf(%d ,x3);真真真真输出输出1 真真假假输出输出0 真真输出输出1 假假 x=5;printf(%d ,!x);printf(%d ,3&A);printf(%d ,(x=2)|0);printf(x=%dn,x);x=0;printf(%d ,x3);printf(%d ,!x);输出输出0 输出输出1 输出输出0 输出输出1 输出输出

    6、1 输出输出x=2 逻辑运算的规则逻辑运算的规则 n&:两个运算量都为非零两个运算量都为非零,结果是真,结果是真,值为值为1;否则,结果是假,值为;否则,结果是假,值为0n|:至少有一个运算量为非零至少有一个运算量为非零,结果是真,结果是真,值为值为1;否则,结果为假,值为;否则,结果为假,值为0n!:运算量为零运算量为零,结果是真,值为,结果是真,值为 1;否;否则,结果为假,值为则,结果为假,值为 0逻辑表达式的求解逻辑表达式的求解在逻辑表达式的求解中在逻辑表达式的求解中,并不是所有的逻辑运算并不是所有的逻辑运算符都被执行符都被执行,只是在必须执行下一个逻辑运算只是在必须执行下一个逻辑运算

    7、符才能求出表达式的解时,才执行该运算符。符才能求出表达式的解时,才执行该运算符。(1)a&b&c只有只有a为真为真(非非0)时,才需要判别时,才需要判别b的值,只有的值,只有a和和b都为真的情况下才需要判都为真的情况下才需要判别别c的值。只要的值。只要a为假,就不必判别为假,就不必判别b和和c(此时此时整个表达式已确定为假整个表达式已确定为假)。如果。如果a为真,为真,b为假,为假,不判别不判别c。(2)a|b|c只要只要a为真为真(非非0),就不必判断,就不必判断b和和c;只;只有有a为假,才判别为假,才判别b;a和和b都为假才判别都为假才判别c。也就是说,对也就是说,对&运算符来说,只有运

    8、算符来说,只有a0,才继,才继续进行右面的运算。对运算符续进行右面的运算。对运算符来说,只有来说,只有a=0,才继续进行其右面的运算。,才继续进行其右面的运算。因此,如果有下面的逻辑表达式:因此,如果有下面的逻辑表达式:(m=ab)&(n=cd)当当a=1,b=2,c=3,d=4,m和和n的原值为的原值为1时,时,由于由于“ab”的值为的值为0,因此因此m=0,而,而“n=cd”不被执行,因此不被执行,因此n的值不的值不是是0而仍保持原值而仍保持原值1。这点请大家。这点请大家注意注意。【例例3.3】编写一个含有特殊逻辑表达式的编写一个含有特殊逻辑表达式的程序。程序。#include main(

    9、)int a=1,b=0;printf(%d ,0&(a=2);printf(a=%d ,a);printf(%d ,5&(a=2);printf(a=%d ,a);b=1;printf(%d ,5|(b=2);printf(b=%d ,b);printf(%d ,0|(b=2);printf(b=%dn,b);a的值仍为的值仍为1 a的值为的值为2 b的值仍为的值仍为1 b的值为的值为2 运算的先后顺序:运算的先后顺序:!算术运算符算术运算符 关系运算符关系运算符&|赋值运算符赋值运算符 先先后后3.3 if3.3 if语句语句P59返回返回if语句语句是用来判定所给定的条件是否满是用来判定

    10、所给定的条件是否满足,根据判定的结果足,根据判定的结果(真或假真或假)决定执决定执行给出的两种操作之一。行给出的两种操作之一。3.3.1 if3.3.1 if语句的一般形式语句的一般形式 1不带不带else的的if语句语句 2带带else的的if语句语句 P601不带不带else的的if语句语句【例例3.4】老大和老二各拿了一包糖,老大和老二各拿了一包糖,现要保证老大手中的糖比老二的少。现要保证老大手中的糖比老二的少。编写程序实现其功能。编写程序实现其功能。#include main()int a=0,b=0,t=0;printf(Input a,b:);scanf(%d%d,&a,&b);i

    11、f(ab)t=a;a=b;b=t;printf(a=%d,b=%dn,a,b);2 5 注意:缩进格式注意:缩进格式关关键键字字ifa=2,b=55 2 a=2,b=5不带不带else的的if语句形式语句形式if(表达式)(表达式)if子句子句 任意合任意合法法表达式表达式 语法上要语法上要求一条语求一条语句句 表达表达式式if子句子句0非非0【例例3.5】编写输出如下分段函数值的程编写输出如下分段函数值的程 序,要求序,要求x的值从键盘输入。的值从键盘输入。1 (01)y=#include main()float x=0,y=0;scanf(%f,&x);if(x0&x1)y=x;print

    12、f(x=%f,y=%fn,x,y);第第1次运行次运行:3 x=3.000000,y=3.000000 if(x1)y=x;第第2次运行次运行:-1 x=0.500000,y=1.000000 if(x0&x=1)y=1;x=-1.000000,y=0.000000 必须调试所有可能情况必须调试所有可能情况【例例3.6】输入输入3个整数,输出其中最大数。个整数,输出其中最大数。输入输入a、b、c的值的值max=amax=bmaxb?真真假假maxc?max=c真真假假输出输出max的值的值#include main()int a=0,b=0,c=0,max=0;printf(Input a,b

    13、,c:);scanf(%d%d%d,&a,&b,&c);max=a;if(maxb)max=b;if(maxb)temp=b;b=c;c=temp;if(bc)冒冒泡泡 temp=a;a=b;b=temp;if(ab)56冒冒泡泡 冒泡法冒泡法#include main()int a=0,b=0,c=0,temp=0;scanf(%d%d%d,&a,&b,&c);if(ab)temp=a;a=b;b=temp;if(bc)temp=b;b=c;c=temp;if(ab)temp=a;a=b;b=temp;printf(After:%d,%d,%dn,a,b,c);printf(Before:%

    14、d,%d,%dn,a,b,c);建议加建议加复合语句复合语句 temp=a;a=b;b=temp;讨论题讨论题3.23.2 在本题中将在本题中将3个数改成个数改成4个数,程序应如个数,程序应如何修改?若改成何修改?若改成20(或更多)个数,此(或更多)个数,此方法方便吗吗?方法方便吗吗?2带带else的的if语句语句【例例3.8】输入一个整数,如果是偶数,输入一个整数,如果是偶数,则输出则输出Even number,如果是奇数,如果是奇数,则输出则输出 Odd number。#include main()int a=0;printf(Input a:n);scanf(%d,&a);if(a%2

    15、=0)printf(Even numbern);else printf(Odd numbern);第第1次运行次运行 16 输出输出 Even number 第第2次运行次运行 5 输出输出 Odd number 关关键键字字带带else的的if语句形式语句形式if(表达式)(表达式)if子句子句else else子句子句 必须与必须与if配配对使用对使用 语法上都要语法上都要求一条语句求一条语句 语法上都要语法上都要求一条语句求一条语句 执行过程执行过程 非非0表达表达式式if子句子句0else子句子句3.3.2 if3.3.2 if语句的嵌套语句的嵌套P67在在if语句中又包含一个或多个语

    16、句中又包含一个或多个if语句语句称为称为if语句的嵌套。语句的嵌套。int a=0,b=0;a=b=3;if(a5)if(a5)if(b5)if(a5)if(a5)if(a5)if子句子句是复合语句是复合语句运行结果运行结果 a=3,b=2【例例3.10】编写求下面分段函数值的程编写求下面分段函数值的程序,其中序,其中x的值从键盘输入的值从键盘输入。x3+5 (当当0 x10时时)x2+1 (当当20 x30时时)y=0 (当当x0时时)2x2-x-6 (当当10 x20时时)x+3 (当当x30时时)scanf(%f,&x);scanf(%f,&x);if(x0)y=0;else scanf

    17、(%f,&x);if(x0)y=0;else if(x10)y=x*x*x+5;else scanf(%f,&x);if(x0)y=0;else if(x10)y=x*x*x+5;else if(x20)y=2*x*x-x-6;else if(x30)y=x*x+1;else y=x+3;printf(x=%f,y=%fn,x,y);被嵌套的被嵌套的if语句语句 简化书写格式(作用同上)简化书写格式(作用同上)if(x0)y=0;else if(x10)y=x*x*x+5;else if(x20)y=2*x*x-x-6;else if(x30)y=x*x+1;else y=x+3;只执行其中一

    18、条只执行其中一条测试时应至少运行测试时应至少运行5次次 3.4 switch3.4 switch语句语句n解决多分支问题解决多分支问题 P69返回返回n输入输入1时时 显示显示An输入输入2时时 显示显示Bn输入输入3时时 显示显示Cn输入其他数时输入其他数时 显示显示D scanf(%d,&a);switch(a )case 1:printf(”A”);break;case 2:printf(”B”);break;case 3:printf(”C”);break;default:printf(”D”);break;关关键键字字第一次运行输入第一次运行输入 1 1输出输出 A退出退出switc

    19、h语句体语句体第二次运行输入第二次运行输入 2 2输出输出 B退出退出switch语句体语句体入口入口入口入口第三次运行输入第三次运行输入 3 3入口入口输出输出 C退出退出switch语句体语句体第四次运行输入第四次运行输入 5 5入口入口输出输出 D退出退出switch语句体语句体switch (表达式表达式)case 常量表达式常量表达式1:语句组语句组1 break;case 常量表达式常量表达式2:语句组语句组2 break;case 常量表达式常量表达式n:语句组语句组n break;default:语句组语句组n+1 break;整型或字符整型或字符型型 值不能相等值不能相等 s

    20、witch语句常用于处理键盘命令语句常用于处理键盘命令 执行过程(执行过程(以例以例3.11为例)为例)a=?输入输入a的值的值输出输出A输出输出B输出输出C输出输出D=1=2=3=其他其他【例例3.12】写出下面程序段的运行结果。写出下面程序段的运行结果。scanf(%d,&a);switch(a)case 1:printf(”A”);case 2:printf(”B”);case 3:printf(”C”);break;default:printf(”D”);输入输入 1 输出输出 ABC退出退出switch语句体语句体输入输入 2 输出输出 BC退出退出switch语句体语句体break

    21、作用作用【例例3.13】输入一个百分制成绩,输出成输入一个百分制成绩,输出成绩等级绩等级A、B、C、D、E。n90100 An8089 Bn7079 C n6069 D n059 En否则显示出错信息否则显示出错信息 scanf(%d,&score);if(score100)printf(Error!n);else temp=score/10;switch(temp)case 10:case 9:grade=A;break;case 8:grade=B;break;case 7:grade=C;break;case 6:grade=D;break;default:grade=E;break;printf(%d,%cn,score,grade);89,B 89 85,B 85 100,A 100 可以空可以空分数段转换成整数分数段转换成整数 讨论题讨论题3.33.3 如果将例如果将例3.13的功能改为:输入的数据在的功能改为:输入的数据在85100分为分为A,7084分为分为B,5569分为分为C,4054分为分为D,039分为分为E,否则显,否则显示出错信息,那么应将程序怎样改写?示出错信息,那么应将程序怎样改写?

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:C语言第3章课件-.ppt.ppt
    链接地址:https://www.163wenku.com/p-3471157.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库