增育葛2的学 include tdefine ePs void main doul 明户自定义函数原型说明 do ca p doub n doubl am-cer while( fab n=n+1 信息科学技术学院C语言程序设计教学组
电子科学与技术系 贾伯琪 bqjia@ustc.edu.cn #include #include #define EPS 1e-7 void main(){ double udf_sin(double x); //用户自定义函数原型说明 double a; scanf("%lf",&a); printf("%f %f\n",udf_sin(a), sin(a)); } double udf_sin( double x ){ //用户自定义函数 double sum, term, n=1; sum=term=x; while( fabs(term) > EPS ){ n=n+1; term=term*( 信息科学技术学院 -x*x)/((2*n-C2语言程序设计教学组 )*(2*n-1)); 培 育 英 才 钻 研 科 学
《C语言程序设计》(2004.5) 第一章概迷 ★内容提要: C语言概貌 绪论 程序设计思想和程序结构>c语言的特点 程序设计方法与要点 库函数应用 算法描述应用 自定义函数 基本输入输出 >c程序的组成 程序方式 G编程方式 电子科学与技术系贾伯琪bqjia@ustc.edu.cn
电子科学与技术系 贾伯琪 bqjia@ustc.edu.cn 第一章 概述 《C语言程序设计》(2004.5) ★内容提要: ➢ 绪论 ➢ C语言的特点 ➢ 库函数应用 ➢ 自定义函数 ➢ C程序的组成 ➢ C编程方式 C语言概貌 程序设计思想和程序结构 程序设计方法与要点 算法描述应用 基本输入输出 程序方式
《C语言程序设计》(2004.5) 第一章概述(1.1绪论) C语言是目前世界上最流行和实用的一种计算机高级程序 设计语言。最初的C语言只是为描述和实现UNIX操作系统 提供一种工作语言而设计的,后随其宿主系统UNIX的普及 而被引起注意,又因其本身的高效、灵活、功能丰富、表 达力强、移植性好等特出优点受到广泛的重视并普及应用。 编写系统软件:操作系统、编译系统、系统实用程序 编写应用软件:数据处理、科学工程数值计算等领域。 高校开设程序设计课程的必修首选语言 电子科学与技术系贾伯琪bqjia@ustc.edu.cn
电子科学与技术系 贾伯琪 bqjia@ustc.edu.cn 《C语言程序设计》(2004.5) 第一章 概述 C语言是目前世界上最流行和实用的一种计算机高级程序 设计语言。最初的C语言只是为描述和实现 UNIX 操作系统 提供一种工作语言而设计的,后随其宿主系统UNIX的普及 而被引起注意,又因其本身的高效、灵活、功能丰富、表 达力强、移植性好等特出优点受到广泛的重视并普及应用。 ❑ 编写应用软件:数据处理、科学工程数值计算等领域。 ❑ 编写系统软件:操作系统、编译系统、系统实用程序。 ❑ 高校开设程序设计课程的必修首选语言。 (1.1 绪论 )
《C语言程序设计》(2004.5) 第一章概述(1.2C语言的特点) 口C语言在软件、硬件系统与用户中所处的位置 软件 高级语言:具有丰富的数据类型 FORTRAN语言 和运算符,便于描述数据结构, pascal语言 既具有强有力的表达力,可加快 开发速度,提高工作效率,面向 BASIC语言 用户、便于记忆、书写和阅读等。 C语言吸取了高级语言和低级语言优点,兼而有之。 汇编语言 低级语言:具有面向硬件系统便于直接 硬件机器语言 访问硬件的特点功能,但没有数据类型, 不易阅读、记忆、推广 系统 用户 电子科学与技术系贾伯琪bqjia@ustc.edu.cn
电子科学与技术系 贾伯琪 bqjia@ustc.edu.cn 第一章 概述 ❑ C语言在软件、硬件系统与用户中所处的位置 汇编语言 机器语言 低级语言:具有面向硬件系统便于直接 访问硬件的特点功能,但没有数据类型, 不易阅读、记忆、推广。 C 语言 吸取了高级语言和低级语言优点,兼而有之。 …… FORTRAN语言 pascal语言 BASIC 语言 高级语言:具有丰富的数据类型 和运算符,便于描述数据结构, 既具有强有力的表达力,可加快 开发速度,提高工作效率,面向 用户、便于记忆、书写和阅读等。 系统 软件 硬件 用户 《C语言程序设计》(2004.5) (1.2 C语言的特点)
《C语言程序设计》(2004.5) 第一章概迷(1.2C语言的特点) (2)C语言是一种结构化程序设计语言便于模块化软件设 计。结构化程序设计思想和目的是使程序具有结构合理, 正确性高易验证。而且规定总结了一套程序设计准则。可 以简单归纳为以下几点: 口基于自顶向下,逐步求精的设计方法; 口程序书写遵循一定的格式,使结构清晰; 口程序分成模块,每个模块具有独力的功能。模块之间的 数据联系要简单,每个模块只能有一个入口和一个出口 口程序中只包含三种最基本的结构:顺序、分支、循环。 电子科学与技术系贾伯琪bqjia@ustc.edu.cn
电子科学与技术系 贾伯琪 bqjia@ustc.edu.cn 第一章 概述 (1.2 C语言的特点) (2)C语言是一种结构化程序设计语言便于模块化软件设 计。结构化程序设计思想和目的是使程序具有结构合理, 正确性高易验证。而且规定总结了一套程序设计准则。可 以简单归纳为以下几点: ❑ 基于自顶向下,逐步求精的设计方法; ❑ 程序书写遵循一定的格式,使结构清晰; ❑ 程序中只包含三种最基本的结构:顺序、分支、循环。 ❑ 程序分成模块,每个模块具有独力的功能。模块之间的 数据联系要简单,每个模块只能有一个入口和一个出口; 《C语言程序设计》(2004.5)
《C语言程序设计》(2004.5) 第一章概迷(1.2C语言的特点) 三种最基本的结构:顺序、分支、循环。 语句组 N 条 件 语句1 语句2 N 条 顺序结构 Y 语句组 分支结构 循环结构 电子科学与技术系贾伯琪bqjia@ustc.edu.cn
电子科学与技术系 贾伯琪 bqjia@ustc.edu.cn 第一章 概述 (1.2 C语言的特点) 三种最基本的结构:顺序、分支、循环。 语句组 顺序结构 语句1 Y N 条 件 语句2 分支结构 《C语言程序设计》(2004.5) N 条 件 语句组 循环结构 Y
《C语言程序设计》(2004.5) 第一章概迷(1.2C语言的特点) 程序三数据结构十算法 数据结构: 口逻辑结构:计算机外部的数据及其数据之间的关系。 口存储结构:外部数据及其数据之间的关系在计算机 内部的实现。(一般通过类型来表达) 口运算:定义在逻辑结构之上的操作,通过算法描述。 电子科学与技术系贾伯琪bqjia@ustc.edu.cn
电子科学与技术系 贾伯琪 bqjia@ustc.edu.cn 《C语言程序设计》(2004.5) 第一章 概述 (1.2 C语言的特点) 程序 = 数据结构 + 算法 数据结构: ❑ 逻辑结构:计算机外部的数据及其数据之间的关系。 ❑ 存储结构:外部数据及其数据之间的关系在计算机 内部的实现。(一般通过类型来表达) ❑ 运算:定义在逻辑结构之上的操作,通过算法描述
《C语言程序设计》(2004.5) 第一章概迷(1.2C语言的特点) 算法:是对问题求解过程的一种描述,是为解决一个或 类问题给出的一个确定的有限长的操作序列。 口有穷性:对于任意一组合法的输入值,在执行有穷步骤之后 定能结束; 口确定性:对于每种情况下所应执行的操作,在算法中都有确 切的规定(不存在二义性); 口可行性:算法中的所有操作都必须足够基本,都可以通过已 经实现的基本操作运算有限次实现之; 口有输入:算法加工的对象; 口有输出:它是一组与“输入”有确定关系的量值,是算法进 行 信息加工后得到的结果。 电子科学与技术系贾伯琪bqjia@ustc.edu.cn
电子科学与技术系 贾伯琪 bqjia@ustc.edu.cn 《C语言程序设计》(2004.5) 第一章 概述 (1.2 C语言的特点) 算法:是对问题求解过程的一种描述,是为解决一个或一 类问题给出的一个确定的有限长的操作序列。 ❑ 有输入:算法加工的对象; ❑ 有穷性:对于任意一组合法的输入值,在执行有穷步骤之后 一定能结束; ❑ 确定性:对于每种情况下所应执行的操作,在算法中都有确 切的规定(不存在二义性); ❑ 可行性:算法中的所有操作都必须足够基本,都可以通过已 经实现的基本操作运算有限次实现之; ❑ 有输出:它是一组与“输入”有确定关系的量值,是算法进 行 信息加工后得到的结果
《C语言程序设计》(2004.5) 第一章概述(1.2C语言的特点) 用函数作为程序模块以实现程序的模块化结构 # lude 令以“#’打头的预处理命令用以包含相 #include 关文件,及定义符号常数。 #define pi 3. 14159 maino[ C程序中的函数、变量、符号常数必须 先定义后使用,否则应作预先声明。 double area double x) 令以main(标识的主函数,它是C程序运行 double r a 开始时由系统调用的一个特殊函数,不管 scanf(%1f",&r) 其所在位置是程序中的前或后,执行总是 r=pow(r,2.0); 从它开始。C程序可由一个或多个函数构成 ,但必须存在一个主函数,执行语句中可 a-area 以调用其它函数,但它不能被其它函数调 printf(area=%f\n", a) 用,也不能自己调用自己。(其它函数指 :C编译系统提供的库函数;用户自定义函 return(o) 数。) 求解园面积的编程示例 电子科学与技术系贾伯琪bqjia@ustc.edu.cn
电子科学与技术系 贾伯琪 bqjia@ustc.edu.cn 《C语言程序设计》(2004.5) 第一章 概述 (1.2 C语言的特点) 用函数作为程序模块以实现程序的模块化结构 #include #include #define PI 3.14159 main(){ double area(double x); double r,a; scanf("%lf",&r); r=pow(r,2.0); a=area(r); printf("area=%f\n",a); return(0); } ❖ 以‘#’打头的预处理命令用以包含相 关文件,及定义符号常数。 ❖ 以main()标识的主函数,它是C程序运行 开始时由系统调用的一个特殊函数,不管 其所在位置是程序中的前或后,执行总是 从它开始。C程序可由一个或多个函数构成 ,但必须存在一个主函数,执行语句中可 以调用其它函数,但它不能被其它函数调 用,也不能自己调用自己。(其它函数指 :C编译系统提供的库函数;用户自定义函 数。) ❖ C程序中的函数、变量、符号常数必须 先定义后使用,否则应作预先声明。 求解园面积的编程示例
《C语言程序设计》(2004.5) 第一章概迷(1.2C语言的特点) maino i 函数的基本形式: double area(double x) double r 函数类型函数名(形式参数说明表){ 数据说明部分; 规定有序 scanf(%1f, &r) 执行语句部分; r=pow(r, 2.0) area (r) 说明: printf(area=%f\n", a 如果没有参数,则可以省略形参表列和形参 return(O) 说明,但括号不能省略; 如果函数值为int整形类型,则可以省略函 double area(double x)i 数类型说明,否则必须显式说明; double y 如果没有数据需要说明,则还可以省略数据 说明部分,甚至执行语句部分,即函数体可以 y=PI*X 为空。 return (y 函数名(){ 求解园面积的编程示例 电子科学与技术系贾伯琪bqjia@ustc.edu.cn
电子科学与技术系 贾伯琪 bqjia@ustc.edu.cn 《C语言程序设计》(2004.5) 第一章 概述 (1.2 C语言的特点) main(){ double area(double x); double r,a; scanf("%lf",&r); r=pow(r,2.0); a=area(r); printf("area=%f\n",a); return(0); } double area(double x){ double y; y=PI*x; return(y); } ❖ 函数的基本形式: 函数类型 函数名(形式参数说明表){ 数据说明部分; 执行语句部分; } 说明: ▪ 如果没有参数,则可以省略形参表列和形参 说明,但括号不能省略; ▪ 如果函数值为int 整形类型,则可以省略函 数类型说明,否则必须显式说明; ▪ 如果没有数据需要说明,则还可以省略数据 说明部分,甚至执行语句部分,即函数体可以 为空。 函数名( ){ } 规定有序 求解园面积的编程示例