第4章 选择结构(二级C语言2018版)

合集下载

C语言全国计算机二级等级考试教程第一二章(章节带习题)

C语言全国计算机二级等级考试教程第一二章(章节带习题)
10
2.2 标识符、常量和变量
2.2.3 符号常量
在C语言中,可以用一个符号名来代表一个常量,称为符号常
量。但是这个符号名必须在程序中用(#define)进行特别的“
指定"。 例2.2 计算圆面积和周长,此程序中将如何教大家使用符号常量。
#include “stdio.h” /*包含头文件*/
#define PI 3.14159 /*定义符号常量,符号常量名为PI,用PI来代表3.14159*/
main()
/*主函数,程序的入口*/
{double r,s,l;
/*声明部分,定义了3实型个变量*/
r
r=5.0;
/*给变量r赋值*/
函 s=PI*r*r;
数 体
l=2*PI*r;
/*计算圆的面积*/ /*计算圆的周长*/
s
printf(“s=%f,l=%f\n”,s,l/)*;分别圆的面积和周长*/
/*给变量b赋值*/
数 体
area=a*b;
/*将a*b的结果赋值给变量area*/
printf(“a=%f,b=%f,area=%f\n”,a,b,area/)*;分别输出矩形的两条边长和面积*/
1.2
}
3.6
a=1.200000,b=3.600000,area=4.320000
4.32
注意:
1. C程序由函数组成,一个程序必须有一个且只能有一个主函数(main),C程
a
b
1.5000002.500000 2.5000003.500000
a b
内存空间
2.在程序中,声明变量就是在计算机内存中申请了某个内存单元。对变量 进行赋值,实质上就是把数据存入该变量所代表的存储单元中。

计算机二级c语言第四章选择结构习题与答案

计算机二级c语言第四章选择结构习题与答案

第四章选择结构一、选择题1、当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是A)k%2 B)k%2==1 C)(k%2)!=0 D)!k%2==12、设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是A)k=k>=k B)-k++ C)k%int(f) D)k>=f>=m3、设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是A)(!a==1)&&(!b==0) B)(a < b)&& !c||1C)a && b D)a||(b+b)&&(c-a)4、有以下程序main(){ int a,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%d\n",a,b); }程序运行后的输出结果是A)6,1 B)2,1 C)6,0 D)2,05、有以下程序main(){int i=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d %d %d\n",i,j,k); }程序运行后的输出结果是A)1 2 3 B)2 3 4 C)2 2 3 D)2 3 36、有以下程序main(){int a=3,b=4,c=5,d=2;if(a>b)if(b>c)printf("%d",d++ +1);elseprintf("%d",++d +1);printf("%d\n",d); }程序运行后的输出结果是A) 2 B) 3 C) 43 D) 447、下列条件语句中,功能与其他语句不同的是A) if(a) printf("%d\n",x); else printf("%d\n",y);B) if(a==0) printf("%d\n",y); else printf("%d\n",x);C) if (a!=0) printf("%d\n",x); else printf("%d\n",y);D) if(a==0) printf("%d\n",x); else printf("%d\n",y);8、以下4个选项中,不能看作一条语句的是A){;} B)a=0,b=0,c=0;C) if(a>0); D)if(b==0) m=1;n=2;9、以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是A)if((a>b) &&(b>c) ) k=1; B)if((a>b) ||(b>c) ) k=1else k=0;C)if(a<=b) k=0; D) if(a>b) k=1;else if(b<=C) k=1; else if(b>c) k=1;else k=0;10、有以下程序main(){int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a < b);printf("%d,%d\n",k,m); }程序运行后的输出结果是A)0,0 B)0,1 C)1,0 D)1,111、有定义语句:int a=1,b=2,c=3,x; 则以下选项中各程序段执行后,x的值不为3的是A) if (c < a) x=1; B) if(a<3) x=3;else if (b < a) x=2; else if (a < 2) x=2;else x=3; else x=1;C) if (a < 3) x=3; D)if (a< b) x=b;if (a < 2) x=2; if (b< c) x=c;if (a< 1) x=1; if (c< a) x=a;12、有以下程序main(){ int i=1,j=1,k=2;if((j++‖k++)&&i++) printf("%d,%d,%d\n",i,j,k); }执行后输出结果是A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3 13、有以下程序main(){ int a=5,b=4,c=3,d=2;if(a>b>c) printf("%d\n",d);else if((c-1>=d)==1)printf("%d\n",d+1);else printf("%d\n",d+2) }执行后输出结果是A)2 B)3 C) 4 D)编译时有错,无结果14、已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2的值是A)6 B)0 C)2 D)115、以下程序的输出结果是main(){int a=5,b=4,c=6,d;printf("%d\n",d=a>b?(a>c?a:c):(b)); }A)5 B) 4 C)6 D)不确定16、以下程序的输出结果是main(){ int a=4,b=5,c=0,d;d=!a&&!b||!c;printf("%d\n",d); }A)1 B)0 C)非0的数 D)-117、设 a、b、 c、d、m、n均为 int型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式 (m=a>b)&&(n=c>d)运算后,n的值为A) 0 B) 1 C)2 D) 318、阅读以下程序:main(){int x;scanf("%d",&x);if(x--<5) printf("%d",x);else printf("%d",x++);}程序运行后,如果从键盘上输入5,则输出结果是A)3 B) 4 C) 5 D) 619、设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为A)不定值 B)4 C)3 D)120、若执行以下程序时从键盘上输入9,则输出结果是A) 11 B) 10 C) 9 D) 8main(){int n;scanf("%d",&n);if(n++<10) printf("%d\n",n);else printf("%d\n",n--);}21、有如下程序main(){float x=2.0,y;if(x<0.0) y=0.0;else if(x<10.0) y=1.0/x;else y=1.0;printf("%f\n",y);}该程序的输出结果是A)0.000000 B)0.250000C)0.500000 D)1.00000022、有如下程序main(){int a=2,b=-1,c=2;if(a< b)if(b< 0) c=0;else c++;printf("%d\n",c);}该程序的输出结果是A) 0 B)1 C) 2 D) 323、设 int x=1, y=1; 表达式(!x||y--)的值是A)0 B) 1 C) 2 D) -124、语句:printf("%d",(a=2)&&(b= -2));的输出结果是A)无输出 B)结果不确定 C)-1 D)125、有以下程序段int k=0,a=1,b=2,c=3; k=a< b ? b:a; k=k> c ? c:k;执行该程序段后,k的值是A)3 B)2 C)1 D)026、若整型变量a、b、c、d中的值依次为:1、4、3、2。

