C语言电子教案4

上传人:zw****58 文档编号:52256004 上传时间:2018-08-19 格式:PPT 页数:42 大小:231KB
返回 下载 相关 举报
C语言电子教案4_第1页
第1页 / 共42页
C语言电子教案4_第2页
第2页 / 共42页
C语言电子教案4_第3页
第3页 / 共42页
C语言电子教案4_第4页
第4页 / 共42页
C语言电子教案4_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《C语言电子教案4》由会员分享,可在线阅读,更多相关《C语言电子教案4(42页珍藏版)》请在金锄头文库上搜索。

1、第4章 选择结构程序设计4.1 关系表达式和逻辑表达式 4.1.1 关系表达式 1关系运算符 关系运算符是比较两个操作数大小的符号。 两个操作数一般为数值型数据。 Turbo C的关系运算符及其优先级、结合律如表所示:运算符功能优先级 (值小的优先级高)结合律 = =60a+bb= =cb+4c-6 关系表达式的值是一个逻辑值,即“真”或“假”。C语 言中,用1表示“真”,用0表示“假”。第4章 选择结构程序设计4.1 关系表达式和逻辑表达式 4.1.2 逻辑表达式 1逻辑运算符 逻辑运算符是确定两个操作数逻辑关系的符号。 两个操作数一般为逻辑型数据。 Turbo C的逻辑运算符及其优先级、结

