1、C C语言程序设计语言程序设计 课程性质:大学生公共必修课课程性质:大学生公共必修课 学习时间:学习时间:1 1学期学期 课堂教学课堂教学:36:36课时课时 机房实习机房实习:72:72课时课时 计分方式:平时成绩:计分方式:平时成绩:40%40%期终考试:期终考试:60%60%第1页本书主要内容本书主要内容介绍介绍C C语言语言数据类型、运算符和表示式数据类型、运算符和表示式次序结构和惯用语句次序结构和惯用语句选择结构选择结构循环结构循环结构数组与结构数组与结构函数函数指针指针第2页第一章第一章 C C语言程序设计入门语言程序设计入门一、计算机语言和指令一、计算机语言和指令 1.什么是计算
2、机语言 2.什么是计算机指令二、二、C C语言发展与特点语言发展与特点 1.C语言发展 2.C语言特点第3页三、简单三、简单C C语言程序介绍语言程序介绍 1.C语言组成 2.函数组成四、程序设计基本概念四、程序设计基本概念 1.程序设计 2.算法 3.结构化程序 4.结构化模块第4页1 1.计算机语言和指令计算机语言和指令 能被计算机直接识别和执行语言,称为能被计算机直接识别和执行语言,称为计算机语计算机语言言。早期计算机语言由二进制代码。早期计算机语言由二进制代码0和和1组成,称为组成,称为机机器语言器语言。指令指令是指挥计算机进行某种操作命令。指令集合是指挥计算机进行某种操作命令。指令集
3、合称为称为程序程序。第5页 机器语言难于读写修改,人们使用便于记忆符机器语言难于读写修改,人们使用便于记忆符号代替号代替0和和1组成指令,于是产生了符号语言,即用组成指令,于是产生了符号语言,即用一个助记符表示面向机器程序设计语言,称一个助记符表示面向机器程序设计语言,称汇编语汇编语言言。机器语言和汇编语言都是机器语言和汇编语言都是低级语言低级语言。低级语言编写修改依然复杂,而且效率不高,低级语言编写修改依然复杂,而且效率不高,所以出现了高级语言。所以出现了高级语言。高级语言高级语言是一个比较靠近自是一个比较靠近自然语言和数学表示式一个计算机程序设计语言。普然语言和数学表示式一个计算机程序设计
4、语言。普通用高级语言编写程序称为通用高级语言编写程序称为“源程序源程序”。BASIC、FORTRAN、PASCAL、C等等都是高等等都是高级语言。级语言。第6页2 2.C C语言发展与特点语言发展与特点 C C语言诞生于语言诞生于2020世纪世纪7070年代,最初是用于年代,最初是用于PDP-11PDP-11计算机上实现计算机上实现UNIXUNIX操作系统。操作系统。C C语言发展语言发展:1977 1977年出现了独立于机器年出现了独立于机器C C语言编译文本。语言编译文本。19781978年年贝尔试验室正式发表了贝尔试验室正式发表了C C语言。语言。1983 1983年年ANSIANSI为
5、为C C语言制订了语言制订了ANSICANSIC标准,并于标准,并于19881988年完成。年完成。现今现今C C语言已成为世界上应用最广泛计算机语言之语言已成为世界上应用最广泛计算机语言之一。一。第7页 C C语言特点语言特点:C C语言是结构化程序设计语言语言是结构化程序设计语言C C语言含有丰富数据类型语言含有丰富数据类型C C语言语法简练,运算符和库函数丰富语言语法简练,运算符和库函数丰富C C语言含有低级语言功效语言含有低级语言功效C C语言程序移植性好语言程序移植性好第8页3 3.简单简单C C语言程序介绍语言程序介绍例例1.11.1 在标准输出设备上显示在标准输出设备上显示 He
6、llo World Hello World!/*program ex1_1.c /*program ex1_1.c 该程序程序名为该程序程序名为ex1_1.c*/ex1_1.c*/#include /*/*引用系统标准库函数,包含输入输出头文件引用系统标准库函数,包含输入输出头文件*/*/main()/*/*定义主函数定义主函数*/*/printf(Hello World!n);/*/*在屏幕上输出在屏幕上输出Hello world!Hello world!,光标移到下一行,光标移到下一行*/*/3.1 C3.1 C程序基本结构程序基本结构第9页v 一个一个C C程序是由若干源程序文件组成。一
7、个程序是由若干源程序文件组成。一个C C源程序文件是源程序文件是由若干个函数组成,函数是由若干个函数组成,函数是C C程序基本组成单位。程序基本组成单位。一个一个C C程序不论包含多少个函数,都有且只有一个程序不论包含多少个函数,都有且只有一个主函数主函数main()。它是程序执行入口,能够置于程序任何位置。它是程序执行入口,能够置于程序任何位置。v 预处理命令、函数原型申明等均放在源程序开始部位。预处理命令、函数原型申明等均放在源程序开始部位。如上例中如上例中#include 申明语句放在程序头部。申明语句放在程序头部。v 分号分号是是C语句结束标志,每个语句和数据定义后必须有语句结束标志,
8、每个语句和数据定义后必须有一个分号。一个分号。C程序书写格式自由,一行内可写一个或多个语程序书写格式自由,一行内可写一个或多个语句;一个语句能够写一行或多行。句;一个语句能够写一行或多行。第10页v C程序严格区分大小写。程序严格区分大小写。标识符、保留字之间必须最少加一个空格以示分隔。标识符、保留字之间必须最少加一个空格以示分隔。v C程序总是从程序总是从main()函数开始执行并结束,与其位置()函数开始执行并结束,与其位置无关。在函数内部按语句输入先后次序执行。无关。在函数内部按语句输入先后次序执行。v /*/*/为注释。注释以为注释。注释以“/*”“/*”开头,以开头,以“*/”“*/
9、”结束,结束,中间为注释内容。中间为注释内容。如例如例1.11.1中:中:/*/*在屏幕上输出在屏幕上输出Hello world!Hello world!,光标移到下一行,光标移到下一行*/*/是对语句是对语句printf(“Hello World!n”);注释注释第11页3.2 3.2 函数组成函数组成 C C程序由函数组成,使用函数能够简化了主函数以及实现程序由函数组成,使用函数能够简化了主函数以及实现模块化程序设计,模块化程序设计,C C语言函数能够分为三类:语言函数能够分为三类:(1 1)主函数,名为)主函数,名为main()main()。每个程序中只能有一个、也必。每个程序中只能有一
10、个、也必须有一个主函数。不论主函数在什么位置,须有一个主函数。不论主函数在什么位置,C C程序总是从主函程序总是从主函数开始执行。数开始执行。(2 2)用户自定义函数,可有可无,数目不限。)用户自定义函数,可有可无,数目不限。例例1.31.3中中max(int x,int y)即为用户定义函数。即为用户定义函数。(3 3)C C语言提供库函数,比如输出函数语言提供库函数,比如输出函数printf()和输入函数和输入函数scanf()比如:比如:main()是最小正当是最小正当C C程序,不过它没有执行任何操作。程序,不过它没有执行任何操作。第12页 一个一个C C函数由函数由函数首部函数首部和
11、和函数体函数体两部分组成。两部分组成。函函数数首首部部即即函函数数第第一一行行,包包含含函函数数名名、函函数数类类型型、函函数属性、函数形参名及形参类型。数属性、函数形参名及形参类型。比如函数定义语句:比如函数定义语句:int max(int x,int y)该该函函数数函函数数名名为为maxmax,函函数数类类型型为为整整型型(intint),函函数数属属性性是是用用户户自自定定义义函函数数,函函数数形形参参名名为为x,x,y y,形形参参类类型型为为整整型型(intint)。函数体是由一对花括弧函数体是由一对花括弧“括起,包含对函数内所括起,包含对函数内所用变量及函数进行申明部分和由若干个
12、语句组成执行部分。用变量及函数进行申明部分和由若干个语句组成执行部分。第13页例例 求方程求方程axax2 2+bx+c=0+bx+c=0根根(设设b b2 2-4ac0)-4ac0)。1.1.提出问题提出问题:求方程求方程axax2 2+bx+c=0+bx+c=0解。解。2.2.定义数据结构:确定已知量(输入)、未知定义数据结构:确定已知量(输入)、未知 量(中间运算结构、输出),对这些参数进量(中间运算结构、输出),对这些参数进行描述,定义类型和数据组织形式。行描述,定义类型和数据组织形式。3.3.确定处理问题算法。确定处理问题算法。4.4.确定程序设计方法:结构化程序设计方法。确定程序设
13、计方法:结构化程序设计方法。5.5.确定采取程序设计语言和程序开发环境:确定采取程序设计语言和程序开发环境:C C语言,语言,Borland CBorland C,简称,简称BCBC。4.14.1 程序设计步骤程序设计步骤:4 4.程序设计基本概念程序设计基本概念第14页4.24.2 算法算法算算法法:为为处处理理某某个个特特定定问问题题而而采采取取确确实实定定且且有有限限步骤。步骤。特点特点 :有限性有限性确定性确定性可行性可行性有零个或多个输入有零个或多个输入有一个或多个输出有一个或多个输出有效性有效性第15页算法表示工具:算法表示工具:流程图流程图流流程程图图:一一个个描描述述算算法法工
14、工具具,是是用用一一些些图图框框表表示各种操作。示各种操作。特点:直观形象,易于了解。特点:直观形象,易于了解。惯用流程图符号及含义以下:惯用流程图符号及含义以下:流程线流程线连接点连接点判断框判断框处理框处理框输入输出框输入输出框起始框起始框第16页例例 求解方程求解方程axax2 2+bx+c=0+bx+c=0流程图。流程图。p=-b/(2*a)disc=b*b-4*a*c输入输入a,b,c1x1=p+q,x2=p-qq=sqrt(disc)/(2*a)输出输出x1,x21第17页4.34.3 结构化程序设计结构化程序设计 任何复杂算法,都可由三种基本结构组成。任何复杂算法,都可由三种基本
15、结构组成。即:即:次序结构次序结构、选择(分支)结构选择(分支)结构、循环结构循环结构 程序设计中要求:程序设计中要求:三种基本结构为基本单元,三种基本结构三种基本结构为基本单元,三种基本结构能够并列和相互包含,但不允许交叉,不允许能够并列和相互包含,但不允许交叉,不允许从一个结构直接转到另一个结构内部,这种从一个结构直接转到另一个结构内部,这种方法就是方法就是结构化方法结构化方法。第18页结构化程序设计特点结构化程序设计特点:结构良好结构良好,逻辑清楚,逻辑清楚,易读易懂。易于,易读易懂。易于验证和纠错。验证和纠错。结构化程序只有一个入口,一个出口。结构化程序只有一个入口,一个出口。依据结构
16、化方法方法进行程序设计,就是依据结构化方法方法进行程序设计,就是结结构化程序设计构化程序设计。第19页结构化程序三种基本结构结构化程序三种基本结构 次次序序结结构构是是简简单单线线性性结结构构。程程序序执执行行时时按按语语句先后次序执行。句先后次序执行。其流程图为:其流程图为:语句语句1语句语句2次序结构次序结构语句语句1 1语句语句2 2第20页 选选择择结结构构是是依依据据条条件件真真或或假假选选择择执执行行不不一一样样操作内容。操作内容。当条件为真时执行语句当条件为真时执行语句1 1;为假时执行语句;为假时执行语句2 2。其流程图为其流程图为:YN语句语句1语句语句2表示式表示式分支结构
17、分支结构假假真真表示式表示式语句语句2语句语句1第21页循环结构分当型循环和直到型循环两种形式。循环结构分当型循环和直到型循环两种形式。当当型型循循环环先先计计算算表表示示式式值值,为为真真时时执执行行语语句句1 1;再再返返回回计计算算,为为真真时时依依旧旧执执行行语语句句1 1,重重复复循循环环,直到表示式值为假时退出循环。其流程图如图。直到表示式值为假时退出循环。其流程图如图。循环结构循环结构A A(当型)(当型)NY语句语句表示式表示式当表示式为真当表示式为真循环体循环体第22页循环结构循环结构B(直到型)(直到型)语句语句YN表示式表示式 直到型循环直到型循环先执行语句先执行语句1 1,再计算表示式值;,再计算表示式值;为真时依旧返回执行语句为真时依旧返回执行语句1 1,重复循环,直到表示,重复循环,直到表示式值为假时退出循环。其流程图如图。式值为假时退出循环。其流程图如图。当表示式为真当表示式为真循环体循环体第23页