C语言程序设计课程性质:大学生公共必修课学习时间:1学期课堂教学:36课时机房实习:72课时计分方式:平时成绩:40%期终考试:60%本书主要内容介绍C语言的•数据类型、运算符和表达式•顺序结构和常用语句•选择结构•循环结构•数组与结构•函数•指针第一章C语言程序设计入门一、计算机语言和指令1.什么是计算机语言2.什么是计算机指令二、C语言的发展与特点1.C语言的发展2.C语言的特点三、简单的C语言程序介绍1.C语言的构成2.函数的组成四、程序设计的基本概念1.程序设计2.算法3.结构化程序4.结构化模块§1.计算机语言和指令能被计算机直接识别和执行的语言,称为计算机语言。早期的计算机语言由二进制代码0和1组成,称为机器语言。指令是指挥计算机进行某种操作的命令。指令的集合称为程序。机器语言难于读写修改,人们使用便于记忆的符号代替0和1组成的指令,于是产生了符号语言,即用一种助记符表示的面向机器的程序设计语言,称汇编语言。机器语言和汇编语言都是低级语言。低级语言的编写修改仍然复杂,并且效率不高,因此出现了高级语言。高级语言是一种比较接近自然语言和数学表达式的一种计算机程序设计语言。一般用高级语言编写的程序称为“源程序”。BASIC、FORTRAN、PASCAL、C等等都是高级语言。§2.C语言的发展与特点C语言诞生于20世纪70年代,最初是用于PDP-11计算机上实现UNIX操作系统。C语言的发展:1977年出现了独立于机器的C语言编译文本。1978年贝尔实验室正式发表了C语言。1983年ANSI为C语言制定了ANSIC标准,并于1988年完成。现今C语言已成为世界上应用最广泛的计算机语言之一。C语言的特点:C语言是结构化程序设计语言C语言具有丰富的数据类型C语言语法简洁,运算符和库函数丰富C语言具有低级语言的功能C语言程序移植性好§3.简单的C语言程序介绍例1.1在标准输出设备上显示HelloWorld!/*programex1_1.c该程序的程序名为ex1_1.c*/#includestdio.h/*引用系统标准库函数,包含输入输出头文件*/main()/*定义主函数*/{printf(HelloWorld!\n);/*在屏幕上输出Helloworld!,光标移到下一行*/}3.1C程序的基本结构一个C程序是由若干源程序文件组成。一个C的源程序文件是由若干个函数组成,函数是C程序的基本组成单位。一个C程序无论包含多少个函数,都有且只有一个主函数main()。它是程序执行的入口,可以置于程序的任何位置。预处理命令、函数原型声明等均放在源程序的开始部位。如上例中的#includestdio.h声明语句放在程序的头部。分号是C语句结束的标志,每个语句和数据定义后必须有一个分号。C程序书写格式自由,一行内可写一个或多个语句;一个语句可以写一行或多行。C程序严格区分大小写。标识符、保留字之间必须至少加一个空格以示分隔。C程序总是从main()函数开始执行并结束的,与其位置无关。在函数内部按语句输入的先后顺序执行。/*…*/为注释。注释以“/*”开头,以“*/”结束,中间为注释的内容。如例1.1中:/*在屏幕上输出Helloworld!,光标移到下一行*/是对语句printf(“HelloWorld!\n”);的注释3.2函数的组成C程序由函数构成,使用函数可以简化了主函数以及实现模块化程序设计,C语言的函数可以分为三类:(1)主函数,名为main()。每个程序中只能有一个、也必须有一个主函数。无论主函数在什么位置,C程序总是从主函数开始执行。(2)用户自定义函数,可有可无,数目不限。例1.3中的max(intx,inty)即为用户定义的函数。(3)C语言提供的库函数,例如输出函数printf()和输入函数scanf()例如:main(){}是最小的合法的C程序,但是它没有执行任何操作。一个C函数由函数首部和函数体两部分组成。函数首部即函数第一行,包括函数名、函数类型、函数属性、函数形参名及形参类型。例如函数定义语句:intmax(intx,inty)该函数的函数名为max,函数类型为整型(int),函数属性是用户自定义函数,函数的形参名为x,y,形参类型为整型(int)。函数体是由一对花括弧“{}括起,包括对函数内的所用变量及函数进行的声明部分和由若干个语句组成的执行部分。例求方程ax2+bx+c=0的根(设b2-4ac≥0)。1.提出问题:求方程ax2+bx+c=0的解。2.定义数据结构:确定已知量(输入)、未知量(中间运算结构、输出),对这些参数进行描述,定义类型和数据的组织形式。3.确定解决问题的算法。4.确定程序设计方法:结构化程序设计方法。5.确定采用的程序设计语言和程序开发环境:C语言,BorlandC,简称BC。4.1程序设计的步骤:§4.程序设计的基本概念4.2算法算法:为解决某个特定的问题而采用的确定且有限的步骤。特点:•有限性•确定性•可行性•有零个或多个输入•有一个或多个输出•有效性算法的表示工具:流程图•流程图:一种描述算法的工具,是用一些图框表示的各种操作。•特点:直观形象,易于理解。•常用流程图符号及含义如下:流程线连接点判断框处理框输入输出框起始框例求解方程ax2+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,x214.3结构化程序设计任何复杂的算法,都可由三种基本结构组成。即:顺序结构、选择(分支)结构、循环结构程序设计中规定:三种基本结构为基本单元,三种基本结构可以并列和互相包含,但不允许交叉,不允许从一个结构直接转到另一个结构的内部,这种方法就是结构化方法。结构化程序设计的特点:结构良好,逻辑清楚,易读易懂。易于验证和纠错。结构化程序只有一个入口,一个出口。根据结构化方法方法进行的程序设计,就是结构化程序设计。结构化程序的三种基本结构顺序结构是简单的线性结构。程序执行时按语句的先后顺序执行。其流程图为:语句1语句2顺序结构语句1语句2选择结构是根据条件的真或假选择执行不同的操作内容。当条件为真时执行语句1;为假时执行语句2。其流程图为:YN语句1语句2表达式分支结构假真表达式语句2语句1循环结构分当型循环和直到型循环两种形式。当型循环先计算表达式的值,为真时执行语句1;再返回计算,为真时依旧执行语句1,重复循环,直到表达式的值为假时退出循环。其流程图如图。循环结构A(当型)NY语句表达式当表达式为真循环体循环结构B(直到型)语句YN表达式直到型循环先执行语句1,再计算表达式的值;为真时依旧返回执行语句1,重复循环,直到表达式的值为假时退出循环。其流程图如图。当表达式为真循环体