C语言定义函数PPT课件
合集下载
《c语言函数》PPT课件

其它函数: 可以互相调用函数、自调用函数,不能调用main()。
精选课件ppt
4
2、使用参数 入口参数: 主调函数向被调函数传递的数据------实参、形参。
出口参数: 被调函数向主调函数传递的数据------返回值。
精选课件ppt
5
§7.2 函数的定义 问题: 1、被调函数如何使用主调函数中的数据。 2、假设被调函数有办法使用主调函数中的数据,如何保证 被调函数和主调函数中数据类型的一致。
在函数中允许有多个return语句,但每次调用只能有一个 return 语句被执行, 因此只能返回一个函数值。
精选课件ppt
15
2、函数值(回传值)的类型与被调用函数的类型说明
函数调用语句 被调函数类型 回传值类型
在定义函数时,需要指定函数的类型:
例如:
int max(x,y);
doubel a(c1,c2); 等等
1、被调函数为库函数 对库函数的调用不需要再作说明, 但必须把该函数的头
文件用include命令包含在源文件前部。
精选课件ppt
23
2、用户自定义的函数 一般应该在主调函数中对被调函数的返回值的类型做说明。 对被调函数的说明也有两种格式,
一种为传统格式,其一般格式为: 类型说明符 被调函数名();
9
调用结束:形参临时单元被释放,形参数据失效,实参数 据不变。这就是所谓的单值传递。
函数的形参和实参具有以下特点:
(1)、形参变量只有在被调用时才分配内存单元,在调用 结束时, 即刻释放所分配的内存单元。因此,形参只有在 函数内部有效。 函数调用结束返回主调函数后则不能再使 用该形参变量。
精选课件ppt
}
精选课件ppt
精选课件ppt
4
2、使用参数 入口参数: 主调函数向被调函数传递的数据------实参、形参。
出口参数: 被调函数向主调函数传递的数据------返回值。
精选课件ppt
5
§7.2 函数的定义 问题: 1、被调函数如何使用主调函数中的数据。 2、假设被调函数有办法使用主调函数中的数据,如何保证 被调函数和主调函数中数据类型的一致。
在函数中允许有多个return语句,但每次调用只能有一个 return 语句被执行, 因此只能返回一个函数值。
精选课件ppt
15
2、函数值(回传值)的类型与被调用函数的类型说明
函数调用语句 被调函数类型 回传值类型
在定义函数时,需要指定函数的类型:
例如:
int max(x,y);
doubel a(c1,c2); 等等
1、被调函数为库函数 对库函数的调用不需要再作说明, 但必须把该函数的头
文件用include命令包含在源文件前部。
精选课件ppt
23
2、用户自定义的函数 一般应该在主调函数中对被调函数的返回值的类型做说明。 对被调函数的说明也有两种格式,
一种为传统格式,其一般格式为: 类型说明符 被调函数名();
9
调用结束:形参临时单元被释放,形参数据失效,实参数 据不变。这就是所谓的单值传递。
函数的形参和实参具有以下特点:
(1)、形参变量只有在被调用时才分配内存单元,在调用 结束时, 即刻释放所分配的内存单元。因此,形参只有在 函数内部有效。 函数调用结束返回主调函数后则不能再使 用该形参变量。
精选课件ppt
}
精选课件ppt
C语言 函数

1. 函数声明的一般形式:
类型说明符 函数名([类型1 形参1,类型2 形参2,…]);
▪ 编译系统只检查函数类型、函数名、形参 类型和形参个数,不检查形参名。
➢ 因此,函数声明可省略形参名:
类型说明符 函数名([类型1,类型2…]);
➢ 以下两个函数声明语句 等价:
int min(float x,float y); int min(float,float);
}
}
5.2.4 函数原型
▪ 当被调函数位于主调函#in数clud后e 面<st时dio,.h>需要在 主调函数中对被调函数v{ oid进m行ain声() 明。
int min(float x,float y); int m; float a,b; scanf("%f,%f",&a,&b); m=min(a,b); printf("Min is %d\n",m); } int min(float x,float y) { return x<y?x:y; }
与函数的类型不一致,{前者将被自动转换为后
者的类型。
int m; float a,b;
scanf("%f,%f",&a,&b);
m=min(a,b);
printf("Min is %d\n",m);
}
3.函数调用的一般形式 函数名(实参表列);
A.说明: (1)如调用无参函数,()也不能省略。 (2)如实参表列含多个实参,参数间用逗号
第5章 函数
▪ 函数是C程序的基本组成单位。
▪ 使用函数能够实现模块化程序设计:
➢ 程序设计时往往把一个大的问题分解成若干小 的且易解决的问题
C语言函数.ppt