全国计算机等级考试二级C-第四章 选择结构 精品推荐

全国计算机等级考试二级C-第四章 选择结构  精品推荐
全国计算机等级考试二级C
第四章 选择结构
第四章 选择结构
4.1 关系运算和逻辑运算
4.2 if语句和if语句构成的选择结构 4.3 条件表达式构成的选择结构 4.4switch语句以及switch语句和break语 句构成的选择结构 4.5 语句标号和goto语句
选择结构
C语言提供了可以进行逻辑判断的若干 选择语句,由这此选择语句可构成程序中的 选择结构,通常又称为分支结构。
【例】
main() { char c='k'; int i=1,j=2,k=3; float x=3e+5,y=0.85; printf("%d,%d\n",’a’+5<c,-i-2*j>=k+1); printf("%d,%d\n",1<j<5,x-5.25<=x+y); printf("%d,%d\n",i+j+k==-2*j,k==j==i+5); }
•与运算符&&和或运算符||均为双目运算符。具有左结合性。 非运算符!为单目运算符,具有右结合性。 •运算符优先级的关系可表示如下:!(非)→&&(与)→||(或) •逻辑运算符中的“&&”和“||”低于关系运算符,“!”高于算术 运算符。
按照运算符的优先顺序可以得出:
a>b && c>d 等价于 !b==c||d<a 等价于 a+b>c&&x+y<b 等价于 (a>b)&&(c>d) ((!b)==c)||(d<a) ((a+b)>c)&&((x+y)<b)

计算机二级C语言chp4_选择结构

计算机二级C语言chp4_选择结构

