全书配套课件:C语言程序设计案例教程 王明福_第1页
全书配套课件:C语言程序设计案例教程 王明福_第2页
全书配套课件:C语言程序设计案例教程 王明福_第3页
全书配套课件:C语言程序设计案例教程 王明福_第4页
全书配套课件:C语言程序设计案例教程 王明福_第5页
已阅读5页,还剩313页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C C语言程序设计案语言程序设计案例教程例教程% 第6章 数组 第7章 函数 第8章 结构体、共用体和枚举类型 第9章 指针 第10章 文件目录页目录页 Contents page 第1章 初识C语言 第2章 数据类型、运算符与表达式 第3章 顺序结构程序设计 第4章 选择结构 第5章 循环结构学习目标学习目标案例目标u 了解本课程的知识目标和能力目标u 了解应用程序的开发环境和开发过程学习目标学习目标学习目标u了解C语言产生、发展和特点u了解程序设计的基本概念u掌握C程序的基本结构和程序的上机步骤u初步掌握Visual C+ 6.0开发环境开篇例程:学生成绩管理系统图图1-1是一个简单的学生

2、成绩管理系统运行界面,是本教材的一个是一个简单的学生成绩管理系统运行界面,是本教材的一个综合案例作品,具有数据记录的编辑、查找、统计和浏览等处理功能。综合案例作品,具有数据记录的编辑、查找、统计和浏览等处理功能。提供数字按键菜单操作方式。提供数字按键菜单操作方式。图图1-1 图书借阅管理系统图书借阅管理系统开篇例程:学生成绩管理系统1客户需求描述客户需求描述通过对市场的调查得知,一款合格的学生管理系统必须具备一下通过对市场的调查得知,一款合格的学生管理系统必须具备一下特点:特点:(1) 能够对学生成绩进行集中管理。能够对学生成绩进行集中管理。(2)能够)能够大大提高用户的工作效率。大大提高用户

3、的工作效率。(3)能够)能够对学生成绩实现增、删、改。对学生成绩实现增、删、改。(4)能够)能够按成绩信息进行排序。按成绩信息进行排序。一个学生成绩管理系统最重要的功能包括:学生成绩的添加、删一个学生成绩管理系统最重要的功能包括:学生成绩的添加、删除、查询、修改、插入及排序,其中学生成绩信息的查询、删除、修除、查询、修改、插入及排序,其中学生成绩信息的查询、删除、修改、插入等都要依据输入的学号来实现。改、插入等都要依据输入的学号来实现。开篇例程:学生成绩管理系统2系统结构设计系统结构设计根据上面的需求分析,得出该学生管理系统要实现的功能,有以根据上面的需求分析,得出该学生管理系统要实现的功能,

4、有以下几方面:下几方面:(1)录入)录入学生成绩信息。学生成绩信息。(2)实现)实现删除功能,即输入学号,删除相应的记录。删除功能,即输入学号,删除相应的记录。(3) 实现查找功能,即输入学号,查询该学生的相应信息。实现查找功能,即输入学号,查询该学生的相应信息。(4)实现)实现修改功能,即输入学号,修改相应的记录信息。修改功能,即输入学号,修改相应的记录信息。(5)指定)指定位置插入学生成绩信息,即将新的记录插入到指定位置。位置插入学生成绩信息,即将新的记录插入到指定位置。(6)实现)实现学生信息的排名,即按照选定的关键字段进行排序。学生信息的排名,即按照选定的关键字段进行排序。(7)数据)

5、数据统计,按用户指的条件进行统计。统计,按用户指的条件进行统计。开篇例程:学生成绩管理系统该学生管理系统的结构图如图该学生管理系统的结构图如图1-2所示。所示。图图1-1 图书借阅管理系统图书借阅管理系统开篇例程:学生成绩管理系统【实施方案实施方案】作者致力于且坚信一个目标:期待您学完本教材全部内容后,就作者致力于且坚信一个目标:期待您学完本教材全部内容后,就掌握了程序设计的基本技能,具备开发这类较简单的系统应用软件能掌握了程序设计的基本技能,具备开发这类较简单的系统应用软件能力。力。为此,本教材就以此为任务驱动,伴随系统的设计、开发、优化为此,本教材就以此为任务驱动,伴随系统的设计、开发、优

6、化到最后完善,学习到最后完善,学习C语言程序设计方法。方案设计如下:语言程序设计方法。方案设计如下:(1) 前前6章,各章设计独立的案例,旨在学习、掌握章,各章设计独立的案例,旨在学习、掌握C程序设计语程序设计语法规则。法规则。(2) 第第7章,按照模块化程序设计方法,完成系统结构和人机交互章,按照模块化程序设计方法,完成系统结构和人机交互界面的设计。界面的设计。(3) 第第8章,进行数据结构设计及主要功能函数的实现;从而学习章,进行数据结构设计及主要功能函数的实现;从而学习结构体相关内容。结构体相关内容。(4) 第第9章,利用指针优化各功能模块章,利用指针优化各功能模块(5) 第第10章,作

7、为收官篇,利用文件完善系统的数据存取。章,作为收官篇,利用文件完善系统的数据存取。值得注意的是:不必过多考虑所开发的系统之实用性,我们的目值得注意的是:不必过多考虑所开发的系统之实用性,我们的目标是:用项目驱动方法,学习标是:用项目驱动方法,学习C语言程序设计,用情景来实现知识构语言程序设计,用情景来实现知识构建。建。开篇例程:学生成绩管理系统【知识准备知识准备】要要完成学生成绩管理系统开发,必须学完本教材全部内容,熟悉完成学生成绩管理系统开发,必须学完本教材全部内容,熟悉C语言的语法规则,掌握语言的语法规则,掌握C程序设计的基本技能和结构化程序设计方法。程序设计的基本技能和结构化程序设计方法

