本书全面、系统地介绍C语言的基本概念、基本语法和基本算法,并在讲解中贯穿“自顶向下、逐步求精”的程序设计思想和计算思维理念。内容安排在体现程序设计课程基本目标要求的基础上,兼顾全国计算机等级考试中C语言考试的大纲要求。本书主要面向学习程序设计的初学者,内容编排由浅入深,循序渐进,精选典型案例,每个案例均提供完整的代码、运行结果,并附有算法分析和程序说明,旨在帮助学习者掌握程序设计的基本方法,理解、领会C语言的特点和本质,提高运用C语言编程解决实际问题的能力。最后用一个项目实例,将各章语法知识交互融合,进一步加深学习者对C语言语法的整体理解,并提高实际编程能力,在提升学习兴趣的同时,引导学习者开展自主学习。
样章试读
目录
- 目录
前言
第1章 程序设计基础 1
1.1 为什么要学习编程 1
1.2 程序和程序设计语言 1
1.2.1 程序 1
1.2.2 程序设计语言 2
1.2.3 程序设计语言的分类 2
1.2.4 语言处理程序 3
1.3 C语言简介 3
1.3.1 C语言的产生及特点 3
1.3.2 C语言的标准 4
1.3.3 C和C++ 4
1.4 C程序的初步印象 5
1.5 C语言编译器的用法 9
1.5.1 开发C程序的基本步骤 9
1.5.2 开发简单的C程序 10
习题1 13
第2章 基本数据类型、运算符和表达式 14
2.1 字符集、关键字和标识符 14
2.2 数据类型 15
2.2.1 整型 17
2.2.2 实型(浮点型) 20
2.2.3 字符型 22
2.3 运算符和表达式 26
2.3.1 算术运算 26
2.3.2 自增和自减运算 27
2.3.3 赋值运算 28
2.3.4 数据类型的转换 29
2.3.5 逗号运算 33
2.3.6 位运算 34
2.3.7 sizeof 37
习题2 37
第3章 数据的输入和输出 41
3.1 单个字符的输入和输出 41
3.1.1 函数getchar() 41
3.1.2 函数putchar() 42
3.2 数据的格式化输出和输入 43
3.2.1 数据的格式化输出 43
3.2.2 数据的格式化输入 50
3.3 顺序结构程序设计 56
习题3 60
第4章 选择结构 63
4.1 关系运算 63
4.1.1 C语言的逻辑值 63
4.1.2 关系运算符 63
4.1.3 关系表达式 64
4.2 逻辑运算 66
4.2.1 逻辑运算符 66
4.2.2 逻辑表达式 67
4.2.3 逻辑表达式求值的优化 68
4.3 if语句 69
4.3.1 单分支if语句 69
4.3.2 双分支if语句 70
4.3.3 多分支if语句 72
4.3.4 条件运算符 76
4.4 switch语句 78
4.5 选择结构程序举例 81
习题4 86
第5章 循环结构 93
5.1 while语句 93
5.2 do-while语句 100
5.3 for语句 104
5.4 循环结构的嵌套 110
5.5 break和continue 113
5.5.1 用break语句提前终止循环 113
5.5.2 用continue语句提前结束本次循环 116
习题5 117
第6章 数组 123
6.1 一维数组 123
6.1.1 一维数组的定义 123
6.1.2 一维数组元素的访问 124
6.1.3 一维数组元素的初始化 125
6.1.4 一维数组应用举例 126
6.2 二维数组 133
6.2.1 二维数组的定义 133
6.2.2 二维数组的访问 134
6.2.3 二维数组的初始化 135
6.2.4 二维数组应用举例 137
习题6 139
第7章 函数 144
7.1 函数的定义 144
7.2 函数的调用 146
7.3 函数的声明 147
7.4 函数调用时的数据传递 148
7.4.1 函数的黑盒设计 148
7.4.2 函数调用时的数据传递 149
7.4.3 函数调用时的类型转换 150
7.5 函数的嵌套调用和递归调用 151
7.5.1 函数的嵌套调用 151
7.5.2 函数的递归调用 153
7.6 数组作参数的用法 155
7.6.1 数组元素作函数实参 155
7.6.2 数组名作函数实参 156
7.6.3 二维数组名作函数实参 157
7.7 main()函数的参数 159
7.8 变量的作用域和生存期 160
7.8.1 变量的作用域 160
7.8.2 变量的生存期 163
7.9 内部函数和外部函数 168
习题7 170
第8章 指针 175
8.1 变量地址与指针 175
8.1.1 变量的地址 175
8.1.2 指针的概念 176
8.2 指针的定义与使用 176
8.2.1 定义指针 176
8.2.2 指针变量赋值 177
8.2.3 使用指针 179
8.3 指针与函数 181
8.3.1 指针作函数参数 182
8.3.2 指针作函数返回值 184
8.4 指针与一维数组 187
8.4.1 一维数组首地址与一维数组元素地址 187
8.4.2 指针与一维数组元素 189
8.5 指针和二维数组 195
8.5.1 二维数组元素的地址 195
8.5.2 使用指针变量访问二维数组元素 200
8.5.3 二维数组作函数参数 203
8.6 多级指针 206
8.6.1 二级指针概述 206
8.6.2 二级指针与指针数组 208
8.7 函数指针变量 209
习题8 211
第9章 字符串 214
9.1 字符数组表示字符串 214
9.1.1 字符数组的初始化 214
9.1.2 字符串的结束标志 215
9.1.3 字符串的整体输入和输出 216
9.2 字符指针表示字符串 219
9.2.1 字符指针指向字符串常量 220
9.2.2 字符指针作函数参数 220
9.2.3 字符指针数组 224
9.3 字符串处理和应用 226
9.3.1 字符串处理函数 226
9.3.2 字符串应用 235
习题9 242
第10章 编译预处理和动态内存分配 247
10.1 编译预处理 247
10.2 动态内存分配 251
习题10 253
第11章 结构体、共用体 254
11.1 结构体 254
11.1.1 定义结构体 254
11.1.2 定义结构体类型变量 255
11.1.3 结构体变量赋值和访问 256
11.1.4 结构体数组 258
11.1.5 结构体指针 258
11.2 动态链表 259
11.3 共用体 265
11.4 枚举类型 269
11.5 typedef(类型定义) 270
习题11 272
第12章 文件 274
12.1 C语言中文件的概念 274
12.1.1 文件的概念 274
12.1.2 计算机中的流 274
12.1.3 文件分类 275
12.1.4 文件的缓冲区 275
12.1.5 文件指针 276
12.2 文件的打开与关闭 276
12.2.1 文件的打开 277
12.2.2 文件的打开方式 277
12.2.3 文件的关闭 278
12.3 读/写文件常用函数 278
12.3.1 以字符形式读/写文件 278
12.3.2 以字符串的形式读/写文件 279
12.3.3 以数据块的形式读/写文件 279
12.3.4 格式化读/写文件 280
12.3.5 随机读/写文件 281
12.3.6 文件操作的出错检测 282
12.4 文件操作应用示例 283
12.4.1 文本文件操作 283
12.4.2 二进制文件操作 284
12.4.3 学生成绩的存储和删除 285
习题12 289
第13章 简单信息管理项目示例 290
13.1 功能框架 290
13.2 语法基础 290
13.3 程序代码 291
附录 296