已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2019/7/31,C语言程序设计,主讲:杨雪青 E-mail: ,华北水利水电学院计算中心,2019/7/31,问题的提出 在实际问题中,要求计算机进行逻辑判断,即给出一个条件,让计算机判断是否满足条件,并按照判断的结果来做不同的处理。,从键盘输入一个数,如果是正数则打印出来,否则不 做任何处理; 2. 从键盘输入两个数,并按由大到小的顺序输出; 3. 求方程的根时,根判别式b2-4ac0, 则终止程序执行,否则求解。,1. 输入a,判断 a 0 2. 输入a,b,判断 a b 3. 输入a ,b,c,判断 b*b-4*a*c 0,第三讲 选择结构程序设计,2019/7/31,1、C语言中,if结构一般形式为: if (表达式) 语句1 else 语句2 if结构的功能:首先计算表达式的值,如果表达式的值为1(或非0)则执行语句1,若表达式的值为0,则执行语句2 (有else语句!)。 if结构的N-S流程图,第三讲 选择结构程序设计,一、用IF结构实现选择结构,2019/7/31,例:编写程序,求y的值,要求x从键盘输入,输入x,输出y,X = 0,真,假,X = 0,X 0,第三讲 选择结构程序设计,一、用IF结构实现选择结构 2、程序举例,#include “stdio.h“ #include “math.h“ main() float x, y; printf(“ninput x:“); scanf(“%f“, ,2019/7/31,(1)if语句中的逻辑表达式(即条件)必须要用一对圆括号括起来。 (2)在ifelse结构中,语句1与语句2都可以是空语句。 (3)在使用if语句时,一定要注意逻辑表达式的正确写法,特别是在连续使用多个if语句时更要注意。 (4)在if结构中,如果在else前面有多个if语句,则else与最近的if配对。,第三讲 选择结构程序设计,一、用IF结构实现选择结构 3、关于if结构的几点说明,2019/7/31,例:从键盘读入一个成绩,如果成绩在85100之间,则输出Very good”;如果成绩在7084之间,则输出Good”;如果成绩在6069之间,则输出Pass”;如果成绩在60分以下,则输出“No pass” 。,第三讲 选择结构程序设计,一、用IF结构实现选择结构 2、程序举例,#include “stdio.h“ main() float score; printf(“ninput a s: “); scanf(“%f“, ,2019/7/31,?思考题 输入3个整数a, b,c,输出其中绝对值最大的数的绝对值。解题算法的N-S流程图如右图。,输入a,b,c,fabs(a)=max,输出max,fabs(c)max,真,假,fabs(b)=max,fabs(b)max,真,假,fabs(c)=max,第三讲 选择结构程序设计,一、用IF结构实现选择结构 2、程序举例,2019/7/31,if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式n) 语句n else 语句n1,if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式n) 语句n else 语句n1,第三讲 选择结构程序设计,一、用IF结构实现选择结构 2、多个if结构嵌套:,简写作,2019/7/31,这种结构又称为ifelse if结构,其流程图如图所示。,第三讲 选择结构程序设计,2019/7/31,?如果在条件满足的情况下要执行的语句有多条怎么办? 例如:编程实现输入两个实数a,b, 如果ab则交换两个数的值,最后顺序a,b输出的值。,第三讲 选择结构程序设计,一、用IF结构实现选择结构 2、程序举例,2019/7/31,二、语句与复合语句 在C语言中,一个表达式后面跟随一个分号就构成了一个语句,这种语句称为表达式语句。 在C语言中,分号(;)是表达式语句的终结符,而不是语句之间的分隔符,也就是说,分号是表达式语句的一个组成部分,只不过它位于表达式的后面。 在一个函数体内部,由左、右花括号括起来的语句称为复合语句,它的一般形式为 说明部分;语句部分;,第三讲 选择结构程序设计,2019/7/31,二、语句与复合语句 对于复合语句要注意以下几点: (1)一个复合语句在语法上等同于一个语句,因此,在程序中,凡是单个语句(如表达式语句)能够出现的地方都可以出现复合语句,并且,复合语句作为一个语句又可以出现在其他复合语句的内部。 (2)复合语句是以右花括号为结束标志,因此,在复合语句右括号的后面不必加分号,但在复合语句内的最后一个非复合语句是要以分号作为结束的。 (3)在复合语句的嵌套结构(将函数体也看成是一个复合语句,而且是最外层的复合语句)中,一个复合语句内所进行的说明只适合于本层中该说明语句以后的部分(包括其内层的复合语句),在该复合语句外不起作用。 (4)在复合语句的嵌套结构中,如果在内层与外层作了相同的说明,则按照局部优先的原则,内层复合语句中的执行结果不带回到外层。,第三讲 选择结构程序设计,2019/7/31,三、条件运算符,在ifelse结构中,如果语句1与语句2都是单一的赋值语句,并且都是给同一个变量赋值,则可以用条件运算符来进行处理。 1、条件表达式的一般形式: 表达式1?表达式2:表达式3 2、条件表达式的执行过程:当表达式1的值为非零时,取表达式2的值,否则取表达式3的值。 例:if xy z=x; else z=y; 可以写成 z=(xy)?x:y; 例:设a=1,b=2,则表达式 ab?a:b+1的值是多少?,第三讲 选择结构程序设计,2019/7/31,三、条件运算符,例:要求从键盘输入一个字符,如果输入的英文大写字母,则将它转换成小写字母后输出,否则输出原来输入的字符。,第三讲 选择结构程序设计,#include “studio.h” main() char c; Printf(“nEnter a char:”); Scanf(“%c”,c); C=(c=A ,2019/7/31,三、条件运算符,下面对条件表达式作几点说明: (1)条件运算符优先级要比赋值运算符高。 (2)条件运算符的优先级比关系运算符与算术运算符都要低,因此,条件表达式中的“表达式1”、“表达式2”与“表达式3”都不必用括号括起来。 (3)条件运算符的结合方向为“从右到左”。 例:设a=1,b=2, c=1,d=2则表达式 ab?a:cd?c:d的值是多少?,第三讲 选择结构程序设计,2019/7/31,四、 switch结构,在C语言中提供了一个直接实现多路分支选择的结构,称为switch结构,其一般形式如下: switch(表达式) case 常量表达式1: 语句1 case 常量表达式2: 语句2 case 常量表达式n: 语句n default : 语句n1 ,图3.4 switch结构的流程图,第三讲 选择结构程序设计,2019/7/31,四、 switch结构,switch结构程序举例: 从键盘输入1-7之间的整数,输出这个数字所对应的星期几的英文单词。,第三讲 选择结构程序设计,#include “stdio.h“ main() int num; scanf(“%d“, ,2019/7/31,下面对switch结构作几点说明: 1)switch结构中的表达式、常量表达式1、常量表达式n必须是整型或字符型。这是因为,在switch结构中,其分支数一般是有限的,并且是离散的,因此,其表达式的值也应是有限的,且是离散的。 2)同一个switch结构中的常量表达式值必须互不相同,否则就会出现矛盾的现象,即对于“表达式”的同一个值对应多种执行方案,这是错误的。 3)在switch结构中,case 与 default 的顺序可以任意,各case之间 的顺序也可以任意。 4)在执行switch结构时,当执行完某case 后的语句后,将顺序执行后面case 后的语句,直到遇 break 语句才退出整个switch 结构的执行。 5)在switch结构中,如果没有default 且“表达式”值不等于任何case 后常量表达式的值,则直接退出switch 结构而转到其后的语句执行。,第三讲 选择结构程序设计,四、 switch结构,2019/7/31,3.6 程序举例,例3.12 计算奖金。 当企业利润P等于或低于0.5万元时,奖金为利润的1%;当0.5P1万元时,超过0.5万元部分的奖金为利润的1.5%,0.5万元以下仍按1%计算;当1P2万元时,1万元以下部分仍按前面的方法计算,超过1万元的部分其奖金按利润的2%计算;当2P5万元时,2万元以下部分仍按前面的方法计算,超过2万元部分的奖金按利润的2.5%计算;当5P10万元时,5万元以下部分仍按前面的方法计算,超过5万元部分的奖金按利润的3%计算;当P10万元时,10万元以下部分仍按前面的方法计算,超过10万元部分按3.5%计算。其中P由键盘输入,计算并输出相应的奖金数W。,2019/7/31,其流程图如图3.5所示。,图3.5 例3.12中ifelse if结构的流程图,2019/7/31,根据图3.5所示的流程图,用ifelse if结构写出C程序如下: #include “stdio.h“ main() float p,w; printf(“input p: “); scanf(“%f“,&p); if (p0.0) w0.0; else if (p0.5) w0.01*p; else if (p1.0) w0.0050.015*(p0.5); else if (p2.0) w0.01250.02*(p1.0); else if (p5.0) w0.03250.025*(p2.0); else if (p10.0) w0.10750.03*(p5.0); else w0.25750.035*(p10.0); printf(“w%fn“,w); ,2019
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年七台河职业学院单招职业技能考试必刷测试卷及答案解析(夺冠系列)
- 2026年四川工程职业技术学院单招职业倾向性考试必刷测试卷带答案解析
- 2026年内蒙古丰州职业学院单招职业技能测试必刷测试卷及答案解析(名师系列)
- 2026年云南交通运输职业学院单招职业技能测试必刷测试卷及答案解析(夺冠系列)
- 2026年四川文化产业职业学院单招职业适应性考试必刷测试卷及答案解析(夺冠系列)
- 2026年新疆伊犁哈萨克自治州单招职业适应性测试必刷测试卷附答案解析
- 2026年吉林司法警官职业学院单招职业适应性考试必刷测试卷附答案解析
- 2026年唐山幼儿师范高等专科学校单招职业技能考试必刷测试卷及答案解析(名师系列)
- 2026年四川工业科技学院单招职业适应性考试题库带答案解析
- 2020-2025年投资项目管理师之投资建设项目组织练习题(一)及答案
- 寺庙修缮工程协议书
- YY/T 1994-2025采用机器人技术的血管介入手术控制系统
- 物流行业仓储管理岗位货物调度效率考核表
- 5.2 少年当自强 教案 2024-2025学年统编版道德与法治九年级下册
- 2025年第十一届《中金所杯全国大学生金融知识大赛》复赛题库附答案
- 酿造酒工艺与品鉴培训
- 2025年及未来5年中国卫生杀虫剂行业市场供需格局及行业前景展望报告
- 2025江西宜春市丰城高级技工学校招聘30人考试笔试备考试题及答案解析
- 2026-2031年中国山慈菇行业市场发展现状及投资前景预测报告
- 【普通高中地理课程标准】日常修订版-(2017年版2025年修订)
- 学堂在线 唐宋词鉴赏 期末考试答案
评论
0/150
提交评论