8、。1.1 C语言概述语言概述1.1.1 C1.1.1 C语言的产生和发展语言的产生和发展C语言是美国语言是美国BELL实验的实验的Dennis Ritchie在在B语言的基础上开发出语言的基础上开发出来的,来的,1972年在一台年在一台DEC PDP-11计算机上实现了最初的计算机上实现了最初的C语言。当时语言。当时设计设计C语言是为了编写语言是为了编写UNIX操作系统,操作系统,UNIX操作系统操作系统90%的代码是由的代码是由C语言编写,语言编写,10%的代码由汇编语言编写。随着的代码由汇编语言编写。随着UNIX操作系统的广泛操作系统的广泛使用,使用,C语言被人们认识和接受。语言被人们认识

9、和接受。C语言在各种计算机上快速推广导致出现了许多语言在各种计算机上快速推广导致出现了许多C语言版本。这些语言版本。这些版本虽然类似,但通常不兼容。显然,人们需要一个与开发平台和机器版本虽然类似,但通常不兼容。显然,人们需要一个与开发平台和机器无关的标准的无关的标准的C语言版本。语言版本。1.1 C语言概述语言概述1.1.2 C1.1.2 C语言语言的特点的特点1.1.高效性高效性2.2.灵活性灵活性3.3.功能功能丰富丰富4.4.表达力表达力强强5.5.移植移植性好性好1.2 C语言程序语言程序1.2.1 1.2.1 简单简单的的C C程序程序【例例1.1】 在计算机屏幕上输出一行文本信息在

10、计算机屏幕上输出一行文本信息“Good Morning!”。#include /*编译预处理命令编译预处理命令*/main() /*从主函数从主函数main()开始执行开始执行*/ printf(Good Morning!); /*输出输出Good Morning!*/ /*主函数主函数main()结束结束*/运行结果如下:运行结果如下: Good Morning!1.2 C语言程序语言程序1.2.2 C1.2.2 C程序的结构程序的结构1程序程序所谓所谓“程序程序”,就是做某一件事情的步骤。现实生活中,我们每个,就是做某一件事情的步骤。现实生活中,我们每个人都在无意识的情况下编写着不同的人都

11、在无意识的情况下编写着不同的“程序程序”。计算机计算机的的“程序程序”是人们编写的计算机代码的指令集合。计算机本是人们编写的计算机代码的指令集合。计算机本身不会做任何操作,它所有的操作,都是按照人们设计的计算机身不会做任何操作,它所有的操作,都是按照人们设计的计算机“程序程序”语句的执行顺序来完成的。不同的计算机语言有不同的语法规则和语法语句的执行顺序来完成的。不同的计算机语言有不同的语法规则和语法结构。下面,我们讲述一下结构。下面,我们讲述一下C语言的程序结构。语言的程序结构。2. C程序的结构程序的结构一般来说,一个一般来说,一个C程序的基本结构包含了声明、主函数和函数定义程序的基本结构包

12、含了声明、主函数和函数定义三大部分。三大部分。1.3 C程序的开发程序的开发1.3.1 1.3.1 C C程序的程序的开发过程开发过程图图1-3 C程序编辑、编译、连接和执行程序编辑、编译、连接和执行1.3 C程序的开发程序的开发1.3.2 1.3.2 Visual C+ Visual C+ 6.0 6.0开发开发环境环境1. 启动启动Visual C+ 6.0图图1-4 Visual C+ 6.0界面界面1.3 C程序的开发程序的开发1.3.2 1.3.2 Visual C+ Visual C+ 6.0 6.0开发开发环境环境2. 创建工程创建工程图图1-5 “新建新建”对话框中的对话框中的

13、“工程工程”选项卡选项卡1.3 C程序的开发程序的开发1.3.2 1.3.2 Visual C+ Visual C+ 6.0 6.0开发开发环境环境2. 创建工程创建工程图图1-6 “Win32 Console Application-步骤步骤1共共1步步”对话框对话框1.3 C程序的开发程序的开发1.3.2 1.3.2 Visual C+ Visual C+ 6.0 6.0开发开发环境环境3. 创建、编辑源程序文件创建、编辑源程序文件图图1-7 “新建新建”对话框中的对话框中的“文件文件”选项卡选项卡1.3 C程序的开发程序的开发1.3.2 1.3.2 Visual C+ Visual C+

14、 6.0 6.0开发开发环境环境3. 创建、编辑源程序文件创建、编辑源程序文件图图1-8 Visual C+ 6.0窗口窗口1.3 C程序的开发程序的开发1.3.2 1.3.2 Visual C+ Visual C+ 6.0 6.0开发开发环境环境4. 编译、连接编译、连接图图1-9 编译、连接的输出窗口编译、连接的输出窗口1.3 C程序的开发程序的开发1.3.2 1.3.2 Visual C+ Visual C+ 6.0 6.0开发开发环境环境5运行程序运行程序图图1-10 运行程序的输出窗口运行程序的输出窗口1.3 C程序的开发程序的开发1.3.3 1.3.3 工程工程设置设置图图1-11

