C语言程序设计
书 号:9787113204723
丛 书 名:
作 者:徐凤生 黄超 谢玉华
译 者:
开 本:16开
装 帧:平装
正文语种:
出 版 社:中国铁道出版社有限公司
定 价:34元
-
内容简介
本书是在作者多年教学经验的基础上编写而成,全书共分为12章,内容包括C语言程序设计基础知识、各种数据类型和常用库函数、各种运算符和表达式、程序控制语句、数组、函数、指针、结构体与共用体、编译预处理、文件、常用算法以及C程序设计举例等。本书是山东省省级教学团队项目的研究成果,在内容安排上,注重理论与实践相结合,突出学生编程能力的培养。
本书适合作为高等学校计算机及相关专业“C语言程序设计”课程的教材,也可作为全国计算机等级考试二级C语言程序设计的培训教材。 -
前言
C 语言既具备高级语言的特点,又具有直接操纵计算机硬件的能力,并因其丰富灵活的控制
和数据结构、简洁而高效的语句表达、清晰的程序结构和良好的可移植性而拥有大量的使用者。
目前,国内几乎所有高校都开设了“C 语言程序设计”课程,该课程不仅是计算机学科的主干课
程,也成为理工科专业计算机基础训练的必修课。
本书是在编者多年教学经验的基础上编写而成,共分为12 章,内容包括C 语言程序设计基
础知识、各种数据类型和常用库函数、各种运算符和表达式、程序控制语句、数组、函数、指针、
结构体与共用体、编译预处理、文件、常用算法与以及语言程序设计举例等。
本书具有如下特色:
(1)语言通俗易懂,阐述简洁明了。
(2)遵循“注重理论、强化实践”的核心思想,注重各部分知识的综合应用训练,以提高
学生的程序设计能力。
(3)例题丰富,分析透彻,讲解清楚,不仅有效降低了学习难度,而且突出了算法思想设计。
(4)通过典型例题的分析,使学生对所学知识更加系统化和条理化,更易于对所学知识的
融会贯通和举一反三。
(5)所有程序示例都在VC++ 6.0 环境下调试通过。每章都配有上机实验和习题,便于学生
课后及时练习。
(6)为了便于教师教学,本书配有电子课件和习题答案,可与出版社直接联系或发送邮件
至xfs@dzu.edu.cn 与作者联系索取。
在编写中我们参阅了许多C 语言程序设计教材和相关资料,在此向其作者一并表示感谢。本
书的出版得到了德州学院教材出版基金和山东省“信息与计算科学”省级教学团队项目的资助。
最后,还要特别感谢中国铁道出版社的大力支持,使得本书得以顺利出版。
限于编者水平,书中难免存在疏漏和不足之处,恳请读者不吝指正。
编 者
2015年3月于德州学院 -
目录
第1章 C语言概述................................................................................................................... 1
1.1 C语言的发展历史与特点................................................................................................ 1
1.1.1 C语言的发展历史..........................................................................................................1
1.1.2 C语言的特点..................................................................................................................2
1.2 程序设计与算法............................................................................................................... 3
1.2.1 程序设计..........................................................................................................................3
1.2.2 算法的特征.....................................................................................................................3
1.2.3 算法设计的原则.............................................................................................................3
1.2.4 算法的描述方法.............................................................................................................4
1.2.5 算法的时间复杂度和空间复杂度.................................................................................5
1.3 C语言程序示例................................................................................................................ 5
1.4 C语言的基本语法元素.................................................................................................... 7
1.4.1 C语言的基本词法..........................................................................................................7
1.4.2 C语言的主要语法单位..................................................................................................8
1.5 C语言程序设计求解问题的步骤.................................................................................. 10
1.6 C语言程序的调试方法.................................................................................................. 11
1.6.1 静态调试........................................................................................................................12
1.6.2 动态调试........................................................................................................................13
1.7 典型例题......................................................................................................................... 14
1.8 上机实验......................................................................................................................... 15
习题1 ...................................................................................................................................... 15
第2章 数据类型、运算符与表达式........................................................................................ 17
2.1 数据类型......................................................................................................................... 17
2.1.1 基本类型........................................................................................................................17
2.1.2 其他数据类型...............................................................................................................19
2.2 常量................................................................................................................................ 19
2.2.1 整型常量........................................................................................................................20
2.2.2 实型常量........................................................................................................................20
2.2.3 字符型常量...................................................................................................................20
2.2.4 字符串常量...................................................................................................................21
2.2.5 符号常量........................................................................................................................22
2.3 变量................................................................................................................................ 22
2.3.1 变量的定义...................................................................................................................23
2.3.2 变量赋初值...................................................................................................................23
contents
目录
2
C 语言程序设计
2.3.3 整型变量....................................................................................................................... 23
2.3.4 实型变量....................................................................................................................... 24
2.3.5 字符型变量................................................................................................................... 25
2.4 各种数据类型的转换...................................................................................................... 25
2.4.1 隐式转换....................................................................................................................... 25
2.4.2 强制转换....................................................................................................................... 26
2.5 运算符和表达式............................................................................................................. 26
2.5.1 算术运算符与算术表达式.......................................................................................... 28
2.5.2 关系运算符和关系表达式.......................................................................................... 30
2.5.3 逻辑运算符和逻辑表达式.......................................................................................... 31
2.5.4 赋值运算符和赋值表达式.......................................................................................... 32
2.5.5 逗号运算符和逗号表达式.......................................................................................... 33
2.5.6 条件运算符和条件表达式.......................................................................................... 33
2.5.7 位运算符....................................................................................................................... 34
2.6 典型例题......................................................................................................................... 37
2.7 上机实验......................................................................................................................... 38
习题2 ...................................................................................................................................... 39
第3章 顺序结构程序设计...................................................................................................... 42
3.1 数据输出......................................................................................................................... 42
3.1.1 字符输出函数putchar() ............................................................................................... 42
3.1.2 格式输出函数printf() ................................................................................................... 43
3.2 数据输入......................................................................................................................... 46
3.2.1 字符输入函数getchar() ................................................................................................ 46
3.2.2 格式输入函数scanf() ................................................................................................... 47
3.3 顺序结构......................................................................................................................... 49
3.4 典型例题......................................................................................................................... 50
3.5 上机实验......................................................................................................................... 52
习题3 ...................................................................................................................................... 53
第4章 分支结构程序设计...................................................................................................... 56
4.1 if语句..............................................................................................................................56
4.1.1 if语句的3种基本形式............................................................................................... 56
4.1.2 if语句的嵌套................................................................................................................ 58
4.2 switch语句...................................................................................................................... 59
4.3 典型例题......................................................................................................................... 62
4.4 上机实验......................................................................................................................... 65
习题4 ...................................................................................................................................... 66
第5章 循环结构程序设计...................................................................................................... 70
5.1 while语句........................................................................................................................ 70
5.2 do-while 语句.................................................................................................................. 71
3
目 录
5.3 for语句............................................................................................................................ 73
5.4 循环的嵌套..................................................................................................................... 75
5.5 break和continue语句.................................................................................................... 76
5.5.1 break语句..................................................................................................................... 76
5.5.2 continue语句................................................................................................................ 76
5.6 典型例题......................................................................................................................... 77
5.7 上机实验......................................................................................................................... 79
习题5 ...................................................................................................................................... 81
第6章 数组............................................................................................................................ 85
6.1 一维数组......................................................................................................................... 85
6.1.1 一维数组的定义........................................................................................................... 85
6.1.2 一维数组的初始化....................................................................................................... 86
6.1.3 一维数组的引用........................................................................................................... 86
6.2 二维数组......................................................................................................................... 88
6.2.1 二维数组的定义........................................................................................................... 88
6.2.2 二维数组的初始化....................................................................................................... 89
6.2.3 二维数组的引用........................................................................................................... 89
6.3 字符数组与字符串......................................................................................................... 90
6.3.1 字符数组的定义与初始化.......................................................................................... 90
6.3.2 字符数组的输入和输出............................................................................................... 91
6.3.3 字符串处理函数........................................................................................................... 93
6.4 典型例题......................................................................................................................... 97
6.5 上机实验......................................................................................................................... 99
习题6 .................................................................................................................................... 101
第7章 函数.......................................................................................................................... 105
7.1 函数定义....................................................................................................................... 105
7.1.1 无参函数..................................................................................................................... 105
7.1.2 有参函数..................................................................................................................... 106
7.2 函数声明....................................................................................................................... 107
7.3 参数的返回与参数传递................................................................................................ 108
7.3.1 函数的返回................................................................................................................. 108
7.3.2 形参与实参................................................................................................................. 109
7.4 函数调用....................................................................................................................... 110
7.4.1 函数调用的一般形式................................................................................................. 110
7.4.2 函数的传值调用......................................................................................................... 111
7.4.3 按地址传送方式传递数据........................................................................................ 112
7.5 函数的嵌套与递归调用................................................................................................ 113
7.5.1 函数的嵌套调用......................................................................................................... 113
7.5.2 函数的递归调用......................................................................................................... 114
7.6 数组与函数参数........................................................................................................... 115
4
C 语言程序设计
7.6.1 数组元素作为函数实参............................................................................................. 115
7.6.2 数组名作为函数参数................................................................................................. 115
7.6.3 多维数组名作为函数参数........................................................................................ 116
7.7 变量的作用域............................................................................................................... 117
7.7.1 局部变量..................................................................................................................... 117
7.7.2 全局变量..................................................................................................................... 118
7.8 变量的存储类型........................................................................................................... 119
7.8.1 自动变量..................................................................................................................... 120
7.8.2 静态变量..................................................................................................................... 121
7.8.3 寄存器变量................................................................................................................. 123
7.8.4 外部变量..................................................................................................................... 123
7.9 内部函数与外部函数.................................................................................................... 125
7.9.1 内部函数..................................................................................................................... 125
7.9.2 外部函数..................................................................................................................... 125
7.10 典型例题..................................................................................................................... 126
7.11 上机实验..................................................................................................................... 129
习题7 .................................................................................................................................... 131
第8章 指针.......................................................................................................................... 136
8.1 指针与指针变量........................................................................................................... 136
8.1.1 地址与指针的概念..................................................................................................... 136
8.1.2 指针变量..................................................................................................................... 137
8.1.3 指针运算..................................................................................................................... 138
8.1.4 二级指针..................................................................................................................... 139
8.2 指针与数组................................................................................................................... 140
8.2.1 指向一维数组的指针................................................................................................. 140
8.2.2 指向多维数组的指针................................................................................................. 141
8.2.3 指向字符串的指针..................................................................................................... 143
8.2.4 指针数组..................................................................................................................... 144
8.3 指针与函数................................................................................................................... 145
8.3.1 指针变量作为函数参数............................................................................................. 146
8.3.2 指向函数的指针......................................................................................................... 147
8.3.3 返回值为指针的函数................................................................................................. 149
8.4 带参数的主函数........................................................................................................... 150
8.5 用指针实现内存动态分配............................................................................................ 151
8.6 典型例题....................................................................................................................... 152
8.7 上机实验....................................................................................................................... 156
习题8 .................................................................................................................................... 158
第9章 结构体与共用体........................................................................................................ 163
9.1 结构体类型................................................................................................................... 163
9.1.1 结构体类型定义......................................................................................................... 163
5
目 录
9.1.2 结构体类型变量的定义............................................................................................. 164
9.1.3 结构体变量的引用..................................................................................................... 165
9.1.4 结构体变量的初始化................................................................................................. 166
9.1.5 结构体变量的赋值..................................................................................................... 166
9.2 结构体数组................................................................................................................... 167
9.2.1 结构体数组的定义..................................................................................................... 167
9.2.2 结构体数组的初始化................................................................................................. 167
9.3 结构体和指针............................................................................................................... 168
9.3.1 指向结构体变量的指针............................................................................................. 168
9.3.2 指向结构体数组的指针............................................................................................. 169
9.4 结构体和函数............................................................................................................... 170
9.4.1 结构体变量作为函数参数........................................................................................ 170
9.4.2 指向结构体变量的指针作为函数参数.................................................................... 170
9.4.3 返回结构体数据的函数............................................................................................. 171
9.4.4 返回结构体指针的函数............................................................................................. 172
9.5 共用体........................................................................................................................... 172
9.5.1 共用体类型的定义..................................................................................................... 172
9.5.2 共用体类型变量的定义............................................................................................. 173
9.5.3 共用体变量的引用..................................................................................................... 173
9.6 枚举类型....................................................................................................................... 174
9.6.1 枚举类型的定义......................................................................................................... 174
9.6.2 枚举变量的定义......................................................................................................... 174
9.6.3 枚举变量的使用......................................................................................................... 175
9.7 用typedef定义类型...................................................................................................... 176
9.8 单链表........................................................................................................................... 176
9.9 典型例题....................................................................................................................... 180
9.10 上机实验..................................................................................................................... 182
习题9 .................................................................................................................................... 184
第10章 编译预处理............................................................................................................. 190
10.1 宏定义......................................................................................................................... 190
10.1.1 不带参数的宏定义................................................................................................... 190
10.1.2 带参数的宏定义....................................................................................................... 192
10.1.3 终止宏定义............................................................................................................... 193
10.2 文件包含..................................................................................................................... 193
10.3 条件编译..................................................................................................................... 194
10.4 典型例题..................................................................................................................... 197
10.5 上机实验..................................................................................................................... 198
习题10 .................................................................................................................................. 199
第11章 文件........................................................................................................................ 201
11.1 文件的基本概念.......................................................................................................... 201
6
C 语言程序设计
11.1.1 文件与文件名........................................................................................................... 201
11.1.2 文件的分类............................................................................................................... 201
11.1.3 文件指针................................................................................................................... 202
11.1.4 ANSI C的缓冲文件系统......................................................................................... 203
11.2 文件的打开与关闭...................................................................................................... 203
11.2.1 文件打开函数fopen()............................................................................................... 203
11.2.2 文件关闭函数fclose() .............................................................................................. 204
11.3 文件的读写操作.......................................................................................................... 204
11.3.1 字符读写函数fgetc()和fputc()................................................................................. 204
11.3.2 字符串读写函数fgets()和fputs() ............................................................................. 206
11.3.3 数据块读写函数fread()和fwrite() ........................................................................... 207
11.3.4 格式化读写函数fscanf()和fprintf() ......................................................................... 208
11.4 文件检测函数............................................................................................................. 209
11.4.1 文件结束检测函数feof().......................................................................................... 209
11.4.2 读写文件出错检测函数ferror()............................................................................... 210
11.4.3 文件出错标志和文件结束标志置0函数clearerr() .............................................. 210
11.5 位置指针与文件定位.................................................................................................. 211
11.5.1 位置指针复位函数rewind()..................................................................................... 212
11.5.2 随机读写函数fseek() ............................................................................................... 212
11.5.3 返回文件当前位置函数ftell() ................................................................................. 213
11.6 典型例题..................................................................................................................... 214
11.7 上机实验..................................................................................................................... 217
习题11 .................................................................................................................................. 218
第12章 常用算法与C程序设计举例................................................................................... 222
12.1 常用算法..................................................................................................................... 222
12.1.1 二分法....................................................................................................................... 222
12.1.2 迭代法....................................................................................................................... 223
12.1.3 穷举法....................................................................................................................... 224
12.1.4 递推法....................................................................................................................... 224
12.1.5 递归法....................................................................................................................... 225
12.1.6 回溯法....................................................................................................................... 226
12.2 C程序设计举例.......................................................................................................... 227
12.2.1 学生成绩管理系统................................................................................................... 227
12.2.2 通讯录管理系统....................................................................................................... 234
附录....................................................................................................................................... 239
附录A 常用字符与ASCII代码对照表...................................................................................... 239
附录B C语言常用库函数........................................................................................................... 240
参考文献................................................................................................................................ 243 -
作者介绍
徐凤生,硕士,教授,1982.9-1986.6,聊城师范学院数学专业学习;1989.9-1992.6,北京师范大学数学系研究生。1986.9-1989.8,1992.9-2009.12,在德州学院数学系、计算机系任教;2010.1-至今,在德州学院数学科学学院任教。主持省自然科学基金项目1项,主研省级以上科研课题3项,主持市厅级课题4项,在核心以上期刊发表论文50多篇,其中SCI检索2篇、EI检索8篇,获市厅级以上科研奖励10多项,现为校级学术骨干。主持或主研省级以上教研课题4项,主编教材4部,副主编教材3部,参编教材2部,获省级教学成果三等奖2项,主持省级精品课程2门、省级教学团队1个,现为校级教学名师。黄超,枣庄学院信息科学与工程学院副院长,主教计算机应用基础,C语言程序设计,多媒体技术等课程,发表论文多篇,主编或参编教材多部。谢玉华,女,31岁。1998年毕业于山东师范大学教育技术学专业,现在职就读山东科技大学计算机软件与理论专业研究生。 主讲课程:C 程序设计 计算机辅助教育 网络教育应用 VFP程 序设计 科研成果:滨州学院学报发表论文2篇 参编教材一部《现代教 育技术》石油大学出版社出版。研究方向:数据库系统,计算机辅助教育。 -
编辑推荐
-
书评书荐
-
附件下载
图书推荐