计算机二级C语言程序设计第4讲.ppt
《计算机二级C语言程序设计第4讲.ppt》由会员分享,可在线阅读,更多相关《计算机二级C语言程序设计第4讲.ppt(47页珍藏版)》请在三一办公上搜索。
1、第4讲 选择结构程序设计,要设计选择结构程序,要考虑两个方面的问题:一是在C语言中如何来表示条件,二是在C语言中实现选择结构用什么语句。在C语言中表示条件,一般用关系表达式或逻辑表达式,实现选择结构用if语句或switch语句。4.1 if语句4.2 switch语句4.3 选择结构程序举例,4.1 if 语句,if 语句是用来判断所给定的条件是否满足,根据判定的结果(真或假)决定执行给定的某种操作之一。,一、if 语句的形式1单边选择结构,格式:if(表达式)语句,执行过程:,判断条件,表达式取值非0,即条件成立,执行语句后继续向下执行,表达式取值为0,即条件不成立,跳过语句向下执行,P,语
2、句,(入口),(出口),Y,N,一、if 语句的形式1单边选择结构,main()int x,y=0;scanf(%d,程序运行后,当从键盘上输入3时,程序运行的结果是多少?,程序运行后,当从键盘上输入-5时,程序运行的结果是多少?,x=3,y=7,x=-5,y=0,例如,求:y=,2x+1 x=00 x0,二、if 语句的形式2双边选择结构,格式:if(表达式)语句1 else 语句2,执行过程:,判断条件,表达式取值非0,即条件成立,执行语句1后继续向下执行,表达式取值为0,即条件不成立,跳过语句1执行语句2后向下执行,P,(入口),(出口),Y,N,二、if 语句的形式2双边选择结构,ma
3、in()int x,y;scanf(%d,程序运行后,当从键盘上输入3时,程序运行的结果是多少?,程序运行后,当从键盘上输入-5时,程序运行的结果是多少?,x=3,y=7,x=-5,y=26,例如,求:y=,2x+1 x=0 x2+1 x0,这是一个双边结构,三、多层选择结构,格式:if(表达式1)语句1 else if(表达式2)语句2 else if(表达式3)语句3:else if(表达式n)语句n else 语句n+1,执行过程:依次计算各表达式的值,若表达式之值为非0,即条件成立执行其后的语句后,跳过其它语句,向下执行;若表达式之值为0,即条件不成立,则继续判断其它条件;当所有的条件
4、都不成立时,执行语句n+1后继续向下执行。,三、多层选择结构,这是一个单边结构,单边选择结构举例按升序输出两个实数,main()float a,b,t;scanf(%f,%f,程序运行后,如果从键盘上输入6,2.8,则程序运行的顺序为:,程序运行后,如果从键盘上输入2.8,6,则程序运行的顺序为:,2.80,6.00End,2.80,6.00End,两个变量交换数据的实现方法,变量a,3,变量b,5,注意:变量a,b交换内容不能简单地用a=b;b=a;来实现,正确的方法是借助一个中间变量(如t)来实现,先执行t=a;将a的值保存在中间变量t中,再执行a=b;将b的值赋给变量a,最后执行b=t;
5、将t中保存的变量a的原来值赋给变量b,main()float a,b,t;scanf(%f,%f,复合语句及其花括号的使用,main()float a,b,t;scanf(%f,%f,有花括号时程序的运行顺序(假设从键盘上输入2.8,6),2.80,6.00End,复合语句及其花括号的使用,main()float a,b,t;scanf(%f,%f,去掉花括号时程序的运行顺序(假设从键盘上输入2.8,6),6.00,随机值End,复合语句及其花括号的使用,将前2个分号改为逗号时程序的运行情况(假设从键盘上输入2.8,6),main()float a,b,t;scanf(%f,%f,2.80,6
6、.00End,复合语句及其花括号的使用,将前2个分号改为逗号时程序的运行情况(假设从键盘上输入2.8,6),main()float a,b,t;scanf(%d,%d,2.80,6.00End,结论:将条件成立时要进行的所有操作变成一个语句,if 语句的嵌套,一般形式:if(条件1)if(条件2)语句1 else 语句2 else if(条件3)语句3 else 语句4,在if 语句中又包含一个或多个if 语句,称为if 语句的嵌套,if 与 else 的配对关系:从最内层开始,else 总是与它上面最近的且尚未配对的if 配对。,求分段函数的值,1(x0)0(x=0)-1(x0),程序分析:
7、要对x 的值判断之后计算y 的值,要用到选择结构。考虑到要进行两次判断,因而使用单边或双边选择结构都不能很好地解决这一问题,应使用多层选择结构或选择结构的嵌套。,y=,根据所输入的x之值,求:,这是一个嵌套结构,用if 嵌套结构求分段函数的值,main()int x,y;scanf(%d,/*x=0不成立,即x0*/,/*x=0成立且x0不成立,即x=0*/,从键盘上输入2时程序的运行顺序,x=2,y=1,用多层选择结构求分段函数的值,main()int x,y;scanf(%d,/*x0和x=0都不成立,即x0*/,/*x0不成立再判断x=0是否成立*/,从键盘上输入2时程序的运行顺序,x=
8、2,y=1,条件运算符,条件运算符(三目):?:(表达式1)?(表达式2):表达式3)条件运算符的结合性:自右向左条件运算符的执行:先计算表达式1之值,若条件表达式的值非0(即条件成立),计算表达式2之值并将该值作为条件表达式之值;若表达式1的值为0(即条件不成立),计算表达式3之值并将表达式3之值作为整个条件表达式的值。,条件运算符的优先等级:高于赋值和逗号运算符,比其它运算符都低,条件运算符使用举例,有如下程序:main()int a=3,b=4,c;c=ab?a:b;printf(max=%dn,c);,语句:c=ab?a:b;执行以后,变量c中存放的是变量a,b中的最大值,输入一个字母
9、并将其转换为小写(小写不变),main()char ch;scanf(%c,printf(%cn,ch),要求掌握的两点内容:掌握条件运算符的使用。掌握判断大写字母或小写字母的方法。,1、在嵌套使用if语句时,C语言规定else总是A)和之前与其具有相同缩进位置的if配对B)和之前与其最近的if配对C)和之前与其最近的且不带else的if配对D)和之前的第一个if配对2、设变量x和y均已正确定义并赋值。以下if语句中,编译产生错误的是A)if(x+);B)if(xy,2006-9,2007-4,3、有以下计算公式 sqrt(x)(x=0)y=sqrt(-x)(x=0)y=sqrt(x);B)y
10、=sqrt(x)elsey=sqrt(-x);if(x=0)y=sqrt(x);D)y=sqrt(x=0?x:-x);if(xmain()inta,b,c,t1,t2;scanf(%d%d%d,2007-9,2007-9,a:b c:t1,5、若变量已经正确定义,有以下程序段inta=3,b=5,c=7;if(ab)a=b;c=a;if(c!=a)c=b;printf(%d,%d,%dn,a,b,c);其输出的结果是A)程序段有语法错B)3,5,3C)3,5,5D)3,5,76、有以下程序段inta,b,c;a=10;b=50;c=30;if(ab)a=b,b=c;c=a;printf(a=%
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 语言程序设计
链接地址:https://www.31ppt.com/p-6606177.html