15、 程序设置程序设置1.3 C程序的开发程序的开发1.3.3 1.3.3 工程工程设置设置图图1-12 组建时排除文件的组建时排除文件的“工程设置工程设置”1.4 程序设计基础程序设计基础1.4.1 1.4.1 基本概念基本概念1. 1. 程序与算法程序与算法人们做任何事情都有一定的方法和程序。如开会的议程、老师上课人们做任何事情都有一定的方法和程序。如开会的议程、老师上课的教案、春节联欢晚会节目单等都是程序。的教案、春节联欢晚会节目单等都是程序。“程序程序”逐渐被专业化,它逐渐被专业化,它通常特指:为让计算机完成特定任务(如解决某一算题或控制某一过程)通常特指:为让计算机完成特定任务(如解决某

16、一算题或控制某一过程)而设计的指令序列。而设计的指令序列。从程序设计的角度来看,每个问题都涉及两个方面的内容:数据和从程序设计的角度来看,每个问题都涉及两个方面的内容:数据和操作操作。换言之,一个程序应包括以下两方面的内容:换言之,一个程序应包括以下两方面的内容:(1) (1) 对数据的描述,即数据结构(对数据的描述,即数据结构(data structuredata structure)。在程序中要)。在程序中要指定数据的类型和数据的组织形式。指定数据的类型和数据的组织形式。(2) (2) 对数据处理的描述,即算法(对数据处理的描述,即算法(algorithmalgorithm)。算法是为解决

17、一)。算法是为解决一个问题而采取的方法和步骤个问题而采取的方法和步骤。1.4 程序设计基础程序设计基础1.4.1 1.4.1 基本概念基本概念2 2数据结构数据结构计算机处理的对象是数据,数据是描述客观事物的数、字符以及计计算机处理的对象是数据,数据是描述客观事物的数、字符以及计算机能够接受和处理的信息符号的总称。数据结构是指数据的类型和数算机能够接受和处理的信息符号的总称。数据结构是指数据的类型和数据的组织形式。数据类型体现的数据的取值范围和合法的运算,数据的据的组织形式。数据类型体现的数据的取值范围和合法的运算,数据的组织形式体现了相关数据之间的关系。组织形式体现了相关数据之间的关系。数据

18、结构与算法有着密切的关系,只有明确了问题的算法,才能更数据结构与算法有着密切的关系,只有明确了问题的算法,才能更好地构造数据结构;但选择好的算法,常常依赖于好的数据结构。事实好地构造数据结构;但选择好的算法,常常依赖于好的数据结构。事实上,程序就是在数据的某些特定的表示方式和结构的基础上对抽象算法上,程序就是在数据的某些特定的表示方式和结构的基础上对抽象算法的具体描述。因此,编写一个程序的关键就是合理地组织数据和设计好的具体描述。因此,编写一个程序的关键就是合理地组织数据和设计好的算法。的算法。1.4 程序设计基础程序设计基础1.4.2 1.4.2 算法的算法的特性特性(1 1)有穷性)有穷性

19、(2 2)确定性)确定性3.3.功能功能丰富丰富4.4.表达力表达力强强5.5.移植移植性好性好1.4 程序设计基础程序设计基础1.4.3 1.4.3 算法的描述算法的描述算法的表示方法很多,常见的有自然语言、传统流程图、算法的表示方法很多,常见的有自然语言、传统流程图、N-SN-S图、图、伪代码、伪代码、PADPAD图等。图等。1 1用自然语言描述用自然语言描述自然语言就是人们日常使用的语言,可以是中文、英文等。用自然自然语言就是人们日常使用的语言,可以是中文、英文等。用自然语言表示的算法通俗易懂,但一般篇幅较冗长,表达上往往不易准确,语言表示的算法通俗易懂,但一般篇幅较冗长,表达上往往不易

20、准确,容易引起理解上的容易引起理解上的“歧义性歧义性”。所以,除了很简单的问题外,一般不使。所以,除了很简单的问题外,一般不使用这种描述。用这种描述。1.4 程序设计基础程序设计基础1.4.3 1.4.3 算法的描述算法的描述2 2用流程图用流程图描述描述1.4 程序设计基础程序设计基础1.4.3 1.4.3 算法的描述算法的描述4 4用伪代码描述用伪代码描述伪代码是一种介于自然语言和计算机语言之间的文字和符号,用来伪代码是一种介于自然语言和计算机语言之间的文字和符号,用来描述算法。伪代码的表现形式比较自由灵活,没有严谨的语法格式。描述算法。伪代码的表现形式比较自由灵活,没有严谨的语法格式。5

21、 5用计算机语言描述用计算机语言描述我们的任务是用计算机解题,也就是用计算机实现算法。计算机是我们的任务是用计算机解题,也就是用计算机实现算法。计算机是无法识别流程图和伪代码的。只有用计算机语言编写的程序,经编译成无法识别流程图和伪代码的。只有用计算机语言编写的程序,经编译成目标程序后,才能被计算机执行。因此,用任何方法描述的算法,还得目标程序后,才能被计算机执行。因此,用任何方法描述的算法,还得要将它转化成计算机语言程序。要将它转化成计算机语言程序。1.4 程序设计基础程序设计基础1.4.4 1.4.4 程序设计方法程序设计方法1. 1. 程序设计的一般步骤程序设计的一般步骤程序设计一般步骤

22、如下:程序设计一般步骤如下:(1) (1) 分析问题,确定解题方案分析问题,确定解题方案( (2) 2) 确定算法确定算法( (3) 3) 编写程序编写程序( (4) 4) 调试运行程序调试运行程序( (5) 5) 建立文档资料建立文档资料1.4 程序设计基础程序设计基础1.4.4 1.4.4 程序设计方法程序设计方法2. 2. 结构化程序设计方法结构化程序设计方法所谓结构化的程序设计方法就是所谓结构化的程序设计方法就是“按照一组能够提高程序的易读性按照一组能够提高程序的易读性和易维护性的规则进行程序设计的方法和易维护性的规则进行程序设计的方法”。其要点如下:。其要点如下:(1) (1) 程序

