C语言第4章-分支结构.
- 格式:ppt
- 大小:628.00 KB
- 文档页数:35


第四章 分支结构程序设计
课 题 关系运算符
教 学
目 的 1、掌握实现选择结构的两个运算符
2、运算符表达式的计算
教 材
分 析 教学重点 关系运算符及运算
教学难点 表达式的计算与应用
课时安排 1+1习题课 教学方法 讲授与演示法相结合讨论法 教具 计算机、投影仪
教
学
内
容
及
过
程
设
计 一 新课引入
上一次课已经介绍了程序基本结构之一,但在大多数情况下都要用到选择结构
而选择的前提是按一定的逻辑条件进行的。
二、新授
一、关系运算符与关系表达式
1、关系运算符:< <= > >= = = ! =
优先级:< <= > >= 高于 = = !=
关系运算符低于算术运算符,高于赋值运算符
2、关系表达式:用关系运算符将两个表达式(可以是算术表达式或
关系表达式,逻辑表达式,赋值表达式,字符表达式)连接起来的式子。
关系表达式求值:关系成立,值为1;关系不成立,值为0
C语言中没有专用的逻辑值,1代表真,0代表假
例:a>b,a+b>b+c,(a=3)>(b=5),’a’<‘b’,(a>b)>(b
关系表达式的值是一个逻辑值,即“真”或“假”。
例:关系表达式”a>b”的值为“真”,表达式的值为1。
一、逻辑运算符与关系表达式
1、逻辑运算符及其优先次序
(1)&& (逻辑与) 相当于其他语言中的AND
(2)|| (逻辑或) 相当于其他语言中的OR
(3)! (逻辑非) 相当于其他语言中的NOT
例:a&&b 若a,b为真,则a&&b为真。
a||b 若a,b之一为真,则a||b为真。
!a 若a为真,则!a为假。
优先次序:自左向右运算
!(非)->&&()->||()
逻辑运算符中的“&&”和“||”低于关系运算符,“!”高于算 术运算符
C++语言程序设计习题集(顺序结构和简单分支结构)
1 顺序结构程序设计习题
1、 【变量自增运算问题】
题目描述:键盘输入整型变量A的值,输出A增加10、再减少30、扩大20倍、缩小5倍后的值。(要求采用算术复合赋值运算)
输入格式:5 输出格式:-60
2、 【交换变量问题】
题目描述:键盘输入两个整型变量A、B的值,利用中间变量C交换A、B的值并输出。
输入格式:1 2 输出格式:2 1
思考:交换其它数据类型变量的值问题。
3、 【三位数数位和问题】
题目描述:从键盘输入一个三位的自然数M,分离出它的百位、十位与个位上的数字并求和输出。
输入格式:523 输出格式:10
4、 【大写转小写问题】
题目描述:键盘输入一个大写字母,要求改用小写字母输出。
输入格式:A 输出格式:a
思考:小写转大写问题。
5、 【温度计数转换问题】
题目描述:输入一摄氏温度,编程输出华氏温度。已知:华氏温度转换为摄氏温度的计算公式如下: C=(F-32)5/9;其中,F表示华氏温度,C表示摄氏温度。
输入格式:0 输出格式:32
6、 【长度计数转换问题】
题目描述:编程实现输入千米数,输出显示其英里数。已知:1英里=1.60934千米(用符号常量)。
输入格式:1 输出格式:0.6213
简单的分支结构程序设计
1、 【数字比较问题】
题目描述:从键盘上输入两个整型数,比较其大小,并输出显示其中较小的数。
输入格式:20 -30 输出格式:-30
思考:输出其中较大的数。
2、 【绝对值问题】
题目描述:从键盘输入一个浮点型数x,要求不使用系统函数,输出其绝对值。
输入格式:-10.1 输出格式:10.1
15 15
C++语言程序设计习题集(顺序结构和简单分支结构)
第四章选择结构
选择:
1.以下关于运算符优先级的描述中,正确的是()。
A)!(逻辑非)>算术运算>关系运算>&&(逻辑与)>||(逻辑或)>赋值运算
B)&&(逻辑与)>算术运算>关系运算>赋值运算
C)关系运算>算术运算>&&(逻辑与)>||(逻辑或)>赋值运算
D)赋值运算>算术运算>关系运算>&&(逻辑与)>||(逻辑或)
2.逻辑运算符的运算对象的数据类型()。
A)只能是0或1 B)只能是.T.或.F.
C)只能是整型或字符型 D)任何类型的数据
3.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是()。
A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)
B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100)
C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100)
D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)
4.判断字符型变量ch为数字的表达式是( ) 。
A) 0<=ch<=9 B)(ch>=0)&&(ch<=9) C)'0'<=ch<='9' D)(ch>='0')&&(ch<='9')
5.若有以下函数关系
x<0 → y=2x
x>0 → y=x
x=0 → y=x+1
下面程序段能正确表示以上关系的是()。
A) y=2x; B) y=2x;
if(x!=0) if(x<=0)
if(x>0)y=x; if(x==0)y=x+1;
else y=x+1; else y=x;
C) if(x>=0) D)y=x+1;
if(x>0)y=x; if(x<=0)
elsey=x+1; if(x<0)y=2x;
else y=2x; else y=x;
第4章 循环结构
【练习 4-1】在例 4-1 程序中,如果对 item 赋初值 0,运行结果就是什么?为什么?如果将精度改为 10-3,运行结果有变化不?为什么?
解答:
如果对 item 赋初值 0,则程序运行结果就是 pi=0,因为 item 为 0 时不满足 while 循环的执行条件,即不执行循环,故 pi 值为 0。如果将精度改为
10-3,运行结果会有变化,因为精度改变意味着 while 循环的条件改变,精度变大使得 while 循环次数减少,必然影响到π的值。
【练习 4-2】 运行例 4-2 程序时,如果将最后一个输入数据改为-2,运行结果有变化不?如果第一个输入数据就是 -1,运行结果就是什么?为什么?
解答:
如果将最后一个输入数据改为-2,运行结果没有变化,因为最后一个负数就是一结束标志,不进行统计,故任意一个负数都可以。如果第一个输入数据就是-1,运行结果就是:Grade averageis 0,因为第一个输入就就是-1,则 while 循环条件不成立,不执行循环体。
【练习 4-3】序列求与(1-1/4+1/7-1/10+1/13-1/16+…):输入一个正实数 eps,计算序列1-1/4+1/7-1/10+1/13-1/16+…的值,精确到最后一项的绝对值小于eps(保留6位小数)。试编写相应程序。
解答:
#include
#include
int main(void)
{
int denominator, flag;
double item, s,eps;
printf(“Input eps:”);
scanf(“%lf”,&eps);
flag = 1;
denominator = 1 ;
item = 1、0;
s = 0;
while(fabs (item) >= eps) {
item = flag * 1、0 / denominator;