4.4 if语句及嵌套if语句
练习1:从键盘输入某科考试成绩,输出优秀、及 格与不及格等级,其中90分以上为优秀,60~90分 为及格,60分以下为不及格。
练习2:从键盘输入一字符,若为英文字符则原样 输出,若为数字字符则输出其ASCII码值
4.4 if语句及嵌套if语句
4.4.3 if-else语句—双分支 1. 语句形式: if (表达式) {语句块1} else {语句块2} 2.说明: 如果表达式的值为“真”,则执行语句块1; 如果表达式的值为“假”,则执行语句块2; 如果语句块中只有一条语句,则大括号“{ }”可以省略。
4.3 条件运算符和条件表达式
注意事项:
(1)表达式2和表达式3不仅可以是数值表达式,还可以是赋值表达式 或函数表达式。 例如: a>b?(a=100): ( b=100) a>b?printf(“%d”,a):printf(“%d”,b); (2)表达式2和表达式3的类型可以不同,低级别要向高级别的转换
printf(“y=%d\n”,y);
}
4.4 if语句及嵌套if语句
思考与实践:请画出如下程序的流程图
main() {int x; scanf(“%d”,&x); if (x>=80) if (x>=90) (printf(“优秀\n”); else printf(“良好\n”); else if (x>=70) printf(“中等\n”); else if (x>=60) printf(“及格\n”); else printf(“不及格\n”); printf(“y=%d\n”,y); }
4.2 逻辑运算符和逻辑表达式
何为逻辑?
思考1:如何判断变量x的值是否在[5~10]之外?

第4章 选择结构

第4章 选择结构

第4章选择结构1、以下选项中,当x为大于1的奇数时,值为0的表达式是A) x%2==0B) x/2C) x%2!=0D) x%2==1参考答案:A【解析】算术运算符的优先级高于关系运算符的优先级,所以当x为大于1的奇数时,A选项的值为假,即0。B选项的值为不定值,但绝对不是0。C选项的值为真,即1。D选项的值为真,即1。2、当变量c的值不为2、4、6时,值为"真"的表达式是A) (c>=2 && c<=6)&&(c%2!=1)B) (c==2)||(c==4)||(c==6)C) (c>=2 && c<=6)&& !(c%2)D) (c>=2 && c<=6) || (c!=3) || (c!=5)参考答案:D【解析】逻辑或表达式中有一个值不为0,结果即为真,逻辑与表达式中只有两个运算对象均非零,结果才为真。所以只有选项D满足要求。3、以下叙述中正确的是A) 在C语言中,逻辑真值和假值分别对应1和0B) 关系运算符两边的运算对象可以是C语言中任意合法的表达式C) 对于浮点变量x和y,表达式:x==y 是非法的,会出编译错误D) 分支结构是根据算术表达式的结果来判断流程走向的参考答案:B【解析】A选项中,在C语言中,逻辑真值对应非0; C选项中,表达式:x==y 是合法的;D选项中,分支结构的流程走向是根据表达式的值,并不仅仅是算数表达式的值。

因此B选项正确。

4、下列关系表达式中,结果为"假"的是A) 3 <= 4B) (3 < 4) == 1C) (3 + 4) > 6D) (3 != 4) > 2参考答案:D【解析】B选项中,关系表达式(3<4)==1即1==1,结果为真; C选项中,(3+4)>6即7>6,结果为真;A选项中,3<=4结果为真。

二级C语言选择结构程序设计

二级C语言选择结构程序设计
if (a==b) if(b==c) printf(“a==b==c”); else printf(“a!=b”);
这么旳话,上面旳程序片段便出现了严重旳逻辑 矛盾。从语义上分析,我们希望else子句和第一 种if语句匹配。为了实现这一点,我们能够用一 对大括号将第二个if语句括起来。
if (a==b) {
关系体现式是指利用关系运算符将两个体现式连 接起来形成旳式子。
关系运算旳成果为逻辑值,因为C语言中没有逻 辑类型,所以当运算成果为真时,用整数1表达, 当运算成果为假时,用整数0表达。
关系体现式旳值也是一种逻辑值,即1或0。
假设变量已如下定义:
int a=3,b=2,c=1,d=5,f; a>b 体现式值为1 a>b==c 等价于(a>b)==c,体现式旳值为1 b+c<a 等价于(b+c)<a,关系体现式旳值为0 d=a>b 等价于d=(a>b),d旳值为1 f=a>b>c>d 等价于f=(((a>b)>c)>d),f旳值为0
4.3.3 if语句嵌套
编写程序时我们会遇到根据多种不同旳条件,分 别去执行不同操作旳情况。这时就需要使用嵌套 旳if语句来实现了。
在if语句内部和else子句内部能够包括任何类型旳 语句,经过在if语句和else子句内部嵌套其他if语 句能够形成if语句旳嵌套形式 。
两级if语句嵌套旳一般格式
} if (a<c) {
t=a; a=c; c=t; } if (b<c) {
t=b; b=c; c=t; } printf(“%d,%d,%d”,a,b,c); }
(3)在嵌套旳if语句中,确保else子句和相应旳 if语句正确匹配是非常关键。else子句不能单独使 用,每个else子句必须属于前面出现旳某个if语句。 考虑下面旳程序片段:

C语言全国计算机二级等级考试教程第四章选择结构(章节带习题)

C语言全国计算机二级等级考试教程第四章选择结构(章节带习题)

2
a a
2 1
b 1
b
1
4.2 if语句和用if语句构成的选择结构
4.2.1 if语句
C语言的if语言有两种形式: if(表达式) 语句 关键字 不满足 单分支if语句 不含else子句 关键字 if(表达式) 语句1 else 语句2 不满足 双分支if语句 含else子句
表达式 满足 语句
表达式 满足 语句1
表达式2
表达式1


