资源预览内容
第1页 / 共38页
第2页 / 共38页
第3页 / 共38页
第4页 / 共38页
第5页 / 共38页
第6页 / 共38页
第7页 / 共38页
第8页 / 共38页
第9页 / 共38页
第10页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第四章 分支结构的C程序设计 C C程序设计程序设计山西大同大学山西大同大学 物电学院物电学院1本章主要内容4.1 分支结构中的表达式 4.2 if语句 4.1.1 if语句的一般 形式 4.1.2 if语句的嵌套 4.3 switch语句 4.2.1 switch语句 的一般形式 4.2.2 break语句 4.4 分支结构程序设计举例2重点难点、教学手段及教学课时重点难点:lif语句lswitch语句教学手段:教学手段:多媒体多媒体CAICAI课件演示文本编辑器课件演示文本编辑器板书计算板书计算 TC TC集成化环境实验集成化环境实验教学课时:教学课时:2 2学时学时 3在其它高级语言中,分支结构中的表达式仅指关系表达式和逻辑表达式,比较简单。而语言中要复杂得多,可以是任何有效的表达式,如算术表达式、赋值表达式、字符表达式、条件表达式,还可以是任意类型的数据,如整形、实型、字符型、指针类型等。4.1 分支结构中的表达式44.1.1 语言中的逻辑值表达式的值非,则表示逻辑真;表达式的值为,则表示逻辑假。 即:只要值不是0就表示真,如1、.、a,都表示真值 。值只有是、(字符的ASCII值为)才表 示假。4.1.2 关系表达式所谓关系表达式是指:用关系运算符将两个表达式连接 起来,进行关系运算的式子。关系表达式的值:是逻辑值“真”或“假”,用1和0表 示。所以关系表达式的值还可以参与其它种类的运算,例如算 术运算、逻辑运算等。例如,假设num1=3,num2=4,num3=5, 则:num1num2的值为0;(num10) m+; if ( ab ) c=a; a=b; b=c; 表达式非0T F语句N-S结构图语句流程图NY表达式非0?104.2.2 ifelse结构 lifelse结构的形式if (表达式) 语句 1 else 语句2 l功能:计算表达式的值,如 果它的值是一个非0值(逻辑真) ,就执行内嵌语句1,之后跳过内 嵌语句2,执行后续语句;否则跳 过内嵌语句1,执行内嵌语句2,之 后执行后续语句。 11ifelse语句的算法:l例如: if (x0) m+; else m-; if ( ch= a printf (“Enter integer X and Y:“);scanf (“%d%d“, if ( x != y )if ( x y ) printf (“XYn“);else printf (“X=50) printf(“50=50) printf(“50150n“); if (c=50) printf(“50b) if(ac) if(ad) m=1; else m=2; else m=3;问题:哪一个问题:哪一个 else else 和哪一个和哪一个 if if 相匹配相匹配? ?规则:在规则:在嵌套的嵌套的if ifelseelse语句语句中,中,elseelse总是与总是与 上面的离它最近的尚未配对的上面的离它最近的尚未配对的if if 配对配对 。21举例 【例4.3】输入一个数,判断它 是奇数还是偶数,如果是奇数则 进一步判断它是否为5的倍数。 定义变量x 输入x的值x是奇数T F输出“odd”x是5的倍数 输出“even”T F 是5的倍数22程序:#include “stdio.h” main( ) int x;scanf (“%d“,if (x%2 != 0) printf(“%d is an odd n“,x) ;if (x%5=0)printf(“%d is the times of 5 n“,x) ; else printf(“%d is an even n“,x) ; 思考:如果没有,算法和输出如何?思考:如果没有,算法和输出如何?23学习if语句的难点lif else 语句的配对l正确用表达式描述条件 例如:当x大于5小 于10时令x自增if ( 55 scanf(“%f%f%f“,printf(“the equation “);if (fabs(a)1e-6) /* 不相 等的实根 */ x1=(-b+sqrt(d)/(2*a); x2=(-b-sqrt(d)/(2*a);printf(“has two real roots:n“) ;printf(“x1=%8.4f, x2=%8.4fn“,x1,x2);else /* 虚根 */ lp=-b/(2*a);ip=sqrt(-d)/(2*a);printf(“has two complex roots: n“);printf(“x1=%8.4f+%8.4fin“,lp,ip);printf(“x2=%8.4f- %8.4fin“,lp,ip);35举例(续):【例4.6】输入年份,判别该年 是否为闰年。 思路:思路:年份年份yearyear为闰年的条件为为闰年的条件为 能够被能够被4 4整除,但不能被整除,但不能被100100整除的年份;整除的年份; 能够被能够被400400整除的年份。整除的年份。只要满足任意一个就可以确定它是闰年。只要满足任意一个就可以确定它是闰年。 例如:例如: 19961996年、年、20002000年是闰年年是闰年 19981998年、年、19001900年不是闰年年不是闰年设定标志变量leapleap,只要符合其中一个条件的就 是闰年,令 leap =1leap =1;否则令 leap=0leap=0 36算法:定义变量year、leap输入年份year能被能被4 4整除且整除且不能被不能被100100整除?整除?T F 能被能被400400整除?整除?leap=1 T F leap = 1 leap = 0leap=1?T F是闰年 不是闰年year%400=0year%400=0ye ar% 4= 0 scanf(“%d“, if (year%4=0 else if (year%400=0)leap=1;else leap=0;if (leap = 1) printf(“%d is a leap year n“, year);elseprintf(“%d is not a leap year n“, year); 38
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号