C语言定义函数PPT课件
特点:“单向”传递
例 两数交换
…...
void swap(int x, int y)
{ int temp; temp = x;
2000
值传递
2002
x = y; y = temp;
2004
COPY 2006
}
2008
int main()
200A
{ int a,b;
(main)
5 9
(swap)
59 95 5
条件语句(if语句) 循环语句(while语句) 循环语句(for语句) 循环语句(do-while语句) 从循环中跳出(break和continue语句)
常用结构和问题
9
3.4 关系表达式/逻辑表达式/条件表达式
问题:已有机制的编程能力还很弱。
如:返回两参数中的较大值:
x>y
double dmax(double, double)
需要:
返回x
返回y
1. 比较数据大小(判断)
2. 根据判断结果决定做什么(分情 况处理)
选择结构
本节主要讨论如何描述逻辑判断,判断的结果如何确定,怎样 利用逻辑判断控制计算过程
10
1.关系运算符/关系表达式
关系运算符确定数据间是否存在某种关系。 关系表达式的结果可用于控制计算过程。
关系运算符共 6 个
18
一元运算
二元运算
算术运算符
高
> >= < <=
关系运算符
== =!
?:
条件运算符
低
=
赋值运算符
19
3.复杂条件的描述:逻辑表达式
复杂关系,如: 3≤x≤5 时 z 取值 2,否则取值 1。 用关系表达式和条件表达式描述: z = (x >= 3 ? (x <= 5 ? 2 : 1) : 1); 描述比较复杂,不太直观。 用逻辑运算符可直接描述 多个条件同时成立/多个条件之一成立 某个条件不成立等复杂条件。
scanf("%d,%d", &a, &b);
…...
swap(a, b);
printf("\n%d,%d\n", a, b);
return 0; }
运行结果:5, 9
变量a
变量b
变量x 变量y 变量temp
8
主要内容:程序设计的基本知识
语句、复合语句 变量—概念、定义、使用 定义函数(初步,第五章深入) 关系表达式、逻辑表达式、条件表达式 语句与控制语句
return x > 0 ? 1 :(x == 0 ? 0 : -1);
}
17
条件表达式的优先级和结合顺序 每个 : 与前面最近的没有匹配的 ? 匹配
x > 0 ? 1 : x == 0 ? 0 : -1 条件运算符的优先级高于赋值,低于关系运算符;
z = x != 0 ? y/x : 1; 当x值非0时,变量z将被赋予由y/x的值,否则z赋值1
赋值运算符
低
c>a+b a>b==c a==b<c a=b>c
相当于 a=1,b=4,c=5
c>(a+b)
0
(a>b)==c
0
a==(b<c)
1
a=(b>c)
a=0
13
关系运算注意(1)
例 若a = 0; b = 0.5; x = 0.3; 则 a <= x <= b的值为0
例 5 > 2 > 7 > 8在C中是允许的, 值为 0
编程就是让电脑执行程序 中提供的指令!
1
第一部分
整体概述
THE FIRST PART OF THE OVERALL OVERVIEW, PLEASE SUMMARIZE THE CONTENT
2
高级语言程序设计
主讲教师:贾彩燕 计算机与信息技术学院 计算机科学与技术系 cyjia@
常用结构和问题
5
回顾
如何定义变量? 如何对变量进行初始化? 函数定义的一般形式是什么? 函数声明语句及其作用是什么? C程序的结构是什么?
6
课堂练习
从键盘输入一华氏温度F,调用自定义函数FtoC(…)将华氏温 度转化为摄氏温度,并在主程序中输出。公式如下:
c 5(F32) 9
7
难点:函数的参数传递方式之值传递
> >= <= < == != 大于/大于等于/小于等于/小于等于/不等于
关系运算符可用于各种算术类型
如果被比较对象的类型不同,按算术运算规则转换后 再做判断。
关系的成立与否(真/假):3.2 <= 2.9 y != x + 1
11
关系表达式
C语言中关系运算的结果为 int, 成立/不成立时值分别是1(真)/0(假)。
(3.24 <= 2.98) 的值是 int 类型的 0; (5 != 3 + 1) 的值是 int 类型的 1。
关系运算符的优先级低于二元算术运算符 关系运算符的优先级高于赋值运算符 关系运算符的优先级分为两级:==、!= 低,其他运算符高 关系算符自左向右结合,未规定对象计算顺序
12
算术运算符 高 关系运算符
例 int i = 1, j = 7,a; a = i + (j % 4 != 0); 则a= 2
例 ‘a’>0 结果为 1 ‘A’>100 结果为 0
14
关系运算注意(2)
例 应避免对实数作相等或不等的判断 如 1.0/3.0*3.0 == 1.0 结果为 0 可改写为:fabs(1.0 / 3.0*3.0 - 1.0) < 1e-6 例 注意区分“=”与“==”
16
函数 dmax的定义:求两个数中较大者
double dmax(double x, double ห้องสมุดไป่ตู้)
{ return x > y ? x : y;
} 例:z = dmax(2, 3)
符号函数 sign对应的C函数: double sign(double x) {
sign(x)= 1 x>0 0 x=0 -1 x<0
3
第三章 变量、函数和控制结构
4
主要内容:程序设计的基本知识
语句、复合语句 变量—概念、定义、使用 定义函数(初步,第五章深入) 关系表达式、逻辑表达式、条件表达式 语句与控制语句
条件语句(if语句) 循环语句(while语句) 循环语句(for语句) 循环语句(do-while语句) 从循环中跳出(break和continue语句)
int a = 0,b = 1,c; c = (a == b);
15
条件运算符“?:” (C中唯一的三目运算符)
条件表达式的语法形式: 表达式1 ? 表达式2 : 表达式3
实现简单的选 择结构
非0
=0
表达式1
取表达式2值
取表达式3值
语义(计算方式特殊): 先算表达式1(条件); 条件为真算表达式2,以其值作为条件表达式的值 条件为假算表达式3,以其值作为条件表达式的值