递归的优缺点
优点:为某些编程问题提供了最简单的解 决办法
缺点:递归算法会很快的耗尽计算机的内 存资源,难于维护和阅读
本讲内容
基本函数概念 函数的递归 局部变量和全局变量 变量的存储类别
局部变量和全局变量
局部变量
在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也 就是说只有在本函数内才能使用它们,在此函数以外是不能使用这些变 量的。这称为“局部变量”
从用户使用的角度看,函数有两种: 标准函数,即库函数。这是由系统提供的,用户不必自己定义这 些函数,可以直接使用它们。应该说明,每个系统提供的库函数 的数量和功能不同,当然有一些基本的函数是共同的 用户自己定义的函数,以解决用户的专门需要
从函数的形式看,函数分两类 无参函数。在调用无参函数时,主调函数并不将数据传送给被调 用函数,一般用来执行指定的一组操作。无参函数可以带回或不 带回函数值,但一般以不带回函数值的居多 有参函数。在调用函数时,在主调函数和被调用函数之间有参数 传递,也就是说,主调函数可以将数据传给被调用函数使用,被 调用函数中的数据也可以带回来供主调函数使用。
编写和使用一个简单的函数
带参数的函数
定义带参数的函数(形式参数)
函数定义以下面的ANSI C函数头开始
ANSI C也接受ANSI之前的形式,但将其视 为废弃不用的形式
调用带参数的函数(实际参数)
使用实际参数对形式参数赋值 实际参数可以是常量、变量或一个复杂的
表达式
调用带参数的函数(实际参数)
float fl(int a) {int b,c; … }
a,b,c有效
Char f2(int x,int y)
{int i,j; … }
x,y,i,j有效
《计算机c语言》课件

数据
关闭文件:使用fclose()函 数,关闭打开的文件
程序调试技巧和方法
单步调试:逐行执行代码, 观察变量值和程序状态
异常处理:使用try-catch 语句捕获和处理异常,避免
程序崩溃
代码审查:与他人共同审查 代码,发现潜在问题
断点调试:设置断点,逐 步执行代码,观察变量值
和程序状态
打印调试:在关键位置打 印变量值,观察程序状态
数组的定义:使用关键字 "int[]"、"char[]"等定义数
组
添加标题
数组的访问:通过数组下标 访问数组元素,下标从0开始
添加标题
数组的修改:可以通过数组 下标修改数组元素
数组的查找:可以使用查找 算法在数组中查找元素,如
二分查找、顺序查找等
字符串的处理和操作
字符串的定义:由字符组成 的序列,用双引号括起来
嵌套控制结构
概念:在一个控制 结构中嵌套另一个 控制结构
应用场景:循环嵌 套、条件嵌套等
语法:使用{}、() 等符号表示嵌套关 系
示例:for(int i=0;i<10;i++){if(i %2==0){...}}
函数和程序结构
函数的定义和调用
函数的定义:函数是完成特定任务的独立代码块,可以重复使用。 函数的调用:在程序中使用函数名和参数列表来调用函数。 函数的参数:函数可以接受参数,参数可以是变量、常量或表达式。 函数的返回值:函数可以返回一个值,返回值可以是任何类型的数据。
数据类型和运算 符
变量和常量
变量:在程序运行过程中可以改变的值
常量类型:整型、浮点型、字符型、布 尔型等
常量:在程序运行过程中不能改变的值
关闭文件:使用fclose()函 数,关闭打开的文件
程序调试技巧和方法
单步调试:逐行执行代码, 观察变量值和程序状态
异常处理:使用try-catch 语句捕获和处理异常,避免
程序崩溃
代码审查:与他人共同审查 代码,发现潜在问题
断点调试:设置断点,逐 步执行代码,观察变量值
和程序状态
打印调试:在关键位置打 印变量值,观察程序状态
数组的定义:使用关键字 "int[]"、"char[]"等定义数
组
添加标题
数组的访问:通过数组下标 访问数组元素,下标从0开始
添加标题
数组的修改:可以通过数组 下标修改数组元素
数组的查找:可以使用查找 算法在数组中查找元素,如
二分查找、顺序查找等
字符串的处理和操作
字符串的定义:由字符组成 的序列,用双引号括起来
嵌套控制结构
概念:在一个控制 结构中嵌套另一个 控制结构
应用场景:循环嵌 套、条件嵌套等
语法:使用{}、() 等符号表示嵌套关 系
示例:for(int i=0;i<10;i++){if(i %2==0){...}}
函数和程序结构
函数的定义和调用
函数的定义:函数是完成特定任务的独立代码块,可以重复使用。 函数的调用:在程序中使用函数名和参数列表来调用函数。 函数的参数:函数可以接受参数,参数可以是变量、常量或表达式。 函数的返回值:函数可以返回一个值,返回值可以是任何类型的数据。
数据类型和运算 符
变量和常量
变量:在程序运行过程中可以改变的值
常量类型:整型、浮点型、字符型、布 尔型等
常量:在程序运行过程中不能改变的值
C语言完整 ppt课件

