C语言程序设计

C语言程序设计

李忠月, 励龙昌, 主编

出版社:清华大学出版社

年代:2014

定价:29.0

书籍简介:

C语言程序设计课程的教学重点应该是培养学生的实践编程能力,教学模式要从知识传授转为能力培养,本教材以程序设计为中心来组织内容。全书以程序设计为主线,从应用出发,通过案例和问题引入内容,重点讲解程序设计的思想和方法,并结合相关的语言知识的介绍。

书籍目录:

第1章概述/1

1.1计算机程序设计语言1

1.2用程序设计语言编写程序的步骤2

1.2.1编码2

1.2.2编译2

1.2.3调试3

1.2.4维护3

1.3结构化程序设计方法4

1.4算法4

1.4.1算法的特性5

1.4.2算法的描述5

1.5关于C程序设计语言8

1.5.1C语言出现的历史背景8

1.5.2C语言的特点9

1.6简单的C语言程序10

练习题16

第2章类型、运算符与表达式/18

2.1变量18

2.1.1变量的命名规则18

2.1.2变量的声明19

2.2数据类型及长度20

2.2.1short与long限定符20

2.2.2signed与unsigned限定符20

2.2.3每种数据类型的printf和scanf格式转换符21

2.3常量24

2.3.1整数常量与浮点数常量24

2.3.2字符常量24

2.3.3字符串常量24

2.3.4符号常量25〖1〗C语言程序设计目录[3]〖3〗2.3.5枚举常量26

2.4常量表达式27

2.5算术运算符27

2.6关系运算符与逻辑运算符27

2.7自增运算符与自减运算符29

2.8逗号运算符30

2.9赋值运算符与表达式31

2.10条件运算符与条件表达式31

2.11一元运算符sizeof33

2.12类型转换33

2.13运算符的优先级及求值次序35

练习题36

第3章分支结构/44

3.1实例导入44

3.2语句与程序块45

3.3ifelse语句45

3.4elseif语句48

3.5switch语句50

3.6应用实例: 学生成绩管理56

练习题58

第4章循环结构/62

4.1实例导入62

4.2while循环65

4.3for循环70

4.4dowhile循环74

4.5三种循环语句的比较76

4.6循环结构的嵌套76

4.7break语句与continue语句83

4.8goto语句与标号86

4.9专题1: 正整数的拆分87

4.10专题2: 迭代法90

4.11应用实例: 学生成绩管理95

练习题95

第5章输入与输出/109

5.1getchar()函数109

5.2putchar()函数110

5.3printf()函数112

5.4scanf()函数114

5.5应用实例: 求和116

练习题122

第6章函数/126

6.1实例导入126

6.2函数的基本知识129

6.2.1函数的定义129

6.2.2函数的调用130

6.2.3函数的声明133

6.2.4函数设计的基本原则137

6.3函数的嵌套调用137

6.4函数的递归调用137

6.5变量的存储类型143

6.6变量的类别144

6.6.1外部变量与内部变量144

6.6.2静态变量145

6.6.3寄存器变量146

6.7变量的作用域与生存期147

6.8程序块结构153

6.9变量的初始化154

6.10预处理器154

6.10.1文件包含154

6.10.2宏替换155

6.10.3条件编译157

6.11专题3: 最大公约数的求解158

6.11.1bruteforce算法159

6.11.2欧几里得算法159

6.11.3更相减损法160

6.12专题4: 素数的判定161

6.12.1素数判定的基本方法161

6.12.2素数判定的筛选法168

练习题170

第7章数组/184

7.1实例导入184

7.2一维数组187

7.2.1一维数组的定义187

7.2.2一维数组元素的引用188

7.2.3一维数组的初始化188

7.2.4一维数组的应用举例189

7.3二维数组192

7.3.1二维数组的定义192

7.3.2二维数组元素的引用192

7.3.3二维数组的初始化193

7.3.4二维数组的应用举例194

7.4字符数组199

7.4.1字符数组的定义和引用199

7.4.2字符数组的初始化199

7.4.3字符数组的输入输出201

7.4.4字符数组的应用举例203

7.5数组与函数参数206

