




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第4.4节 选择控制程序设计q他知道计算机中各种密码验证如何实现吗?他知道计算机中各种密码验证如何实现吗?q他是根据什么选择他是根据什么选择? 设置一个条件设置一个条件q条件如何表示?条件如何表示?q本卷须知:本卷须知:qC 言语中混合运算要特别小心运算符号的优先级言语中混合运算要特别小心运算符号的优先级和结合律。和结合律。qC言语一切表达式都有一个值,要区别表达式和言语一切表达式都有一个值,要区别表达式和表达式的值。表达式的值。4.4.1 关系运算和逻辑运算q目的:q一、关系运算符号有哪些?它们的结合律是什么?q二、关系表达式如何构成?q三、关系表达式的值有什么?q四、关系运算的优先级怎样规
2、定?q五、逻辑运算符号有哪些?q六、逻辑表达式如何构成?q七、逻辑表达式的值有什么?q八、逻辑真值表q九、逻辑运算的优先级怎样规定?4.1.1 关系和逻辑运算q一、关系符号及关系表达式一、关系符号及关系表达式q比较两个量比较两个量x, y之间的关系式子叫关系表达式之间的关系式子叫关系表达式qx y x y x = y x != yq比较的结果比较的结果,关系表达式的值:关系表达式的值: q31 真真 q13 假假 例题:int x=2, y=6;x = (y 3) X=y3; x = (x y)10 x= 1x=0例例4-7 用关系表达式表示以下条件或解释关系表达式的意义。用关系表达式表示以下
3、条件或解释关系表达式的意义。(1) 变量变量x的值是零;的值是零; x= =0(2) 变量变量x的值不等于零;的值不等于零; x!=0(3) 字符变量字符变量ch在字母在字母A的后面;的后面; chA (4) 字符变量字符变量ch在字母在字母Z的前面;的前面; cha+b ,等价于,等价于ca+b ;关系运算符的优先级低于算术运算符。;关系运算符的优先级低于算术运算符。(6) ab=c, 等价于等价于(ab)=c ;“优先级高于优先级高于“= =。(7) a=bc,等价于,等价于a=(bc) ;关系运算符的优先级高于赋值运算符。;关系运算符的优先级高于赋值运算符。阐明:阐明:(1) 字母比较大
4、小是按照它们对应字母比较大小是按照它们对应ASCII码值的大小比进展比较,本质表示码值的大小比进展比较,本质表示字母在字母在ASCII表的前后顺序。表的前后顺序。(2) 建议不要写容易引起混淆的关系式子,尽量用建议不要写容易引起混淆的关系式子,尽量用把先关量括起来把先关量括起来。 关系运算符的优先级运算符优先级: 算术运算符 高 = = != = , 低结合率很重要例子:d = b+2 = = 3 d = (b+2) = = 3)b - 1 = = a != c(b 1) = = a) != c练习:q1.假设:X=8 那么: x=10 ( ? )q2.假设:X=10 那么: x=0&(x=a
5、)&(ch=a)&(ch=A)&(ch=Z);其中其中ch是字符变量。是字符变量。(4) 20岁以下的女生,即:岁以下的女生,即:g=0&a=20;其中用;其中用g=0表示女生表示女生,a表示年龄的变量。表示年龄的变量。(5) 20岁以下的男生,即:岁以下的男生,即:g=1&a=20;其中用;其中用g=1表示男生表示男生,a表示年龄的变量。表示年龄的变量。(6) 换行,即:换行,即:ch= =n,其中,其中ch是字符变量。是字符变量。(7) 空格,即:空格,即:ch= = ;或者;或者ch= =32,其中,其中ch是字符变量。是字符变量。生活中的例子:3 x 3 并且 x 5 c言语表达式:3
6、 x & x 5q !q 算术运算符q =q = !=q &q |q =q ,运算符的优先级设 x = 1 , y = 2 , c = 0 x = y = c & !x+2 3(x = y = c) & (!x+2 3)(x = y) = c) & (!x+2) 3)(x = y) = c) & (!x)+2) 3)练习q 1.!x 与x!= 的区别?q 2.思索题:如何表示既不等于,又不等于3。q (x!=2 )|(x!=3) ?q (x!=2&x!=3)? (!(x=2|x=3)q 3.Int n ; (n%2=0) 为真是什么意思?q 4.一切小写字母如何表示?q 5.一切大写字母如何表
7、示?q 6.char ch; ch是空格字符如何表示,ch 是回车符.q ch=040 真 ch=n 真q 7. 一个字符串的终了: ch=0 真q 8. 如何表示 0 xb?a:b,那么max的值为20。 4.4.2 if 语句q一、if 语句的功能逻辑执行顺序q二、 if 语句语句的三种书写格式及对应流程图重点q三、什么是if 子句q四、 if 语句嵌套难点q实践例子:红绿灯选择?横穿马路条件?多岔路?4.4.2 -1 if选择控制设计if(条件) A;意义和用途:假设条件真那么执行A段代码,否那么跳过A段代码,执行A段后的代码。图4-10 if选择构造真 A条件例例4-9 把编写程序,把
8、用户输入的小写字母转换成大写字母并输出显示出来,如输入其他字符那么不发把编写程序,把用户输入的小写字母转换成大写字母并输出显示出来,如输入其他字符那么不发生变化。生变化。#include#inlcude main() char chx,chd; /* 分别存储要处置小写和大写字母分别存储要处置小写和大写字母*/ clrscr(); printf(n请输入一个小写字母:请输入一个小写字母:); /*提示用户输入提示用户输入 */ chx=getchar(); /*经过经过getchar()获取用户输入的字母获取用户输入的字母 */ if(chx = a)&(chx0y= x2 x0 ) y=x+
9、2;else y=x*x;补充练习:问题:1编写一个程序让计算机随即产生一个整型数,用户再从键盘上输入一个整数, 假设与随机数一样那么打印*Right!*。 2假设相等打印*Right!*,否那么打印*Wrong!*分析:产生一个随机数的函数是:rand;/#include 键盘上输入数scanf#include#includemain() int x;/biaoshi suijishu int y;/yonghu shuru de shu x=rand(1); printf(“qingshuruyigezhengxing shun); scanf(“%d,&y); if(x=y) print
10、f(“*Right!*n); else printf(“*Wrong!*n); return 0;例例4-11 从键盘上输入一个非从键盘上输入一个非0整数,假设是偶数那么打整数,假设是偶数那么打印印“他输入的数是偶数!,否那么打印他输入的数是偶数!,否那么打印“他输入的数是奇他输入的数是奇数!。数!。主要代码如下:主要代码如下:int n; printf(“n请输入一个非请输入一个非0整型数整型数); scanf(“%d,&n); if(n%2=0) /* 判别判别n能否为整数能否为整数 */ printf(“n他输入的整数是偶数:他输入的整数是偶数:%d,n); elseprintf(“n他
11、输入的整数是奇数:他输入的整数是奇数:%d,n);练习:从键盘上输入一个整数,假设是偶数那么显示这个数是偶数,否那么显示这个数是奇数。算法分析:1、用到一个整数变量不同输入不同量;2、从键盘上交互输入;别忘记提示用户3、判别该数;4、各显示不同的话; 源程序:#includemain() int n; printf(“Please enter a integern); scanf(“%d,&n); If(n%2=0) printf(“ this is a even.n) else printf(“this is a oddn);/ else 后能否需求条件式子?言语描画:1、int n;2、p
12、rintf(“Please input a integer); scanf(“%d,&n);3、if-else;4、printf(“ xxxxn); 2、 if else if-else语句3.else if 构造if(条件一) statement_1else if(条件二) statement_2else if(条件) statement_n-1else statement_n 条件一语句一1条件二语句二条件三语句三语句nYNYNNY满足那个条件执行对应语句,只执行第一个满足条件的子语句,并且执行一次。当一切条件都不满足是执行 最后的语句statement-n.例例4-12 用用if-els
13、e if-else 构造实现本节开场提出的成果输出。构造实现本节开场提出的成果输出。#includemain() float cj; /*cj用来存储一个成果用来存储一个成果 */ printf(“请输入成果请输入成果); scanf(“%f,&cj); if(x=90) printf(“A n); else if(x=80) printf(“B n); else if(x=70) printf(“C n); else if(x=60) printf(“D n); else printf(“F n);假设if后的语句多余两条那么用 括起来。例题:从键盘上如数一个整数,假设是大于零那么屏幕上显示
14、他输入的数是正数;假设是零那么显示“他输入的数是零;否那么显示他输入的数是负数。q算法分析:q1、用到一个整数变量不同输入不同量;q2、从键盘上交互输入;别忘记提示用户q3、三次判别该数;q4、各显示不同的话; 言语描画:1、int n;2、printf(“Please input a integer); scanf(“%d,&n);3、if-else if -else;4、printf(“ xxxxn); 源程序:#includemain() if(n0) printf(“xxxxn);else if(n=0) printf(“xxn) else printf(“this is a minu
15、s numbern) 4 嵌套的if语句(省略q2、嵌套的 if else 构造qif (exp_1) qif(exp_2) statement_1qelse statement_2qelseqif(exp_3) statement_3qelse statement_4if (exp) statement1else statement2 if 语句 if 语句 嵌套的if语句else 与if就近结合,完全包含不交叉。q if()q q if()q q elseq .q .q elseq q 输入变量x, 计算符号函数:q 1 当 x0q y = 0 当 x=0q -1 当 x=0) if(x0
16、) y = 1; else y = 0;else y = -1; x = 0 x 0y = 1y = 0非0 0非0 y = -10If(x0) y=1; else y=0;if (x0) y = 1; else if (x=0) y = 0; else y = -1;if (x=0) if(x0) y = 1; else y = 0;else y = -1; x=0 x 0y = 1y = 0非0 0非0 y = -100 x 0 x = 0y = 1y = 0非0 0非0 y = -12种嵌套if语句的比较5 switch语句功能:多种情况选择一个切入点开场运转。switch表达式 cas
17、e 常量表达式1:语句段1 case 常量表达式2:语句段2 . case 常量表达式n:语句段n default :语句段n+1给多种情况设置一个开场点,从入口点执行到SWITCH完;表达式的值必需是整数或等同整数,常量表达式值必需是某个整数,正好是表达式的某个值;否那么无法实现目的。、表达式:叫控制表达式,用来控制执行那一种情况。、每一个常量表达式刚好是表达式的某个值。、以上情况都不是时,default后的语句被执行。、缺乏时不排它性。表达式e图4-15复合句1复合句2复合句n复合句n+1假设e=c1时假设e=c2时假设e=cn时不等于任何防止反复执行的改良switch表达式 case 常
18、量表达式1:语句段1;break; case 常量表达式2:语句段2 ;break; case 常量表达式n:语句段n;break; default :语句段n+1Switch case -break 构造运转流程:表达式的值表达式的值=常量表达式常量表达式 2 的值的值表表达达式式语句段语句段1语句段语句段2语句段语句段n语句段语句段n+1表达式的值表达式的值=常量表达式常量表达式 1 的值的值表达式的值表达式的值=常量表达式常量表达式 n 的值的值其他其他q作业:输入一个整数n,假设90=n100输入;q假设80=n90输入B;假设70=n80输入C;q假设60=n70输入D;假设n60输
19、入F。q分析:用SWITCH xq 如何把一段数转换成一个常数:n/10q case 的常量分别是什么?q switch(n/10)q q case 10:q case 9: printf(“ An);break;q case 8: printf(“Bn); break;qq例qvoid main( )q char c;qprintf(Please input a character:n);q c = getchar();q switch(c) q case :q case n: q printf(This is a blank or enter); q break;q case 0 : ca
20、se 1 : case 2 : case 3 : case 4 :q case 5 : case 6 : case 7 : case 8 : case 9 :q printf(This is a digit.n);q break;q default:q printf(This is an other character. n);q q输入 2输入 a几个常量表达式共有一个语句段例例4-15编程序实现从键盘上输入两个整数,然后输入运算符号,假设为编程序实现从键盘上输入两个整数,然后输入运算符号,假设为+号输出两数之和,假设为号输出两数之和,假设为-输出第一个数与第二个数的差,假设为输出第一个数与
21、第二个数的差,假设为*号输出两数的积,假设为号输出两数的积,假设为/号输入第一个数除以第二号输入第一个数除以第二个数的商。个数的商。算法分析:算法分析:(1) 提示并要求用户输入两个整型数;提示并要求用户输入两个整型数;(2) 提示并要求用户输入运算符号;提示并要求用户输入运算符号;(3) 判别用户输入的运算符号;判别用户输入的运算符号;(4) 用用switch-case 分四种情况处置;分四种情况处置;(5) 显示算式和结果显示算式和结果#includemain() float x,y; /* 分别用来存储两个运算数 */ float jg; /* 用来存储和差积商之一 */ char ch
22、; /*用来存储运算符号 */ printf(“请输入两个实型数:n); scanf(“%f%f,&x,&y); getchar();/去除上次scanf的回车符号 printf(“请输入运算符号+、-、*、 / 之一n); / *提示用户输入运算符 */ ch=getchar; /scanf(“%c,&ch); /* 以下是根据不同情况求相关运算*/switchch case + : jg=x+y; break; case - : jg=x-y; break; case * : jg=x*y; break; case / : jg=x/y; break; default : printf(“n他输入的字符不符合要求!);if(ch=+|ch=-|ch=*|ch=/) /* 正常运算才显示结果 */printf(“n %f%c%f=%fn,x,ch,y,jg); /* 输出显示结果 */ 例4-16求最大值q输入3个数,输出其中的最大值。q#include qvoid main( )qq int a, b, c, max;/max biaoshi dashuq printf(input a, b, c:n);q scanf(%d%d%d, &a, &b,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 无锡小学午休管理制度
- 公司电气实验室管理制度
- 好当家海参加盟管理制度
- 学校一年级班级管理制度
- 数据要素+智慧高速解决方案
- 搞笑视频班会课件模板
- Java程序设计p03章节
- 北师大版四年级数学下册期末预测卷【含答案】
- DB43-T 2765-2023 大坝安全监测数据通信规约
- 2024北京牛栏山一中高一10月月考数学试题及答案
- 呼伦贝尔农业无人机项目可行性研究报告(范文)
- LTPS-LCD工艺流程简介资料
- 初中生物总复习(七八年级上下册)
- (完整版)10KV配电室安装工程施工方案
- 幼儿卫生保健试题和参考答案解析
- 锅炉基础知识及水泥余热发电锅炉性能1
- 辽宁省建筑施工三类人员安全生产考核合格证变更申请表
- (完整版)家庭亲密度与适应性量表
- DOE操作作业指导书
- 初三自主招生简历范文
- 侧索硬化症的概述
评论
0/150
提交评论