二级C语言程序设计-第4章选择结构程序设计ppt课件_第1页
二级C语言程序设计-第4章选择结构程序设计ppt课件_第2页
二级C语言程序设计-第4章选择结构程序设计ppt课件_第3页
二级C语言程序设计-第4章选择结构程序设计ppt课件_第4页
二级C语言程序设计-第4章选择结构程序设计ppt课件_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

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

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

4、逻辑表达式。例如:例如:!a+b&c a|b= =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(

5、max=%dn,max); 第第4章章 选择结构程序设计选择结构程序设计4.2 if语句语句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总是与离它最总

6、是与离它最近的未曾配对的近的未曾配对的if配对。配对。(2if与与else的个数最好相同,从内层到外层一一对应,以的个数最好相同,从内层到外层一一对应,以避免出错。避免出错。(3如果如果if与与else的个数不相同,可以用花括号来确定配对的个数不相同,可以用花括号来确定配对关系。关系。例如:例如:if (表达式表达式1 ) if(表达式表达式2 ) 语句语句1 else 语句语句2这时花括号限定了内嵌这时花括号限定了内嵌if 语句的范围,因此语句的范围,因此else与第一与第一个个if配对。配对。例例4.2 对任意对任意x,根据以下函数关系求对应,根据以下函数关系求对应y的值。的值。 -1 (

7、x0)程序:程序:main( ) int x,y; scanf(%d,&x); if(x0) y=-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的值

8、,如果为真,的值,如果为真,则求表达式则求表达式2 的值并把它作为整个表达式的值;如果表的值并把它作为整个表达式的值;如果表达式达式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章章

9、选择结构程序设计选择结构程序设计4.4 复合语句与空语句复合语句与空语句4.4.1 复合语句复合语句复合语句是由左右花括号括起来的多条语句,一个复合语句复合语句是由左右花括号括起来的多条语句,一个复合语句在语法上等同于一个语句。在语法上等同于一个语句。复合语句的一般形式如下:复合语句的一般形式如下:说明部分说明部分;语句部分语句部分在程序中,凡是单个语句能够出现的地方,都可以出现复合在程序中,凡是单个语句能够出现的地方,都可以出现复合语句。一个复合语句又可以出现在其他复合语句内部。语句。一个复合语句又可以出现在其他复合语句内部。第第4章章 选择结构程序设计选择结构程序设计4.4.2 空语句空语

10、句空语句是只有一个分号的语句,其一般形式为:空语句是只有一个分号的语句,其一般形式为: ;空语句在语法上占据一个语句的位置,但不做任何操作。空语句在语法上占据一个语句的位置,但不做任何操作。4.4 复合语句与空语句复合语句与空语句第第4章章 选择结构程序设计选择结构程序设计4.5 开关语句开关语句开关语句的一般形式如下:开关语句的一般形式如下: switch(表达式表达式) case 常量表达式常量表达式1:语句语句1; case 常量表达式常量表达式2:语句语句2; case 常量表达式常量表达式n:语句语句n; default:语句语句n+1; 开关语句的功能是:首先计算开关语句的功能是:

11、首先计算switch后面圆括号内表达式的后面圆括号内表达式的值,若此值等于某个值,若此值等于某个case后面后面的常量表达式的值,则转向该的常量表达式的值,则转向该case后面的语句去执行;若表后面的语句去执行;若表达式的值不等于任何达式的值不等于任何case后面后面的常量表达式的值,则转向的常量表达式的值,则转向default后面的语句去执行,如后面的语句去执行,如果没有果没有default部分,则将不执部分,则将不执行行switch语句中的任何语句,语句中的任何语句,而直接转到而直接转到switch语句后面的语句后面的语句去执行。语句去执行。第第4章章 选择结构程序设计选择结构程序设计4.

12、5 开关语句开关语句说明:说明:(1switch后面圆括号内的表达式的值和后面圆括号内的表达式的值和case后面的常量后面的常量表达式的值都必须是整型或字符型,不允许是浮点型。表达式的值都必须是整型或字符型,不允许是浮点型。(2同一个同一个switch语句中的所有语句中的所有case后面的常量表达式的后面的常量表达式的值都必须互不相同。值都必须互不相同。(3switch语句中的语句中的case和和default的出现次序是任意的,的出现次序是任意的,也就是说也就是说default也可以位于也可以位于case的前面,且的前面,且case的次序的次序也不要求按常量表达式的大小顺序排列。也不要求按常

13、量表达式的大小顺序排列。(4每个每个case或或default后的语句可以是多条语句,但不需后的语句可以是多条语句,但不需要使用要使用“和和”括起来。括起来。第第4章章 选择结构程序设计选择结构程序设计4.5 开关语句开关语句说明:说明:(5由于由于switch语句中的语句中的“case 常量表达式部分只起常量表达式部分只起标号的作用,而不进行条件判断,所以在执行完某个标号的作用,而不进行条件判断,所以在执行完某个case后的语句后,将自动转到该语句后面的语句去执行,后的语句后,将自动转到该语句后面的语句去执行,直到遇到直到遇到switch语句的右花括号或语句的右花括号或break语句为止,而

14、语句为止,而不再进行条件判断。如果在执行完一个不再进行条件判断。如果在执行完一个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;

15、 case 2:x=2; braek;当当n=1时,时,将只执行一个语句:将只执行一个语句:x=1;第第4章章 选择结构程序设计选择结构程序设计4.5 开关语句开关语句说明:说明:(6多个多个case可以共用一组执行语句。例如:可以共用一组执行语句。例如:switch(n) case 1: case 2: case 3: x=3;第第4章章 选择结构程序设计选择结构程序设计4.5 开关语句开关语句注意:注意:(1switch的表达式后不能有的表达式后不能有“;”。(2case和和default与其后面的常量表达式间至少有一个空格。与其后面的常量表达式间至少有一个空格。(3switch语句可以嵌

16、套,语句可以嵌套,break语句只跳出它所在的语句只跳出它所在的switch语句。语句。 (4default语句可以省略。语句可以省略。例例4.4 给变量给变量a,b,c输入整数,根据输入整数,根据a的值确定对的值确定对b、c的运算:的运算:当当a =1时:计算时:计算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) ca

17、se 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 输入三个数,按由小到大的顺序输出。输入三个数,按由小到大的顺序输出。分析:分析:知:输入的三个数分别用知:输入的三个数分别用a,b,c来存来存放)。放)。求:由小到大的顺序输出的三个数。求:由小到大

18、的顺序输出的三个数。处置:(处置:(1a,b中的小者存入中的小者存入a,大者,大者存入存入b。 (2a,c中的小者存入中的小者存入a,大者存,大者存入入c。 (3b,c中的小者存入中的小者存入b,大者存,大者存入入c。流程图:流程图: 开场开场完毕完毕输入输入a,b,c输出输出a,b,c ab交换交换a,bNY ac交换交换a,cNY bc交换交换b,cNY第第4章章 选择结构程序设计选择结构程序设计4.6 应用举例应用举例例例4.5 输入三个数,按由小到大的顺序输出。输入三个数,按由小到大的顺序输出。开场开场完毕完毕输入输入a,b,c输出输出a,b,c ab交换交换a,bNY ac交换交换a

19、,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位的正整数,求出它是几位数,逆序位的正整数,求出它是几位数,逆序打印出各位数字打印出各位数字分析:分析:知:一个不多于知:一个不多于4位的正整数用位的正整数用x来存放)。来存放)。求:该正整数是几位数,该正整数的各位数字分别用求:该正整数是几位数,该正整数的各位数字分别用a、b、c、d来存放千位、百位、十位、个位上的数

20、字,由来存放千位、百位、十位、个位上的数字,由a、b、c、d的值确定该正整数是几位数)。的值确定该正整数是几位数)。处置:用算术运算处置:用算术运算/和和%取出组成取出组成x的各位上的数字,再从高的各位上的数字,再从高位到低位判断各位上的数字是否不为零,据此确定该正整位到低位判断各位上的数字是否不为零,据此确定该正整数是几位数。数是几位数。流程图:流程图: 取组成取组成x的各位上的数字的各位上的数字a、b、c、d)开场开场完毕完毕输入输入xNY输出输出4位位数及数字数及数字NY输出输出3位位数及数字数及数字NYc!=0输出输出2位位数及数字数及数字d!=0输出输出1位位数及数字数及数字a!=0

21、b!=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%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位位数及数字数

22、及数字NY输出输出3位位数及数字数及数字NYc!=0输出输出2位位数及数字数及数字d!=0输出输出1位位数及数字数及数字a!=0b!=0第第4章章 选择结构程序设计选择结构程序设计4.6 应用举例应用举例例例4.7 输入一个数字,输出对应的星期几的英文单词。输入一个数字,输出对应的星期几的英文单词。分析:分析:知:一个数字知:一个数字17,用,用n来存放)。来存放)。求:对应的星期几的英文单词直接输出)。求:对应的星期几的英文单词直接输出)。处置:由于一个星期有处置:由于一个星期有7天,对输入的数字进行判断,有天,对输入的数字进行判断,有8种情况包括出错),用开关语句进行处理。种情况包括出错)

23、,用开关语句进行处理。开场开场输出输出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); break; case 1: printf(Mondayn); break; case 2: printf(Tuesdayn); break; case 3: printf(Wednesdayn); break;

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

25、与功能。语句的格式与功能。第第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有以下程序:有以下程序:m

26、ain() 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+应先计算应先计算表达式表达式j+的值,其结果是表达式的值,其结果是表达式j+的值为的值为1,j的值为的值为2,再将表达,再将表达式式j+的值的值1与与k+进展进展|运算,由逻辑运算符运算,由逻辑运算

27、符|构成的逻辑表达式构成的逻辑表达式在已经确定一个运算对象的值为在已经确定一个运算对象的值为1时,其逻辑表达式的值即为时,其逻辑表达式的值即为1,此时不,此时不再处理其另一个运算对象,因而,不再计算再处理其另一个运算对象,因而,不再计算k+,k的值仍为的值仍为2。逻辑。逻辑表达式表达式(j+|k+)的值为的值为1,再与,再与i+进展进展&运算,需要计算表达运算,需要计算表达式式i+的值,表达式的值,表达式i+为为1,i的值为的值为2,逻辑表达式,逻辑表达式(j+|k+)&i+的值的值1,执行,执行printf(%d,%d,%dn,i,j,k);语句,其结果为语句,其结果为2,2

28、,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 典型试题详解典型试题详

29、解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) x=1; if(ca) x=a;正确答案:正确答案:C知识点:简单知识点:简单if语句和嵌套语句和嵌套if语句的格式与功能)语句的格式与功能)试题分析:根据嵌套试题分析:根

30、据嵌套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+b) printf(yesn); else printf(non); 正确答案:正确答案:yes知识点:简单知识点:简单if语句的格式与功能、运语句的格式与功能、运算

31、符算符=和和=)试题分析:试题分析: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)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,再,

温馨提示

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

评论

0/150

提交评论