表达式3


表达式4

语句1 语句2 语句3

语句n

语句4
4.2 if语句和用if语句构成的选择结构
4.2.2 嵌套的if语句
例4.5 编写程序,根据输入的学生成绩给出相应的等级,大于或等于90分以上 的等级为A,60分以下的等级为E,其余每10分为一个等级。 Enter g:72<CR> 成绩(g)大于等于90分以上(g>=90):A g=72:C 成绩(g)大于等于80分以上(g>=80):B 程序的意思为: 成绩(g)大于等于70分以上(g>=70):C Enter g:55<CR> 成绩(g)大于等于60分以上(g>=60):D g=55:E 成绩(g)不及格(g<60):E #include <stdio.h> 假 g>=90 main() {int g; 真 g>=80 假 printf("Enter g:");scanf("%d",&g) 真 printf("g=%d:",g); g>=70 假 if(g>=90) printf("A\n"); 真 假 g>=60 else if(g>=80) printf("B\n"); else if(g>=70) printf("C\n"); 真 else if(g>=60) printf("D\n"); 输出A 输出B 输出C 输出D 输出E else printf("E\n"); }

计算机二级C语言课件第4章选择结构改

计算机二级C语言课件第4章选择结构改

//只在a为假时,才判别b的值; 只在a、b都为假时,才判别 c的值
例 a=1;b=2;c=3;d=4;m=1;n=1;

(m=a>b)&&(n=c>d)
//结果m=0,n=1


见P95
例如:要判别某一年是否为闰年。P95 判断闰年的条件是符合下面二者之一:
1.能被4整除,但不能被100整除 2.能被4整除,又能被400整除。 可以用一个逻辑表达式来表示: (year%4==0&&year%100!=0) ||
a>b&&x>y //(a>b)&&(x>y)
a==b||x==y //(a==b)||(x==y)
第 四
!a||a>b
//(!a)||(a>b)

C


程 序
例 a=4;b=5;
设 计
!a
值为0
a&&b
值为1
a||b !a||b 4&&0||2
值为1 值为1
值为1

5>3&&2||8<4-!0
四 章
(a是a、b中的小者) (a是三者中最小者) (b是三者中次小者)
#include <stdio.h> int main() { float a,b,c,t;
scanf("%f,%f,%f",&a,&b,&c);
if(a>b) 如果 a>b,将a和b对换 { t=a; a=b; b=t; } a是a、b中的小者
第4章 选择结构程序设计

C语言知识点:第4章 选择结构

C语言知识点:第4章 选择结构

7. 分支结构程序设计
作用:根据条件控制程序流向。 条件的组成:各种类型的常量、变量、表达式(常用:关系/逻辑表达式)
8. 单分支 if 语句
1、如果令狐冲的 C 语言考试成绩大于 90 分,师父就奖励他一本武功秘笈 使用 if 条件结构可以解决 if 条件结构是根据条件判断之后再做处理 基本的 if 条件结构 if ( 条件 ) { //语句 ~2~
C 语言程序设计知识点
主讲教师:杨剑
第 4 章:选择结构
1. 本章目标
熟练使用多重 if 结构 熟练使用嵌套 if 结构 熟练使用 switch 结构 理解条件运算符的用法
2. 结构化程序设计的核心思想
采用顺序、选择和循环三种基本结构作为程序设计的基本单元 只有一个入口; 只有一个出口; 采用“自顶向下、逐步求精”和模块化的方法进行结构化程序设计
C 语言程序设计知识点
主讲教师:杨剑
case 3: printf ("出任峨嵋掌门"); default: printf ("被逐出师门"); } 如果需要每个 case 执行完后跳出, 在每个 case 后不要忘记写 break; int mingCi = 1; switch (mingCi){ case 1: printf ("出任武林盟主"); case 2: printf ("出任武当掌门"); case 2: printf ("出任峨嵋掌门"); default: printf ("被逐出师门"); } case 后面的常量必须各不相同
C 语言程序设计知识点
主讲教师:杨剑
D. y=sqrt(x>=0?x:-x); 答案:B

c语言程序设计教程第二版课后答案

c语言程序设计教程第二版课后答案

c语言程序设计教程第二版课后答案【篇一:c语言程序设计(第2版)-- 课后题答案】p> 参考答案第1章进入c语言程序世界二、1.i love china!printf(we are students.\n)2.6项目实训题参考答案1.编写一个c程序,输出以下信息:* * * * * * * * * * * * * * * * * * * *i am a student!* * * * * * * * * * * * * * * * * * * *main(){ printf(********************\n);printf( i am a student!\n);printf(********************\n);}2.已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。

