二级C语言程序的设计及同步训练第四章精品ppt课件

上传人:s9****2 文档编号:592123569 上传时间:2024-09-19 格式:PPT 页数:42 大小:324.50KB
返回 下载 相关 举报
二级C语言程序的设计及同步训练第四章精品ppt课件_第1页
第1页 / 共42页
二级C语言程序的设计及同步训练第四章精品ppt课件_第2页
第2页 / 共42页
二级C语言程序的设计及同步训练第四章精品ppt课件_第3页
第3页 / 共42页
二级C语言程序的设计及同步训练第四章精品ppt课件_第4页
第4页 / 共42页
二级C语言程序的设计及同步训练第四章精品ppt课件_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《二级C语言程序的设计及同步训练第四章精品ppt课件》由会员分享,可在线阅读,更多相关《二级C语言程序的设计及同步训练第四章精品ppt课件(42页珍藏版)》请在金锄头文库上搜索。

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

2、真,用真,用0表示表示“假。假。第第4章章 选择构造程序设计选择构造程序设计4.1 关系表达式和逻辑表达式关系表达式和逻辑表达式4.1.2 逻辑表达式逻辑表达式1逻辑运算符逻辑运算符逻辑运算符是确定两个操作数逻辑关系的符号。逻辑运算符是确定两个操作数逻辑关系的符号。两个操作数普通为逻辑型数据。两个操作数普通为逻辑型数据。Turbo C的逻辑运算符及其优先级、结合律如表所示:的逻辑运算符及其优先级、结合律如表所示:运算符运算符功能功能优先级优先级(值小的优先级高)(值小的优先级高)结合律结合律!逻辑非非2从右向左从右向左&逻辑与与11从左向右从左向右|逻辑或或12第第4章章 选择构造程序设计选择

3、构造程序设计4.1 关系表达式和逻辑表达式关系表达式和逻辑表达式4.1.2 逻辑表达式逻辑表达式1逻辑运算符逻辑运算符各逻辑运算符的运算规那么如表所示:各逻辑运算符的运算规那么如表所示:数据数据a 数据数据b a&b a|b!a!b111100100101010110000011第第4章章 选择构造程序设计选择构造程序设计4.1 关系表达式和逻辑表达式关系表达式和逻辑表达式4.1.2 逻辑表达式逻辑表达式1逻辑运算符逻辑运算符2逻辑表达式逻辑表达式由由逻辑运算符将两个表达式运算符将两个表达式衔接起来的有意接起来的有意义的式子称的式子称为逻辑表达式。表达式。例如:例如:!a+b&c a|b= =

4、c a0|bb) max=a; if(ab) max=a; else max=b; else max=b; printf(max=%dn,max); printf(max=%dn,max); 程序程序2 2:main()main() int a,b,max; int a,b,max; scanf(%d%d,&a,&b); scanf(%d%d,&a,&b); max=a; max=a; if(maxb) max=b; if(maxb) max=b; printf(max=%dn,max); printf(max=%dn,max); 第第4章章 选择构造程序设计选择构造程序设计4.2 if语句语

5、句4.2.2 嵌套嵌套if语句语句在在if 语句中又包含一个或多个语句中又包含一个或多个if语句,称为嵌套语句,称为嵌套if语句。语句。普通方式如下:普通方式如下:if(表达式表达式1) if(表达式表达式2 ) 语句语句1 else 语句语句2else if(表达式表达式3) 语句语句3 else 语句语句4第第4章章 选择构造程序设计选择构造程序设计4.2 if语句语句4.2.2 嵌套嵌套if语句语句阐明:阐明:1if与与else的配对关系从最内层开场,的配对关系从最内层开场,else总是与离它最总是与离它最近的未曾配对的近的未曾配对的if配对。配对。2if与与else的个数最好一样,从内

