本书是华中科技大学“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

习题120

第2章  基本词法语法规则与程序元素21

2.1  字符及词法元素21

2.1.1  字符集21

2.1.2  词法元素21

2.2  语法规则22

2.2.1  BNF范式22

2.2.2  EBNF23

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

习题252

第3章  基本的标准输入与输出54

3.1  字符输入与输出54

3.1.1  字符输出函数putchar54

3.1.2  字符输入函数getchar55

3.2  字符串输入与输出57

3.2.1  字符串输出函数puts57

3.2.1  字符串输入函数gets57

3.3  格式化输入与输出58

3.3.1  格式化输出函数printf58

3.3.2  格式化输入函数scanf62

本章小结70

习题370

第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

习题4102

第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和_Noreturn111

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  存储类型auto118

5.5.2  存储类型extern119

5.5.3  存储类型static120

5.5.4  存储类型register123

5.5.5  新增存储类型_Thread_local123

本章小结124

习题5124

第6章  编译预处理126

6.1  文件包含#include126

6.2  宏定义#define126

6.2.1  无参宏定义127

6.2.2  带参宏定义127

6.2.3  空宏参数128

6.2.4  可变参数宏定义128

6.2.5  通用类型宏129

6.3  取消宏定义#undef130

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

习题6135

第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

习题7160

第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

习题8190

第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  嵌套结构中结构成员的成

内容简介:

本书是华中科技大学“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

习题120

第2章  基本词法语法规则与程序元素21

2.1  字符及词法元素21

2.1.1  字符集21

2.1.2  词法元素21

2.2  语法规则22

2.2.1  BNF范式22

2.2.2  EBNF23

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

习题252

第3章  基本的标准输入与输出54

3.1  字符输入与输出54

3.1.1  字符输出函数putchar54

3.1.2  字符输入函数getchar55

3.2  字符串输入与输出57

3.2.1  字符串输出函数puts57

3.2.1  字符串输入函数gets57

3.3  格式化输入与输出58

3.3.1  格式化输出函数printf58

3.3.2  格式化输入函数scanf62

本章小结70

习题370

第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

习题4102

第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和_Noreturn111

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  存储类型auto118

5.5.2  存储类型extern119

5.5.3  存储类型static120

5.5.4  存储类型register123

5.5.5  新增存储类型_Thread_local123

本章小结124

习题5124

第6章  编译预处理126

6.1  文件包含#include126

6.2  宏定义#define126

6.2.1  无参宏定义127

6.2.2  带参宏定义127

6.2.3  空宏参数128

6.2.4  可变参数宏定义128

6.2.5  通用类型宏129

6.3  取消宏定义#undef130

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

习题6135

第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

习题7160

第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

习题8190

第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  嵌套结构中结构成员的成