1.4.1 宏定义
用一个标识符来表示一个字符串,称为“宏”,标识符称为“宏名”。在 程序中 用宏名替代字符串称为“宏调用”。在编译预处理时,将对程序中所有出现的 “宏 名”,都用宏定义中的字符串代换,这个过程称为“宏展开”。
1.4.1.1 不带参数的宏定义
格式为:#define 标识符 字符串
1.4.1.2 带参数的宏定义
1-4
1.3 C程序上机步骤
C源程序编好后,要经过编辑、编译、连接, 生成可执行文件后,才可运行。
运行集成开发软件
编辑源程序
编译
有 有错? 无 连接
不正确
运行
结果正确? 正确
结束
1-5
1.4 编译预处理
编译预处理是指,在C编译程序对C源程序进行编译之前,由编译预处理程 序对源程序中的预处理命令进行处理的过程。
1.2.1 C语言程序举例
1.2.2 C语言程序的结构
1.2.2.1 函数是C语言程序的基本单位。
1.2.2.2 函数的一般结构
任何函数(包括main()函数)都是由函数首部和函数体两部分组成。
1. 函数首部: 函数首部即函数第一行,由函数类型、函数名和函数参数表三部分组成。
2. 函数体: 函数体为函数首部下面的花括号{……}内的部分。 函数体一般由声明部分和执行部分构成:声明部分定义所用到的变量,声明所调用的函数等; 执行部分有若干语句组成。
2.6.1 运算符及表达式简介 2.6.1.1 运算符
C语言中的运算符具有2个特点: ⑴ 运算符的优先级 C语言中,运算符的优先级共分为15级,1级最高,15级最低。 ⑵ 运算符的结合性 C语言中各运算符的结合性分为左结合性(从左到右)和右结合性(从右到左)。 2.6.1.2 表达式 表达式是由常量、变量、函数和运算符组成的式子。 表达式求值是按运算符的优先级和结合性规定的顺序进行的。
用一个标识符来表示一个字符串,称为“宏”,标识符称为“宏名”。在 程序中 用宏名替代字符串称为“宏调用”。在编译预处理时,将对程序中所有出现的 “宏 名”,都用宏定义中的字符串代换,这个过程称为“宏展开”。
1.4.1.1 不带参数的宏定义
格式为:#define 标识符 字符串
1.4.1.2 带参数的宏定义
1-4
1.3 C程序上机步骤
C源程序编好后,要经过编辑、编译、连接, 生成可执行文件后,才可运行。
运行集成开发软件
编辑源程序
编译
有 有错? 无 连接
不正确
运行
结果正确? 正确
结束
1-5
1.4 编译预处理
编译预处理是指,在C编译程序对C源程序进行编译之前,由编译预处理程 序对源程序中的预处理命令进行处理的过程。
1.2.1 C语言程序举例
1.2.2 C语言程序的结构
1.2.2.1 函数是C语言程序的基本单位。
1.2.2.2 函数的一般结构
任何函数(包括main()函数)都是由函数首部和函数体两部分组成。
1. 函数首部: 函数首部即函数第一行,由函数类型、函数名和函数参数表三部分组成。
2. 函数体: 函数体为函数首部下面的花括号{……}内的部分。 函数体一般由声明部分和执行部分构成:声明部分定义所用到的变量,声明所调用的函数等; 执行部分有若干语句组成。
2.6.1 运算符及表达式简介 2.6.1.1 运算符
C语言中的运算符具有2个特点: ⑴ 运算符的优先级 C语言中,运算符的优先级共分为15级,1级最高,15级最低。 ⑵ 运算符的结合性 C语言中各运算符的结合性分为左结合性(从左到右)和右结合性(从右到左)。 2.6.1.2 表达式 表达式是由常量、变量、函数和运算符组成的式子。 表达式求值是按运算符的优先级和结合性规定的顺序进行的。
C语言函数篇讲解ppt课件

