第一章 C语言概述 1
第一讲 C语言基础知识 1
一、程序设计概述 1
二、C语言简介 4
练一练 11
想一想 11
本章小结 11
课后习题一 11
第二章 数据描述与基本操作 13
第二讲 基本数据类型、变量与常量 13
练一练 21
本讲小结 22
想一想 22
第三讲 运算符与表达式、数据类型的转换 22
一、算术运算与赋值运算 22
二、关系运算、逻辑运算与条件运算 26
三、圆括号运算符、逗号运算符和sizeof运算符 29
练一练 32
本讲小结 32
想一想 33
第四讲 数据的输入与输出 33
一、字符输入、输出函数 33
二、标准输入、输出函数 34
练一练 41
本讲小结 42
想一想 42
本章小结 43
课后习题二 43
第三章 C语言的流程控制 46
第五讲 选择结构 46
一、基本if语句 46
二、标准if语句 48
三、复合if语句 49
四、if语句的嵌套 51
五、switch语句 52
练一练 53
本讲小结 55
第六讲 循环结构 55
一、while语句 56
二、do-while语句 57
三、for循环语句 58
练一练 60
本讲小结 61
想一想 61
第七讲 循环语句的嵌套和流程转向语句 61
一、循环语句的嵌套 61
二、流程转向语句goto语句 64
三、break语句 65
四、continue语句 66
练一练 67
本讲小结 69
本章小结 69
课后习题三 69
第四章 数组 74
第八讲 一维数组 74
练一练 77
本讲小结 79
想一想 79
第九讲 二维数组 80
练一练 82
本讲小结 83
想一想 84
第十讲 字符数组与字符串 84
练一练 90
本讲小结 91
想一想 91
本章小结 91
课后习题四 92
第五章 函数 95
第十一讲 函数定义、调用、函数原型及函数返回语句 95
一、函数的定义、调用及函数返回语句 95
二、函数原型 101
练一练 102
本讲小结 104
想一想 104
第十二讲 函数的嵌套、递归调用及函数之间的数据传递 104
一、函数的嵌套调用 105
二、递归函数及递归调用 107
三、实参-形参之间的数据传递(值传递方式) 109
四、实参-形参之间的数据传递(数组作函数参数) 110
练一练 112
本讲小结 115
想一想 115
第十三讲 变量作用域及存储类型、内部函数和外部函数 115
一、作用域和生存期 116
二、局部变量的作用域和存储类型 117
三、全局变量的作用域、存储类型及多文件程序的运行 120
四、内部函数与外部函数 123
练一练 125
本讲小结 126
想一想 126
本章小结 126
课后习题五 127
第六章 编译预处理 132
第十四讲 宏定义、文件包含和条件编译 132
一、不带参数的宏定义 132
二、带参数的宏定义 134
三、文件包含处理 136
四、条件编译 138
练一练 139
想一想 141
本章小结 141
课后习题六 141
第七章 指针 144
第十五讲 指针概述与指针赋值、指针的运算 144
一、指针概述与指针赋值 144
二、指针的运算 147
练一练 150
本讲小结 151
想一想 152
第十六讲 指针与数组(一) 152
一、一维数组元素的指针访问方式 152
二、二维数组元素的指针访问方式 154
三、字符指针与字符串 156
练一练 157
想一想 159
本讲小结 159
第十七讲 指针与数组(二) 159
一、指向一维数组的指针 160
二、指针数组 162
练一练 164
想一想 165
本讲小结 165
第十八讲 指针与函数 165
一、指针作为函数参数 165
二、指针函数 168
三、指向函数的指针 169
四、带参数的main函数及其应用 172
练一练 173
本讲小结 175
想一想 175
本章小结 175
课后习题七 176
第八章 结构体、共用体和枚举 181
第十九讲 结构体基础 181
练一练 188
本讲小结 189
想一想 189
第二十讲 结构体数组和指向结构体的指针 189
一、结构体数组及指向结构体变量的指针 189
二、指向结构体数组的指针 192
练一练 194
本讲小结 196
想一想 196
第二十一讲 结构体与函数 196
一、结构体类型的变量作为函数参数 196
二、结构体类型的变量作为函数的返回值 198
练一练 199
本讲小结 200
想一想 200
第二十二讲 链表 200
一、链表基础知识及动态分配函数 200
二、链表的操作 202
练一练 207
本讲小结 209
想一想 209
第二十三讲 共用体、枚举、typedef类型定义 209
一、共用体类型的定义与使用 209
二、枚举类型的定义与使用 213
三、typedef类型的定义及应用 215
练一练 216
本讲小结 217
想一想 217
本章小结 217
课后习题八 217
第九章 位运算 222
第二十四讲 位运算 222
一、位运算 222
二、位段 226
练一练 228
想一想 230
本章小结 230
课后习题九 230
第十章 文件 233
第二十五讲 文件概述、文件打开与关闭 233
练一练 238
本讲小结 238
想一想 238
第二十六讲 文件读写 239
一、fputc函数和fgetc函数 239
二、fputs函数和fgets函数 240
三、fwrite函数和fead函数 242
四、fprintf函数和fscanf函数 244
练一练 247
本讲小结 248
想一想 248
第二十七讲 文件的定位和文件的检测 248
一、文件的定位函数 248
二、文件的检测函数 251
练一练 254
本讲小结 255
想一想 255
本章小结 255
课后习题十 255
第十一章 库函数及应用 258
第二十八讲 字符屏幕处理函数 258
一、字符窗口的定义 258
二、字符窗口的输入/输出函数 261
三、字符窗口的屏幕操作函数 263
练一练 265
本讲小结 266
想一想 266
第二十九讲 图形处理函数(一) 266
一、图形模式的初始化 266
二、屏幕颜色的设置和清屏函数 269
三、基本画图函数 272
练一练 276
本讲小结 276
想一想 276
第三十讲 图形处理函数(二) 277
一、基本图形的填充及填充方式的设定 277
二、任意封闭图形的填充 280
练一练 281
本讲小结 282
想一想 282
第三十一讲 图形操作函数 282
一、图形窗口操作 282
二、图形模式下的字符 285
练一练 289
本讲小结 290
想一想 290
本章小结 290
课后习题十一 290
第十二章 上机实训 291
第三十二讲 学生成绩管理系统 291
一、问题描述 291
二、数据结构 291
三、程序流程 291
四、完整程序 292
五、程序运行步骤及结果 296
附录A课后习题参考答案 298
课后习题一参考答案 298
课后习题二参考答案 298
课后习题三参考答案 299
课后习题四参考答案 300
课后习题五参考答案 301
课后习题六参考答案 303
课后习题七参考答案 304
课后习题八参考答案 306
课后习题九参考答案 307
课后习题十参考答案 308
课后习题十一参考答案 309
附录B 常用字符与ASCII码对照表 311
附录C 运算符的优先级、结合方向及口诀 313
参考文献 315