新書推薦:
《
少女映像室 唯美人像摄影从入门到实战
》
售價:HK$
110.9
《
詹姆斯·伍德系列:不负责任的自我:论笑与小说(“美国图书评论奖”入围作品 当代重要文学批评家詹姆斯·伍德对“文学中的笑与喜剧”的精湛研究)
》
售價:HK$
87.4
《
武当内家散手
》
售價:HK$
50.4
《
诛吕:“诸吕之乱”的真相与吕太后时期的权力结构
》
售價:HK$
99.7
《
炙野(全2册)
》
售價:HK$
78.2
《
女人的胜利
》
售價:HK$
55.9
《
数据有道:数据分析+图论与网络+微课+Python编程(鸢尾花数学大系:从加减乘除到机器学习)
》
售價:HK$
266.6
《
500万次倾听:陪伤心的人聊聊
》
售價:HK$
53.8
|
內容簡介: |
本书是华中科技大学“C语言程序设计”精品课的主教材。本书力图完整、全面、清楚地介绍C语言的基本语法和语义,同时通过对一些精心提炼的算法实例进行分析和编程设计,培养学生算法设计、程序设计、调试程序的能力。全书分为上、下两篇,共18章,另外提供了3个附录。
上篇是C语言,包括第1章至第10章,内容主要有概论、基本词法语法规则与程序元素、基本的标准输入与输出、流程控制、函数与程序结构、编译预处理、数组、指针、结构与联合、文件的输入与输出。下篇是程序设计,包括第11章至第18章,深入介绍了复杂类型的指针、递归、排序、线性数据结构、非线性数据结构、参数数目可变的函数与库函数、图形图像处理程序设计、程序设计开发实例。
为方便教学,本书配有电子课件和源程序代码,任课教师可以登录华信教育资源网(www.hxedu.com.cn)免费注册下载。
|
目錄:
|
目 录
上篇 C语言
第1章 概论 1
1.1 程序设计语言与程序设计 1
1.2 学习C语言程序设计的第一个例子 1
1.2.1 创建并运行第一个C程序 2
1.2.2 解释分析第一个C程序 3
1.3 C语言的产生、发展与语言特征 4
1.3.1 C语言的产生与发展 4
1.3.2 C语言的标准化 5
1.3.3 C语言的特征 6
1.4 计算机系统及内存编址 7
1.5 数和字符的编码表示 8
1.5.1 进位计数制 9
1.5.2 进位制数之间的转换 11
1.5.3 数的机器码表示 13
1.5.4 字符的编码表示 14
1.6 算法及其表示 15
1.6.1 算法的定义 15
1.6.2 算法的表示 16
1.6.3 算法的实现 18
1.7 学习C语言与程序设计的方法 18
本章小结 20
习题1 20
第2章 基本词法语法规则与程序元素 21
2.1 字符及词法元素 21
2.1.1 字符集 21
2.1.2 词法元素 21
2.2 语法规则 22
2.2.1 BNF范式 22
2.2.2 EBNF 23
2.2.3 语法图 23
2.3 标识符、关键字及分隔符 24
2.3.1 标识符 24
2.3.2 关键字 24
2.3.3 分隔符 25
2.4 基本数据类型 25
2.4.1 数据类型的分类 25
2.4.2 基本类型的名字 25
2.4.3 字符类型 26
2.4.4 整型类型 26
2.4.5 浮点类型 27
2.5 常量与变量 28
2.5.1 文字常量 28
2.5.2 符号常量 31
2.5.3 变量定义 33
2.6 运算符和表达式 33
2.6.1 C运算符简介 33
2.6.2 运算符的优先级和结合性 34
2.6.3 算术运算 35
2.6.4 关系运算 35
2.6.5 逻辑运算 36
2.6.6 自增和自减运算 37
2.6.7 赋值运算 39
2.6.8 条件运算 40
2.6.9 逗号运算 40
2.6.10 sizeof运算 41
2.7 位运算符和位表达式 42
2.7.1 按位求反(~) 42
2.7.2 按位与、或、加运算
(&, | , ^ ) 42
2.7.3 左移和右移运算(<<,>>) 42
2.7.4 位运算符应用举例 43
2.7.5 打印整数各位 44
2.8 类型转换 45
2.8.1 整数提升 45
2.8.2 算术转换 45
2.8.3 赋值转换 46
2.8.4 强制类型转换 46
2.9 枚举类型 47
2.9.1 枚举类型的定义 47
2.9.2 用枚举类型定义符号常量 48
2.9.3. 枚举变量的声明 48
2.10 新增数据类型 49
2.10.1 long long类型 49
2.10.2 布尔类型 49
2.10.3 复数类型 50
本章小结 51
习题2 52
第3章 基本的标准输入与输出 54
3.1 字符输入与输出 54
3.1.1 字符输出函数putchar 54
3.1.2 字符输入函数getchar 55
3.2 字符串输入与输出 57
3.2.1 字符串输出函数puts 57
3.2.1 字符串输入函数gets 57
3.3 格式化输入与输出 58
3.3.1 格式化输出函数printf 58
3.3.2 格式化输入函数scanf 62
本章小结 70
习题3 70
第4章 流程控制 72
4.1 C语句分类 72
4.2 表达式语句 72
4.3 复合语句 73
4.4 if语句 74
4.5 switch语句 77
4.6 while语句 80
4.7 for语句 84
4.8 do-while语句 87
4.9 goto语句和标号语句 92
4.10 break语句、continue语句和
return语句 94
4.11 嵌套循环程序设计 97
4.11.1 嵌套循环 97
4.11.2 枚举 100
4.11.3 筛法 101
4.11.4 递推 101
本章小结 102
习题4 102
第5章 函数与程序结构 104
5.1 C程序的一般结构 104
5.1.1 结构化程序设计 104
5.1.2 蒙特卡罗模拟:猜数游戏 104
5.1.3 C程序的结构 108
5.2 函数的定义与函数原型 108
5.2.1 函数的定义 108
5.2.2 函数的返回值 109
5.2.3 函数的声明 110
5.2.4 新增关键字inline和_Noreturn 111
5.3 函数调用与参数传递 112
5.3.1 函数调用 112
5.3.2 参数的值传递 114
5.4 作用域与可见性 115
5.4.1 局部变量和全局变量 115
5.4.2 作用域规则 117
5.4.3 可见性 118
5.5 存储类型 118
5.5.1 存储类型auto 118
5.5.2 存储类型extern 119
5.5.3 存储类型static 120
5.5.4 存储类型register 123
5.5.5 新增存储类型_Thread_local 123
本章小结 124
习题5 124
第6章 编译预处理 126
6.1 文件包含#include 126
6.2 宏定义#define 126
6.2.1 无参宏定义 127
6.2.2 带参宏定义 127
6.2.3 空宏参数 128
6.2.4 可变参数宏定义 128
6.2.5 通用类型宏 129
6.3 取消宏定义#undef 130
6.4 条件编译 130
6.4.1 #if、#ifdef和 #ifndef指令 130
6.4.2 defined运算符 131
6.4.3 条件编译的应用 132
6.5 assert断言和静态断言 133
6.5.1 assert断言 133
6.5.2 静态断言 133
6.6 _func_预定义标识符 134
6.7 _Pragma预处理操作符 134
本章小结 134
习题6 135
第7章 数组 136
7.1 数组概述 136
7.2 一维数组 136
7.2.1 一维数组的声明 137
7.2.2 一维数组的使用 138
7.2.3 一维数组的初始化 138
7.2.4 一维数组的存储结构 139
7.2.5 一维数组的运算 139
7.2.6 一维数组作为函数参数 140
7.3 字符数组 141
7.3.1 字符数组的声明和使用 141
7.3.2 字符数组的初始化 142
7.4 字符串处理函数 142
7.4.1 串操作函数的设计及使用 143
7.4.2 数字串与数值之间转换
的函数 146
7.4.3 C11标准中新增的Unicode
字符集和Unicode字符串 148
7.5 多维数组 149
7.5.1 多维数组的声明与使用 150
7.5.2 多维数组的存储结构 151
7.5.3 多维数组的初始化 152
7.5.4 二维字符数组 153
7.6 数组的应用 154
7.6.1 矩阵乘法运算 154
7.6.2 基于分治策略的二分查找
函数 155
7.6.3 逆波兰表达式的生成 156
7.6.4 利用值栈对逆波兰表达式进行
求值 158
本章小结 160
习题7 160
第8章 指针 162
8.1 指针的概念与使用 162
8.1.1 指针的概念 162
8.1.2 指针的声明 163
8.1.3 指针的使用 164
8.2 指针运算 167
8.2.1 指针的算术运算 167
8.2.2 指针的赋值运算和关系运算 168
8.3 指针作为函数的参数 169
8.3.1 形参指针对实参变量的影响 169
8.3.2 指针作为函数形参的应用 171
8.4 数组的指针表示 171
8.4.1 一维数组的指针表示 172
8.4.2 一维数组参数的指针表示 174
8.4.3 用指向数组基本元素的指针
表示多维数组 175
8.4.4 高精度计算——超长整数
加法运算 176
8.5 指针数组 177
8.5.1 指针数组的声明及使用 177
8.5.2 多重指针 182
8.6 带参数的main函数 182
8.6.1 命令行参数 182
8.6.2 带参main函数的声明及使用 183
8.7 指针函数 184
8.7.1 指针函数的声明与定义 184
8.7.2 指针函数的使用 185
8.8 函数的指针 185
8.8.1 函数指针的声明 185
8.8.2 函数指针的应用 186
8.9 restrict和_Atomic类型修饰符 188
8.9.1 restrict类型修饰符 188
8.9.2 _Atomic类型修饰符 189
本章小结 190
习题8 190
第9章 结构与联合 192
9.1 结构概述 192
9.2 结构类型声明和结构变量的声明
及初始化 192
9.2.1 结构类型的声明 192
9.2.2 结构变量的声明 194
9.2.3 结构变量的初始化 196
9.3 结构类型的引用 196
9.3.1 结构变量的引用 197
9.3.2 通过成员选择运算符“.”
访问成员 197
9.3.3 嵌套结构的声明 198
9.3.4 嵌套结构中结构成员的成
|
|