6、层到外层一一对应,以的个数最好一样,从内层到外层一一对应,以防止出错。防止出错。3假设假设if与与else的个数不一样,可以用花括号来确定配对的个数不一样,可以用花括号来确定配对关系。关系。例如:例如:if (表达式表达式1 ) if(表达式表达式2 ) 语句语句1 else 语句语句2这时花括号限定了内嵌这时花括号限定了内嵌if 语句的范围,因此语句的范围,因此else与第一与第一个个if配对。配对。例例4.2 对恣意对恣意x,根据以下函数关系求对应,根据以下函数关系求对应y的值。的值。 -1 x0程序:程序:main( ) int x,y; scanf(%d,&x); if(x0) y=-

7、1; else if(x=0) y=0; else y=1; printf(x=%d,y=%dn,x,y); 输入:输入:-3结果:结果:x=-3,y=-1输入:输入:4结果:结果:x=4,y=1第第4章章 选择构造程序设计选择构造程序设计4.3 条件表达式条件表达式条件运算符条件运算符“?和和“:两个符号两个符号组成。成。由条件运算符构成的条件表达式的普通方式是:由条件运算符构成的条件表达式的普通方式是: ?:; 条件运算符的含条件运算符的含义是:先求表达式是:先求表达式1的的值,假,假设为真,真,那么求表达式那么求表达式2 的的值并把它作并把它作为整个表达式的整个表达式的值;假;假设表达式

8、表达式1 的的值为假,那么求表达式假,那么求表达式3 的的值并把它作并把它作为整整个表达式的个表达式的值。第第4章章 选择构造程序设计选择构造程序设计4.3 条件表达式条件表达式例例4.3 用条件表达式改写例用条件表达式改写例4.1输出两个数中的较大者。输出两个数中的较大者。程序:程序:main() int a,b,max; scanf(%d%d,&a,&b); max=(ab)?a:b; printf(max=%dn,max);第第4章章 选择构造程序设计选择构造程序设计4.4 复合语句与空语句复合语句与空语句4.4.1 复合语句复合语句复合语句是由左右花括号括起来的多条语句,一个复合语句复

9、合语句是由左右花括号括起来的多条语句,一个复合语句在语法上等同于一个语句。在语法上等同于一个语句。复合语句的普通方式如下:复合语句的普通方式如下:阐明部分阐明部分;语句部分语句部分在程序中,凡是单个语句可以出现的地方,都可以出现复合在程序中,凡是单个语句可以出现的地方,都可以出现复合语句。一个复合语句又可以出如今其他复合语句内部。语句。一个复合语句又可以出如今其他复合语句内部。第第4章章 选择构造程序设计选择构造程序设计4.4.2 空语句空语句空语句是只需一个分号的语句,其普通方式为:空语句是只需一个分号的语句,其普通方式为: ;空语句在语法上占据一个语句的位置,但不做任何操作。空语句在语法上

10、占据一个语句的位置,但不做任何操作。4.4 复合语句与空语句复合语句与空语句第第4章章 选择构造程序设计选择构造程序设计4.5 开关语句开关语句开关开关语句的普通方式如下:句的普通方式如下: switch(表达式表达式) case 常量表达式常量表达式1:语句句1; case 常量表达式常量表达式2:语句句2; case 常量表达式常量表达式n:语句句n; default:语句句n+1; 开关语句的功能是:首先计算开关语句的功能是:首先计算switch后面圆括号内表达式的后面圆括号内表达式的值,假设此值等于某个值,假设此值等于某个case后后面的常量表达式的值,那么转向面的常量表达式的值,那么

11、转向该该case后面的语句去执行;假后面的语句去执行;假设表达式的值不等于任何设表达式的值不等于任何case后面的常量表达式的值,那么转后面的常量表达式的值,那么转向向default后面的语句去执行,后面的语句去执行,假设没有假设没有default部分,那么将部分,那么将不执行不执行switch语句中的任何语语句中的任何语句,而直接转到句,而直接转到switch语句后语句后面的语句去执行。面的语句去执行。第第4章章 选择构造程序设计选择构造程序设计4.5 开关语句开关语句阐明:明:1switch后面后面圆括号内的表达式的括号内的表达式的值和和case后面的常量后面的常量表达式的表达式的值都必需

