C语言第4章-分支结构.doc资料.pptVIP

  • 1
  • 0
  • 约4.68千字
  • 约 34页
  • 2020-04-19 发布于浙江
  • 举报
第三部分 C语言的结构语句 第4章 选择结构 ;问题的提出:百分制成绩的等级划分问题;4.1 if 语句;例如:设定学生成绩60分为及格分数线,用单分支if语句描述为: if ( grade = 60 ) printf ( “passed\n ” ) ; 又如:x大于y就输出x,用单分支if语句描述为: if ( x y ) printf ( “%d ”, x ) ; 写出程序段的运行结果:当整型变量x=55,60,78时, if ( x = 60 ) printf ( “%d ”, x ) ; printf ( “passed\n ” ) ; ;【例4-1】百分制成绩的等级划分问题之解法1:仅用if单分支语句实现 main() { int score; scanf(%d,score); if (score60) printf(“grade=E”); if (score=60score70) printf(“grade=D”); if (score=70 score80) printf(“grade=C”); if (score=80 score90) printf(“grade=B”); if (score=90) printf(“grade=A”); } //要求掌握:数学范围与if条件范围的转换;4.1.2 双分支if语句;例如:给学生成绩划分:成绩大于或等于60分时输出“passed”,成绩小于60分时输出“failed”。用双分支if语句描述为: if ( grade = 60 ) printf ( “passed\n ” ) ; else printf ( “failed\n ” ) ;;说明: 1.对于单分支和双分支if后面的“表达式”,一般为逻辑表达式或关系表达式,事实上表达式的类型不限于此,可以是任意的数值类型(包括整型、实型、字符型、指针型数据)。只要表达式的值为非0,就认为它为真;只要表达式的值为0,就认为它为假。 例如: if ( 6 ) printf ( “passed\n ” ) ; if ( ‘A’ ) printf ( “%d ”, ‘A’ ) ; 这些都是合法的if语句。 2. else子句不能作为语句单独使用,它必须是if语句的一部分,与if配对使用。 ;3.if语句后面的表达式之后不能增加分号(为何?),同时注意语句后面的分号不能遗漏(为何?) 。 4.在if和else后面可以只包括一个内嵌的操作语句,也可以包括多个操作语句,此时务必用“{}”将几个语句括起来成为一个复合语句。 例如:if ( x 100 ) { x-- ; s=+x ; } //如果去掉括号{}呢? else { x++ ; s=+x ; } //如果去掉括号{}??? 此时又要注意:在“{}”后面不能再添加分号,因为“{}”内是一个完整的复合语句,不需要再添加分号。;在前面的章节还提到过与if / else结构密切相关的条件运算符 ?:,它是C语言中唯一的三目运算符(即有三个操作数)。对上面的两例用条件运算符改写为: grade = 60 ?printf ( “passed\n ” ) :printf ( “failed\n ” ) ; x y ?printf ( “%d ”, x ) :printf ( “%d ”, y ) ; 由此说明适当的语句修改条件运算符可以完成if / else结构相同的功能。;4.1.3 多分支if语句;说明: 1.执行顺序:开始执行该结构后,便依次去对多个条件进行判断测试,符合某一条件,则转去执行该条件下的操作,其它部分将被跳过;如果无一条件为“真(非0)”,就执行最后一个else所指定的操作,这个else可以看作“其它情形”。 2.应当特别注意if与else的匹配关系(难点):规则是从最内层开始,else总是与它上面最近的(未曾配对的)if配对(而不是if与他最下面的else匹配)。;例 根据程序写出运行结果;3.其执行过程见流程图4.3。;注意表达式之间的顺序关系 课堂作业:将表达式位置倒过来后,即低等级先判断,高等级后判断,完成框图与程序;【源程序】 main( ) { int grade; printf ( input the grad

文档评论(0)

1亿VIP精品文档

相关文档