C语言程序设计PPT教学课件-第四章 选择结构程序设计.ppt_第1页
C语言程序设计PPT教学课件-第四章 选择结构程序设计.ppt_第2页
C语言程序设计PPT教学课件-第四章 选择结构程序设计.ppt_第3页
C语言程序设计PPT教学课件-第四章 选择结构程序设计.ppt_第4页
C语言程序设计PPT教学课件-第四章 选择结构程序设计.ppt_第5页
免费预览已结束,剩余30页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

printf函数 格式输出 scanf函数 格式输入 putchar函数输出字符 getchar函数输入字符 数据类型 int %d, %ld float %f, %8.3f double %lf char %c,复习(review),c语言并没有规定函数参数的进栈次序,也就是函数参数的求值可能是自左向右,也可能是自右向左,tc是自右向左,main() int x=3; printf(“%d,%d,%dn“,x,x+,x); printf(“%dn“,x); printf(“%d,%d,%dn“,x,+x,x); printf(“%dn“,x); 结果为 4,3,3 4 5,5,4 5,第四章 选择结构程序设计,编程将大写字母“china”译成密码。 密码规律是:用原来字母后面第4个字母代替原来的字母。,#include main() char c1=c,c2=h,c3=i,c4=n,c5=a; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; putchar(c1); putchar(c2); putchar(c3); putchar(c4); putchar(c5); printf(“%c %c %c %c %cn”,c1,c2,c3,c4,c5); ,暗算看风:安在天、黄依依,在上面的程序中,程序能够控制用户的输入吗? 如果用户输入的不是大写字母,结果怎样? 如何对用户的输入进行合法性检查? 字符是大写字母的条件是什么? c语言如何表示条件?,安:刚才那个就是我要你破解的密码。 黄:你这个解码程序有问题。你要考虑下面的问题。,计算机程序只能处理数据,因此,条件也只能通过数据来表示。 条件可分为两类: 简单条件:两数据之间的关系 复杂条件:由简单条件构成,一、c语言中的条件,4.1 4.3 4.4 c语言中的条件及其表达,1、 简单条件,例: if (ab ) printf(“a is the big one.n“); ,ab 是简单条件 条件成立,执行if后面的语句,问:简单条件在c语言里如何表示?,关系运算符(比较运算符),!= (左边是否不等于右边) = = (左边是否等于右边) = (左边是否大于等于右边) (左边是否大于等于右边) = (左边是否小于等于右边) (左边是否小于右边),关系运算符和关系表达式,(1).关系运算符及其优先次序, (小于) (小于或等于) (大于) (大于或等于) (等于) ! (不等于),与其它运算符优先级的比较:,用关系运算符将两个表达式连接起来的式子。 如:(ab)(by 、s+fd,(2).关系表达式,关系表达式的值,运算结果逻辑值 1“真” ,0“假”,例如: 设 a=3, b=2, c=1 求下面关系表达式 的值: cb (a-b) = = 1 b+ca,值为,值为,值为,如果关系运算对象的类型不同,也要先进行类型转换。,2、c中的复合条件,复合条件由多个简单条件构成 例: 3=3 and x1, x1 or x5,问:复合条件在c语言里如何表示?,逻辑运算符及逻辑表达式,& and | or ! not example: x=3 & x=3 and x1 | x1 or x1) x=1,(1).逻辑运算符及其优先次序,优先级,(高),(低),例如:!a a为真,则!a为假。 a|b a、b之一为真,则a|b为真。 a&b a、b 同时为真,则 a&b 为真。, ! (逻辑非) & (逻辑与) | (逻辑或),数学中的100100 & x200,数学中的x100或x100 | x0,逻辑运算符与其它运算符优先级的比较378页附录d运算符和优先级,(高),(低),结果:c=1,(2)、逻辑表达式,用逻辑运算符将逻辑运算对象连结起来的式子。 如:(ab)&(bb,逻辑表达式的值,运算对象以数值非0为真、0为假 运算结果逻辑值(只有假为0、真为1两种取值) 如: 53 & 2 | 84 值为 1 b&d 值为,33&x5,4.2 用if语句实现选择结构,1. if (表达式) 语句,一、if 语句的三种形式,执行过程: 当表达式的值为“真”(非零)时,执行语句,否则,不执行语句。,例1:任意输入两个数,输出其中最大的。,#include “stdio.h” main() float x,y; scanf(“%f%f”,if(xy) printf(“the max is %f”,y);,if(xy) x=y; printf(“the max is %f”,x);,例2:任意输入三个数,按从大到小的顺序输出。,#include “stdio.h” main() float x,y,z,t; scanf(“%f%f%f”,2. if (表达式) 语句1 else 语句2,执行过程: 当表达式的值为“真”(非零)时,执行语句1,否则执行语句2。,例1:任意输入一个整数,判断其是否能被3整除。,#include “stdio.h” main() int x; scanf(“%d”, ,#include “stdio.h” main() int x; scanf(“%d”,例2:铁路托运行李需收取一定的费用,行李重量在50公斤以下的(含50)每公斤收取0.20元,超出50公斤的,超出部分每公斤0.30元。,#include “stdio.h” main() float w,y; printf(“input weight”); scanf(“%f”,3. if (表达式1) 语句1 else if(表达式2) 语句2 else if(表达式3) 语句3 : else if(表达式m) 语句m else 语句n,例题: #include “stdio.h” main() float grade; char level; scanf(“%f”,if 语句说明:,2、if 语句中的“语句”为一个简单语句或复合语句,if(x) if(x!=0) if(!x) if(x=0) 为何不能写成 if(x) if(x=0) if(!x) if(x!=0),4.5 条件运算符和条件表达式,例题1: main() int a=3,b=2,max; max= (ab) ? a : b ; printf(“%d”,max);,表达式1 ? 表达式2表达式3 如: (ab) ? a : b,条件运算符的结合方向: 自右至左 如:ab ? a : cd ? c : d 等效于:ab ? a : (cd ? c : d),例题2 :把输入字符中的小写字符转换成大写并输出 。,#include main() char ch; scanf(“%c“, ,main() int a,b,c,t,max; scanf(“%d%d%d“, ,例题2 :找出任意输入的三个数中最大的数。,4.6 选择结构的嵌套,在 if 语句中又包含一个或多个if 语句称为 if 语句的嵌套。,一般形式: if (条件1) if (条件2)语句1 else 语句2 else if (条件3)语句3 else 语句4,if(x0) if(y0) printf(“x0,y0“); else printf(“x0,y0) printf(“x0“); else printf(“x=0, y=0”);,说明:,else与if的匹配原则是:一个else应与其之前距离最近且没有与其它else配对的if 配对。,缩 排,main( ) int x,y; scanf(“%d“,main( ) int x,y; scanf(“%d“,main( ) int x,y; scanf(“%d“, 加上更明确,if(x=0) if(x0) y=-1; else y=0; else y=1;,4.7 利用switch 语句实现多分支选择结构,一般形式: switch(表达式) case 常量表达式1:语句序列1 break; case 常量表达式2:语句序列2 break; : case 常量表达式n:语句序列n break; default :语句序列n+1 ,例题:任意输入一学生成绩,对成绩进行判断。 main() int grade; scanf(“%d”, ,若grede= 89,输出结果是什么? 8089 70 79 60 69 error,若grede= 89,输出结果是什么? 8089,第二种形式 :,main() char grade; printf(“input grade(a,b,c,d):”); scanf(“%c”, ,例题: #include “stdio.h” main() float grade; char level; scanf(“%f”,基本运费、货重,路程(s)和折扣的关系标准如下:编程序,计算运费。 s250k

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论