第五章 选择结构程序设计 (1)
第5章 选择结构程序设计
通过例5.4和5.5,会注意到:无论是块If单分支结构还是块If双分支结构,均 把程序执行过程分为满足条件的一支和不满足条件的另一支,但在应用中会遇 到类似下面的问题或更复杂的情况,例如,分段函数: x2 1 x>0 y 0 x=0 2 x<0 x 1
自变量x的取值分为三种情况,对应函数y有不同的计算表达式。此类问题 可以使用三个块IF单分支结构完成;也可以使用块IF双分支结构。若采用前 者,读者可仿照例5.4完成;若采用后者,可先把x的取值分为“等于0”和 “不等于0”两种情况,再把“不等于0”这种情况分成“大于0”和“小于0”两种 情况,代码如下: Dim x As Single, y As Single x = Val(InputBox("请输入变量的值")) If x <> 0 Then If x > 0 Then ' 不等于0的情况之一 y=x^2+1 Else ' 不等于0的情况之二 y=x^2-1 End If
2 2
Dim x As Single, y As Single ' 声明x,y为单精度变量 x = Val(InputBox("请输入变量的值")) ' 输入x的值 If x >= 0 Then ' x>=0时计算y y=x^2+1 End If If x < 0 Then ' x<0时计算y y=x^2-1 End If Print "x="; x, "y="; y 该代码段根据x取值的两种情况,分别计算出相应的y值,一个单分支If 结构完成一种情况的计算,因此结构简单,容易理解,但程序不够简练。
真
语句组1
机器人程序设计(C语言)(第2版)章节练习题及参考答案
第一章一种新的C语言学习方式1.一台能够工作的计算机包括?CPU (Central Processing Unit,中央处理单元,进行运算和控制,包括运算器和控制器等)、存储器(如RAM、ROM等)、输入设备、输出设备(包括串行/并行接口、USB等)。
其中,RAM (RandomAccess Memory,随机存储器)主要用于存储数据,ROM (RcadOnlyMemory, 只读存储器)主要用于存储程序。
2.单片机工作时需要什么?需要稳定的电源、晶振、外部存储器和编程调试接口,就像计算机工作时需要电源、晶振、硬盘或其他大容量外部存储器和操作系统一样。
微控制器是将单片机独立工作所需的电源适配器、晶振、外部存储器和串口转换电路等封装到一个模块上,这样就能直接与计算机连接并进行编程开发,不需任何其他芯片和电路。
3. AT89S52是一种什么样的单片机?是一种高性能、低功耗的8位单片机,内含8 KBISPdn-System Programmable系统在线编程)可反复擦写IOOO次的Flash只读程存器,采用ATMEL公司的高密度非易失性存储技术制造,兼容标准MCS51指令系统及其引脚结构。
在实际工程应用中,功能强大的AT89S52 已成为许多高性价比嵌入式控制应用系统的解决方案。
4. Progisp是一款什么样的软件?是一款免费下载的ISP软件,不需要专门的安装即可使用,非常方便。
使用该软件,读者可以将C语言程序生成的可执行文件下载到机器人单片机上。
使用时需要1根USBA转B 信号线。
5.简述串口调试工具的特点。
串口调试工具就是串行通信接口调试软件,集数据发送、数据接收、数据监控、数据分析等功能于一身,具有小巧精致、操作简捷、功能强大的特点,可以在串口通信监控、设备通信测试工作中有效提高效率。
6. pr i ntf ()函数称为?称为格式输出函数,其功能是按用户指定的格式,把指定的数据输出显示。
Print ()函数是C语言提供的标准输出函数,定义在C语言的标准函数库中,要使用它,必须包括定义标准函数库的头文件stdio. h o第二章最简单的C程序设计——机器人做算数1. C语言用什么整型变量?C语言用关键字imt定义整型变量。
c语言(第五章选择结构) c语言 教学课件
• !((year%4==0 && year%100!=0)||year%400==0)或者:
• (year%4!=0 )||( year%100==0 && year%400!=0)
C语言程序设计
第五章 选择结构程序设计
5.3 if语句(条件选择语句)
• if语句的三种形式 ▪ 形式一: • 格式:
语句2
=0
表达式3 非0
语句3
=0 语句4
C语言程序设计
第五章 选择结构程序设计
• 例:
if (salary>1000) else if (salary>800) else if (salary>600) else if (salary>400) else index=0;
index=0.4; index=0.3; index=0.2; index=0.1;
if (x>0) printf(“%f”,x) ;
else printf(“%f”,-x);
(3)在if 和else 后面可以只含一个内嵌的语句,也可以有 多个操作语句,此时用花括号将几个语句括起来成为一 个复合语句。如:
if (x>y)
{ t=x ; x=y ; y=t ; }
C语言程序设计
第五章 选择结构程序设计
a=4;b=5;
!a
//值为0
a&&b //值为1
a||b
//值为1
!a||b
//值为1
4&&0||2 //值为1
5>3&&2||8<4-!0 //(5>3)&&2||(8<(4-(!0))) 值为1
第五章:选择型程序设计(C语言讲义)PPT教学课件
case ‘C’:
printf(“score>60\n”);
break;
……..
例 switch(score) { case 5: printf(“Very good!”); case 4: printf(“Good!”); case 3: printf(“Pass!”); case 2: printf(“Fail!”); default : printf(“data error!”); }
main()
{ int x,y;
运行:Enter integer x,y:12,23
printf("Enter integer x,y:");
X<Y
scanf("%d,%d",&x,&y); if(x!=y)
Enter integer x,y:12,6 X>Y Enter integer x,y:12,12
if(x>y) printf("X>Y\n");
X==Y
else printf("X<Y\n");
else
printf("X==Y\n");
}
例: if (a==b) if(b==c) printf(“a==b==c”);
else printf(“a!=b”);
修改: if (a==b) { if(b==c) printf(“a==b==c”); } else printf(“a!=b”);
运行结果:a=2,b=1
PPT教学课件
谢谢观看
Thank You For Watching
非0
=0
机械工业出版社c语言各章节编程题参考答案(书中有)
else if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a))printf(“This is a
if(b>c){temp=b;b=c;c=temp;}
if(c>d){temp=c;c=d;d=temp;}/*d已经为最大的数*/
if(a>b){temp=a;a=b;b=temp;}
if(b>c){temp=b;b=c;c=temp;}/*c已经为次大的数*/
if(a>b){temp=a;a=b;b=temp;}/*a已经为最小的数*/
printf(“ *** ”);
printf(“ ***** ”);
printf(“ *** ”);
printf(“ * ”);
}
3参考答案
#include <stdio.h>
main()
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: day=31; break;
case 4:
case 6:
case 9:
}
结束
5 解答:
S0:i=0;
S1:判断gi是否大于80,若大于转S3;
S2:i=i+1;
S3:打印i,gi
S4:若i<10,返回S1否则继续执行。
6 解答:求两个整数的最大公约数、最小公倍数
5whw-c-chapter 5
C语言程序设计
第五章 选择结构程序设计
应该理解为:
还是应该理解为:
if(x>=1)
if(x>5) x++; else x--;
if(x>=1)
if(x>5) x++; else x--;
为了避免这种二义性,C语言规定,else 总是与它前 面最近的未配对的if配对。 因此对上述例子应按后一 种情况理解。如果要使else与第一个if配对,则可加括 号{ }来实现。 <
printf("%d,%d\n", x||i&&j-3, i<j&&x<y);
printf("%d,%d\n", i==5&&c&&(j=8), x+y||i+j+k); <
C语言程序设计
第五章 选择结构程序设计
说明: (见教材Pg.94) 在逻辑表达式的求解中,并不是所有的逻辑运算符都执 行,只有在必须执行下一个逻辑运算符才能求出表达式的值 时,才执行下一个运算符。 (1) 表达式1 && 表达式2
");
x--;
else
}
printf("A=B\n");
C语言程序设
第五章 选择结构程序设计
例5.3 教材Pg.100 void main() { int x,y; scanf("%d",&x) y= if(x<0) y=-1; else if (x==0) y=0; else y=1; printf("x=%d,y=%d\n",x,y); } 程序1 if(x>=0) if (x>0) y=1; else y=0; else y=-1;
C语言第五章
学习提示: (1)算法包括输入、处理和输出三个部分 ,其中处理部分为选择结构。
b=t
F
输出a,b 结束
5
信息科学与技术学院 软件工程系
选择结构算法设计
South West Jiaotong University
【例5. 1】输入a、b值,如果a>b,那么交换a和b,使得a≤b。 解决该问题的主要步骤为: 开始
17
信息科学与技术学院 软件工程系
关系运算符和关系表达式
【例】编写以下程序,查看结果。 #include <stdio.h> void main() { int a,b,c; int d,e,f; a=4,b=5,c=6; d=a>b; e=a<b<c; f=c>b>a; printf("%d %d %d \n",d,e,f); }
South West Jiaotong University
20
信息科学与技术学院 软件工程系
逻辑运算符- 优先级
• 各类运算符的优先级关系:
South West Jiaotong University
– !(非)高于 &&(与) 高于 ||(或)。 – &&(与)和||(或)低于关系运算符 – !(非)高于 算术运算符
1)任何数值(字符、整数、实数、指针)都可以表示 逻辑意义,只要数值不等于0,就表示“真”,而0 表示“假”;
2)关系与逻辑运算表达式的运算结果为“真”,表达 式的值为int型整数1,运算结果为“假”,则表达 式的值为int型整数0。
由2)可知,C语言的关系运算表达式和逻辑运算表 达式应该属于整型表达式范畴。
《C程序设计》选择结构程序设计实验报告一
《C程序设计》选择结构程序设计实验报告return(y);}运行结果:(截图)2、完成改错后的程序#include <stdio.h>#include <ctype.h>char fun(char c){ if (c>='A' && c<='Z')/**********found**********/c=c+32;if (c>='a' && c<='u')/**********found**********/c=c+5;else if(c>='v' && c<='z')c=c-21;return c;}main ( ){ char cl, c2;printf("Enter a letter(A-Z):");cl=getchar( );if (isupper(cl)){ c2=fun(cl);printf("\n\nThe letter %c change to %c\n",cl,c2);}elseprintf("\nEnter (A-Z) !\n");}运行结果:(截图)3、解题思路:年限不同,利率不同。
利用利率不同写出代码源程序://用if写#include <stdio.h>#include <math.h>int main(){double bxh;int year,m;printf("请输入存款金额和年限:");scanf("%d,%d",&m,&year);if(year==1)bxh=m*pow((1+0.03),year);elseif(year==2)bxh=m*pow((1+0.033),year);elseif(year>=3&&year<=4)bxh=m*pow((1+0.038),year);elseif(year>=5)bxh=m*pow((1+0.042),year);printf("sum=%f\n",bxh);return 0;}//用switch写#include <stdio.h>#include <math.h>int main(){double bxh=0;int year,m;printf("请输入存款金额和年限:");scanf("%d,%d",&m,&year);switch (year){case 1:bxh=m*pow((1+0.03),1);break;case 2:bxh=m*pow((1+0.033),2);break;case 3:case 4:bxh=m*pow((1+0.038),year);break; case 5:bxh=m*pow((1+0.042),5);break; default: bxh=m*pow((1+0.042),year);}printf("本息和为%f\n",bxh);return 0;}运行结果:(截图)4、解题思路:判断是否为闰年,闰年二月有29天。
C语言程序设计
>=90, A. (90-100)。 >=80, B. (80-89)。 >=70, C. (70-79)。 >=60, D. (60-69)。
>=0, E. (0-59)。 main( ) { float score; printf(“\n Enter a score(0-100):”); scanf(“%f”,&score); if (score>=90) printf(“A \n”); else if (score>=80) printf(“B \n”); else if (score>=70) printf(“C \n”); else if (score>=60) printf(“D \n”); else printf(“E \n”); }
次序任意
(4) 在switch开关分支语句结构中, default部分不是必须的, 如果没 有default部分, 则当e表达式的值与各case后的ci常量表达式的值 都不一致时, 则程序不执行该结构中的任何部分。 switch ( e ) { case c1: S1; break; case c2: S2; break; …… case cn: Sn; break; }
使用 switch-case 分支语句时,应注意以下几点: (1)switch 后面的e表达式 可以是整型常量或变量、字符型常量或变量、枚举 类型表达式。其结果值必须是整型数据或字符型数据。 switch ( e ) { case c1: S1; break; case c2: S2; break; …… case cn: Sn; break; default : Sn+1; break; } 例: main( ) { char a; switch (5+6/3) { .. .. } switch (a ) { .. .. } … }
选择结构程序设计
选择结构程序设计选择结构程序设计在程序设计中,选择结构是一种非常重要的控制结构。
通过选择结构,我们可以根据程序的运行情况来决定执行不同的代码块。
选择结构能够实现条件判断和分支选择,为程序的灵活性和可扩展性提供了极大的便利。
本文将介绍选择结构的概念、语法和几种常用的选择结构程序设计方法。
选择结构的概念选择结构是指程序根据不同的条件执行不同的代码块。
在选择结构中,通常会使用条件判断来确定程序执行的路径。
根据条件表达式的返回值(真或假),程序会决定执行真值分支(True branch)或者假值分支(False branch)。
选择结构的出现可以使程序更具有灵活性和可扩展性。
选择结构的语法在大多数编程语言中,选择结构通常有两种形式:`if`语句和`switch`语句。
if语句`if`语句是最基本的选择结构语句。
它可以根据某个条件的真假来执行不同的代码块。
`if`语句的语法如下:```markdownif (condition) {// 如果条件为真,执行这里的代码块} else {// 如果条件为假,执行这里的代码块}```其中`condition`是一个条件表达式,它能够返回一个布尔值(真或假)。
如果`condition`为真,程序会执行`if`后面的代码块;如果`condition`为假,程序会执行`else`后面的代码块。
switch语句`switch`语句是另一种常用的选择结构语句。
它可以根据一个表达式的值,选择性地执行多个代码块中的一个。
`switch`语句的语法如下:```markdownswitch (expression) {case value1:// 如果`expression`的值等于`value1`,执行这里的代码块break;case value2:// 如果`expression`的值等于`value2`,执行这里的代码块break;default:// 如果`expression`的值不等于任何一个`case`中的值,执行这里的代码块break;}````expression`是一个表达式,它的值和`case`后面的值进行比较。
第五章选择结构程序设计练习含答案v1
第五章选择结构程序设计5.1选择题【题 5.4 】能正确表示“当x 的取值在[ 1, 10]和[ 200, 210]范围内为真,否则为假”的表达式是。
CA) (x>=1)&&(x<=10)&&(x>=200)&&(x<=210)B) (x>=1)||(x<=10)||(x>=200)||(x<=210)C) (x>=1)&&(x<=10)||(x>=200)&&(x<=210)D) (x>=1)||(x<=10)&&(x>=200)||(x<=210)【题 5.5 】表示图中坐标轴上阴影部分的正确表达式是。
C////////////////Xa b cA) (x<=a)&&(x>=b)&&(x<=c)B) (x<=a)||(b<=x<=c)C) (x<=a)||(x>=b)&&(x<=c)D) (x<=a)&&(b<=x<=c)【题 5.6 】判断 char 型变量 ch 是否为大写字母的正确表达式是。
CA)‘ A’ <=ch<=‘ Z’B) (ch>= ‘ A’ )&(ch<= ‘Z’ )C) (ch>= ‘ A’ )&&(ch<= ‘ Z’ )D) ( ‘A’ <=ch)AND(‘ Z’>=ch)【题 5.10 】设有: int a=1,b=2,c=3,d=4,m=2,n=2;执行 (m=a>b)&&(n=c>d) 后 n 的值为。
BA)1B)2C)3D)4【题 5.11 】判断 char 型变量 c1 是否为小写字母的正确表达式是。
北京航空航天大学C语言c第三讲(第五章) 选择结构程序设计
if (money>=500) cost=0.8; else if (money>=300) cost=0.85; else if (money>=100) cost=0.9 else if (money>=50) cost=0.95; else cost=1.0; price=money*cost;
高 低
3,优先级 <,<=,>,>= 为同一级别,== 和!= 为同一级别. 在同一级别中,采取由左至右的结合方向.
算术运算符 -> 关系运算符 -> 赋值运算符
4,关系表达式
用关系运算符将两个表达式连接起来叫关 系表达式。 例:关系运算的优先级举例
c>a+b a>b!=c a==b<c a=b>c
if (表达式) 语句1 else 语句2
说明: (1)表达式是指关系表达式或逻辑表达式,条
件满足指的是表达式的值为真,即表达式的 值是一个非0值。 例如: if (3) printf(“O.K”); 输出O.K(永真) if („a‟) printf(“%d”,„a‟); 输出97 (永真) if (0) printf(“false”); 不执行printf语句(永假)
能被4整除,但不能被100整除; 能被400整除。
用year表示年份,判断闰年的逻辑表达式为: (year%4==0 && year%100 != 0)||(year % 400 ==0)
如果给year输入一个的值,使上面的表达式的值为1
时,则year所代表的年份就是闰年。
• 课堂练习: 写出逻辑表达式。 10 1. 判断一个点是否 10 -10 落入圆形中 2. 求落入阴影部 -10 分的任意一点 x*x+y*y<=100 (小园的半径为1.)
c程序设计 第5章 选择结构程序设计
5.2
逻辑运算符和逻辑表达式
用逻辑运算符将关系表达式或逻辑量连接 起来的式子就是逻辑表达式。 ! 高 算术运算
a b !a
关系运算
a&&b
&&
真 真 真 假
逻辑 运算 真值 表
|| 低
a||b
真 真 假 假
ቤተ መጻሕፍቲ ባይዱ
真 假 真 假
假 假 真 真
真 假 假 假
例如:
(a>b) && (x>y) 可写成 a>b && x>y
Turbo c菜单介绍(Alt+首字符)
Edit (编辑)、 Compile (编译) 、 Project (工程) 、 Options (选项) 、 Debug (调试) 、 Break/Watch (中断 /查看) 、Run菜单(运行) Run Ctrl+F9 编译、连接、运行C源程序 Program reset Ctrl+F2 重新编译、连接、运行C源程 序
第5章
选择结构程序设计
重点: 如何实现程序中选择结构? 关系运算符和关系表达式 逻辑运算符和逻辑表达式 if语句和switch语句
5.1 关系运算符和关系表达式
关系运算===比较运算。结果为真或假(0或 非零)。 一、运算符与优先级 (左结合性)
< 高 高 <= 同级 > >= == != 同级 低
else if(number>100) cost=0.075;
else if(number>50) cost=0.05;
else cost=0;
例5.1 从键盘输入两个整型数,输出最大数。
开 始 main() { int a ,b ; scanf(“%d,%d”,&a,&b); if(a>b) printf(“max=%d\n”,a); if(b>a) printf(“max=%d\n”,b); } end a<b b a,b a>b a
第五章用C语言进行结构化程序设计
顺序结构的程序设计 选择结构程序 循环控制 几种循环控制结构程序设计 break语句和continue语句
共 37页
第 1 页
5.1 顺序结构的程序设计
int main(void ) 顺序结构是结构化程序的基 { 本结构。本质上,问题求解过 int nA,nB,nC; 程都是顺序结构的。顺序结构 nA=5; 下程序将按照语句或模块出现 nB=6; 的先后依次执行,语句和语句 nC=nA+nB; 之间、模块和模块之间的先后 printf("nC is %d",nC); 决定了其执行的顺序。 return 0; 每一个模块都有一个数据入 } /*End of main()*/ 口和一个数据出口。
共 37页 第 7 页
选择结构分类
自然语言:如果… 那么… yes 二分支选择结构 P 否则… C语言: 选择(分支)语句 A 用什么语 句实现? no
yes
P
no
B
k
A
B
k=k1
多分支选择结构
A1
k=k2 A2
k=ki
...
k=kn
...
Ai
An
共 37页
第 8 页
用if语句设计选择结构程序
共 37页 第 12 页
2. 标准格式if…else…
if •格式: (表达式) •功能:表达式值非0时执行语句 (1)语句组3不属于if语句的语句组。它 { 组1,否则执行语句组2。 只有在语句组1或语句组2执行完后 语句组1 } 才可能被执行; …… 语句组1 else (2)语句组1或语句组2只有1条语句时 { if (nScore>60) 语句组2 ,对应的花括号对可以省略。 printf("及格\n"); } 语句组2 语句组3 else 条件? Yes No 语句组1 语句组2
c语言程序设计基本知识点解答(三)
C 语言程序设计基本知识点解答(三)第五章 选择结构程序设计Q116➢ 如何进行选择结构的程序设计?(选择结构) A116➢ “选择结构”也可以叫做“分支结构”。
在一个合理的“选择结构”中,总是先进行某个条件的判断,然后根据判断的结果选择执行预先设定的操作。
其流程图如下:可见,要想实现“选择结构”,需要2个条件:① 能表达条件判断的运算符:即关系运算符和逻辑运算符 ② 能实现判断并选择的控制语句:即if 和switch 语句Q117➢ 什么是关系运算符?(关系运算符)A117➢ 关系运算符也叫“比较运算符”,用于对两个数据进行比较判断的。
C 语言中一共有6种关系运算符,分别是 < 小于、<= 小于等于、> 大于、>= 大于等于、== 等于、!= 不等于。
用这6种运算符按规定把运算量连接起来构成的式子就是关系表达式。
其中,参与关系运算的数据可以是常量、变量或任何合法的表达式。
比如:a * a <= 100、NowIndex == MaxIndex 。
所有6种关系运算符的优先级都比算术运算符低,而== 等于、!= 不等于两个运算符的优先级又比其它四个关系运算符低。
所有6种关系运算符的结合性都是从左向右。
Q118➢ C 语言中如何表示一个关系表达式的值?(关系表达式)A118➢ 关系表达式进行的是关系运算,也就是“比较运算”。
比较的结果只可能有两个:“真”或“假”。
对应于实际生活中,就是“成立”还是“不成立”,“正确”还是“不正确”,“对”还是“不对”这样一些比较和判断的结果。
可见,关系运算的结果的特点是:只有两种可能的结果;任何时候答案只可能是其中的一个;两种可能是相互对立不可能同时出现的。
这样的特点正对应于数学上的“逻辑值”:“真”或“假”。
所以最终的结论就是:关系表达式的值是“逻辑值”,即“真”或“假”。
C 语言中分别以“1”和“0”来代表。
就是说,如果关系表达式的值为“真”,则得到整数1;如果值为“假”,则得到整数0。
c语言第五章 选择结构程序设计(习题册答案)
第五章选择结构程序设计基础练习(A)一、填空题1、关系表达式的运算结果是逻辑值。
C语言没有逻辑型数据,以1代表“真”,以0代表“假”。
2、逻辑运算符!是单目运算符,其结合性是由右结合性。
3、C语言提供的三种逻辑运算符是&&、|| 、!。
其中优先级最高的为!,优先级最低的为| | 。
4、逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以是任何类型的数据。
系统最终以0 和非0 来判定它们属于“真”或“假”。
5、设y为int型变量,请写出描述“y是偶数”的表达式(y%2==0)。
6、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式x<z||y<z 。
7、条件“2<x<3或x<-10”的C语言表达式是x<-10||x>2&&x<3。
8、判断char型变量ch是否为大写字母的正确表达式是(ch>=‘A’)&&(ch<=‘Z’)。
9、当a=3,b=2,c=1时,表达式f=a>b>c的值是0。
10、当a=5,b=4,c=2时,表达式a>b!=c的值是1。
11、已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||A<B&&!C>B的值是0。
12、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是1。
13、有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为1。
14、有int x,y,z;且x=3,y=-4,z=5,则以下表达式的值为1。
!(x>y)+(y!=z)||(x+y)&&(y-z)15、有int a=3,b=4,c=5,x,y;,则以下表达式的值为0。
!(x=a)&&(y=b)&&016、if (!k) a=3;语句中的!k可以改写为k= =0,使其功能不变。
第五章选择结构程序设计
1. 第五章选择结构程序设计一、1. 1.若有int y;则表示命题“y是奇数”成立的C语言表达式是(13) 。
2. 2.在C语言中,表示逻辑“真”值用(14) 表示。
3. 3.条件“2<x<3或x<-10”的C表达式是(15) 。
4. 4.以下程序运行的结果是(16) 。
5.main ( ){ int a, b, c, d, x;a=c=0;b=1;d=20;if (a) d=d-10;else if (!b)if (!c) x=15;else x=25;printf (“%d\n”, d );}6. 5.若有说明语句:“int x=1, y=0;”,则表达式x――>(y+x)?5:25>y++?‘1’:‘2’的值是(17) 。
7. 6.以下程序段的运行结果是(18) 。
int x=1, y=0;switch (x){ case 1: switch (y){ case 0: printf(“**1**”); break;case 1: printf(“**2**”); break;}case 2: printf (“**3**”);}8. 1.以下程序运行的结果是(19) 。
#include <stdio.h>main ( ){ int x=1, y=0, a=0, b=0;switch (x){ case 1: switch (y){ case 0: a++; break;case 1: b++; break;}case 2: a++; b++; break;}printf (“a=%d, b=%d\n”,a, b);}二、选择题一、 1.若有int y;则表示命题“y是奇数”成立的C语言表达式是(13) 。
9. 2.在C语言中,表示逻辑“真”值用(14) 表示。
10.3.条件“2<x<3或x<-10”的C表达式是(15) 。
11.4.以下程序运行的结果是(16) 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3)注意“==”和“=”的区别。 例: 5>2>7>8在C中是允许的, 值为0 (4)应避免对实数作相等或不等的判断 (5) 字符串之间的比较不允许使用关系运算符 数学概念: |a-b|<ε 例例 : int i=1, j=7,a; •其中,ε为很小的正数,表示 a和b之间的误差。可 int a=i+(j%4!=0); a=0,b=1; 2 则b) a= printf(“a 以根据要求进行调节, ε越小, aequal 和b之间的差就越 if(a= to b”); 例:#include <stdio.h> 例: #include <stdio.h> else printf(“a not equal to b”); 小。 #include <math.h> void main() void main() • 若该式成立,则认为 a与b之间误差不超过ε, { float d=123.45; { float d=123.45; if(123.45==d) printf("1\n"); if(fabs(123.45-d)<1e-5) printf("1\n"); 近似相等; printf("0\n"); else else printf("0\n"); • } 否则认为a和b不相等。 }
• 语句形式: if (表达式) 语句1; else 语句2 ;
语句执行流程: 表达式
假(0) 真(非0) 语句1 语句2
3.多分支if-else-if 语句
if ( score<60) printf(“不及格” ); else if ( score <70) printf(“差”); else if (score <80) printf(“中”); else if (score <90) printf(“良”); else printf(“优”); • 语句形式: if (表达式1) 语句1; else if (表达式2)语句2; …… else if (表达式n)语句n; else 语句n+1;
例: 设整型变量year表示年份,构造一个条件表达式,当 year值为闰年时该条件表达式为“真”,否则为“假”。 分析: 根据数学知识,闰年年份满足的条件为: 1.如果年份能被4整除但不能被100整除,是闰年; 2.年份能被400整除,也是闰年。 所以,判断闰年的条件表达式为下列二者之一: ① year%4==0&&year%100!=0 ② year%400==0 表达式① ②的或运算完整地表示判断闰年的条件: (year%4==0&&year%100!=0)|| year%400==0 等价表示: 或 year%4==0&&year%100!=0|| year%400==0 year%4==0&&year%100|| year%400==0
/*判断x值是否介于1和100之间*/ /*判断x值是否小于1或大于等于100*/ /*判断x和y值是否都大于等于0*/ /*判断三个数是否满足构成三角形的条件*/ /*用于判断变量ch是否为大写字母*/。 x>=1&&x<=100 x<1||x>=100 x>=0&&y>=0 x+y>z&&x+z>y&&y+z>x ch>= 'A '&&ch<=‟Z‟
表达式不成立—逻辑假:0
关系运算符
关系运算符 >
名称 大于
案例
含 义
x>y 若x大于y,结果为真(1);否则结果为假(0) 若x大于等于y,结果为真(1);否则结果为假 (0)
优 先 级 高 优 先 级 低
>= < <= == !=
大于等于 x>=y 小于
x<y 若x小于y,结果为真(1);否则结果为假(0) 若x小于等于y,结果为真(1);否则结果为假 (0)
逻辑运算结果 a&&b a || b 1 1 1 0 !a 0 0 1 1
例:a=4;b=5; 则 短路特性:逻辑表达式求解时,并非所有的逻 !a
辑运算符都被执行,只是在必须执行下一个逻 a&&b 辑运算符才能求出表达式的解时,才执行该运 a||b 算符。
!a||b 4&&0||2 5>3&&2||8<4-!0 例a=0,b=1,c=-2 „c‟&&„d‟
(三) 条件运算符与条件表达式
条件运算符是C语言中唯一的三目运算符。 一般形式为: 表达式1 ? 表达式2 : 表达式3 条件运算符的优先级低于逻辑运算符,高于赋值操作 符,自右向左结合。 功能: 求解 真(非0) 求解 表达式2 表达式 表达式1 假(0)
求解 表达式3
的值
例,求两数中的较大数: max=(x>y?x:y)
选 择 结 构
ቤተ መጻሕፍቲ ባይዱ
第五章 选择结构程序设计(1)
公共计算机教学部
张乐
要设计选择结构程序,要考虑两个方面的问题:
一是在C语言中如何来表示条件。
一般用关系表达式或逻辑表达式
二是在C语言中实现选择结构用什么语句。
用if语句或switch语句
本讲主要内容
一、条件的表示 二、 if 语句
1.单分支if 语句 2.双分支if-else语句 3.多分支if-else-if语句 4.选择结构的嵌套
多分支语句执行流程:
假(0) 表达式1 真(非0) 语句1 假(0) 假(0)
表达式2
语句2
真(非0) 表达式n
真(非0) 语句n 语句n+1
注意
(1) if是关键字只能小写。 if语句中表达式形 式很灵活,可以是常量、变量、任何类型表达式 等。只要表达式的值为非零值,条件就为真,反 之条件为假。 • int a=1;
【例】用“假设思想”法求任意两数中的较大 数。(必记算法)
假设思想:先假设某事物成立或不成立,然后判断事实是否 如此,如果事实和假设条件不符,则对假设进行修正。
二、 if 语句
1.单分支if 语句(The if statement) 2.双分支if-else语句(The if-else statement) 3.多分支if-else-if语句 4.选择结构的嵌套(Nest)
if语句的三种形式: 1.单分支if语句 只判断及格的分数
if (score>= 60) printf(" Pass\n ");
例
运算符优先级 a<=x && x<=b // (a<=x) && (x<=b) //(a>b)&&(x>y) a>b&&x>y //(a==b)||(x==y) a==b||x==y !a||a>b //(!a)||(a>b)
逻辑表达式的结果: 值为零—逻辑假:0 逻辑值
非零值—逻辑真:1
运算对象 a 非0 非0 0 0 b 非0 0 非0 0 1 0 0 0
判断及格和不及格的分数
2.双分支if语句
if (score>= 60) printf("Pass\n"); else printf("Fail\n");
3.多分支if语句
判断优 良 中 差 不及格
if ( score<60) printf(“不及格” ); else if ( score <70) printf(“差”); else if (score <80) printf(“中”); else if (score <90) printf(“良”); else printf(“优”);
1.单分支if语句
if (score>= 60) print(" Pass\n ");
• 语句形式: if (表达式) 语句;
表达式:常用关系表达式和逻辑表达式
语句:单个语句或复合语句 假(0)
表达式
真(非0)
语句执行流程:
语句
2.双分支if语句
if (score>= 60) printf("Pass\n"); else printf("Fail\n");
a && b && c 例 a=1;b=2;c=3;d=4;m=1;n=1; (m=a>b)&&(n=c>d)
注意区分C语言的关系表达式与数学上的比较运
算表达式,并将数学上的比较运算转化为合法的 C关系表达式。
例:判断变量a的值是否在12到30之间。 数学表达式:12<a<30
正确的写法应该是:(12<a)&&(a<30)
一、条件的表示
关系运算符与关系表达式 逻辑运算符和逻辑表达式 条件运算符与表达式
(一)关系运算符与关系表达式
关系运算符:比较两个量的运算符,是双目运算符 由关系运算符将操作数连起来的表达式称为关系表达式。 优先级:算术运算符>关系运算符>赋值运算符 结合性:自左向右(左结合) 关系表达式的结果: 表达式成立—逻辑真:1 逻辑值
1.单分支if语句
【例】将大写字母转换为对应小写字母 。
#include <stdio.h> void main( ) {char ch; printf("请输入一个字符:\n"); ch=getchar( ); printf("输入的原始字符为%c:\n",ch); if(ch>='A'&&ch<='Z') ch=ch+32; printf("转换后的字符为:%c\n",ch); }