解:main(){int a,b,c,v;a=10;b=20;c=15;v=a*b*c;printf(v=%d,v);}本程序运行结果为:v=3000第2章编制c程序的基础知识一选择题c b a b a c c二操作题,2,-8,23.000000,2.500000,-8.0000002. abc defghwhy is21+35equal 523.34214. aaa项目实训题1.定义一个符号常量m为5和一个变量n值为2,把它们的乘积输出。

#define m 5main(){ int n,c;n=2; c=m*n;printf(%d\n,c);}2.编程求下面算术表达式的值。

(1)x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7;(2)(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。

(1)main(){ int a=7;float x=2.5,y=4.7;printf(%f\n,x+a%3*(int)(x+y)%2/4);}(2)main(){ int a=2,b=3;float x=3.5,y=2.5;printf(%f\n,(float)(a+b)/2+(int)x%(int)y);}第三章顺序结构程序设计一选择题a c d c c二操作题1. x=3,a=2,b=32. z=12.7000002 13 3 2 bb cc abc n3. 1 2 1a2 1 2三.编程题编程题解:#include stdio.hmain(){float sj,gz,yfgz;printf(time,salary:);scanf(%f,%f,sj,gz);yfgz=sj*gz*0.9;printf(total salary:%f\n,yfgz);}本程序运行结果为:time,salary:4,3crtotal salary:10.8000002.编写一个程序求出任意一个输入字符的ascii码解:#include stdio.hmain(){char c;printf(input a string:);scanf(%c,c);printf(%c ascii is %d\n,c,c);}本程序运行结果为:input a string:acra ascii is 973、编写一个程序用于水果店售货员算帐:已知苹果每斤2.50元,鸭梨每斤1.80元,香蕉每斤2元,橘子每斤1.6元,要求输入各类水果的重量,打印出应付3解:main(){float p,y,x,j,ys,g,fk;printf(apple,pear,banana,orange(weight)=);scanf(%f,%f,%f,%f,p,y,x,j);ys=2.5*p+1.8*y+2*x+1.6*j;printf(fu kuan=);scanf(%f,g);fk=g-ys;printf(result:\n);printf(fukuan=%6.2fyuan\nshoukuan=%6.2fyuan\nzhaohui=%6. 2fyuan\n,g,ys,fk);}本程序运行结果为:apple,pear,banana,orange(weight)=1,2,3,4fu kuan=100result:fukuan=100.00yuanshoukuan= 18.50yuanzhaohui= 81.50yuan项目实训1.假设银行定期存款的年利率rate为2.25%,并已知存款期为n 年,存款本金为capital元,试编程计算n年后可得到本利之和deposit。

计算机二级C语言第4章 选择结构程序设计

计算机二级C语言第4章 选择结构程序设计
在使用时应注意以下两点。
①应当注意if与else的配对关系。原则是else总是与它上面最近的、未
配对的if配对。
②如果if与else的数目不一样,为了避免在if与else配对时出错,建议
读者使用“{}”来限定了内嵌if语句的范围。如下形式的嵌套语句:
if(表达式1)
{if(表达式2)语句1} /*内嵌if*/
这时形成了阶梯形的嵌套if语句,此形式的语句可以用以下语句形式
表示,看起来层次比较分明。
4.4.2 if语句的嵌套
if(表达式1)

语句1

else if(表达式2)
else if(表达式n-1)
语句2
语句n-1
else if(表达式3)
else
语句3
语句n
嵌套选择结构主要用于处理多条件的问题。设计嵌套选择结构时,应
②只在else子句中嵌套if语句,形式如下:
if(表达式1)
语句1
else
if(表达式2) 语句2
else 语句3
③不断在else子句中嵌套if语句就形成多层嵌套,形式如下:
if(表达式1) 语句3
语句1

else
if(表达式n)
if(表达式2) 语句n
语句2
else(表达式n)
else(表达式3) 语句n
case常量表达式2: 语句2

case常量表达式n: 语句n
default:
语句n+1
}
【说明】
①switch后面的表达式必须用圆括号括起来,其取值必须是整型或字
符型。switch语句后面用花括号“{}”括起来的部分称为switch语句体,

二级C语言程序设计第4章选择结构程序设计