12、是整型或字符型,不允都必需是整型或字符型,不允许是浮点型。是浮点型。2同一个同一个switch语句中的一切句中的一切case后面的常量表达式的后面的常量表达式的值都必需互不一都必需互不一样。3switch语句中的句中的case和和default的出的出现次序是恣意的,次序是恣意的,也就是也就是说default也可以位于也可以位于case的前面,且的前面,且case的次序的次序也不要求按常量表达式的大小也不要求按常量表达式的大小顺序序陈列。列。4每个每个case或或default后的后的语句可以是多条句可以是多条语句,但不需句,但不需求运用求运用“和和括起来。括起来。第第4章章 选择构造程序设计

13、选择构造程序设计4.5 开关语句开关语句阐明:阐明:5由于由于switch语句中的句中的“case 常量表达式部分只起常量表达式部分只起标号的作用,而不号的作用,而不进展条件判展条件判别,所以在,所以在执行完某个行完某个case后的后的语句后,将自句后,将自动转到到该语句后面的句后面的语句去句去执行,直到行,直到遇到遇到switch语句的右花括号或句的右花括号或break语句句为止,而不再止,而不再进展条件判展条件判别。假。假设在在执行完一个行完一个case分支后,要跳出分支后,要跳出switch语句句转到下一条到下一条语句句执行,可在一个行,可在一个case终了后、了后、下一个下一个case

14、开开场前插入一个前插入一个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=2; braek;当当n=1时,时,将只执行一个语句:将只执行一个语句:x=1;第第4章章 选择构造程序设计选择构造程序设计4.5 开关语句开关语句阐明:阐明:6多个多个case可以共用一组执行语句。例如:可以共用一组执行语句

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

16、算b+c的值。当的值。当a=2时:计算时:计算b-c的值。的值。当当a=3时:计算时:计算b*c的值。当的值。当a=4时:计算时:计算b/c的值。的值。其他值时:不做任何操作。其他值时:不做任何操作。main() int a,b,c; scanf(%d%d%d,&a,&b,&c); 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

17、,c,b/c); 程序:程序:第第4章章 选择构造程序设计选择构造程序设计4.6 运用举例运用举例例例4.5 输入三个数,按由小到大的顺序输出。输入三个数,按由小到大的顺序输出。分析:分析:知:输入的三个数分别用知:输入的三个数分别用a,b,c来存来存放。放。求:由小到大的顺序输出的三个数。求:由小到大的顺序输出的三个数。处置:处置:1a,b中的小者存入中的小者存入a,大者存,大者存入入b。 2a,c中的小者存入中的小者存入a,大者存,大者存入入c。 3b,c中的小者存入中的小者存入b,大者存,大者存入入c。流程图:流程图: 开场开场终了终了输入输入a,b,c输出输出a,b,c ab交换交换a

18、,bNY ac交换交换a,cNY bc交换交换b,cNY第第4章章 选择构造程序设计选择构造程序设计4.6 运用举例运用举例例例4.5 输入三个数,按由小到大的顺序输出。输入三个数,按由小到大的顺序输出。开场开场终了终了输入输入a,b,c输出输出a,b,c ab交换交换a,bNY ac交换交换a,cNY bc) 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位的正整数,求出它是几位

19、数,逆序位的正整数,求出它是几位数,逆序打印出各位数字打印出各位数字分析:分析:知:一个不多于知:一个不多于4位的正整数用位的正整数用x来存放。来存放。求:该正整数是几位数,该正整数的各位数字分别用求:该正整数是几位数,该正整数的各位数字分别用a、b、c、d来存放千位、百位、十位、个位上的数字,由来存放千位、百位、十位、个位上的数字,由a、b、c、d的值确定该正整数是几位数。的值确定该正整数是几位数。处置:用算术运算处置:用算术运算/和和%取出组成取出组成x的各位上的数字,再从高位的各位上的数字,再从高位到低位判别各位上的数字能否不为零,据此确定该正整数到低位判别各位上的数字能否不为零,据此确