7.5.1数组元素作函数实参206

7.5.2数组名作函数实参207

7.6查找和排序209

7.6.1查找209

7.6.2排序210

7.7专题5: 进制转换214

7.8应用实例: 学生成绩管理216

练习题218

第8章指针/238

8.1实例导入238

8.2指针的基本知识243

8.2.1指针变量的声明243

8.2.2指针变量的初始化243

8.2.3指针变量的基本运算243

8.3指针与数组246

8.3.1指针与一维数组246

8.3.2指针与多维数组254

8.4指针与函数256

8.4.1指针作为函数的参数256

8.4.2指针作为函数的返回值259

8.4.3指向函数的指针262

8.5字符指针与函数264

8.6指针数组265

8.6.1指针数组的声明265

8.6.2指针数组的初始化265

8.6.3指针数组与二维数组的区别266

8.7命令行参数266

8.8指向指针的指针267

8.9动态分配268

8.9.1动态分配内存268

8.9.2释放内存269

8.9.3void类型269

8.9.4动态数组269

8.9.5查找malloc中的错误271

练习题271

第9章结构/291

9.1结构类型的用处291

9.2结构的基本知识296

9.2.1结构类型的定义297

9.2.2结构变量的定义297

9.2.3结构成员的访问298

9.2.4对结构变量的操作298

9.2.5结构变量的初始化300

9.2.6结构的嵌套301

9.3结构数组302

9.4结构指针305

9.5typedef307

9.6结构与函数308

9.7单链表309

9.7.1单链表的初始化310

9.7.2单链表的输出310

9.7.3单链表的插入311

9.7.4单链表的删除313

9.7.5链表的综合操作313

9.8联合315

9.9枚举318

9.9.1枚举类型的定义318

9.9.2枚举变量的定义318

9.9.3对枚举变量的操作319

9.10应用实例: 学生成绩管理321

9.10.1用结构数组实现322

9.10.2用单链表实现323

练习题326

第10章位运算/336

10.1位运算符336

10.1.1与运算符336

10.1.2或运算符336

10.1.3异或运算符337

10.1.4取反运算符337

10.1.5左移运算符和右移运算符338

10.2位赋值运算符341

10.3位域341

练习题343

第11章文件/345

11.1实例导入346

11.2C语言中文件的使用347

11.2.1声明FILE类型的变量348

11.2.2打开文件348

11.2.3执行I/O操作349

11.2.4关闭文件349

11.3字符I/O350

11.3.1读字符函数fgetc()350

11.3.2写字符函数fputc()350

11.4面向行I/O353

11.4.1读字符串函数fgets()353

11.4.2写字符串函数fputs()353

11.5格式化I/O354

11.5.1格式化输出354

11.5.2格式化输入354

11.6数据块读写356

11.6.1数据块读函数fread()356

11.6.2数据块写函数fwrite()356

11.7文件的定位356

11.7.1fseek()函数356

11.7.2ftell()函数358

11.7.3frewind()函数358

11.8错误检测函数359

11.8.1clearerr()函数359

11.8.2feof()函数359

11.8.3ferror()函数359

11.9应用实例: 学生成绩管理360

练习题364

附录A常用字符与ASCII码对照表/369

附录B常用的C语言库函数/371B.1数学函数371

B.2字符处理函数372

B.3字符串处理函数373

B.4实用函数374

附录C与具体实现相关的限制/375

附录D原码、反码和补码/376

参考文献/377

〖1〗C++程序设计基础目录[3]〖3〗§2.2常量28

2.2.1整型常量28

2.2.2浮点常量28

2.2.3字符常量30

2.2.4字符串常量30

2.2.5标识常量32

2.2.6换码序列32

§2.3变量34

2.3.1变量和变量的地址34

2.3.2C++存储类型35

2.3.3变量使用范围37

2.3.4变量的初始化和赋值38

2.3.5强制数据类型的转换38

2.3.6常量化的变量40

§2.4数组41

2.4.1一维数据41

2.4.2字符数组44

2.4.3多维数组46

§2.5运算符及其运算48

2.5.1算术运算符48

