1、1,第1章 C语言程序设计概述,2,第1章 C语言程序设计概述,本章的学习目标: 了解计算机语言、程序设计和算法的概念; 了解C语言的发展和特点以及C语言源程序的书写格式; 掌握C语言程序的构成及C语言程序的编辑、编译和执行步骤; 熟悉Turbo C 集成开发环境,能独立熟练地编辑、编译、链接、运行一个简单的C程序。,3,本章概要,1.1 程序设计基础 1.2 C语言程序简介 1.3 Turbo C编程环境及C程序执行过程 1.4 编码规范及编程习惯 1.5 总结与提高,4,1.1 程序设计基础,1.1.1 计算机语言和程序 什么是软件、硬件? 什么是程序设计语言 -人机交互的语言 计算机语言
2、的发展大致经历了以下几个过程。 -机器语言 -汇编语言 -高级语言 机器语言、汇编语言、高级语言之间的关系,5,1.1 程序设计基础,1.1.1 计算机语言和程序 汇编程序编译程序(编译器)-在高级语言和机器语言之间执行翻译任务的程序。,6,1.1 程序设计基础,1.1.2 算法 算法-解决问题的一种策略。 算法的常见表示方法 -自然语言 -传统流程图 -N-S流程图,7,1.1 程序设计基础-算法,例1-1 用自然语言描述求三个数中最大数的算法。输入三个数num1、num2、num3之后,先求出三个数中两个数num1和num2的较大数max2,再把这个较大数max2与第三个数num3比较,求
3、出最大数max3。,8,1.1 程序设计基础-算法,例1-2 用传统流程图描述求三个数中最大数的算法。,9,1.1 程序设计基础-算法,例1-3 用N-S流程图描述求三个数中最大数的算法,如图1-4所示。,10,1.1 程序设计基础,1.1.3 结构化程序设计 结构化程序设计的三种基本控制结构 -顺序结构 -选择结构 -循环结构 结构化程序设计的优点? 结构化化程序设计的基本思路 ? 自顶向下,逐步细化;模块化设计;结构化编码,11,本章概要,1.1 程序设计基础 1.2 C语言程序简介 1.3 Turbo C编程环境及C程序执行过程 1.4 编码规范及编程习惯 1.5 总结与提高,12,1.
4、2 C语言程序简介,1.2.1 C语言概况为描述和实现UNIX操作系统而设计的,现在已成为一种成熟的通用编程语言,并被广泛应用于多种机型(如个人计算机、工作站和大型机)和操作系统(如DOS、Windows、Linux和UNIX)上。C语言既可以处理数据库、网络、图形、图像等,又适合在工业控制、自动检测等方面的应用。 1983年美国国家标准化协会(ANSI)根据C语言自问世以来的各种版本,对C语言的发展和扩充制定了新的标准,称为ANSI C。1987年ANSI又公布了新标准,即87ANSI C。 常用的有Micorsoft C、Quick C和Turbo C等多种版本。这些不同的C语言版本,基本
5、部分是相同的,但在有关规定上又略有差异。本书以Turbo C 2.0的环境对C语言进行介绍。,13,1.2 C语言程序简介,1.2.2 简单的C程序举例 例1-4 如下C程序实现:从键盘上输入三个数,求出这三个数的最大数。 # include /*Cprog1.C By HuangCL*/ /* This program is designed to seek the maximum from three numbers */ /* 2008-2-13 */ void main() int num1, num2, num3, max2, max3; /*定义存放三个数及较大值的变量*/prin
6、tf(“Please input three numbers:“); /*输入变量值的提示信息*/scanf(“%d %d %d“, /*输出三个数及其最大值*/ ,int seek_max(int x,int y) /*求两个数的较大数的函数定义*/ int z; /*定义中间变量z*/if (xy) z=x; /*如果xy,那么把x赋给z*/else z=y; /*否则,把y赋给z*/return z; /*函数返回x,y的较大值*/ ,运行情况: Please input three numbers: 23 45 33 The Maximum among 23,45 and 33 is
7、45.,14,1.2 C语言程序简介,简单的C程序说明 1.预处理命令#inlcude例1.4程序的第一行是一个预处理命令,用来把Turbo C预先提供的与标准输入输出相关的头文件stdio.h包含到程序中。Turbo C提供了多个头文件,如大多数函数可在头文件math.h中找到,而当要进行图形处理时,则必须包含头文件graphics.h。在计算机加载安装Turbo C之后,可以在 TCINCLUDE目录中查找到Turbo C提供的所有头文件。,15,1.2 C语言程序简介,简单的C程序说明 2.C程序中的注释本源程序中包含了多处的注释,在/*和*/之间的内容是注释部分,不参与程序的编译和执行
8、,只是起到说明作用,增强了程序的可读性。最前面的三行注释是对程序作者、功能、编写日期进行说明,而函数main()中的注释则是对各语句功能的说明。,16,1.2 C语言程序简介,简单的C程序说明 3.C程序由函数组成 一个C程序可以包含一到多个的函数,每一个能单独运行的C程序都必须有一个且只能有一个main函数作为程序的主控函数,称为主函数。main函数是C语言编译系统使用的专用名字。程序从main函数的第一条可执行语句开始执行。 本例中包含了两个函数即main和seek_max。函数由函数头和函数体两部分组成,例子中的两个函数的函数头分别是:main()和int seek_max(int x,
9、 int y),函数体是函数头后面花括号中的内容。 程序中还调用了头文件stdio.h中的输入函数scanf()和输出函数printf()。,17,1.2 C语言程序简介,简单的C程序说明 4.标识符与保留字 在C程序中用标识符来表示函数、类型、变量、符号常量及语句标号的名称。C程序中的标识符是以英文字母(az或AZ)或下划线开头,由英文字母、数字(09)和下划线构成的,区分大小写字母。不同的编译程序对标识符有不同的规定,Turbo C 2.0 规定标识符的字符个数不超过32,建议初学者在标识符命名时不宜过长,要注意简洁、清晰,让人见名知意。 本例中定义了存放三个数的变量分别是num1、num
10、2和num3,存放前两个数较大值及三个数最大值的变量分别是max2和max3。 C语言规定了一些具有特定含义的标识符,即关键字,一共有32个,请参见附录2。例1-4中的void、int、if、else、return都是关键字。,18,1.2 C语言程序简介,简单的C程序说明 5.输入与输出 在C程序中,可以通过调用编译系统提供的函数scanf()从键盘输入一些数据,而用函数printf()向显示屏幕输出数据。 如本例中的语句scanf(“%d %d %d“, 是用来按格式要求输出最后结果的。“n”在C语言中表示回车换行符。,19,1.2 C语言程序简介,1.2.3 C语言程序的基本特点 C语言
11、程序的特点主要有: (1)C语言是一种结构化的程序设计语言,包括顺序结构、选择结构和循环结构。 (2)C语言中提供的数据类型有有符号基本整型、有符号短整型、有符号长整型、无符号基本整型、无符号短整型、无符号长整型、双精度实型、单精度实型、字符型、枚举类型、指针类型、文件等,以及由上述类型构造的类型,如数组、结构体、共用体等。 (3)C语言具有与汇编语言的接口。在具有汇编编译器的情况下,可以在C程序中调用汇编子程序或直接插入汇编指令,也可以在汇编语言程序中调用C函数。 (4)C程序中区分大小写。一般用户自定义标识符时,要能见名知义,如count、PRICE等。,20,1.2 C语言程序简介,1.
12、2.3 C语言程序的基本特点 C语言程序的特点主要有(续): (5)C程序由函数组成,当且仅当包含一个main函数时,C程序才能被单独运行,其它函数被main函数直接或间接调用。 (6)C语言提供了丰富的函数,如输入输出函数(printf()和scanf()函数)、数学函数、图形处理函数等。 (7)C语言的头文件功能。可以把实现一定功能的函数或符号常量、类型定义等集中在一起,保存为头文件,供其它程序引用。Turbo C提供了丰富的头文件,包括stdio.h、math.h、graphics.h等。,21,本章概要,1.1 程序设计基础 1.2 C语言程序简介 1.3 Turbo C编程环境及C程
13、序执行过程 1.4 编码规范及编程习惯 1.5 总结与提高,22,1.3 Turbo C编程环境及C程序执行过程,1.3.1 Turbo C编程环境 C语言的集成开发环境,集编辑、编译、调试和运行等功能于一体。 在TC目录下双击TC.EXE或其快捷方式,即启动TC,进入了TC的编程环境。 提示:事先把包含Turbo C 2.0集成开发软件的整个TC目录的内容复制到计算机上(以下假设复制到D:文件夹下)。 在Windows系统下,Turbo C 2.0编程界面可以是窗口或全屏两种显示方式,可按Alt+Enter键切换。,23,1.3 Turbo C编程环境及C程序执行过程,Turbo C 2.0
14、编程界面包括以下四个部分: 1主菜单 2编辑区域 3消息显示区域 4功能键提示行,24,1.3 Turbo C编程环境及C程序执行过程,1.3.2 编辑、编译、链接、运行第一个C程序C语言是一种编译型的程序设计语言。一个C程序要经过编辑、编译、链接和运行四个步骤,才能得到程序的执行结果。,25,1.3 Turbo C编程环境及C程序执行过程,1.编辑 所谓编辑就是对C语言源程序进行输入和修改。 可用于编辑C源程序的软件包括各种文本编辑软件,常用的有Windows操作系统中的记事本以及Turbo C开发环境提供的编辑界面。 使用块操作(即可对一段代码进行的操作)提高编辑速度及效率 重要提示:C源
15、程序的文件扩展名为.C如Cprog1.C、Stu_name.C是合适的C源程序名。在编辑过程中,应注意及时保存源程序。,26,1.3 Turbo C编程环境及C程序执行过程,2编译 对C源程序的编译是把C源程序翻译成可重定位的二进制目标程序,编译过程是由C编译程序完成的。 在编译之前,编译程序将对源程序进行语法检查,如果源程序有语法错误,将提示所有错误的错误类型、错误信息以及出错的位置,以帮助程序调试人员修改源程序中的错误。一旦发现错误,将无法成功编译形成目标程序,直到所有语法错误都排除。 如果C源程序不存在语法错误,编译之后将生成与C源程序对应的二进制目标代码,并对目标代码进行优化后生成目标
16、文件。 目标文件的扩展名默认为.obj(如Cprog1.obj)。,27,1.3 Turbo C编程环境及C程序执行过程,3.链接(或称为装配) 链接过程是链接程序将编译过的目标程序和程序中用到的库函数链接装配在一起,得到具有绝对地址的可执行文件,即计算机可直接执行的文件。 可执行文件的扩展名由系统自动指定为.exe(如Cprog1.exe)。,28,1.3 Turbo C编程环境及C程序执行过程,4.运行 运行是将可执行文件投入运行,以获取程序的运行结果。用户可使用菜单“Run/User Screen”查看程序的运行结果。 如果程序代码中存在逻辑错误,将得到意料之外的运行结果,为了得到正确的
17、结果,必须修改程序代码后重新运行。,29,1.3 Turbo C编程环境及C程序执行过程,1.3.3运行C程序前的Directories选项设置 在第一次启动Turbo C 2.0之后,必须查看并设置Options/Directories中的各选项。 如果有修改,应保存选项设置,之后就不必再修改。,30,本章概要,1.1 程序设计基础 1.2 C语言程序简介 1.3 Turbo C编程环境及C程序执行过程 1.4 编码规范及编程习惯 1.5 总结与提高,31,1.4 编码规范及编程习惯,1.4.1编程错误和调试 编译一个程序时,编译器首先检查程序的语法是否正确,若违反了语法规则,编译器将显示出
18、错信息。 由于违反了语法规则而导致的错误称为语法错误(syntax error)。当从编译器得到一个语法错误的消息时,程序将停止编译,必须返回编辑状态并改正错误后重新编译。 程序的调试过程包括发现错误、定位错误、修改错误。 与调试有关的主菜单有Run、Debug、Break/watch。,32,1.4 编码规范及编程习惯,1.4.2 注意养成良好的编程风格 良好的编程习惯有助于对程序本身的理解,在编写C程序时,应注意以下几点: (1)程序代码中穿插一些必要的注释。 (2)标识符命名见名知义。 (3)程序语句书写格式规范,对于嵌套语句使用缩进。 (4)以模块化方式考虑程序结构,以函数形式书写较复
19、杂的程序。,33,本章概要,1.1 程序设计基础 1.2 C语言程序简介 1.3 Turbo C编程环境及C程序执行过程 1.4 编码规范及编程习惯 1.5 总结与提高,34,总结与提高,掌握算法就是掌握程序设计的灵魂, 本章的目的是简要介绍算法和结构化程序设计的基本概念,为读者提供程序设计的一般性的准则,以便于本课程的学习。 本课程重点介绍C语言的语法、规则。至于算法和程序设计的详细介绍在今后的课程中会陆续学习。 初学者不妨先理解并上机调试书上一些简单的程序,然后加入一点自己思路,通过比较分析并解决新的问题,达到学习并使用语句的目的。 作为计算机专业学习的一大主要内容,编程语言的学习过程将漫长而艰辛,但也乐趣无穷。 一个优秀的计算机专业毕业生,必须是一个优秀的程序员。,