《C语言程序设计》主要讲述C语言的基本知识 和程序设计的初步方法。全书共11 章,其中第1章至第6章主要介绍C语言程序设计的基本概念、基本结构及 函数等;第7章至第11章主要介绍数组、指针、结构体与共用体等复杂数据 结构。为便于读者掌握书中的知识和操作,本书配有《C语言程序设计辅导 及实验指导书》,其中包含大量的操作实例和习题。
《C语言程序设计》结构合理,详略得当,语言精练,通俗易懂,可作 为高等院校各专业 C语言程序设计课程教材,也可供相关领域的工程技术人员参考。
更多科学出版社服务,请扫码获取。
目录
前言
第1章 C语言概述 1
1.1 C语言简介 1
1.1.1 程序和程序设计语言 1
1.1.2 C语言的发展历史 1
1.1.3 C语言的特点 3
1.2 简单的C程序介绍 4
1.3 运行C程序的步骤 7
本章小结 9
第2章 基本数据类型及运算 10
2.1 数据类型 10
2.2 常量与变量 11
2.2.1 标识符 11
2.2.2 常量 11
2.2.3 变量 14
2.3 格式化输入与输出函数 15
2.3.1 格式输出函数printf() 16
2.3.2 格式输入函数scanf() 20
2.4 整型数据 23
2.4.1 整型变量 23
2.4.2 整型常量 24
2.5 实型数据 25
2.5.1 实型常量 25
2.5.2 实型变量 25
2.6 字符型数据 26
2.6.1 字符常量 26
2.6.2 字符变量 26
2.7 变量赋初值 28
2.8 各类数值型数据间的混合运算 29
2.8.1 隐式类型转换 29
2.8.2 强制类型转换 30
2.9 算术运算符和算术表达式 30
2.9.1 C语言运算符简介 30
2.9.2 算术运算符和算术表达式 31
2.10 赋值运算符和赋值表达式 34
2.10.1 赋值运算符 34
2.10.2 赋值表达式 35
2.11 逗号运算符和逗号表达式 35
本章小结 35
第3章 顺序结构程序设计 36
3.1 结构化程序设计方法 36
3.1.1 结构化程序设计方法的产生 36
3.1.2 三种基本控制结构 36
3.2 C语句概述 38
3.2.1 表达式语句 38
3.2.2 控制语句 38
3.2.3 函数调用语句 39
3.2.4 空语句 39
3.2.5 复合语句 39
3.3 字符数据的输入与输出 40
3.3.1 字符格式控制符 40
3.3.2 字符输入输出函数 40
3.3.3 程序举例 42
本章小结 43
第4章 选择结构程序设计 44
4.1 关系运算符和关系表达式 44
4.2 逻辑运算符和逻辑表达式 45
4.3 if语句 46
4.3.1 if语句的基本形式 46
4.3.2 if话句的嵌套形式 49
4.3.3 条件运算符 52
4.4 switch语句 53
本章小结 56
第5章 循环结构程序设计 57
5.1 概述 57
5.2 while语句 57
5.3 do-while语句 61
5.4 for语句 63
5.5 循环的嵌套 68
5.6 break语句和continue语句 71
5.6.1 break语句 71
5.6.2 continue语句 73
本章小结 75
第6章 函数 77
6.1 概述 77
6.1.1 模块化程序设计思想 77
6.1.2 函数的基本概念 78
6.1.3 库函数与用户自定义函数 79
6.2 函数定义的一般形式 81
6.2.1 函数的定义 81
6.2.2 自定义函数在程序代码中的位置 85
6.3 函数的参数和函数的返回值 85
6.3.1 函数的参数 85
6.3.2 函数的返回值 86
6.4 函数的调用 87
6.4.1 语句调用 87
6.4.2 表达式调用 87
6.4.3 嵌套调用 88
6.5 局部变量和全局变量 89
6.5.1 局部变量 89
6.5.2 全局变量 91
6.6 函数的高级应用 91
6.6.1 函数的递归调用 91
6.6.2 变量的存储类别 94
6.6.3 内部函数和外部函数 96
本章小结 97
第7章 数组 99
7.1 一雏数组的定义和引用 99
7.1.1 一维数组的定义 99
7.1.2 一维数组元素的引用 100
7.1.3 一维数组元素的初始化 100
7.1.4 一维数组程序举例 101
7.2 二维数组的定义和引用 103
7.2.1 二维数组的定义 103
7.2.2 二维数组元素的引用 104
7.2.3 二维数组的初始化 104
7.2.4 二维数组程序举例 105
7.3 用字符数组表示字符串 108
7.3.1 字符数组的定义 108
7.3.2 字符数组的初始化 108
7.3.3 字符数组的输入和输m 110
7.3.4 字符串处理函数 111
7.3.5 字符数组应用举例 115
7.4 数组作为函数参数 116
7.4.1 数组元素作函数实际参数 116
7.4.2 数组名作函数参数 117
7.5 数组综合实例 119
本章小结 122
第8章 编译预处理 123
8.1 宏定义 123
8.1.1 不带参数的宏 123
8.1.2 带参数的宏 125
8.2 文件包含 127
8.2.1 库函数与头文件包含 127
8.2.2 文件包含处理 128
8.3 条件编译 131
本章小结 134
第9章 指针 135
9.1 内存地址与指针 135
9.1.1 内存地址和内存分配 135
9.1.2 指针和指针变量 138
9.2 指向变量酌指针变量 139
9.2.1 指向变量的指针变量的定义 139
9.2.2 指向变量的指针变量的赋值和初始化 140
9.2.3 指向变量的指针变量的引用 141
9.3 指针和数组 143
9.3.1 指向一维数组元素的指针变量 143
9.3.2 指针变量的算术运算和比较 144
9.3.3 通过指针引用一维数组元素 145
9.3.4 指针数组 147
9.4 字符串与指针 148
9.4.1 用字符数组实现 148
9.4.2 用字符指针实现 150
9.4.3 字符串的数组实现和指针实现的区别 151
9.4.4 字符串的数组实现和指针实现的联系 154
9.5 函数与指针 155
9.5.1 指针作为函数的参数 155
9.5.2 返回值为指针的函数 157
9.5.3 函数的指针与通过指针调用函数 159
本章小结 160
第10章 结构体和共用体 162
10.1 概述 162
10.2 定义结构体类型变量的方法 162
10.2.1 结构体类型声明 162
10.2.2 结构体类型变量的定义 163
10.3 结构体变量的引用 165
10.4 结构体变量的初始化 166
10.5 结构体数组 167
10.5.1 结构体数组的定义 167
10.5.2 结构体数组的初始化 168
10.6 共用体 169
10.6.1 共用体类型声明 169
10.6.2 共用体变量的定义及引用 170
10.7 枚举类型 172
10.7.1 枚举类型声明 172
10.7.2 权举变量的定义及其赋值 173
10.8 用typedef定义类型 174
本章小结 175
第11章 文件 176
11.1 文件概述 176
11.1.1 文件的基本概念 176
11.1.2 文本文件和二进制文件 176
11.1.3 缓冲文件系统 177
11.2 文件类型指针 178
11.3 文件的打开和关闭 178
11.3.1 文件的打开 178
11.3.2 文件的关闭 180
11.4 文件的读写 181
11.4.1 以字符方式读写文件 181
11.4.2 以字符串方式读写文件 183
11.4.3 格式化方式读写文件 186
11.4.4 数据块方式读写文件 187
11.4.5 文件结束判断 189
11.5 文件的定位函数 190
11.5.1 指向文件的首地址 190
11.5.2 改变文件指针位置 190
11.5.3 获取当前文件指针位置 190
11.6 出错检测 192
11.6.1 ferror()函数 192
11.6.2 clearerr()函数 192
本章小结 193
参考文献 194
第1章 C语言概述
1.1 C语言简介
1.1.1 程序和程序设计语言
在人类发展的历史中,人们为了传达信息、表达思想、交流情感,逐渐发明了各种语言,如汉语、英语等。人类进行交流所用的语言称为自然语言。自从世界上第一台电子计算机ENIAC诞生以来,计算机的发展已历经半个多世纪。在这一过程中,为了能够更好、更有效地与计算机进行通信,指挥其为人类工作,人们发明、设计出许多专门与计算机进行交流的语言,这些语言称为程序设计语言。程序设计语言相对自然语言来说,使用的词汇不多、语法简单、语义清晰,便于人们使用其去控制计算机。
计算机是能够自动进行数据处理的电子设备。那么,计算机为什么能够自动、有条不紊地工作呢?原因就在于计算机是在程序的控制下进行工作的。什么是程序呢?程序实际上就是用户用于指挥计算机进行各种动作,使计算机完成指定任务的指令序列。编写程序的过程称为程序设计。程序设计过程中所使用的语言就是程序设计语言。
计算机的一切工作都是通过执行程序完成的,而计算机可以直接识别并执行的程序是用二进制串表示的机器语言程序。对于人类来说,直接用机器语言书写程序是一件十分痛苦的工作。为此,人们发明了汇编语言,采用便于记忆的符号代替二进制串,但实际上汇编语言仅是机器语言的一种助记符,没有本质的区别,使用仍然不便。在这种情况下,各种高级程序设计语言便随之产生了。高级程序设计语言之所以高级就在于它接近人类的自然语言,更加符合人类的思维方式。
因为高级程序设计语言更接近人所习惯的描述形式,所以更容易被接受,这也使得更多的人能够参与程序设计活动。因为开发效率高,所以人们使用高级程序设计语言设计出了更多的应用系统,这反过来又大大推动了计算机应用的发展。应用的发展又推动了计算机工业的发展。可以说,高级程序设计语言的诞生和发展,对于计算机发展到今天起了极其重要的作用。
1.1.2 C语言的发展历史
C语言是国际上最流行的、应用最广泛的高级程序设计语言之一,深受广大程序员的欢迎。C语言的发展过程大致分为以下几个阶段。
1.C语言的出现
C语言是在贝尔实验室由KenThompson和DennisRitchie在开发UNIX操作系统的过程中开发出来的一种程序设计语言。UNIX系统最初是用汇编语言编写的,当时,Thompson