2.5.2关系运算符和逻辑运算符50

2.5.3位运算符52

2.5.4赋值运算符与赋值复合运算符58

2.5.5C++语言的特殊运算符59

2.5.6C++运算符的优先级61

思考与练习题62

第3章控制语句/64

§3.1程序设计方法与程序结构64

3.1.1结构化程序设计65

3.1.2面向对象的程序设计67

§3.2分支语句67

3.2.1单分支语句——if语句68

3.2.2双分支语句——if~else语句69

3.2.3多分支语句——else if语句70

3.2.4嵌套结构及其分析73

3.2.5switch语句76

§3.3循环语句79

3.3.1for循环语句79

3.3.2while循环语句82

3.3.3do~while循环语句84

3.3.4循环语句使用的注意事项86

3.3.5循环语句的嵌套87

§3.4辅助控制语句88

3.4.1break语句——中途退出语句88

3.4.2continue语句——截流语句92

3.4.3return语句93

3.4.4goto语句95

思考与练习题96

第4章指针/101

§4.1指针变量101

§4.2指针变量的声明与初始化104

4.2.1指针变量的声明104

4.2.2指针的初始化105

§4.3指针运算107

4.3.1指针的算术运算107

4.3.2指针的关系运算111

4.3.3指针的赋值运算112

§4.4指针与数组113

§4.5字符指针与字符串115

§4.6指针数组117

§4.7多级指针119

§4.8new和delete运算符121

4.8.1new运算符121

4.8.2delete运算符123

§4.9引用124

4.9.1普通变量的引用124

4.9.2数组的引用124

§4.10const型指针和void型指针125

4.10.1常量化的指针变量126

4.10.2void型指针变量128

思考与练习题128

第5章函数与宏/130

§5.1自定义函数的定义、声明和使用130

5.1.1函数的定义130

5.1.2函数的声明132

5.1.3函数的使用133

§5.2函数之间的参数传递135

5.2.1复制传递方式135

5.2.2地址传递方式136

5.2.3引用方式137

5.2.4全局变量138

5.2.5默认参数值的函数139

§5.3函数与数组140

5.3.1复制传递方式140

5.3.2地址传递方式141

5.3.3引用方式142

5.3.4多维数组与函数143

§5.4指针函数146

§5.5函数指针与函数指针数组147

5.5.1函数指针147

5.5.2函数指针数组149

§5.6函数重载150

§5.7内联函数152

§5.8递归函数152

§5.9标准函数153

§5.10宏和其他预编译语句156

5.10.1宏定义语句#define156

5.10.2包括语句158

5.10.3条件编译158

思考与练习题159

第6章自定义数据类型/167

§6.1结构体的定义及其声明167

6.1.1结构体的定义167

6.1.2结构体的声明168

6.1.3结构体的使用169

6.1.4结构体的初始化170

6.1.5匿名结构体171

§6.2结构体数组与结构体指针171

6.2.1结构体数组171

6.2.2结构体指针172

§6.3结构体与函数174

6.3.1结构体在函数体间的传递174

6.3.2结构体函数177

6.3.3结构体指针函数179

§6.4结构体嵌套180

§6.5位字段结构体简介182

§6.6联合体184

§6.7枚举类型188

6.7.1枚举类型的定义188

6.7.2枚举变量的声明与使用188

§6.8typedef语句190

思考与练习题192

第7章类与对象/195

§7.1面向对象技术与C++类类型195

7.1.1传统开发方法存在的问题195

7.1.2面向对象技术196

7.1.3C++语言的三种类类型197

7.1.4class类类型198

§7.2类的定义199

§7.3对象的声明和使用202

§7.4对象数组和对象指针204

7.4.1对象数组204

7.4.2对象指针205

§7.5构造函数和析构函数207

7.5.1构造函数207

7.5.2析构函数208

7.5.3默认构造函数和默认析构函数209

7.5.4复制构造函数209

7.5.5浅复制和深复制211

§7.6对象在函数间的传递214

7.6.1对象的复制传递方式214

7.6.2对象的地址传递方式215

7.6.3对象的引用方式217

§7.7this指针217