23、的质量标准是程序的质量标准是“清晰第一,效率第二清晰第一,效率第二”。(2) (2) 程序的设计采用程序的设计采用“自顶向下,逐步求精,模块化设计,结构化自顶向下,逐步求精,模块化设计,结构化编程编程”的方法。的方法。(3) (3) 程序的结构仅由顺序、分支、循环三种基本结构的组合、嵌套程序的结构仅由顺序、分支、循环三种基本结构的组合、嵌套而成,且满足:而成,且满足:( (4) 4) 程序的书写必须按一定的规范和格式进行程序的书写必须按一定的规范和格式进行。( (5) 5) 程序的设计风格要以好的可读性为标准,以使用程序的用户为程序的设计风格要以好的可读性为标准,以使用程序的用户为核心,外观美

24、观、结构流畅、语句简洁。核心,外观美观、结构流畅、语句简洁。1.5 情景应用情景应用训练项目训练项目1.5.1 1.5.1 项目项目1 1:VC+ 6.0VC+ 6.0开发工具的使用开发工具的使用 【训练目的训练目的】1 1熟悉熟悉Visual C+ 6.0Visual C+ 6.0环境。环境。2 2掌握创建工程、添加掌握创建工程、添加C C源程序的方法。源程序的方法。3 3熟悉熟悉C C程序编辑、编译、连接和运行的过程。程序编辑、编译、连接和运行的过程。4 4通过运行简单的通过运行简单的C C程序,初步了解程序,初步了解C C源程序的结构。源程序的结构。1.5 情景应用情景应用训练项目训练项

25、目1.5.1 1.5.1 项目项目1 1:VC+ 6.0VC+ 6.0开发工具的使用开发工具的使用 【操作步骤操作步骤】1 1启动启动Visual C+ 6.0, Visual C+ 6.0, 并创建工程并创建工程test.test.2 2. . 在在testtest工程中添加一个工程中添加一个temp1.ctemp1.c文件文件, ,并保存在并保存在D:MYCD:MYC路径下。路径下。3 3在在temp1.ctemp1.c程序中,编辑如下程序:程序中,编辑如下程序:#include #include main() main() intint a,b,ca,b,c; ; a a = 29; =

26、 29; b b = 30; = 30; c = a - b; c = a - b; printfprintf(%d(%dn,cn,c);); 4 4编译、连接并运行,观察运行结果。编译、连接并运行,观察运行结果。1.5 情景应用情景应用训练项目训练项目1.5.2 1.5.2 项目项目2: 2: 多程序文件的工程设置多程序文件的工程设置 【训练目的训练目的】1 1熟悉工程的打开和关闭。熟悉工程的打开和关闭。2 2熟悉工程设置方法。熟悉工程设置方法。【操作步骤操作步骤】1 1启动启动Visual C+ 6.0,Visual C+ 6.0,打开项目打开项目1 1中创建的工程中创建的工程testte

27、st。2 2在在testtest工程中,再创建添加一个工程中,再创建添加一个temp2.ctemp2.c文件。文件。3 3在在temp2.ctemp2.c文件中,模仿例文件中,模仿例1.11.1程序,编写输出程序,编写输出“Good Night!”Good Night!”的程序代码。的程序代码。4 4进行工程设置,分别对本工程中的每个进行工程设置,分别对本工程中的每个C C程序进行编译、连接和程序进行编译、连接和运行。运行。学习目标学习目标案例目标u 理解和掌握C语言的基本数据类型u 掌握变量三个要素:名称、类型和值学习目标学习目标学习目标u掌握C语言的基本字符、标识符和关键字u了解C语言的编

28、程规范u理解和掌握数据类型、常量与变量u理解和掌握运算符与表达式案例2 饮料交换问题【问题描述问题描述】小小明、景天和婷婷三人常在一起玩游戏。有一天,小明带来一杯明、景天和婷婷三人常在一起玩游戏。有一天,小明带来一杯雪碧,而婷婷带来一杯可乐。景天看了看他两的饮料,突然问道:你雪碧,而婷婷带来一杯可乐。景天看了看他两的饮料,突然问道:你两把饮料对换,但各自的杯不变,该怎么办?两把饮料对换,但各自的杯不变,该怎么办?聪明聪明的小明想了想,便立即给出了答案的小明想了想,便立即给出了答案:准备准备同样大小的第三个杯子,把雪碧倒入第三个杯子,可乐倒入同样大小的第三个杯子,把雪碧倒入第三个杯子,可乐倒入盛

29、雪碧的杯子,然后将第三个杯子中的雪碧倒入盛可乐的杯子。盛雪碧的杯子,然后将第三个杯子中的雪碧倒入盛可乐的杯子。请你编程,用请你编程,用C语言来描述小明对语言来描述小明对“两杯饮料交换问题两杯饮料交换问题”的求解。的求解。案例2 饮料交换问题【问题分析问题分析】小小明和婷婷两人交换饮料,可用两变量值交换的数学模型描述:明和婷婷两人交换饮料,可用两变量值交换的数学模型描述:定义变量定义变量a,b表示两个杯子,杯中的饮料就是变量中存储的数值。表示两个杯子,杯中的饮料就是变量中存储的数值。不失一般性,不同的容器用不同的变量表示,容器中的不同物资不失一般性,不同的容器用不同的变量表示,容器中的不同物资代

