本书作为C语言程序设计的入门与应用教材,共分13章,主要内容包括:C语言概述、C语言程序设计的初步知识、顺序结构程序设计、选择结构程序设计、循环结构程序设计、数组、函数、编译预处理、指针、构造数据类型、文件、位运算、项目实践等。本书注重基础,突出应用。每章最后一节为“小型案例实训”,以便于读者能够综合运用本章知识点提高实际编程能力。全书最后一章详细分析了一个实际项目的开发全过程,包括系统分析及功能实现。在项目实例中综合应用前面各章所学的C语言知识,从而能够帮助读者将前面所学的知识点串联起来,真正能够从程序设计的角度加以灵活运用。
本书易教易学、学以致用、注重能力,对初学者容易混淆的内容进行了重点提示和讲解。本书适合作为普通高等院校应用型本科(含部分专科、高职类)各相关专业的程序设计教材,也适合编程开发人员培训、自学使用。
本书配有电子教案,并提供程序源代码,以方便读者自学。
前 言
为适应当前普通高等院校注重培养应用型人才的需求,清华大学出版社推出了《高等院校应用型特色规划教材》丛书。本书是系列丛书中的一本,依据普通高等院校教学大纲以及实际开发经验组织内容,注重理论的严谨性和完整性,案例丰富、实用性强,力求使学生在掌握C编程语言的同时获得程序开发的基本思想并得到一定程度的项目开发实训,以培养学生独立开发较为复杂系统的能力。
C语言功能丰富、表达能力强,使用灵活方便,应用面广,具有完善的模块程序结构,可移植性好,它的高级语言形式、低级语言功能具有独特的魅力,使用C语言进行程序设计已成为软件开发的一个主流。现今,C语言已被大多数高等院校作为典型的计算机教学语言。
本书作为C语言程序设计的入门与应用教材,共分13章,主要内容包括:C语言概述、C语言程序设计的初步知识、顺序结构程序设计、选择结构程序设计、循环结构程序设计、数组、函数、编译预处理、指针、构造数据类型、文件、位运算、项目实践等。本书注重基础,突出应用,每章最后一节为“小型案例实训”,以便于读者能够综合运用本章所学知识点提高实际编程能力。全书最后一章给出了一个综合的项目开发实例,并详细分析了项目开发的全过程,便于学生能够将前面所学的知识点串联起来,真正掌握程序设计的核心内容。
本书具有如下特色:
1. 易于教学和自学,适合初学者
充分考虑到初学者学习C语言的特点,本书按照循序渐进、难点分散的原则组织内容。通过通俗易懂的叙述,阐明复杂、灵活的概念。对于难点与重点,通过丰富的示例,进行详尽的解释。力求做到语言通俗、概念清晰、易学实用,以使读者能够做到上手快、学得会、用得着。本书配有电子教案,并提供程序源代码,以方便读者自学。
2. 注重基础内容,突出实用性
C语言博大精深。这里我们精选了最基本、对初学者最重要、最实用的内容进行介绍,不刻意追求所谓的全面和详尽。对于较生僻的内容,也从概念讲解入手进行简单介绍,以保证C语言本身的完整性。力求做到内容新颖、实用,逻辑性强,完整性好,且又突出重点。
3. 强化编程思想,突出应用性
本书不只是讲解C语言的语法规则,更重要的是培养读者的C语言程序设计能力。不是送诸位一条鱼,而是教会诸位钓鱼的方法。全书始终强化编程思想,通过例题、习题、小型案例和项目案例,有意识地不断强化,给读者以潜移默化的影响。希望读者一定要重视动手编程的能力。衡量这门课学习的好坏,不是看“知不知道”,而是看“会不会干”。
本书适合作为普通高等院校应用型本科(含部分专科、高职类)各相关专业的程序设计教材,也适合编程开发人员培训和自学使用。
本书配有电子教案,并提供程序源代码,以方便读者自学,请到www.wenyuan. com.cn下载。
特别感谢安徽师范大学计算机学院许勇院长在百忙之中审读了书稿,亦感谢中兴通讯股份有限公司的资深高级程序员王国全提供了宝贵的修改意见并编写了第13章。本书由何光明、杨静宇教授主编,李勇智、王国全、李海副主编。在成书过程中,李晓红、唐才琴、杨明、杨萍、赵传审、许娟、尹晓睿、史国川、史春联、周松、赵明、陈智等同志对本书亦作出了重要贡献,他们在内容编写、程序测试、文字校对等过程中付出了辛勤劳动,在此一并表示感谢。
限于作者水平,书中难免存在不当之处,恳请广大读者批评指正。任何批评和建议请发至:Book21Press@126.com。
作者
??
??
??
??
VI
C语言程序设计与应用开发
103
第3章 Delphi数据库基础
目 录
第1章 C语言概述1
1.1 C语言的发展及特点1
1.1.1 C语言的发展1
1.1.2 C语言的特点2
1.2 C语言程序的格式、构成及其
基本要求3
1.2.1 C语言程序的格式4
1.2.2 C语言程序的构成4
1.2.3 C语言程序的基本要求6
1.3 C语言程序上机调试步骤和方法6
1.4 算法9
1.4.1 算法的概念9
1.4.2 算法的特性9
1.4.3 算法的表示方法10
1.4.4 结构化程序设计10
1.5 小结12
1.6 习题13
第2章 C语言程序设计的初步知识15
2.1 C语言的数据类型15
2.2 常量、变量和标识符16
2.2.1 标识符16
2.2.2 常量17
2.2.3 变量18
2.3 整型数据20
2.3.1 整型常量20
2.3.2 整型变量21
2.4 实型数据23
2.4.1 实型常量23
2.4.2 实型变量23
2.5 字符型数据24
2.5.1 字符常量24
2.5.2 字符变量25
2.5.3 字符串常量27
2.6 算术运算符和算术表达式28
2.6.1 基本的算术运算符和算术
表达式28
2.6.2 算术运算符的优先级、
结合性29
2.7 赋值运算符和赋值表达式29
2.7.1 基本赋值运算符29
2.7.2 复合赋值运算符29
2.7.3 赋值表达式30
2.8 逗号运算符和逗号表达式31
2.9 自增运算符、自减运算符及C语言
运算符的优先级32
2.9.1 自增运算符32
2.9.2 自减运算符32
2.9.3 C语言运算符的优先级
与结合性33
2.10 不同类型数据间的混合运算34
2.11 典型例题解析35
2.12 小结37
2.13 习题38
第3章 顺序结构程序设计41
3.1 C语句41
3.2 数据的输出43
3.2.1 字符输出函数
(putchar函数)43
3.2.2 格式输出函数
(printf函数)43
3.3 数据的输入47
3.3.1 字符输入函数
(getchar函数)47
3.3.2 格式输入函数(scanf函数)47
3.4 小型案例实训49
3.5 小结51
3.6 习题52
第4章 选择结构程序设计55
4.1 关系运算符和关系表达式55
4.1.1 关系运算符及其优先级55
4.1.2 关系表达式56
4.2 逻辑运算符和逻辑表达式57
4.2.1 逻辑运算符及其
优先级次序57
4.2.2 逻辑表达式58
4.3 条件运算符和条件表达式59
4.4 if语句60
4.4.1 if语句的三种形式60
4.4.2 if语句的嵌套63
4.5 switch语句65
4.5.1 switch语句65
4.5.2 break语句66
4.6 程序举例67
4.7 小型案例实训70
4.8 小结73
4.9 习题74
第5章 循环结构程序设计78
5.1 while语句78
5.1.1 while循环的一般格式78
5.1.2 while循环的执行过程79
5.2 do-while语句80
5.2.1 do-while循环的一般格式80
5.2.2 do-while循环的执行过程81
5.3 for语句82
5.3.1 for循环的一般格式83
5.3.2 for循环的执行过程83
5.4 break语句和continue语句在
循环体中的作用85
5.4.1 break语句在循环体中
的作用85
5.4.2 continue语句在循环体中
的作用85
5.5 语句标号和goto语句86
5.5.1 语句标号86
5.5.2 goto语句87
5.6 循环结构的嵌套87
5.7 小型案例实训89
5.8 小结91
5.9 习题92
第6章 数组97
6.1 一维数组97
6.1.1 一维数组的定义97
6.1.2 一维数组元素的引用98
6.1.3 一维数组的初始化99
6.1.4 一维数组的应用99
6.2 二维数组101
6.2.1 二维数组的定义101
6.2.2 二维数组元素的引用102
6.2.3 二维数组的初始化102
6.2.4 二维数组的应用104
6.3 字符数组106
6.3.1 字符数组的定义及初始化106
6.3.2 字符数组的引用107
6.3.3 字符串处理函数108
6.3.4 字符串数组112
6.4 小型案例实训113
6.5 小结115
6.6 习题116
第7章 函数120
7.1 函数的概念120
7.1.1 库函数的使用120
7.1.2 函数的定义122
7.2 函数的参数和返回值124
7.2.1 函数的参数124
7.2.2 函数的返回值125
7.2.3 函数的声明126
7.3 函数的参数传递方式128
7.3.1 普通变量作为函数参数128
7.3.2 数组作为函数参数128
7.4 函数的调用130
7.4.1 函数的一般调用130
7.4.2 函数的嵌套调用131
7.4.3 函数的递归调用132
7.5 变量的作用域和存储类型135
7.5.1 变量的作用域135
7.5.2 变量的存储类型136
7.6 函数的作用范围141
7.6.1 内部函数142
7.6.2 外部函数142
7.7 小型案例实训144
7.8 小结145
7.9 习题147
第8章 编译预处理151
8.1 宏定义151
8.1.1 无参宏151
8.1.2 带参宏153
8.1.3 终止宏定义155
8.2 文件包含命令155
8.3 条件编译157
8.4 小型案例实训160
8.5 小结162
8.6 习题163
第9章 指针166
9.1 指针的概述166
9.2 指针变量167
9.2.1 指针变量的定义167
9.2.2 指针变量的引用168
9.2.3 指针变量的运算171
9.3 指针与数组172
9.3.1 指针与一维数组172
9.3.2 指针与二维数组175
9.3.3 指向行指针的指针变量177
9.4 指针与字符串178
9.5 指针数组181
9.6 指针与函数182
9.6.1 指针变量作为函数
的参数182
9.6.2 数组名作为函数参数183
9.6.3 函数的返回值为指针185
9.6.4 指向函数的指针186
9.6.5 指向函数的指针作为
函数参数188
9.7 指向指针的指针189
9.8 main()函数的形参和void指针192
9.8.1 指针数组作为main
函数的形参192
9.8.2 指向void的指针变量193
9.8.3 动态存储分配194
9.9 典型例题分析196
9.10 小型案例实训199
9.11 小结201
9.12 习题203
第10章 构造数据类型210
10.1 结构体210
10.1.1 结构体定义210
10.1.2 结构体变量212
10.1.3 结构体变量的使用213
10.2 结构体与函数218
10.2.1 结构变量与数组结构作
函数参数218
10.2.2 结构变量作为函数
的返回值220
10.3 结构体与指针221
10.3.1 结构体变量指针221
10.3.2 结构体数组指针222
10.4 链表224
10.4.1 链表概述224
10.4.2 链表的基本操作225
10.5 共用体230
10.6 枚举类型232
10.7 typedef类型声明234
10.8 小型案例实训235
10.9 小结241
10.10 习题243
第11章 文件249
11.1 文件概述249
11.2 文件类型指针250
11.3 文件的基本操作251
11.3.1 文件的打开251
11.3.2 文件的关闭252
11.3.3 文件读函数253
11.3.4 文件的写函数256
11.4 文件的定位函数261
11.5 文件出错检测函数264
11.6 文件综合实例265
11.7 小型案例实训268
11.8 小结274
11.9 习题275
第12章 位运算280
12.1 位的运算280
12.2 位段286
12.3 小型案例实训287
12.4 小结290
12.5 习题291
第13章 项目实践293
13.1 软件开发过程293
13.1.1 可行性和需求分析293
13.1.2 系统设计294
13.1.3 软件编码298
13.1.4 软件测试302
13.1.5 小结302
13.2 旅店管理系统303
13.2.1 需求分析303
13.2.2 系统设计303
13.2.3 程序代码306
13.2.4 软件测试333
附录 各章习题参考答案335
参考文献355
??
??
??
??
VIII
C语言程序设计与应用开发
IX
目录