《C程序设计教程(第3版)》是由谭浩强著,2018年清华大学出版社出版的普通高等教育“十一五”国家级规划教材、中国高等院校计算机基础教育课程体系规划教材。该教材可用作全国高等学校各专业的正式教材,适合一般院校的非计算机专业使用,同时也是一本供读者自学的教材。
全书共9章,主要内容包括程序设计和C语言,最简单的C程序设计——顺序程序设计,选择结构程序设计,循环结构程序设计等。
该教材介绍怎样使用C语言进行程序设计。全书共9章,主要内容包括程序设计和C语言,最简单的C程序设计——顺序程序设计,选择结构程序设计,循环结构程序设计,利用数组处理批量数据,利用函数进行模块化程序设计,善于使用指针,根据需要创建数据类型,利用文件保存数据。
目录
- 第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运算符的优先级与结合性46
- 2.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