30、表不同数据。这涉及到代表不同数据。这涉及到C语言数据类型、变量的定义和引用。语言数据类型、变量的定义和引用。案例2 饮料交换问题【算法设计算法设计】把小明和婷婷的杯子分别有把小明和婷婷的杯子分别有a和和b表示,雪碧和可乐定义为变量表示,雪碧和可乐定义为变量a和和b中存储的数值。借助于一个空杯子,用变量中存储的数值。借助于一个空杯子,用变量c表示,两杯饮料的交表示,两杯饮料的交换算法如下:换算法如下:(1) 将将a杯中的雪碧倒入杯中的雪碧倒入c杯子中;杯子中;(2) 将将b杯中的可乐倒入杯中的可乐倒入a杯子中;杯子中;(3) 将将c杯中的雪碧倒入杯中的雪碧倒入b杯子中杯子中;案例2 饮料交换问题

31、参考参考代码如下:代码如下:#include void main()int a,b,c;a = 1; /*小明杯中注入可乐小明杯中注入可乐*/b = 2; /*婷婷杯中注入雪碧婷婷杯中注入雪碧*/c = a; /*将小明杯中的可乐注入空杯中将小明杯中的可乐注入空杯中*/a = b; /*将婷婷杯中的雪碧注入小明杯中将婷婷杯中的雪碧注入小明杯中*/b = c; /*将将C杯中的可乐注入小明杯中杯中的可乐注入小明杯中*/printf(a=%d,b=%dn,a,b);案例2 饮料交换问题【知识准备知识准备】数据,是数据,是C程序的处理对象。数据在处理时需要先存入计算机的程序的处理对象。数据在处理时需

32、要先存入计算机的内存中,不同类型的数据在内存中的存放形式是不同的。两杯饮料交内存中,不同类型的数据在内存中的存放形式是不同的。两杯饮料交换问题,数值化后,将涉及到换问题,数值化后,将涉及到C语言数据类型、变量定义等相关知识。语言数据类型、变量定义等相关知识。要完成上面的任务,必须要能理解要完成上面的任务,必须要能理解C语言的标识符、关键字、变语言的标识符、关键字、变量、数据类型、运算符和表达式等知识点。量、数据类型、运算符和表达式等知识点。2.1 字符集、标识符和关键字2.1.1 2.1.1 字符集字符集字符集是构成字符集是构成C语言的基本元素。用语言的基本元素。用C语言编写程序时,所写的语语

33、言编写程序时,所写的语句是由字符集中的字符构成。句是由字符集中的字符构成。C语言的字符集由下列字符构成:语言的字符集由下列字符构成:(1) 数字字符:数字字符:09;(2) 大小写英文字母:大小写英文字母:az,AZ;(3) 特殊字符:特殊字符: ! # % & * _(下划线下划线) - + = / | . , : ; ? “ ( ) (4) 空白字符:空格符、换行符、制表符等空白字符:空格符、换行符、制表符等。空白字符在程序中起分隔其他成分的作用,在程序中空白字符通空白字符在程序中起分隔其他成分的作用,在程序中空白字符通常不会影响程序的意义。写程序时,通常利用空白字符的这种性质,常不会影响

34、程序的意义。写程序时,通常利用空白字符的这种性质,把程序内容排列成适当的格式,以增强程序的可读性。把程序内容排列成适当的格式,以增强程序的可读性。2.1 字符集、标识符和关键字2.1.2 2.1.2 关键字(保留字)关键字(保留字)在在C语言中,有语言中,有32个关键字,如表个关键字,如表2-1所示。他们是由系统预先定所示。他们是由系统预先定义的专用词,它们有特别的含义。如义的专用词,它们有特别的含义。如int用来定义整数类型。在今后的用来定义整数类型。在今后的学习中将会逐步接触到这些关键字的具体使用方法。学习中将会逐步接触到这些关键字的具体使用方法。表表2-1 C2-1 C语言关键字语言关键

35、字2.1 字符集、标识符和关键字2.1.3 2.1.3 标识符标识符在编程过程中,用来标识变量名、符号常量、数组名、函数名、在编程过程中,用来标识变量名、符号常量、数组名、函数名、文件名等的有效字符序列称为文件名等的有效字符序列称为“标识符标识符”(identifier)。通俗地讲,)。通俗地讲,标识符就是名字。标识符就是名字。C语言对标识符有如下规定:语言对标识符有如下规定:(1) 标识符只能由字母(标识符只能由字母(az,AZ)、数字()、数字(09)和下划线)和下划线三种字符组成,且第一个字符必须为字母或下划线。三种字符组成,且第一个字符必须为字母或下划线。(2) 不能使用不能使用C语言

36、的关键字(或称保留字)作为标识符。语言的关键字(或称保留字)作为标识符。2.1 字符集、标识符和关键字2.1.4 C2.1.4 C语言的编程语言的编程规范规范1. 匈牙利命名法匈牙利命名法在标识符的命名法中最常见的就是匈牙利命名法,即标识符的名在标识符的命名法中最常见的就是匈牙利命名法,即标识符的名字由两部分组成,前面一部分即前缀表示类型,后面一部分用于表示字由两部分组成,前面一部分即前缀表示类型,后面一部分用于表示意义,采用首字母大写的英文单词或缩写。比如一个存储和数的变量,意义,采用首字母大写的英文单词或缩写。比如一个存储和数的变量,可以取名为可以取名为iSum,其只,其只i表示该变量是整

37、数,表示该变量是整数,Sum表示该变量是用来计表示该变量是用来计算和数的。算和数的。表表2-2 2-2 变量命名规则约定变量命名规则约定2.1 字符集、标识符和关键字2.1.4 C2.1.4 C语言的编程语言的编程规范规范2. 注释的合理使用注释的合理使用C语言的注释是以语言的注释是以“/*”开始,以开始,以“*/”结束。在这之间的所有内容结束。在这之间的所有内容编译程序认为是注释信息,编译时跳过它们。编译程序认为是注释信息,编译时跳过它们。注释通常用于以下几种情况:版本版权声明、函数接口说明和重注释通常用于以下几种情况:版本版权声明、函数接口说明和重要代码行或者段落说明。要代码行或者段落说明

