C语言程序设计C语言概述.ppt
《C语言程序设计C语言概述.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计C语言概述.ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一章 概述 内容提要:内容提要:C语言概貌语言概貌程序设计思想和程序结构程序设计思想和程序结构程序设计方法与要点程序设计方法与要点算法描述应用算法描述应用基本输入输出基本输入输出程序方式程序方式 绪论绪论 C C语言的特点语言的特点 库函数应用库函数应用 自定义函数自定义函数 C C程序的组成程序的组成 C C编程方式编程方式C C语言是目前世界上最流行和实用的一种计算机高级语言是目前世界上最流行和实用的一种计算机高级程序设计语言。最初的程序设计语言。最初的C C语言只是为描述和实现语言只是为描述和实现 UNIX UNIX 操作系统提供一种工作语言而设计的,后随其宿主系操作系统提供一种工作语
2、言而设计的,后随其宿主系统统UNIXUNIX的普及而被引起注意,又因其本身的高效、灵的普及而被引起注意,又因其本身的高效、灵活、功能丰富、表达力强、移植性好等特出优点受到活、功能丰富、表达力强、移植性好等特出优点受到广泛的重视并普及应用。广泛的重视并普及应用。 编写应用软件:编写应用软件:数据处理数据处理, ,科学工程数值计算等领域。科学工程数值计算等领域。 编写系统软件编写系统软件:操作系统操作系统, ,编译系统编译系统, ,系统实用程序。系统实用程序。 高校开设程序设计课程的必修首选语言。高校开设程序设计课程的必修首选语言。1.1绪论绪论(1) C语言在软件、硬件系统与用户中所处的位置语言
3、在软件、硬件系统与用户中所处的位置汇编语言汇编语言机器语言机器语言低级语言:具有面向硬件系统便于低级语言:具有面向硬件系统便于直接访问硬件的特点功能,但没有直接访问硬件的特点功能,但没有数据类型,不易阅读、记忆、推广。数据类型,不易阅读、记忆、推广。低级语言:具有面向硬件系统便于低级语言:具有面向硬件系统便于直接访问硬件的特点功能,但没有直接访问硬件的特点功能,但没有数据类型,不易阅读、记忆、推广。数据类型,不易阅读、记忆、推广。FORTRANFORTRAN语言语言pascalpascal语言语言BASIC BASIC 语言语言高级语言:具有丰富的数据类型高级语言:具有丰富的数据类型和运算符,
4、便于描述数据结构,和运算符,便于描述数据结构,既具有强有力的表达力,可加快既具有强有力的表达力,可加快开发开发速度,提高工作效率,面向速度,提高工作效率,面向用户、便于记忆、书写和阅读等。用户、便于记忆、书写和阅读等。高级语言:具有丰富的数据类型高级语言:具有丰富的数据类型和运算符,便于描述数据结构,和运算符,便于描述数据结构,既具有强有力的表达力,可加快既具有强有力的表达力,可加快开发开发速度,提高工作效率,面向速度,提高工作效率,面向用户、便于记忆、书写和阅读等。用户、便于记忆、书写和阅读等。系统系统软软件件硬硬件件用户用户1.2 C语言的特点语言的特点C C 语言语言 吸取了高低级语言优
5、点,兼而有之。吸取了高低级语言优点,兼而有之。(2)C C语言是一种结构化程序设计语言便于模块化软语言是一种结构化程序设计语言便于模块化软件设计。结构化程序设计思想和目的是使程序具有结件设计。结构化程序设计思想和目的是使程序具有结构合理,正确性高易验证。而且规定总结了一套程序构合理,正确性高易验证。而且规定总结了一套程序设计准则。可以简单归纳为以下几点:设计准则。可以简单归纳为以下几点: 基于自顶向下,逐步求精的设计方法;基于自顶向下,逐步求精的设计方法; 程序书写遵循一定的格式,使结构清晰;程序书写遵循一定的格式,使结构清晰; 程序中只包含三种基本的结构:顺序、分支、循环。程序中只包含三种基
6、本的结构:顺序、分支、循环。 程序由模块构成,每个模块具有独力的功能。模块程序由模块构成,每个模块具有独力的功能。模块之间的数据联系要简单,每个模块只能有一个入口和之间的数据联系要简单,每个模块只能有一个入口和一个出口;一个出口;三种最基本的结构:顺序、分支、循环。三种最基本的结构:顺序、分支、循环。语句组语句组顺序结构顺序结构语句组语句组顺序结构顺序结构语句语句1 1Y YN N条件条件语句语句2 2分支结构分支结构语句语句1 1Y YN N条件条件语句语句2 2分支结构分支结构N N条件条件语句组语句组循环结构循环结构Y YN N条件条件语句组语句组循环结构循环结构Y Y程序 = 数据结构
7、 + 算法数据结构:数据结构: 逻辑结构:逻辑结构:计算机外部的数据及其数据之间的关系。计算机外部的数据及其数据之间的关系。 存储结构:存储结构:外部数据及其数据之间的关系在计算机外部数据及其数据之间的关系在计算机内部的实现。(一般通过类型来表达)内部的实现。(一般通过类型来表达) 运算:运算:定义在逻辑结构之上的操作,通过算法描述定义在逻辑结构之上的操作,通过算法描述算法:算法:是对问题求解过程的一种描述,是为解决一个是对问题求解过程的一种描述,是为解决一个或一类问题给出的一个确定的有限长的操作序列。或一类问题给出的一个确定的有限长的操作序列。 有输入有输入:算法加工的对象;:算法加工的对象
8、; 有穷性有穷性:对于任意一组合法的输入值,在执行有穷:对于任意一组合法的输入值,在执行有穷步骤之后一定能结束;步骤之后一定能结束; 确定性确定性:对于每种情况下所应执行的操作,在算法:对于每种情况下所应执行的操作,在算法中都有确切的规定(不存在二义性);中都有确切的规定(不存在二义性); 可行性可行性:算法中的所有操作都必须足够基本,都可:算法中的所有操作都必须足够基本,都可以通过已经实现的基本操作运算有限次实现之;以通过已经实现的基本操作运算有限次实现之; 有输出有输出:它是一组与:它是一组与“输入输入”有确定关系的量值,是有确定关系的量值,是算法进行信息加工后得到的结果。算法进行信息加工
9、后得到的结果。(3) (3) 用函数作为程序模块以实现程序的模块化结构用函数作为程序模块以实现程序的模块化结构# #include include # #include include # #define PI 3.14159define PI 3.14159main()main()double area(double x);double area(double x);double r,a;double r,a;scanf(%lf,&r);scanf(%lf,&r);r=pow(r,2.0);r=pow(r,2.0);a=area(r);a=area(r);printf(area=%fprin
10、tf(area=%f n,a);n,a);return(0);return(0); 以以# #打头的预处理命打头的预处理命令用以包含相关文件,令用以包含相关文件,及定义符号常数。及定义符号常数。 以以# #打头的预处理命打头的预处理命令用以包含相关文件,令用以包含相关文件,及定义符号常数。及定义符号常数。求解园面积的编程示例 C程序中的函数、程序中的函数、变量、符号常数必须变量、符号常数必须先定义后使用,否则先定义后使用,否则应作预先声明。应作预先声明。 C程序中的函数、程序中的函数、变量、符号常数必须变量、符号常数必须先定义后使用,否则先定义后使用,否则应作预先声明。应作预先声明。(3) (
11、3) 用函数作为程序模块以实现程序的模块化结构用函数作为程序模块以实现程序的模块化结构# #include include # #include include # #define PI 3.14159define PI 3.14159main()main()double area(double x);double area(double x);double r,a;double r,a;scanf(%lf,&r);scanf(%lf,&r);r=pow(r,2.0);r=pow(r,2.0);a=area(r);a=area(r);printf(area=%fprintf(area=%f n
12、,a);n,a);return(0);return(0); 以以main()标识的主函数标识的主函数是是C程序运行开始时由系程序运行开始时由系统调用的一个特殊函数,统调用的一个特殊函数,不管其所在位置是程序中不管其所在位置是程序中的前或后,执行总是从它的前或后,执行总是从它开始。开始。C程序可由一个或多个函程序可由一个或多个函数构成,但必须存在一个数构成,但必须存在一个主函数,执行语句中可以主函数,执行语句中可以调用其它函数,但它不能调用其它函数,但它不能被其它函数调用,也不能被其它函数调用,也不能自己调用自己。自己调用自己。其它函数指:其它函数指:C编译系统编译系统提供的库函数;用户自定提供
13、的库函数;用户自定义函数。义函数。求解园面积的编程示例函数的基本形式:函数的基本形式:函数类型函数类型 函数名(形参表函数名(形参表列列) 数据说明部分;数据说明部分;执行语句部分;执行语句部分; 说明:说明: 如果没有参数,则可以如果没有参数,则可以省略形参表列和形参说明,省略形参表列和形参说明,但括号不能省略;但括号不能省略;规定有序规定有序规定有序规定有序求解园面积的编程示例void main()void main()double area(double x);double area(double x);double r,a;double r,a;scanf(%lf,&r);scanf(
14、%lf,&r);r=pow(r,2.0);r=pow(r,2.0);a=area(r);a=area(r);printf(area=%fprintf(area=%f n,a);n,a); double area(double x)double area(double x)double y; double y; y=PI*x;y=PI*x;return(y);return(y); void main()void main()double area(double x);double area(double x);double r,a;double r,a;scanf(%lf,&r);scanf(%
15、lf,&r);r=pow(r,2.0);r=pow(r,2.0);a=area(r);a=area(r);printf(area=%fprintf(area=%f n,a);n,a); double area(double x)double area(double x)double y; double y; y=PI*x;y=PI*x;return(y);return(y); 求解园面积的编程示例 如果函数不需要返回如果函数不需要返回值,则可将该函数定义为值,则可将该函数定义为voidvoid类型函数,并去除类型函数,并去除returnreturn语句。语句。 分号是语句的结束标志,分号是语句
16、的结束标志,是语句必要的组成部分,是语句必要的组成部分,不可少,因此可以一行写不可少,因此可以一行写几个语句。几个语句。void main()void main()double area(double x);double area(double x);double r,a;double r,a;scanf(%lf,&r);scanf(%lf,&r);r=pow(r,2.0);r=pow(r,2.0);a=area(r);a=area(r);printf(area=%fprintf(area=%f n,a);n,a); double area(double x)double area(doubl
17、e x)double y; double y; y=PI*x;y=PI*x;return(y);return(y); 求解园面积的编程示例 函数:函数在程序设函数:函数在程序设计中,是指有一定结构形计中,是指有一定结构形式构成的,能完成某种特式构成的,能完成某种特定运算功能的程序模块,定运算功能的程序模块,被调用时根据自变量(形被调用时根据自变量(形参)的值,作运算后,返参)的值,作运算后,返回相应的结果(数据)或回相应的结果(数据)或实现某项特定的功能操作。实现某项特定的功能操作。预处理命令、外部变量定义等预处理命令、外部变量定义等函数类型函数类型main( )main( )数据说明部分;数
18、据说明部分;执行语句部分;执行语句部分; 函数类型函数类型fun_1( fun_1( 形参表形参表 )数据说明部分;数据说明部分;执行语句部分;执行语句部分; 函数类型函数类型fun_n( fun_n( 形参表形参表 )数据说明部分;数据说明部分;执行语句部分;执行语句部分; C C程程序序的的一一般般形形式:式:1.3 库函数应用简介库函数应用简介C C的两个基本系统函数库及其相配套的说明的两个基本系统函数库及其相配套的说明性预处理文件。性预处理文件。 库函数的说明性预处理文件库函数的说明性预处理文件: “stdio.hstdio.h”, , “math.hmath.h” 它们是系统与用户的
19、接口文件,称它们是系统与用户的接口文件,称“头文件头文件”,其中包含库函数原型的说明、类型,其中包含库函数原型的说明、类型和全局变量及符号常数等的说明。和全局变量及符号常数等的说明。 数值计算函数库数值计算函数库sqrt(X) sqrt(X) 求平方根函数;求平方根函数;sin(x) sin(x) 返回以弧度表示的返回以弧度表示的x x的正弦值;的正弦值;cos(x) cos(x) 返回以弧度表示的返回以弧度表示的x x的余弦值;的余弦值;pow(x,y)pow(x,y)返回返回x xy y的值的幂指数函数的值的幂指数函数exp(x) exp(x) 返回返回e ex x的指数函数的指数函数用户
20、程序要调用这些函数,必须在有关函数用户程序要调用这些函数,必须在有关函数前用以下预处理命令把前用以下预处理命令把“math.hmath.h”标头文件包标头文件包含进来。含进来。1.3 用库函数用库函数组装组装C程序程序#include “math.h”或或#include 双引号定界表示以当前双引号定界表示以当前目录为起点寻找包含文件,目录为起点寻找包含文件,若不在,再按系统规定的若不在,再按系统规定的标准路径找标准路径找 尖括号定界表示按系统尖括号定界表示按系统规定的标准路径设置检索规定的标准路径设置检索包含文件。包含文件。预处理命令包含预处理命令包含“math.hmath.h”标头文件标头
21、文件格式如下:格式如下:因为因为math.h中包含提供了数值计算函数库中中包含提供了数值计算函数库中的每一个函数原型的说明。的每一个函数原型的说明。double sqrt( double x );double sqrt( double x );double sin( double x );double sin( double x );double pow( double x, double y ); double pow( double x, double y ); 函数原型中提供了函数类型、函数名称、形参表中函数原型中提供了函数类型、函数名称、形参表中形参的个数、形参的类型、形参的顺序等信息
22、,它们形参的个数、形参的类型、形参的顺序等信息,它们将在程序中作为将在程序中作为C C编译程序编译用户程序时检验用户调编译程序编译用户程序时检验用户调用库函数准确性的判断依据。用库函数准确性的判断依据。函数类型函数类型函数名称函数名称 形参的个数、类型、顺序等信息形参的个数、类型、顺序等信息所以:所以:调用库函数时必须注意,函数参调用库函数时必须注意,函数参数的个数、类型、顺序及返回值的类型。数的个数、类型、顺序及返回值的类型。对于三角函数还应注意自变量的单位是对于三角函数还应注意自变量的单位是弧度。弧度。 基本基本I/O(输入输入/输出)库输出)库 :用户程序若要用户程序若要使 用 其 中
23、的 函 数 , 必 须 用 预 处 理 命 令 将使 用 其 中 的 函 数 , 必 须 用 预 处 理 命 令 将“stdio.hstdio.h”标头文件包含进来。标头文件包含进来。意义同上!意义同上!#include “stdio.h”或或#include 常用字符输入输出函数:常用字符输入输出函数:getchar( )putchar(C)gets(字符数组字符数组)puts(字符串地址字符串地址) 从标准输入文件从标准输入文件stdin(stdin(键盘键盘) )读入一个读入一个字符。字符。 把字符串输出到标准输出文件,并加把字符串输出到标准输出文件,并加上换行符。上换行符。 从标准输入
24、文件读入一个字符串到字从标准输入文件读入一个字符串到字符数组中。符数组中。 将字符将字符c c写到标准输出文件写到标准输出文件stdout(stdout(显显示屏示屏) )中去。中去。格式输入输出函数:格式输入输出函数:scanf(“格式字符串格式字符串”,输入参数表列,输入参数表列);printf(“格式字符串格式字符串”,输出参数表列,输出参数表列); 特例,最常用的输入输出函数,因此可省略特例,最常用的输入输出函数,因此可省略stdio.h文件包含文件包含例例2 2 计算一个正弦值。计算一个正弦值。#include void main()double x; /declare variab
25、lex=sin(0.19199);printf(sin0.19199=%fn, x);/*运行结果:运行结果:sin0.19199=0.190813sin0.19199=0.190813*/ /注释本行其后的注释本行其后的内容为注释信息;内容为注释信息; /*/*/*/表示两符号表示两符号之间为注释信息;之间为注释信息; 注释信息对程序运注释信息对程序运行不发生影响,也不被行不发生影响,也不被编译,合理地使用注释编译,合理地使用注释可以提高程序的可阅读可以提高程序的可阅读性。性。例例2 2 计算一个正弦值。计算一个正弦值。 C C规定每一个语句以规定每一个语句以分号结束,分号是语句分号结束,分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 语言 概述
限制150内