二级C语言程序设计第4章选择结构程序设计
(5)由于switch语句中的“case 常量表达式”部分只起 标号的作用,而不进行条件判断,所以在执行完某个 case后的语句后,将自动转到该语句后面的语句去执行, 直到遇到switch语句的右花括号或break语句为止,而 不再进行条件判断。如果在执行完一个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; 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 开关语句 注意: (1)switch的表达式后不能有“;”。 (2)case和default与其后面的常量表达式间至少有一个空格。 (3)switch语句可以嵌套,break语句只跳出它所在的switch
输出a,b,c
结束
第4章 选择结构程序设计
4.6 应用举例 例4.6 输入一个不多于4位的正整数,求出它是几位数,逆序
打印出各位数字
分析:
已知:一个不多于4位的正整数(用x来存放)。 求:该正整数是几位数,该正整数的各位数字(分别用a、b、
c、d来存放千位、百位、十位、个位上的数字,由a、b、 c、d的值确定该正整数是几位数)。 处理:用算术运算/和%取出组成x的各位上的数字,再从高 位到低位判断各位上的数字是否不为零,据此确定该正整 数是几位数。

C语言第四章选择结构ppt课件

C语言第四章选择结构ppt课件

注意:if ~ else 配对原则:缺省{ }时,else总是和它上面离 它最近的未配对的if 配对。 实现if ~ else 正确配对方法:加{ }
五、条件运算符 在 if 语句中若是 if ...else形式,且语 句1和语句2均是给同一个变量赋值时,C语言提 供了条件运算符来方便地实现这种功能。
a>b?a:c>d?c:d)
例:已知a=5,b=6,c=7,d=8,n=2 ; 执行以 下语句后表达式的值为多少? n的值为多少? (a < b ) ? ( c + d ) : ( + + n ) 表达式值为15, n=2
六、 switch 语句
switch 语句是多分支的选择语句又称开关语句。
复合语句:是由一对花括号包围起来的一条或多条语句。 复合语句的形式:
{ 语句1; 语句2; 语句3; }
选择结构
If( 条件 ) { 语句1; 语句2; 语句3; }
循环结构
while( 条件 ) { 语句1; 语句2; 语句3; }
复合语句 逻辑上我们把复合语句看作是一条语句。
例1:要求用户输入一个实数,然后程序求出这个实数的绝对值并输出。 #include <stdio.h> main( ) { float x,y;
printf(“Very good!”); printf(“Good!”); printf(“Pass!”); printf(“Fail!”); printf(“data error!”);
运行结果:score为5时,输出: Very good! Good! Pass! Fail! data error!
/* 编译预处理:包含头文件 */
/* 定义实型变量 x , y */

计算机二级c语言第四章选择结构课件

计算机二级c语言第四章选择结构课件

integer a:12 integer b:12
integer a:12 integer b:9
例4.5 根据输入的学生成绩给出相应的等级 #include <stdio.h> main() { int g; /*变量定义*/ printf("Enter g:"); /*语句提示*/ scanf(“%d”,&g); /*从键盘输入一个成绩*/ printf(“g=%d:”,g); /*输出成绩*/ if(g>=90) printf(“A\n"); else if(g>=80) printf(“B\n"); else if(g>=70) printf(“C\n"); else if(g>=60) printf(“D\n"); else printf(“E\n"); }
a 真 真 假 假
b 真 假 真 假
!a 假 假 真 真
!b 假 真 假 真
a&&b 真 假 假 假
a||b 真 真 真 假
C语言中,
运算量:
运算结果:
0表示“假”, 非0表示“真”, 0表示“假”, 1表示“真”,
<
>
优先级: 结合方向:
! 算术运算符 关系运算符 &&和| | 赋值运算符

§4.6
语句标号和goto语句
main() {int i=1; a: if(i<=10) { printf(“*”); i++; goto a ; } } 在此例子中,“a:”为语句标号,语句标号由标识符和冒 号构成, 且可以和变量同名。 goto称为无条件转向语句。限制使用goto语句。

C语言程序设计第4章选择分支结构程序设计胡滨

C语言程序设计第4章选择分支结构程序设计胡滨

