本书用大量的实例帮助读者掌握程序设计的思想,学会程序设计的方法,训练程序设计的能力,达到初步解决程序设计实际问题的要求。 本书共分10章,把C语言程序设计的学习分为三个阶段。第一阶段学习程序设计的概念、基本数据类型及操作,培养初步的上机操作、程序调试能力;第二阶段学习流程设计及其典型应用、数组类型、模块化程序设计,培养程序设计的基本能力;第三阶段学习指针、结构体类型设计、位操作、文件访问操作,培养设计应用程序的能力。 本书的特点是将主要精力集中在所要解决的问题上,把C语言程序设计的方法融入实践环节中,并且在编排程序设计的内容顺序方面,保持与C语言程序设计的课程体系内容相吻合,做到循序渐进、系统学习、广泛实践,便于学生接受。 本书可作为高职高专层次各类学校程序设计学习教材,还适用于高等院校应用型本科学生使用,也可作为计算机岗位培训的教学用书。第1章 程序设计概述 1
1.1 程序与程序设计语言 1
1.1.1 程序的概念 1
1.1.2 程序设计语言 2
1.1.3 C语言的基本结构及特点 2
1.1.4 C语言的支持环境 4
1.2 C语言的开发环境 4
1.2.1 运行一个C语言
程序的一般过程 5
1.2.2 Turbo C 2.0的启动、
退出与命令菜单 5
1.2.3 编辑并保存一个C语言
源程序 6
1.2.4 编译、连接——单个
源程序文件 7
1.2.5 运行与查看结果 7
1.2.6 编辑下一个新的源程序 7
1.3 算法设计与描述 8
1.3.1 算法设计 8
1.3.2 算法描述方法 9
1.4 上机实训设计(一) 12
习题1 13
第2章 数据类型、运算符与表达式 14
2.1 C语言的数据类型 14
2.2 基本类型数据的机内表示 16
2.2.1 整型数据的机内表示 16
2.2.2 实型数据的机内表示 17
2.2.3 字符型数据的机内表示 18
2.3 常量与变量 19
2.4 常量及符号常量的定义 20
2.5 变量及变量的定义 20
2.6 整型数据 21
2.6.1 整型常量的类型
和表示方法 21
2.6.2 整型变量 22
2.7 实型数据 24
2.7.1 实型常量类型及表示方法 24
2.7.2 实型变量 25
2.8 字符型数据 25
2.8.1 字符常量及字符串常量 25
2.8.2 字符变量 26
2.8.3 字符型数据的存储及使用 26
2.9 C语言的运算符及表达式 28
2.9.1 C语言的运算符简介 28
2.9.2 算术运算符及算术表达式 29
2.9.3 关系运算符及关系表达式 32
2.9.4 逻辑运算符及逻辑表达式 33
2.9.5 赋值运算符及赋值表达式 34
2.9.6 特殊运算符及表达式 36
2.10 上机实训设计(二) 39
习题2 40
第3章 数据输入输出程序设计 43
3.1 数据的输出 43
3.1.1 printf()函数 43
3.1.2 putchar()函数 48
3.1.3 puts()函数 49
3.2 数据的输入 51
3.2.1 scanf()函数 51
3.2.2 数据输入操作指导 53
3.2.3 getchar()函数 54
3.2.4 gets()函数 56
3.3 输入、输出函数的常见错误 56
3.4 简单的菜单设计 58
3.5 上机实训设计(三) 59
习题3 62
第4章 流程设计及典型应用 65
4.1 顺序结构流程设计 65
4.2 选择型流程设计 67
4.2.1 if语句流程设计 67
4.2.2 if语句多重选择设计 70
4.2.3 switch语句流程设计 73
4.3 循环型流程设计 76
4.3.1 for 循环语句流程设计 77
4.3.2 for循环语句进一步讨论 79
4.3.3 while 循环语句流程设计 82
4.3.4 do…while 直到型
循环语句流程设计 83
4.3.5 多重循环的用法 85
4.3.6 break语句和continue
语句的用法 88
4.4 循环型设计的典型应用 88
4.4.1 穷举类型算法设计 88
4.4.2 递推类型算法设计 90
4.5 上机实训设计(四) 92
习题4 100
第5章 数组类型及应用 108
5.1 一维数组及应用 108
5.1.1 一维数组的定义 108
5.1.2 一维数组的引用 109
5.1.3 一维数组的应用 110
5.2 二维数组及应用 114
5.2.1 二维数组的定义 114
5.2.2 二维数组的引用 115
5.2.3 二维数组的应用 117
5.3 字符串与字符数组 120
5.3.1 字符串与字符
数组的定义 120
5.3.2 字符串与字符
数组的应用 121
5.3.3 字符串函数及应用 124
5.4 上机实训设计(五) 127
5.4.1 实训1 127
5.4.3 实训2 129
习题5 134
第6章 函数 141
6.1 函数的定义与调用 141
6.1.1 函数定义 143
6.1.2 函数调用与参数传递 144
6.1.3 函数定义与调用常见错误 146
6.2 函数的嵌套调用和递归调用 147
6.2.1 函数的嵌套调用 147
6.2.2 函数的递归调用 148
6.3 数组作为函数参数 150
6.3.1 数组元素作为函数参数 150
6.3.2 数组名作为函数的
形参和实参 151
6.4 内部变量与外部变量 154
6.4.1 内部变量 154
6.4.2 外部变量 155
6.5 内部函数与外部函数 158
6.5.1 内部函数(又称静态函数) 159
6.5.2 外部函数 159
6.5.3 多个源程序文件的
编译和连接 160
6.6 变量的动态存储与静态存储简介 161
6.6.1 内部变量的存储方式 161
6.6.2 外部变量的存储方式 162
6.7 编译预处理 163
6.7.1 宏定义与符号常量 163
6.7.2 文件包含 165
6.7.3 条件编译 166
6.8 上机实训设计(六) 167
习题6 176
第7章 指针 184
7.1 指针的概念 184
7.2 变量的指针和指向变量的
指针变量 185
7.2.1 指针变量的定义 185
7.2.2 指针变量的引用 186
7.2.3 指针变量与函数参数 188
7.3 指针和数组 192
7.3.1 指针与一维数组 193
7.3.2 指针与多维数组 196
7.3.3 数组名和指针变量
作为函数的参数 200
7.4 字符串和指针 204
7.4.1 字符串的表示形式 204
7.4.2 字符串作为函数参数 208
7.4.3 字符指针变量和字符数组 210
7.5 函数的指针和指向
函数的指针变量 212
7.5.1 函数的指针变量及用函
数指针变量调用函数 212
7.5.2 用指向函数的指针
变量作函数的参数 214
7.6 函数的返回值为指针 218
7.6.1 指针函数的定义 218
7.6.2 指针函数的应用 218
7.7 指针数组和指向指针的指针 219
7.7.1 指针数组的概念 219
7.7.2 指向指针的指针 221
7.7.3 指针数组做main函数
的形参(命令行参数) 224
7.7.4 指向void量的指针变量 225
7.8 小结 226
7.8.1 指针类型小结 226
7.8.2 指针运算小结 226
7.8.3 void指针类型小结 228
7.9 上机实训设计(七) 229
习题7 235
第8章 结构体与共用体 243
8.1 概述 243
8.2 结构体类型与结构体变量 243
8.2.1 一个使用结构体的
例子 243
8.2.2 结构体类型的定义 244
8.2.3 结构体变量的定义 246
8.3 结构体变量的引用 250
8.4 结构体变量的初始化 252
8.5 结构体数组 253
8.5.1 结构体数组的定义 253
8.5.2 结构体数组的初始化 254
8.5.3 结构体数组的应用 255
8.6 结构体指针 257
8.6.1 结构体类型指针 257
8.6.2 结构体数组指针 260
8.7 结构体与函数参数 262
8.7.1 结构体成员作为
函数参数 262
8.7.2 结构体作为函数参数 263
8.7.3 结构体指针作为
函数参数 265
8.7.4 带const关键字的结构体
指针作为函数参数 267
8.8 用结构体指针处理链表 268
8.8.1 链表概述 268
8.8.2 动态内存分配和链表 273
8.8.3 建立链表 274
8.8.4 输出链表 275
8.8.5 删除一个结点 275
8.8.6 插入操作 276
8.9 共用体 277
8.9.1 共用体的概念 277
8.9.2 共用体类型和共用体
类型变量的定义 278
8.9.3 共用体变量的引用 279
8.9.4 共用体类型数据的特点 281
8.10 枚举类型 283
8.11 用typedef为类型定义别名 285
8.11.1 概念 285
8.11.2 典型用法 285
8.11.3 典型类型的别名
定义形式 286
8.11.4 typedef 与 #define的
区别 286
8.12 上机实训设计(八) 287
习题8 290
第9章 位运算 293
9.1 位运算符和位运算 293
9.1.1 数值在计算机中的表示 293
9.1.2 位运算符及其使用方法 294
9.2 位段 298
9.2.1 位段的定义 298
9.2.2 位段的引用 299
9.2.3 位段的说明 299
9.3 位操作应用及设计技巧 300
9.4 上机实训设计(九) 301
习题9 303
第10章 文件 304
10.1 指针的概念 304
10.2 缓冲文件类型指针 305
10.3 缓冲型文件的打开与关闭 306
10.3.1 缓冲型文件的
打开fopen函数 306
10.3.2 缓冲型文件的关闭
fclose函数 308
10.4 缓冲型文件的使用 308
10.4.1 fputc函数和fgetc函数
(putc函数和getc函数) 308
10.4.2 fread函数和fwrite函数 312
10.4.3 fprintf函数和fscanf函数 315
10.4.4 文件其他读写函数 316
10.5 文件的定位 317
10.5.1 rewind函数 317
10.5.2 fseek函数和随机读写 318
10.5.3 ftell函数 319
10.5.4 出错的检测 319
10.6 非缓冲文件系统 320
10.6.1 open函数 320
10.6.2 close函数 321
10.6.3 creat函数 321
10.6.4 read函数 322
10.6.5 write函数 323
10.6.6 lessk函数和随机读写 324
10.7 上机实训设计(十) 325
习题10 328
附录A C语言的关键字及其用途 331
附录B 常用字符与ASCII
代码对照表 332
附录C 运算符的优先级和结合性 333
附录D C语言库函数 335
参考文献 341