第4章 选择结构(二级C语言2018版)
C语言全国计算机二级等级考试教程第一二章(章节带习题)
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语言第四章选择结构习题与答案
第四章选择结构一、选择题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-第四章 选择结构 精品推荐
第四章 选择结构
第四章 选择结构
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_选择结构
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章选择结构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语言选择结构程序设计
这么旳话,上面旳程序片段便出现了严重旳逻辑 矛盾。从语义上分析,我们希望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语言全国计算机二级等级考试教程第四章选择结构(章节带习题)
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章选择结构改
//只在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章 选择结构
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语言程序设计(第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章 选择结构程序设计
①应当注意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章选择结构程序设计
例如:
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课件
注意: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语言第四章选择结构课件
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章选择分支结构程序设计胡滨
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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 ); }