2、合律如表所示:运算符功能优先级 (值小的优先级高)结合律!逻辑逻辑 非2从右向左else max=b;printf(“max=%dn“,max); 程序2: main() int a,b,max;scanf(“%d%d“,max=a;if(max0)程序: main( ) int x,y;scanf(“%d“,if(x?:; 条件运算符的含义是:先求表达式1的值,如果为真, 则求表达式2 的值并把它作为整个表达式的值;如果表 达式1 的值为假,则求表达式3 的值并把它作为整个表 达式的值。第4章 选择结构程序设计4.3 条件表达式 例4.3 用条件表达式改写例4.1(输出两个数中的较大者)。

3、程序: main() int a,b,max; scanf(“%d%d“,max=(ab)?a:b;printf(“max=%dn“,max); 第4章 选择结构程序设计4.4 复合语句与空语句 4.4.1 复合语句 复合语句是由左右花括号括起来的多条语句,一个复合语句 在语法上等同于一个语句。 复合语句的一般形式如下: 说明部分; 语句部分 在程序中,凡是单个语句能够出现的地方,都可以出现复合 语句。一个复合语句又可以出现在其他复合语句内部。第4章 选择结构程序设计4.4.2 空语句空语句是只有一个分号的语句,其一般形式为:; 空语句在语法上占据一个语句的位置,但不做任何操作。4.4 复合语

4、句与空语句第4章 选择结构程序设计4.5 开关语句开关语句的一般形式如下: switch(表达式)case 常量表达式1:语句1;case 常量表达式2:语句2;case 常量表达式n:语句n;default:语句n+1;开关语句的功能是:首先计算 switch后面圆括号内表达式的值,若 此值等于某个case后面的常量表达式 的值,则转向该case后面的语句去执 行;若表达式的值不等于任何case后 面的常量表达式的值,则转向default 后面的语句去执行,如果没有default 部分,则将不执行switch语句中的任 何语句,而直接转到switch语句后面 的语句去执行。第4章 选择结构程

5、序设计4.5 开关语句 说明: (1)switch后面圆括号内的表达式的值和case后面的常量 表达式的值都必须是整型或字符型,不允许是浮点型。 (2)同一个switch语句中的所有case后面的常量表达式的 值都必须互不相同。 (3)switch语句中的case和default的出现次序是任意的, 也就是说default也可以位于case的前面,且case的次序 也不要求按常量表达式的大小顺序排列。 (4)每个case或default后的语句可以是多条语句,但不需 要使用“和”括起来。第4章 选择结构程序设计4.5 开关语句 说明: (5)由于switch语句中的“case 常量表达式”部分

6、只起标 号的作用,而不进行条件判断,所以在执行完某个case 后的语句后,将自动转到该语句后面的语句去执行,直到 遇到switch语句的右花括号或break语句为止,而不再 进行条件判断。如果在执行完一个case分支后,要跳出 switch语句转到下一条语句执行,可在一个case结束后 、下一个case开始前插入一个break语句。程序一且执 行到braek语句,将立即跳出switch语句。switch(n) case 1: x=1;case 2: x=2; 当n=1时, 将连续执行下面两个语句: x=1; x=2;例如:switch(n) case 1:x=1; braek;case 2:x

7、=2; braek; 当n=1时, 将只执行一个语句: x=1;第4章 选择结构程序设计4.5 开关语句 说明: (6)多个case可以共用一组执行语句。例如: switch(n) case 1: case 2: case 3: x=3; 第4章 选择结构程序设计4.5 开关语句 注意: (1)switch的表达式后不能有“;”。 (2)case和default与其后面的常量表达式间至少有一个空格。 (3)switch语句可以嵌套,break语句只跳出它所在的switch 语句。 (4)default语句可以省略。例4.4 给变量a,b,c输入整数,根据a的值确定对b、c 的运算: 当a =1

8、时:计算b+c的值。当a=2时:计算b-c的值。 当a=3时:计算b*c的值。当a=4时:计算b/c的值。 其他值时:不做任何操作。main() int a,b,c;scanf(“%d%d%d“,switch(a) case 1:printf(“%d+%d=%dn“,b,c,b+c); break;case 2:printf(“%d-%d=%dn“,b,c,b-c); break;case 3:printf(“%d*%d=%dn“,b,c,b*c); break;case 4:printf(“%d+%d=%dn“,b,c,b/c);程序:第4章 选择结构程序设计4.6 应用举例 例4.5 输入

9、三个数,按由小到大的顺序输出。分析: 已知:输入的三个数(分别用a,b,c来存放)。 求:由小到大的顺序输出的三个数。 处理:(1)a,b中的小者存入a,大者存入b。(2)a,c中的小者存入a,大者存入c。(3)b,c中的小者存入b,大者存入c。 流程图: 开始结束输入a,b,c输出a,b,cac) t=a;a=b;b=t;if(ac) t=a;a=c;c=t;if(bc) t=b;b=c;c=t;printf(“%d,%d,%d“,a,b,c); 第4章 选择结构程序设计4.6 应用举例 例4.6 输入一个不多于4位的正整数,求出它是几位数,逆序 打印出各位数字分析: 已知:一个不多于4位的

10、正整数(用x来存放)。 求:该正整数是几位数,该正整数的各位数字(分别用a、b 、c、d来存放千位、百位、十位、个位上的数字,由a、b 、c、d的值确定该正整数是几位数)。 处理:用算术运算/和%取出组成x的各位上的数字,再从高 位到低位判断各位上的数字是否不为零,据此确定该正整 数是几位数。流程图: 取组组成x的各位上的数字(a、b、c、d)开始结结束输输入xNY输输出4位 数及数字NY输输出3位 数及数字NYc!=0 输输出2位 数及数字d!=0输输出1位 数及数字a!=0b!=0程序:#include main() int x,a,b,c,d; scanf(“%d“,a=x/1000;b

11、=x%1000/100;c=x%100/10;d=x%10; if(a!=0) printf(“4:%d%d%d%dn“,d,c,b,a);else if(b!=0) printf(“3:%d%d%dn“,d,c,b);else if(c!=0) printf(“2:%d%dn“,d,c);else if(d!=0) printf(“1:%dn“,d); 取组组成x的各位上的数字(a、b、c、d)开始结结束输输入xNY输输出4位 数及数字NY输输出3位 数及数字NYc!=0 输输出2位 数及数字d!=0输输出1位 数及数字a!=0b!=0第4章 选择结构程序设计4.6 应用举例 例4.7 输入

12、一个数字,输出对应的星期几的英文单词。分析: 已知:一个数字(17,用n来存放)。 求:对应的星期几的英文单词(直接输出)。 处理:由于一个星期有7天,对输入的数字进行判断,有8 种情况(包括出错),用开关语句进行处理。开始输输出 Sun输输出 Mon输输出 Tues输输出 Wednes输输出 Thurs输输出 Fri输输出 Satur输输出 Error结结束n其他=6=5=4=3=2=1=0流程图:程序:#include main() int n;scanf(“%d“,switch(n) case 0: printf(“Sundayn“); break;case 1: printf(“Mon

13、dayn“); break;case 2: printf(“Tuesdayn“); break;case 3: printf(“Wednesdayn“); break;case 4: printf(“Thursdayn“); break;case 5: printf(“Fridayn“); break;case 6: printf(“Saturdayn“); break;default: printf(“Error“); 第4章 选择结构程序设计4.7 本章考点关系运算符和关系表达式。 逻辑运算符和逻辑表达式。 条件运算符和条件表达式。 简单if语句的格式与功能。 嵌套if语句的格式与功能。

14、switch语句的格式与功能。第4章 选择结构程序设计4.8 典型试题详解 1以下程序运行后的输出结果是_。 main() int p=30;printf(“%dn“,(p/30?p/10:p%3); 正确答案:3(知识点:条件运算符和条件表达式) 试题分析:表达式p/3的值为10,大于0,所以条件表 达式(p/30?p/10:p%3)的值取p/10的值3。第4章 选择结构程序设计4.8 典型试题详解 2有以下程序: main() int i=1,j=1,k=2;if(j+|k+) 执行后输出结果是_。 A)1,1,2B)2,2,1C)2,2,2D)2,2,3 正确答案:C(知识点:逻辑运算符

15、和逻辑表达式) 试题分析:根据运算规则,对逻辑表达式(j+|k+)语句,其结果为2,2,2 。第4章 选择结构程序设计4.8 典型试题详解 3以下程序输出的结果是_。 main() int a=5,b=4 c=3,d;d=(abc);printf(“%dn“,d); 正确答案:0(知识点:关系运算符和关系表达式) 试题分析:根据运算规则,对表达式(abc)应先计算表 达式ab的值,其结果为1,再计算1c的值,其结果 为0,故d的值为0。第4章 选择结构程序设计4.8 典型试题详解 4有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行 后,x的值不等于3的是_。 A)if(ca)x=1;B)if(a3)x=3;else if(ba) x=2; else if (a2) x=2;else x=3; else x=1; C)if(a3) x=3;D)if (ab) x=b;if(a2) x=2; if(bc) x=c; if(a1) x=1; if(ca) x=a; 正确答案:C(知识点:简单if语句和嵌套if语句的格式与功能) 试题分析:根据嵌套if语句的功能,对各程序段执行后,A)的结果是 x=3,B)的结果是x=

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号