38、。注释是提高可读性的重要手段,用于帮助别人理解代码,在使用注释是提高可读性的重要手段,用于帮助别人理解代码,在使用时可遵循以下原则:时可遵循以下原则:(1) 注释是对代码的解释,并不是文档。注释不可喧宾夺主,注释注释是对代码的解释,并不是文档。注释不可喧宾夺主,注释花样也要少。花样也要少。(2) 如果代码本身就很清楚,就没必要加注释。如果代码本身就很清楚,就没必要加注释。(3) 注释应当准确、易懂,防止出现二义性。注释应当准确、易懂,防止出现二义性。(4) 注释的位置要与描述的代码相邻,可放在代码上面或者右侧,注释的位置要与描述的代码相邻,可放在代码上面或者右侧,不要放在代码的下面。不要放在代

39、码的下面。2.1 字符集、标识符和关键字2.1.4 C2.1.4 C语言的编程语言的编程规范规范3. 程序中的程序中的“ ”要对齐要对齐(1)程序程序的分界符的分界符“”和和“”应占据一行并且位于同一列,同时与应占据一行并且位于同一列,同时与引用它们的语句左对齐引用它们的语句左对齐。(2)“”之内的代码块在之内的代码块在“”右侧空右侧空4个格处左对齐个格处左对齐。(3) 如果出现嵌套如果出现嵌套“”的情况,则使用缩进对齐的形式的情况,则使用缩进对齐的形式。2.1 字符集、标识符和关键字2.1.4 C2.1.4 C语言的编程语言的编程规范规范4. 合理使用空格使代码更规范合理使用空格使代码更规范