c语言与程序设计曹计昌pdf,C语言与程序设计相关推荐

  1. c语言与程序设计曹计昌 答案,c语言与程序设计答案曹计昌

    某设备三年前购买的原始成本是90000元,目前的账面价值为40000元,经过评估,该设备现在的净残值为18000元.则在设备更新方案比选中,该设备的沉没成本是(  )元. A:90000 B:2200 ...

  2. c语言高级程序设计第五版PDF,C语言高级编程.pdf

    C语言高级编程 概述 由几个测试程序说开去 预编译与宏 高级预编译介绍 宏的高级用法 变量 变量分类详细解析 我的变量去哪儿了? 大小端对变量的影响 内存与指针 常见内存使用错误大观 指针,又是指针! ...

  3. c语言程序设计李丽娟pdf,C语言程序设计教程 教学课件 李丽娟 第5章循环结构.pdf...

    第五章 循环结构 第五章 循环结构 第五章 循环结构 §5.1 for语句 §5.2 while语句 §5.3 do~while语句 §5.4 用于循环中的break和continue语句 §5.5 ...

  4. c语言课程设计北京电子工业出版社,C语言课程设计报告(招生查询系统).doc

    PAGE 课 程 设 计 报 告 题目: 招生查询系统 课程名称: C语言程序设计 专业班级: 学 号: 姓 名: 指导教师: 报告日期: 2013.10.16 计算机科学与技术学院 任务书 题目㈠ ...

  5. c语言第一周作业答案,C语言程序设计下mooc答案.pdf

    <C语言程序设计下mooc答案.pdf>由会员分享,可在线阅读,更多相关<C语言程序设计下mooc答案.pdf(27页珍藏版)>请在装配图网上搜索. 1.2016.03.280 ...

  6. 趣味c语言程序设计,C语言程序设计的趣味性教学.pdf

    C语言程序设计的趣味性教学.pdf 远程教育研究 C语言程序设计的趣味性教学 毛丽娟 杨云超 (成都东软信息技术职业学院 四J|l都江堰611844) 摘要:c语言的教学多注重腕本室科的理论教学,缺少 ...

  7. c语言程序设教材计 乌云高娃,C语言程序设计教学课件作者第3版乌云高娃演示文稿C语言程序设计教学课件作者第3版乌云高娃演示文稿演示文稿第1章C语言程序设计基础课件.ppt...

    C语言程序设计教学课件作者第3版乌云高娃演示文稿C语言程序设计教学课件作者第3版乌云高娃演示文稿演示文稿第1章C语言程序设计基础课件.ppt 主要内容 课程概述 为什么选择C语言作为入门课程? C语言 ...

  8. c语言程序设计第4版pdf荣政_C语言程序设计(第4版) (史蒂芬.寇肯) 中文pdf扫描版[82MB]...

    C语言程序设计(第4版)全面介绍了C语言的各种特性,包括C11中增加的内容.书中包含大量完整的示例及详细的讲解.无论是否拥有编程经验,你都可以通过本书透彻地理解C语言.每章最后附有习题,便于课堂学习或 ...

  9. c语言点滴 书签 pdf,C语言程序设计(详细书签)文字版.pdf

    1 前言 1 前言 前言 程序设计基础是计算机课程体系中的第一门重要的基础课程.因为C语言是使用最 广泛的语言之一,它具有完备的高级语言特性,语言简洁紧凑.灵活方便,具有丰富 的运算符和数据类型,生成 ...

最新文章

  1. Python基础总结(2)
  2. Spring Boot 解决跨域问题的 3 种方案
  3. iOS 自定义相机,带水印!
  4. UNITY把3D模型显示在UI层级上的思路
  5. Lambda 表达式详解~简化匿名内部类
  6. linux c++开发_Linux/Windows下进行C/C++开发的差异
  7. 四分位数(Quartiles)、十分位数(Deciles)和百分位数(Percentiles
  8. python典型例题_经典动态规划例题整理(Python版)
  9. OPENCV 函数cvCreateMat
  10. dspemif怎么读_DSP技术在EMIF接口中的BOOT方法简析
  11. HTML5期末大作业:商城网站设计——小米商城官网首页(1页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 web学生网页设计作业源码...
  12. 郭天祥的10天学会51单片机_第四节
  13. 1位全加器设计—— 原理图与VHDL设计初步
  14. VOT Toolkit环境配置与使用
  15. Java多线程学习笔记
  16. 算法笔记 简单贪心(月饼问题)
  17. win7系统安装记录
  18. CLion2020调整字体大小
  19. 什么是集群和集群的分类
  20. lnk1120如何解决_fatal error LNK1120: 6 unresolved externals问题怎么解决?

热门文章

  1. SharePoint 2010 图片库Web部件
  2. oracle集群+默认什么组,Oracle RAC 建设过程中必须应知、应做(上)
  3. Spark商业案例与性能调优实战100课》第2课:商业案例之通过RDD实现分析大数据电影点评系统中电影流行度分析
  4. 爬虫项目二:简单的半自动化的爬虫抖音评论,你还不会吗?
  5. android OTA
  6. php5.6 安装swoole,Swoole Loader 安装说明
  7. ff14转服务器系统,ff14转服时间 | 手游网游页游攻略大全
  8. 戴顿大学电子与计算机工程技术,戴顿大学世界排名多少 综合和专业排名介绍...
  9. CSS样式的计算过程
  10. 昨天去买高速SD记忆卡