⑤
b函数结束
精选版课件ppt
20
main( ) { int x,y,sum;
x=5; y=6; sum=add(x,y); printf(“%d”,sum); }
add(int a ,int b) { int z;
z=a+fun(b); return z; } 运行结果:
41
精选版课件ppt
汉诺塔问题 ( Hanoi)
数调用任意多次。 4. 从用户角度看,函数分为两种:
① 标准函数:即库函数,由系统提供。
② 用户自定义函数:用户自己定义的。 5. 从函数形式看,函数分为两种:
①无参函数。
②有参函数。
精选版课件ppt
3
6.2 函数定义的一般形式
一 函数定义的一般形式
列表
类型标识符 函数名(类型1 形参1,类型2 形参2,…) { 声明部分 语句 }
二 说明:
1.所有函数在定义时都是互相独立的,即不能嵌套定义; 2.类型标识符:说明了函数返回值的类型,当返回值为
int时,可省略不写; 3.函数名:遵循标识符的命名规则;同一个函数中函数名
必须唯一;
精选版课件ppt
4
4.形参:只能是变量,每个形参前要有类型名;当定义的 函数没有形参时叫作“无参函数” ;
a 10 20 b
alter(a, b);
printf(“a=%d,b=%d\n”,a,b); x 1200 }
210 y
alter(int x, int y) { int t;
t=x; x=y; y=t; }
总结:形参的值发生 改变,并不能 影响实参。
精选版课件ppt
9
三 函数的返回值
b函数结束
精选版课件ppt
20
main( ) { int x,y,sum;
x=5; y=6; sum=add(x,y); printf(“%d”,sum); }
add(int a ,int b) { int z;
z=a+fun(b); return z; } 运行结果:
41
精选版课件ppt
汉诺塔问题 ( Hanoi)
数调用任意多次。 4. 从用户角度看,函数分为两种:
① 标准函数:即库函数,由系统提供。
② 用户自定义函数:用户自己定义的。 5. 从函数形式看,函数分为两种:
①无参函数。
②有参函数。
精选版课件ppt
3
6.2 函数定义的一般形式
一 函数定义的一般形式
列表
类型标识符 函数名(类型1 形参1,类型2 形参2,…) { 声明部分 语句 }
二 说明:
1.所有函数在定义时都是互相独立的,即不能嵌套定义; 2.类型标识符:说明了函数返回值的类型,当返回值为
int时,可省略不写; 3.函数名:遵循标识符的命名规则;同一个函数中函数名
必须唯一;
精选版课件ppt
4
4.形参:只能是变量,每个形参前要有类型名;当定义的 函数没有形参时叫作“无参函数” ;
a 10 20 b
alter(a, b);
printf(“a=%d,b=%d\n”,a,b); x 1200 }
210 y
alter(int x, int y) { int t;
t=x; x=y; y=t; }
总结:形参的值发生 改变,并不能 影响实参。
精选版课件ppt
9
三 函数的返回值
c语言讲稿(PPT32张)

由计算机硬件系统可以识别的二进制指令组成的语 言称为机器语言
第二时期——汇编语言
用人们比较习惯的符号来代替机器指令
程序设计基本概念
程序设计语言的发展历程
第三时期——高级语言
采用人们容易理解和记忆的符合和语句来代替原有 的指令,形成的这种更接近人类的语言 例如:Fortran、Cobol、Basic、Pascal、C、 C++、Java等
求两个整数的较大者?
#include <stdio.h> void main ( ) { int max(int x,int y); int a, b, c; int max(int x,int y) scanf ("%d,%d",&a,&b); { c=max (a,b); int z; printf ("max=%d",c); if (x>y) z=x; } else z=y; return (z); }
简单的C语言程序
计算机求解问题的过程
程序编写
#include<stdio.h> void main() { int a,b,sum; printf("please input two integer:"); scanf("%d %d",&a,&b); sum=a+b; printf("sum is %d \n",sum); }
注意
标准的程序必须有注释,注释不被执行
简单的C语言程序
简单C程序的结构和特点
注释
注释出现的位置 (1)程序开头——注目程序的名称、功能、思路、
《c语言函数》PPT课件

printf("*"); printf("*"); printf("*"); printf("*"); printf("*");
函数——完成某一特定特定功能的模块,是程序设计的
基本单位。
“一个程序应该是轻灵自由的,它的子过程就象串在一
根线上的珍珠。” Geoffrey James的《编程之道》
大
函数声明 函数定义 函数调用
“声明”(declaration)——作用是把函数名、函数参数的个数和参数
的类型等信息通知编译系统,以便在遇到函数调用时,编译系统能够正确 识别并检查调用是否合法。
void print(int n);
在函数声明中也可以不写形参名,而只写形参的类型。
编译系统只检查参数个数和参数类型,而不检查参数名。 函数声明——函数原型(function prototype)
z=x>y?x:y; return z; }
(#4)in不cl返ud回e 函<数st值di的o.函h>数,可以明确定义为“空类型”,类型说明符为 “voiidd”main()
{
void printstar(); //对printstar函数进行声明
明 printsvtoaird(3)print_message(); //对print_messge函数进行声
函数声明 函数定义 函数调用
“定义”(defination)——是指对函数功能的确立,
包括指定函数名、函数值类型、形参名称及其类型、函数
体等。
它是一个完整的、独立的函数单位。
v{oid prifinontrt((iii;=n1t;in<)=n;i++形能) 参省pr名略in不tf("*");
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
特点:“单向”传递
例 两数交换
…...
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,以其值作为条件表达式的值
例 两数交换
…...
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,以其值作为条件表达式的值