40、(1) 关键字之后要留一个空格。象关键字之后要留一个空格。象const、case等关键字之后要保留等关键字之后要保留一个空格,否则编译器无法辩析它是关键字。对一个空格,否则编译器无法辩析它是关键字。对if、for、while等关键等关键字之后应该留一个空格,然后再跟小括号字之后应该留一个空格,然后再跟小括号“(”,以突出显示关键字。,以突出显示关键字。(2) 在函数名之后不要留空格,要紧跟在函数名之后不要留空格,要紧跟“(”,以显示与关键字的,以显示与关键字的区别。区别。(3) “(”后向紧跟,后向紧跟,“)”、“,”、“;”前向紧跟,紧跟处前向紧跟,紧跟处不留空格。不留空格。(4) “,”之

41、后要留空格,如果之后要留空格,如果“;”不是一行的结束,则最后要不是一行的结束,则最后要留空格留空格。2.1 字符集、标识符和关键字2.1.4 C2.1.4 C语言的编程语言的编程规范规范4. 合理使用空格使代码更规范合理使用空格使代码更规范(5) 赋值运算符、关系运算符、算术运算符、逻辑运算符、位运算赋值运算符、关系运算符、算术运算符、逻辑运算符、位运算符,如符,如“=”、“+=”、“=”、“=”、“+”、“-”、“*”、“/”、“%”、“&”、“|”、“”等操作符,同样前后不加空格等操作符,同样前后不加空格。5换行使代码更清晰换行使代码更清晰代码行最大长度应该控制在代码行最大长度应该控制在

42、70-80个字符。长的表达式要在低优先个字符。长的表达式要在低优先级操作符处折分成新行,操作符放在新行的前面,用于突出显示操作级操作符处折分成新行,操作符放在新行的前面,用于突出显示操作符。折分出来的新行要适当缩进,使代码版式整齐,可读性强符。折分出来的新行要适当缩进,使代码版式整齐,可读性强。2.2 C语言的数据类型2.2.1 C2.2.1 C语言的数据类型语言的数据类型分类分类2.2 C语言的数据类型2.2.2 2.2.2 整型整型数据数据1整型的类别整型的类别在在C语言中,整型数据分为基本整型、短整型、长整型语言中,整型数据分为基本整型、短整型、长整型3大类。其大类。其中每一类又分为无符

43、号和有符号中每一类又分为无符号和有符号2种情况,如表种情况,如表2-3所示。所示。表表2-3 整型分类表整型分类表2.2 C语言的数据类型2.2.2 2.2.2 整型整型数据数据2 整型数据在内存中的的存储形式整型数据在内存中的的存储形式整型数据是以二进制数补码的形式存储的。对有符号数据,则存整型数据是以二进制数补码的形式存储的。对有符号数据,则存储单元的最高位为符号位,储单元的最高位为符号位,1表示负数,表示负数,0 表示正数。对无符号数据,表示正数。对无符号数据,则没有符号位,所有的存储单元均为数据位。以短整型数据在内存中则没有符号位,所有的存储单元均为数据位。以短整型数据在内存中占占2个

44、字节(个字节(16位)为例,来说明有符号数据和无符号数据在内存中位)为例,来说明有符号数据和无符号数据在内存中占用存储单元的区别,如占用存储单元的区别,如图所图所示。示。2.2 C语言的数据类型2.2.2 2.2.2 整型整型数据数据3求补码的方法求补码的方法在计算机中,整数有原码、反码和补码在计算机中,整数有原码、反码和补码3种表示方法。种表示方法。(1) 一个正数的反码和补码与原码相同一个正数的反码和补码与原码相同 (2) 负数的原码就是把符号位数值化负数的原码就是把符号位数值化 (3) 负数的反码,其原码的符号位不变,其它位按位取反负数的反码,其原码的符号位不变,其它位按位取反 (4)

45、负数的补码是反码末位(最右端位)加负数的补码是反码末位(最右端位)加1。2.2 C语言的数据类型2.2.3 2.2.3 实型数据实型数据1 1实型数据的类别实型数据的类别实型也称之为浮点型。在实型也称之为浮点型。在C C语言中,实型数据分为单精度语言中,实型数据分为单精度(floatfloat)、双精度()、双精度(doubledouble)和长双精度()和长双精度(long doublelong double)三种。实)三种。实型数均为有符号数据,没有无符号实型数,如表型数均为有符号数据,没有无符号实型数,如表2-42-4所示。所示。表表2-4 实型数据的分类实型数据的分类2.2 C语言的数

46、据类型2.2.3 2.2.3 实型数据实型数据2. 2. 实型数据的存储形式实型数据的存储形式实型数据在内存中是以指数形式存放的。系统把一个实型数据分实型数据在内存中是以指数形式存放的。系统把一个实型数据分成小数部分和指数部分,分别存放。其中,指数部分采用规范化的指成小数部分和指数部分,分别存放。其中,指数部分采用规范化的指数形式。一个实型数据数形式。一个实型数据3.14159=+0.314159X1013.14159=+0.314159X101在内存中的存放形式在内存中的存放形式如图如图2-52-5所示。所示。图图2-5 实型数据的存储形式实型数据的存储形式2.2 C语言的数据类型2.2.4

47、 2.2.4 字符型数据字符型数据字符型字符型数据分字符型和无符号字符型数据分字符型和无符号字符型2 2种,如表种,如表2-52-5所示。所示。图图2-5 实型数据的存储形式实型数据的存储形式2.3 常量与变量2.3.1 2.3.1 常常 量量常量可分为不同类型,常用的有:整型常量、实型常量、字符常常量可分为不同类型,常用的有:整型常量、实型常量、字符常量、字符串常量和符号常量。量、字符串常量和符号常量。1. 1. 整型常量整型常量整型常量由一个或多个数字组成,可以有正、负号,但不能有小整型常量由一个或多个数字组成,可以有正、负号,但不能有小数点。整型常量有三种表示方法:数点。整型常量有三种表

48、示方法:(1)(1)十进制十进制常量没有前缀,所含数字常量没有前缀,所含数字0 09 9。(2)(2)八进制八进制常量有前缀常量有前缀0 0(零),所含数字(零),所含数字0 07 7。(3(3) )十六进制十六进制常量有前缀常量有前缀0 x0 x或或0X0X,所含数字,所含数字0 09 9、A AF F或或a af f。2.3 常量与变量2.3.1 2.3.1 常常 量量2. 2. 实型常量实型常量实型常量,就是我们通常所说的实数,又称浮点数,它们在计算实型常量,就是我们通常所说的实数,又称浮点数,它们在计算机中是近似表示的。机中是近似表示的。C C语言中的实数只有十进制表示,有以下两种书语

49、言中的实数只有十进制表示,有以下两种书写形式:写形式:(1) (1) 十进制形式十进制形式由正负号、整数部分、小数点和小数部分组成。例如:由正负号、整数部分、小数点和小数部分组成。例如:123.9123.9、- -20.23420.234、0.12340.1234、0.00.0等都是正确的书写形式。等都是正确的书写形式。(2) (2) 指数形式指数形式也称科学表示形式,由正负号、整数部分、小数点、小数部分和也称科学表示形式,由正负号、整数部分、小数点、小数部分和字母字母E E或或e e后面带正负号的整数组成。后面带正负号的整数组成。2.3 常量与变量2.3.1 2.3.1 常常 量量3. 3.

50、 字符常量字符常量字符型常量是用一对单引号(即撇号)括起来的单个字符,在内字符型常量是用一对单引号(即撇号)括起来的单个字符,在内存中占一个字节存中占一个字节。例如例如: :aa ,bb,11,$,AA、# /# /正确的正确的字符常量字符常量 ABAB、ABAB、a /a /错误的字符常量错误的字符常量 一个字符常量的值是该字符对应的一个字符常量的值是该字符对应的ASCIIASCII码值(参见附录码值(参见附录A A)。)。例如,字符常量例如,字符常量a a z z 对应的对应的ASCIIASCII编码值是编码值是9797123123;字;字符常量符常量009 9 对应的对应的ASCIIAS

51、CII编码值是编码值是48485757。显然。显然00与数字与数字0 0是不是不同的。同的。 C C语言中还允许一种特殊形式的字符常量,即以反斜线语言中还允许一种特殊形式的字符常量,即以反斜线“”开开头的字符序列,称为头的字符序列,称为转义字符转义字符。例如,例如,printfprintf() () 函数中的函数中的 n n ,代表换行,而不是字符,代表换行,而不是字符n n 。2.3 常量与变量2.3.1 2.3.1 常常 量量4. 4. 字符串常量字符串常量字符串常量是用双引号括起来的字符序列。比如:字符串常量是用双引号括起来的字符序列。比如:CHINA, , CHINA, , teach

52、er and student , 12345.456 , ateacher and student , 12345.456 , a等都是字符串常量。等都是字符串常量。字符串常量一般用一个字符数组(参见第字符串常量一般用一个字符数组(参见第6 6章)来存储,每个字符占一章)来存储,每个字符占一个字节,存放其对应的个字节,存放其对应的ASCIIASCII码。字符串常量在内存中存储时,系统自动加码。字符串常量在内存中存储时,系统自动加上串尾标志上串尾标志0 0 。每个字符串常量在内存中占用的存储单元数目应为该字符串长度(字每个字符串常量在内存中占用的存储单元数目应为该字符串长度(字符个数)加符个数)

53、加1 1。2.3 常量与变量2.3.1 2.3.1 常常 量量5 5符号常量符号常量用用一个特定的符号来代替一个常量或一个较为复杂的字符串,这个符一个特定的符号来代替一个常量或一个较为复杂的字符串,这个符号称为符号常量。它通常由预处理命令号称为符号常量。它通常由预处理命令#define#define来定义。符号常量一般用大来定义。符号常量一般用大写字母表示,以便与其他标识符区别。写字母表示,以便与其他标识符区别。符号符号常量的一般定义形式:常量的一般定义形式:# #define define 符号常量标识符符号常量标识符 常量值(或常量值(或 字符串字符串 )2.3 常量与变量2.3.2 2.

54、3.2 变变 量量变量是指在程序运行过程中,其值可以改变的量。使用变量前必须先变量是指在程序运行过程中,其值可以改变的量。使用变量前必须先定义(声明),变量是用来保存常量的。变量有三个要素:名称、类型和定义(声明),变量是用来保存常量的。变量有三个要素:名称、类型和值。值。1 1 变量的名字变量的名字变量名字是一个标识符,所以要符合标识符的命名规则。变量名字是一个标识符,所以要符合标识符的命名规则。例如:例如:a, _a, _abcabc,AREAAREA,x1x1,x2 /x2 /合法的变量名合法的变量名4ac4ac,#g#g,a+1a+1,fn!afn!a,a$ /a$ /不合法的变量名不

55、合法的变量名2.3 常量与变量2.3.2 2.3.2 变变 量量2 2变量的定义变量的定义变量在使用之前必须先定义,要声明自己的数据类型、存储类型。变量在使用之前必须先定义,要声明自己的数据类型、存储类型。变量定义的一般格式为:变量定义的一般格式为:数据类型数据类型 变量名变量名1,1,变量名变量名2,2,,变量,变量n n;例如:例如:intint iSumiSum, , i L e n g t hi L e n g t h, x , y ; , x , y ; / / /定 义了定 义了 4 4个整型变量个整型变量iSum,iLength,x,yiSum,iLength,x,ychar c

56、har chch; ; /定义了一个字符型变量定义了一个字符型变量chchfloat float fSumfSum, , fWidthfWidth; ; /定义了定义了2 2实型(单精度)变量实型(单精度)变量fSumfSum, , fWidthfWidthdouble double u,vu,v; ; /定义了定义了2 2实型(双精度)变实型(双精度)变量量u,vu,v2.3 常量与变量2.3.2 2.3.2 变变 量量3 3变量的初始化变量的初始化C C语言允许在定义变量的同时使变量初始化。如:语言允许在定义变量的同时使变量初始化。如:intint a = 2; a = 2; /定义定义a

57、 a为整型变量,初值为为整型变量,初值为2 2char b = A; char b = A; /定义定义b b为字符型变量,初值为字符型变量,初值为为AAfloat x = 2.1234F; float x = 2.1234F; /定义定义x x为实型变量,初值为为实型变量,初值为2.1234F2.1234F也可对被定义的变量的部分变量进行初始化。如也可对被定义的变量的部分变量进行初始化。如intint u,vu,v = 10,w; = 10,w; /定义定义u,v,wu,v,w为整型变量,为整型变量,v v的初值为的初值为10102.4 运算符与表达式2.4.1 2.4.1 C C语言运算符

58、语言运算符常用的常用的C C语言的运算符有以下几类:语言的运算符有以下几类:(1) (1) 算术运算符:算术运算符: * * (2) (2) 关系运算符:关系运算符: = = = != = = = !=(3) (3) 逻辑运算符:逻辑运算符: ! & |& |(4) (4) 强制类型转换运算符:()强制类型转换运算符:()(5) (5) 自增、自减运算符:自增、自减运算符: (6) (6) 赋值运算符:赋值运算符: = =(7) (7) 条件运算符:条件运算符: ? :(8) (8) 逗号运算符:逗号运算符: ,2.4 运算符与表达式2.4.1 2.4.1 C C语言运算符语言运算符常用的常用

59、的C C语言的运算符有以下几类:语言的运算符有以下几类:( (9) 9) 指针运算符:指针运算符: * * & &(10) (10) 求字节数运算符:求字节数运算符:sizeofsizeof(11) (11) 位运算符:位运算符: | & | &(12) (12) 分量运算符:分量运算符: (13) (13) 下标运算符:下标运算符: 2.4 运算符与表达式2.4.2 2.4.2 算术运算符和算术表达式算术运算符和算术表达式C C语言的算术运算符包括基本算术运算符、强制类型转换运算符和自增、语言的算术运算符包括基本算术运算符、强制类型转换运算符和自增、自减运算符。自减运算符。1. 1. 基本算

60、术运算符基本算术运算符 C C语言提供如下几种基本算术运算符。语言提供如下几种基本算术运算符。 + + :加法运算符。如:加法运算符。如2+3,a+b2+3,a+b。 - - :减法运算符。如:减法运算符。如2-3,a-b2-3,a-b。 * * :乘法运算符。如:乘法运算符。如2 2* *3,a3,a* *b b。 / / :除法运算符。如:除法运算符。如2/3,a/b2/3,a/b。 % % :取余运算符。如:取余运算符。如10%2,a%b10%2,a%b。其中,加、减、乘、除运算符,与数学中的运算相同。其中,加、减、乘、除运算符,与数学中的运算相同。2.4 运算符与表达式2.4.2 2.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论