§7.8常对象与常成员函数218

7.8.1常对象218

7.8.2常成员函数219

思考与练习题220

第8章派生与继承/222

§8.1类的程序结构222

§8.2基类与派生类223

8.2.1派生类的定义223

8.2.2派生类的继承方式226

8.2.3基类与派生类之间的关系228

8.2.4基类指针与派生类指针228

§8.3单继承、多继承与继承链228

§8.4派生类与基类之间的内在关系233

8.4.1派生类的构造函数和析构函数234

8.4.2构造函数和析构函数的执行顺序235

8.4.3子类型238

8.4.4类型适应239

8.4.5对象的内存占用情况239

§8.5二义性与虚基类241

8.5.1二义性问题241

8.5.2虚基类244

8.5.3虚基类的构造函数246

§8.6类层次中的访问规则246

思考与练习题247

第9章友元与静态成员/249

§9.1友元249

9.1.1友元函数249

9.1.2友元类251

§9.2静态成员252

9.2.1静态数据成员252

9.2.2静态成员函数255

思考与练习题257

第10章虚拟函数与多态性/259

§10.1静态绑定和动态绑定259

10.1.1静态绑定259

10.1.2动态绑定261

§10.2虚拟函数261

10.2.1虚拟函数的技术内幕264

10.2.3虚拟函数的应用举例265

10.2.3虚析构函数269

§10.3纯虚拟函数与抽象类270

10.3.1纯虚拟函数270

10.3.2抽象类271

思考与练习题276

第11章重载与模板/279

§11.1重载279

11.1.1运算符重载279

11.1.2类型转换284

11.1.3特殊运算符的重载285

§11.2模板290

11.2.1函数模板291

11.2.2类模板293

11.2.3模板与友元298

11.2.4模板与static成员300

11.2.5类模板的派生与继承300

思考与练习题300

第12章异常处理/303

§12.1异常的概念303

12.1.1异常的定义303

12.1.2异常处理的基本思想303

§12.2异常处理的编程方法304

12.2.1异常处理的三个语句304

12.2.2异常处理的执行过程305

12.2.3异常处理的基本步骤305

12.2.4多类型的异常处理306

12.2.5再抛出异常308

12.2.6构造函数、析构函数与异常处理309

§12.3异常处理类309

思考与练习题310

第13章C++输入和输出/312

§13.1流输入输出312

13.1.1提取运算符和插入运算符312

13.1.2标准出错输出(cerr/clog)315

13.1.3输入流类315

13.1.4输出流类316

13.1.5格式化输入输出317

§13.2磁盘文件的输入输出324

13.2.1文本文件的输入输出324

13.2.2二进制数据文件328

13.2.3随机数据文件329

思考与练习题331

参考文献/332

......

内容摘要:

本书采用“实例导入问题提出解释与应用”这一基本叙述模式,引入生动有趣的案例,从情境中提出问题,建立数学模型,获得解决,最后再应用。全书共分11章,包括概述、分支结构、循环结构、函数数组、指针、结构等内容。本书在结构设计上,从有利于学生学习的角度出发选择、组织和呈现教学内容。首先,在书的安排顺序上,先安排函数,然后是数组和指针,这样便于学生早接触函数,早使用函数,有利于学生后续课程的学习;其次,强调实践,而不拘泥于基础知识,通过实践掌握基础知识,重点在程序设计能力的培养;再次,本教材设计了一些专题,如迭代算法、素数判定等,总结了某一类问题的解决方法,又让学生体验到程序设计的实用性,激发了学生的学习兴趣。本书可以作为各类大专院校、等级考试与各类培训的教学用书,也可作为C语言程序设计的自学用书。

书籍规格:

书籍详细信息
书名C语言程序设计站内查询相似图书
9787302374527
如需购买下载《C语言程序设计》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位清华大学出版社
版次1版印次1
定价(元)29.0语种简体中文
尺寸26 × 19装帧平装
页数印数 2000

书籍信息归属:

C语言程序设计是清华大学出版社于2014.9出版的中图分类号为 TP312 的主题关于 C语言-程序设计-高等学校-教材 的书籍。