else
语句2
执行流程: 如果表达式值非0,执行语句1;
否则,执行语句2; 无论执行了哪一路分支之后,都执行if的下一条语句;
99
C语言程序设计-第四章
【例4.5】 一个5位数,判断它是不是回文数,即12321 是回文数,个位与万位相同,十位与千位相同。
分析:分解出每一位数(万位、千位、十位和个位),然后判断。
printf("
3. 更新商品信息\n\n");
printf("
4. 商品信息查询\n\n");
printf("
5. 商品信息统计\n\n");
printf("
6. 商品销售排行\n\n");
printf("
0. 退出系统\n\n");
printf("
请选择(0-6):");
scanf("%d",&choice);
括的几条语句构成的复合语句。
113 3
C语言程序设计-第四章
例:输入两个实数,按代数值由 小到大的次序输出这两个数.
main( ) {
float a,b; scanf(”%f,%f”,&a,&b); if(a>b) {t=a;a=b;b=t;} printf(“%5.2f,%5.2f”,a,b); }
printf("该方程有两个复根:\n");
printf("x1=%8.4f+%8.4fi\n",realpart,imagpart);
printf("x2=%8.4f-%8.4fi\n",realpart,imagpart);
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序运行实例: Enter x & y: 5 3<CR> max=x=5
if语句
• 不含else子句的if语句 • 含else子句的if语句 • 关于if语句的说明 例4.4 输入一个数,判别它是否能 被3整除。若能被3整除,打印YES; 不能被3整除,打印NO。 #include<stdio.h> main() { int n; printf ("input n: "); scanf ("%d", &n ); if ( n % 3 ==0 ) printf ("n =%d YES\ n", n ); else printf( "n =%d NO\ n", n ); }
if语句
• 不含else子句的if语句
• 含else子句的if语句 • 关于if语句的说明 嵌套的if语句 • 在if子句中嵌套具有else子句的if语句 • 在if子句中嵌套不含else子句的if语句 • 在else子句中嵌套if语句
if语句
• 不含else子句的if语句 • 含else子句的if语句 • 关于if语句的说明
C语言的逻辑值 关系运算符和关系表达式 逻辑运算符和逻辑表达式
关系表达式和逻辑表达 式的运算结果是一个逻 辑值。C语言没有专门的 “逻辑值”,用非0表示“真 ”,用0表示“假”。
因此,对于任意一个表 达式,如果值为0,就代 表“假”值;如果值是非 零,则代表“真”值。
所谓关系运算实际上是“比较运算”,即进行两个数的比较,判断比较的结果是否符合指定的条件。
C语言的 关系运算 符
所谓关系运算实际上是“比较运算”,即进行两个数的比较,判断比较的结果是否符合指定的条件。
所谓关系运算实际上是“比较运算”,即进行两个数的比较, 判断比较的结果是否符合指定的条件。
注意
由两个字符组成的运算符之间不允许有空格,如: <= 不能写成< =。 关系运算符是双目运算符,具有自左至右的结合性。 关系运算符的优先级 <、 <=、 >、 >=的优先级别相同 ==、!=的优先级相同 前四种的优先级高于后两种。 关系运算符、算术运算符和赋值运算符之间的优先级 次序是:算术运算符的优先级别最高, 关系运算符次之,赋值运算符的优先级别最低。
C语言提供了可以进行逻辑判断的若干选择语句,由这些 选择语句可构成程序中的选择结构,通常又称为分支结构, 它将根据逻辑判断的结果决定程序的不同流程。选择结构 是结构化程序设计的三种基本结构之一。

关系运算和逻辑运算 if语句和用if语句构成的选择结构 条件表达式构成的选择结构 switch语句以及用switch语句和break语句构成 的选择结构
if语句
• 不含else子句的if语句 • 含else子句的if语句 • 关于if语句的说明 例4.1 输入两个数,分别放入x和y 中,若两数不相等,则输出其中的 大数;若两数相等,则输出字符串 x==y和x的值。 #include<stdio.h> main() { int x, y; printf("Enter x&y:\n"); scanf("%d%d",&x,&y); printf("x,y: %d %d\n",x,y); if (x>y) printf("x=%d\n",x); if(y>x) printf("y=%d\n",y); if(x==y) printf("x==y %d :\n",x); }
比较运算”,即进行两个数的比较, 判断比较的结果是否符合指定的条件。
说明
当关系运算符两边值的类型不 一致时,系统将自动按类型转换 规则转换,然后进行比较。 若x和y都是浮点数,应当避免使 用x==y这样的关系表达式,因为 浮点数在内存中是有误差的,不 可能精确相等,这将导致关系表 达式x==y的值总是为0。
if语句的两种基本形式: 1) if(表达式)语句 2) if(表达式)语句1 else 语句2
if语句
• 不含else子句的if语句 • 含else子句的if语句 • 关于if语句的说明 语句形式 if (表达式)语句 例如: if(a<b){ t=a;a=b;b=t; } 其中,在一对圆括号中的表达式可以是C语言中任意合法的表达式。表达式之后只能 是一条语句,称为if子句。如果该子句中含有多个语句,则必须使用复合语句。 if语句的执行过程: 首先计算if后面一对圆括号中的表达式的值; 如果表达式的值为非零,则执行if子句,否则,则跳过if子句; 执行if语句后的下一条语句;
关系表达式 及关系表达 式的值
所谓关系运算实际上是“比较运算”,即进行两个数的比较,判断比较的结果是否符合指定的条件。
所谓关系运算实际上是“比较运算”,即进行两个数的比较, 判断比较的结果是否符合指定的条件。
例如
若变量a中的值为10,变量b中的 值为6时,表达式a>=b为“真”,其 值为1; 若变量a中的值为10,变量b中的 值为16时,表达式a>=b为“假”,其 值为0。


由逻辑运算符和运算对象组成的表达式称为逻辑表达式。 逻辑运算的对象可以是C语言中任意合法的表达式。 逻辑表达式的运算结果或者为1(“真”),或者为0(“假”)。
例如
当(x>y)为真,a和b为任意合法表达式,则 若变量a和b的值分别为10和16,则(a>b)&&(x>y)为“假”,表达式 的值为0; 若变量a和b的值分别为10和6,则(a>b)&&(x>y)为“真”, 表达式的 值为1。
规则
注意
表示x的值大于0并且小于10的范围 数学上:0<x<10 正确 C语言中: 0<x<10 错误 0<x&&x<10 正确 原因:按照C语言的运算规则,0<x<10首先运算0<x,其值为0 或1,所以,0<x<10的值总是1。
由&&或‖构成的逻辑表达式: 1)a++&&b++ 若a的值为0,表达式先求a++的值,表达式a++的值为0,系统可以确定逻辑表达 式的运算结果总是为0,因此跳过b++不再对它进行求值。这时,a的值将自增1, 由0变成1,而b的值将不变。 若a的值不为0,则系统不能仅根据a++的值确定逻辑表达式的运算结果,要对 &&右边的b++求值,使b的值改变。 2)a++‖b++ 若a的值为1,表达式先求a++的值,由于a++的值为1,系统可确定逻辑表达式的 运算结果总是为1,因此跳过b++不再对它进行求值。这时,a的值自增1,b的值 将不变。若a的值为0,则系统不能仅根据a++的值确定逻辑表达式的运算结果, 要再对‖右边的表达式b++进行求值,运算结果不仅使a的值改变,也改变了b的 值。
所谓关系运算实际上是“比较运算”,即进行两个数的比较, 判断比较的结果是否符合指定的条件。
C语言的关系运算符
关系表达式及关系表达 式的值
所谓关系运算实际上是“比较运算”,即进行两个数的比较,判断比较的结果是否符合指定的条件。
所谓关系运算实际上是“比较运算”,即进行两个数的比较, 判断比较的结果是否符合指定的条件。 C语言提供了6种关系运算符: 1) < (小于) 2) <= (小于或等于) 3) > (大于) 4) >= (大于或等于) 5) == (等于) 6) ! = (不等于)
C语言的 关系运算 符
所谓关系运算实际上是“比较运算”,即进行两个数的比较,判断比较的结果是否符合指定的条件。
所谓关系运算实际上是“比较运算”,即进行两个数的比较, 判断比较的结果是否符合指定的条件。
由关系运算符构成的表达式,称 为关系表达式。关系运算符两 边的运算对象可以是C语言中 任意合法的表达式。 a >=b、(a =3) >(b =4)、a >c ==c 都是合法的关系表达式。 关系运算的值为“逻辑值”,只有 两种可能:整数0或者整数1。
if语句
• 不含else子句的if语句 • 含else子句的if语句 • 关于if语句的说明 语句形式 if (表达式) 语句1 else 语句2 例如: if ( a ! =0 ) printf ("a ! =0\ n"); else printf ( "a ==0\ n"); 其中,“语句1”称为if子句,“语句2”称为else子句,这些子句只允许 为一条语句,若需要多条语句时,则应该使用复合语句。 注意:else不是一条独立的语句,它只是if语句的一部分,因此,else必 须与if配对使用。
if语句
• 不含else子句的if语句 • 含else子句的if语句 • 关于if语句的说明
if - else语句的执行过程: 1)计算表达式的值; 2)如果表达式的值为非0,则执行if子句,跳过else子句; 3)如果表达式的值为0,则跳过if子句,执行else子句; 4)继续执行if语句之后的下一条语句。
if语句
• 不含else子句的if语句 • 含else子句的if语句 • 关于if语句的说明 例4.2 输入三个整数,分别放在变 量a、b、c中,然后把输入的数据重 新按由小到大的顺序放在变量a、 b、c中,最后输出a、b、c中的值。 #include<stdio.h> main() { int a, b, c, t; printf ("input a,b,c: "); scanf ("%d %d %d", &a, &b, &c ); printf ("a =%d, b =%d, c =%d\ n", a, b, c ); if (a >b) { t =a; a =b; b =t; } if (a >c) { t =a; a =c; c =t; } if (b >c) { t =b; b =c; c =t; } printf ("%d,%d,%d\ n", a, b, c ); }
相关文档
最新文档