20、定该正整数是几位数。是几位数。流程图:流程图: 取取组成成x的各位上的数字的各位上的数字a、b、c、d开开场终了了输入入xNY输出出4位位数及数字数及数字NY输出出3位位数及数字数及数字NYc!=0输出出2位位数及数字数及数字d!=0输出出1位位数及数字数及数字a!=0b!=0程序:程序:#includemain() int x,a,b,c,d; scanf(%d,&x); a=x/1000; b=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%d

21、n,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 输入一个数字,输出对应的星期几的英文单词。输入一个数字,输出对应的星期几的英文单词。分析:分析:知:一个数字知:一个数字17,用,用n来存放

22、。来存放。求:对应的星期几的英文单词直接输出。求:对应的星期几的英文单词直接输出。处置:由于一个星期有处置:由于一个星期有7天,对输入的数字进展判别,有天,对输入的数字进展判别,有8种情况包括出错,用开关语句进展处置。种情况包括出错,用开关语句进展处置。开开场输出出Sun输出出Mon输出出Tues输出出Wednes输出出Thurs输出出Fri输出出Satur输出出Error终了了n其他其他=6=5=4=3=2=1=0流程图:流程图:程序:程序:#include main() int n; scanf(%d,&n); switch(n) case 0: printf(Sundayn); brea

23、k; case 1: printf(Mondayn); 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 本章考点本章考点关系运算符和关系表达式。关系运算符和关系表达式。逻辑运算符和逻辑表达式。逻辑运

24、算符和逻辑表达式。条件运算符和条件表达式。条件运算符和条件表达式。简单简单ifif语句的格式与功能。语句的格式与功能。嵌套嵌套ifif语句的格式与功能。语句的格式与功能。switchswitch语句的格式与功能。语句的格式与功能。第第4章章 选择构造程序设计选择构造程序设计4.8 典型试题详解典型试题详解1以下程序运转后的输出结果是以下程序运转后的输出结果是_。main() int p=30; printf(%dn,(p/30?p/10:p%3);正确答案:正确答案:3知识点:条件运算符和条件表达式知识点:条件运算符和条件表达式试题分析:表达式试题分析:表达式p/3的值为的值为10,大于,大于

25、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+)&i+) printf(%d,%d,%dn,i,j,k); 执行后输出结果是执行后输出结果是_。A1,1,2B2,2,1C2,2,2D2,2,3正确答案:正确答案:C知识点:逻辑运算符和逻辑表达式知识点:逻辑运算符和逻辑表达式试题分析:根据运算规那么,对逻辑表达式试题分析:根据运算规那么,对逻辑表达式(j+|k+)&i+应先计算表达应

26、先计算表达式式j+的值,其结果是表达式的值,其结果是表达式j+的值为的值为1,j的值为的值为2,再将表达式,再将表达式j+的值的值1与与k+进展进展|运算,由逻辑运算符运算,由逻辑运算符|构成的逻辑表达式在曾构成的逻辑表达式在曾经确定一个运算对象的值为经确定一个运算对象的值为1时,其逻辑表达式的值即为时,其逻辑表达式的值即为1,此时不再处,此时不再处置其另一个运算对象,因此,不再计算置其另一个运算对象,因此,不再计算k+,k的值仍为的值仍为2。逻辑表达式。逻辑表达式(j+|k+)的值为的值为1,再与,再与i+进展进展&运算,需求计算表达式运算,需求计算表达式i+的值,的值,表达式表达式i+为为

