中国高等院校计算机基础教育课程体系规划教材 C程序设计教程 第3版
作者:谭浩强著
出版时间: 2018年版
丛编项: 中国高等院校计算机基础教育课程体系规划教材
内容简介
C语言是国内外广泛使用的计算机语言,学会使用C语言进行程序设计是计算机工作者的一项基本功。本书系统地介绍怎样使用C语言进行程序设计。通过本书的学习,可以基本掌握C语言的主要内容和使用方法,同时学习程序设计的方法及有关算法的基本知识,初步掌握用计算机解题的全过程。
本书作者具有丰富的教学经验和编写教材的经验,善于把复杂的问题简单化,化解了学生学习过程中的许多困难。作者所著的《C程序设计》一书受到专家和读者的一致好评,公认为是学习C程序设计的理想教材,被全国大多数高校选用,是学习C语言的主流用书,已累计发行逾1400万册,创同类书的国内外发行高纪录。
根据国内一般大学非计算机专业的教学需要,作者在《C程序设计》一书的基础上重新改写并出版了《C程序设计教程》,适当减少内容,紧扣基本要求,突出重点,适合“少学时”的需要。根据近年来的教学实践,本书重新构建教材体系,进一步压缩内容,突出重点,加强算法训练,更加实用。用通俗易懂的方法和语言阐明复杂的概念,使读者更加容易学习。同时采取适当的方法,注意培养包括计算思维在内的科学思维。
本书可用作全国高等学校各专业的正式教材,尤其适合一般院校的非计算机专业使用,同时也是一本供广大读者自学的好教材。本书还配有辅助教材《C程序设计教程(第3版)学习辅导》。
目录
第1章程序设计和C语言1
1.1计算机与程序、程序设计语言1
1.2C语言的特点2
1.3简单的C语言程序3
1.4C语言程序的结构6
1.5运行C程序的步骤与方法8
1.6程序设计的任务10
1.7算法——程序的灵魂11
1.7.1程序是什么11
1.7.2什么是算法12
1.7.3怎样表示一个算法13
1.8结构化程序设计方法19
1.9学习程序设计,培养科学思维21
本章小结23
习题23
第2章最简单的C程序设计——顺序程序设计25
2.1顺序程序设计举例25
2.2数据的类型及存储形式29
2.2.1C语言的数据类型29
2.2.2数据的表现形式——常量和变量29
2.2.3整型数据31
2.2.4字符型数据36
2.2.5浮点型数据41
2.3用表达式进行数据的运算43
2.3.1C表达式43
2.3.2C运算符44
2.3.3运算符的优先级与结合性462.3.4不同类型数据间的混合运算46
2.3.5强制类型转换47
2.4最常用的C语句——赋值语句48
2.4.1C语句综述48
2.4.2赋值表达式50
2.4.3赋值语句53
2.5数据的输入输出56
2.5.1C语言中输入输出的概念56
2.5.2用printf函数输出数据57
2.5.3用scanf函数输入数据62
2.5.4字符数据的输入输出65
本章小结67
习题68
第3章选择结构程序设计71
3.1简单的选择结构程序71
3.2选择结构中的关系运算73
3.2.1关系运算符及其优先次序73
3.2.2关系表达式73
3.3选择结构中的逻辑运算74
3.3.1逻辑运算符及其优先次序75
3.3.2逻辑表达式76
3.4用if语句实现选择结构78
3.4.1if语句的三种形式78
3.4.2if语句的嵌套80
3.5用条件表达式实现选择结构83
3.6利用switch语句实现多分支选择结构86
3.7选择结构程序综合举例88
本章小结94
习题94
第4章循环结构程序设计96
4.1程序需要循环96
4.2用while语句和do…while语句实现循环96
4.2.1用while语句实现循环96
4.2.2用do…while语句实现循环98
4.2.3while循环和do…while循环的比较99
4.2.4递推与迭代101
4.3用for语句实现循环104
4.3.1for语句的执行过程104
4.3.2for语句的各种形式106
4.3.3for循环应用举例108
4.4循环的嵌套110
4.5用break语句和continue语句改变循环状态110
4.5.1用break语句提前退出循环110
4.5.2用continue语句提前结束本次循环111
4.6几种循环的比较113
4.7循环程序举例113
本章小结116
习题117
第5章利用数组处理批量数据119
5.1数组的作用119
5.2怎样定义和引用一维数组120
5.2.1怎样定义一维数组120
5.2.2怎样引用一维数组元素120
5.2.3一维数组的初始化121
5.2.4利用一维数组的典型算法——递推与排序122
5.3怎样定义和引用二维数组125
5.3.1怎样定义二维数组125
5.3.2怎样引用二维数组的元素126
5.3.3二维数组程序举例126
5.3.4二维数组的初始化129
5.4利用字符数组处理字符串数据130
5.4.1怎样定义字符数组130
5.4.2字符数组的初始化131
5.4.3引用字符数组的元素132
5.4.4字符串和字符串结束标志133
5.4.5字符数组的输入输出方法135
5.4.6有关字符处理的算法136
5.4.7利用字符串处理函数139
本章小结142
习题143
第6章利用函数进行模块化程序设计145
6.1为什么要使用函数145
6.1.1函数是什么145
6.1.2程序和函数146
6.2怎样定义函数147
6.2.1为什么要定义函数147
6.2.2怎样定义无参函数148
6.2.3怎样定义有参函数148
6.3函数参数和函数的值149
6.3.1形式参数和实际参数149
6.3.2函数的返回值150
6.4函数的调用151
6.4.1函数调用的一般形式151
6.4.2调用函数的方式152
6.4.3对被调用函数的声明和函数原型152
6.5函数的嵌套调用155
6.6函数的递归调用157
6.6.1什么是函数的递归调用157
6.6.2递归算法分析157
6.6.3用递归函数实现递归算法160
6.7数组作为函数参数164
6.8函数应用举例——编写排序程序168
6.9变量的作用域和生存期171
6.9.1局部变量171
6.9.2全局变量171
6.9.3变量的存储方式和生存期172
6.9.4作用域与生存期小结176
6.10关于变量的声明和定义178
本章小结179
习题180
第7章善于使用指针182
7.1什么是指针182
7.2变量的指针和指向变量的指针变量184
7.2.1怎样定义指针变量184
7.2.2怎样引用指针变量187
7.2.3指针变量作为函数参数189
7.3通过指针引用数组194
7.3.1数组元素的指针194
7.3.2指针的运算195
7.3.3通过指针引用数组元素196
7.3.4用数组名作函数参数200
7.4通过指针引用字符串206
7.4.1引用字符串的方法206
7.4.2字符指针作函数参数209
7.4.3对使用字符指针变量和字符数组的归纳212
本章小结215
习题219
第8章根据需要创建数据类型221
8.1定义和引用结构体变量221
8.1.1怎样创建结构体类型221
8.1.2怎样定义结构体类型变量223
8.1.3引用结构体变量225
8.2使用结构体数组228
8.2.1定义结构体数组228
8.2.2结构体数组应用举例230
8.3结构体指针231
8.3.1指向结构体变量的指针231
8.3.2指向结构体数组的指针233
8.3.3用结构体变量和结构体变量的指针作函数参数234
8.4用指针处理链表237
8.4.1什么是链表237
8.4.2建立简单的静态链表239
8.4.3建立动态链表240
8.4.4输出链表243
8.5使用枚举类型246
8.5.1什么是枚举和枚举变量246
8.5.2枚举型数据应用举例247
本章小结250
习题251
第9章利用文件保存数据252
9.1C文件的有关概念252
9.1.1什么是文件252
9.1.2文件名253
9.1.3文件的分类253
9.1.4文件缓冲区254
9.1.5文件类型指针254
9.1.6文件位置标记255
9.2文件的打开与关闭256
9.2.1用fopen函数打开文件256
9.2.2用fclose函数关闭文件257
9.3文件的顺序读写258
9.3.1向文件读写一个字符258
9.3.2向文件读写一个字符串260
9.3.3对文件进行格式化读写263
9.3.4按二进制方式对文件进行读写264
9.4文件的随机读写264
9.4.1文件位置标记的定位264
9.4.2对文件进行随机读写266
本章小结267
习题269
附录A常用字符与ASCII代码对照表270
附录BC语言中的关键字271
附录C运算符和结合性272
附录DC语言常用语法提要275
附录EC库函数280
参考文献287