27、1,i的值为的值为2,逻辑表达式,逻辑表达式(j+|k+)&i+的值的值1,执行,执行printf(%d,%d,%dn,i,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的值,其结果

28、为的值,其结果为1,再计算,再计算1c的值,其结的值,其结果为果为0,故,故d的值为的值为0。第第4章章 选择构造程序设计选择构造程序设计4.8 典型试题详解典型试题详解4有定义语句:有定义语句:int a=1,b=2,c=3,x;,那么以下选项中各程序段执,那么以下选项中各程序段执行后,行后,x的值不等于的值不等于3的是的是_。Aif(ca)x=1;Bif(a3)x=3; else if(ba) x=2; else if (a2) x=2; else x=3; else x=1;Cif(a3) x=3;Dif (ab) x=b; if(a2) x=2; if(bc) x=c; if(a1)

29、x=1; if(ca) x=a;正确答案:正确答案:C知识点:简单知识点:简单if语句和嵌套语句和嵌套if语句的格式与功能语句的格式与功能试题分析:根据嵌套试题分析:根据嵌套if语句的功能,对各程序段执行后,语句的功能,对各程序段执行后,A的结果是的结果是x=3,B的结果是的结果是x=3,C的结果是的结果是x=2,D的结果是的结果是x=3。在这类标题中,一定要留意其逻辑关系。在这类标题中,一定要留意其逻辑关系。第第4章章 选择构造程序设计选择构造程序设计4.8 典型试题详解典型试题详解5以下程序运转后的结果是以下程序运转后的结果是_。main() int a=1,b=3,c=5; if(c=a

30、+b) printf(yesn); else printf(non); 正确答案:正确答案:yes知识点:简单知识点:简单if语句的格式与功能、运算语句的格式与功能、运算符符=和和=试题分析:试题分析:if语句后判别的条件是语句后判别的条件是c=a+b,即将,即将a+b的值的值赋给赋给c,再判别,再判别c的值能否为真,而不是判别的值能否为真,而不是判别c能否等于能否等于a+b。运算符。运算符=和和=是不同的。是不同的。第第4章章 选择构造程序设计选择构造程序设计4.8 典型试题详解典型试题详解6假设有以下程序:假设有以下程序:main() int a=4,b=3,c=5,t=0; if(ab)

31、t=a;a=b;b=t; if(ac)t=a;a=c;c=t; printf(%d%d%d,a,b,c); 执行后的输出结果为执行后的输出结果为_。正确答案:正确答案:503知识点:简单知识点:简单if语句的格式与功能语句的格式与功能运算符运算符=和和=试题分析:根据试题分析:根据ab的值的值0,程序执行,程序执行a=b;b=t;,那么,那么a=3,b=0,再根据再根据ac的值的值1,程序执行,程序执行t=a;,再执行,再执行a=c;c=t;,那么,那么a=5,c=3。留意,第一个。留意,第一个if语句在其后的语句在其后的t=a;后曾经终了,其后的后曾经终了,其后的a=b;b=t;是第一个是第

32、一个if语句语法上下面的语句。同样,第一个语句语法上下面的语句。同样,第一个if语句语句也在其后的也在其后的t=a;后终了。后终了。第第4章章 选择构造程序设计选择构造程序设计4.8 典型试题详解典型试题详解7假假设a,b,c1,c2,x,y均均为整型整型变量,正确的量,正确的switch语句是句是_。Aswitch(a+b); Bswitch(a*a+b*b) case 1:y=a+b;break; case 3: case 0:y=a-b;break; case 1:y=a+b;break; case 3:y=b-a;break;Cswitch a Dswitch(a-b) case c1

33、:y=a-b;break; default:y=a*b;break; case c2:x=a*d;break; case 3:case 4:x=a+b;break; case 10:case 11:y=a-b;break; 正确答案:正确答案:D知知识点:点:switch语句的格式句的格式试题分析:分析:switch语句格式句格式规定:定:switch后的表达式后面不能有后的表达式后面不能有“;;case后只能是整型或字符型常量;同一个后只能是整型或字符型常量;同一个switch语句中的一切句中的一切case后面的常量后面的常量表达式的表达式的值都必需互不一都必需互不一样。第第4章章 选择构造程序设计选择构造程序设计4.8 典型试题详解典型试题详解8有如下程序,有如下程序,该程序的程序的输出出结果是果是_。main() int x=1,a=0,b=0; switch(x) case 0:b+; case 1:a+; case 2:a+;b+; printf(“a=%d,b=%dn,a,b); Aa=2,b=1Ba=1,b=1Ca=1,b=0Da=2,b=2正确答案:正确答案:A知知识点:点:switch语句的功能句的功能试题分析:分析:x=1,程序从,程序从case 1:后后执行,行,case 1: 后没有后没有break语句,句,顺序序执行行case 2:后的后的语句。句。

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

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

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