下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922
读书 > 编程语言 >C/C++ > C语言程序设计 第2版

C语言程序设计 第2版

综合评级:★★★★★

定价:35.00

作者:王立柱

出版社:机械工业出版社

出版日期:2016年3月

页数:190

字数:136000

ISBN:9787111529279

书籍介绍

本书采用辩证逻辑叙述方法,从程序设计中的问题出发学习C语言知识。全书共11章,内容包括:机器语言模式、C语言模式、函数、一维数组和指针、字符串、结构体、联合体、枚举、顺序表、链表、文件、二维数组和指针、非线性结构与递归。本书内容详实连贯,结构清晰严谨,目标具体明确,既可作为本科及大专院校C语言程序设计课程的教材,也可作为编程爱好者的自学参考书。

相关课程
目录

目  录

前言

教学建议

第1章 机器语言模式 1

1.1 模拟机器指令集与程序设计举例 1

1.2 机器语言的局限性 6

问题与练习 7

第2章 C语言模式 8

2.1 基于基本类型的编程模式 8

2.2 基本数据类型 17

2.2.1 整型 18

2.2.2 实型 19

2.2.3 字符型 20

2.3 运算符和表达式 22

2.3.1 自增自减运算符和表达式 23

2.3.2 复合赋值运算符和表达式 23

2.3.3 条件表达式和逗号表达式 24

2.3.4 关系运算符和逻辑运算符 24

2.3.5 运算符优先级 26

2.4 类型转换 26

2.5 程序流程控制结构 27

2.5.1 if-else语句 27

2.5.2 switch-case语句 29

2.5.3 break语句和continue语句 30

问题与练习 31

第3章 函数 34

3.1 函数自定义与调用 34

3.2 函数声明与定义 38

3.3 函数与变量的存储类别 39

3.3.1 自动局部变量 40

3.3.2 静态局部变量 42

3.3.3 外部变量 43

3.4 函数应用设计举例 44

3.4.1 阶乘累加 44

3.4.2 求π的近似值 45

3.4.3 求最大公约数 46

3.4.4 判断质数 47

3.4.5 数制转换 47

*3.5 模块化程序设计 48

3.5.1 全局外部函数 49

3.5.2 静态外部函数 50

3.5.3 全局外部变量 50

3.5.4 静态外部变量 51

3.6 编译预处理 52

3.6.1 无参宏指令 52

3.6.2 带参宏指令 53

3.6.3 条件编译指令 55

3.6.4 文件包含指令 56

问题与练习 58

第4章 一维数组和指针 59

4.1 指针和指针传递 59

4.2 一维数组和指针 63

4.2.1 一维数组 63

4.2.2 指向一维数组的指针 66

*4.2.3 数组类型和数组首元素类型 69

4.3 const型指针 71

4.4 动态数组 73

4.5 数组和指针应用举例 76

4.5.1 Josephus问题 76

4.5.2 选择排序 79

4.5.3 起泡排序 81

4.5.4 划分数组元素 83

4.5.5 删除数组中的重复数据 85

4.5.6 筛法求质数 86

4.5.7 顺序搜索和二分搜索 87

4.6 索引和指针 89

4.7 指针和左值 90

4.8 函数指针 90

问题与练习 91

第5章 字符串 93

5.1 字符串常量和字符串变量 93

5.2 字符串基本操作函数原型 98

5.3 字符串基本操作函数实现 99

5.4 字符串基本操作函数的补充 102

5.4.1 取子串 103

5.4.2 子串插入 104

5.4.3 子串删除 106

5.4.4 字符查找 107

5.5 模式匹配 107

问题与练习 110

第6章 结构体、联合体和枚举 111

6.1 结构体 111

6.1.1 结构体定义 111

6.1.2 结构体变量和typedef名字 112

6.1.3 结构体变量的初始化和赋初值 113

6.1.4 结构体数组 114

6.1.5 结构体的嵌套 115

6.1.6 结构体返回值和指针传递 116

6.1.7 数组和含有数组的结构体变量 116

6.2 联合体 118

6.3 枚举 120

6.4 结构体应用设计举例 122

6.4.1 模拟洗牌 122

6.4.2 Date结构体 123

6.4.3 三天打鱼,两天晒网 126

问题与练习 127

第7章 顺序表 130

7.1 数组的局限性 130

7.2 顺序表声明与实现 131

7.2.1 顺序表声明 132

7.2.2 顺序表实现 134

7.3 索引和指针 138

7.4 数据抽象和封装 139

问题与练习 140

第8章 链表 141

8.1 链表的结构分析 142

8.2 链表的声明和实现 143

问题与练习 148

第9章 文件 149

9.1 文件指针 149

9.2 文件的打开与关闭 150

9.3 文件的读写 153

9.3.1 字符的读写 153

9.3.2 字符串的读写 154

9.3.3 无格式读写 155

9.3.4 格式读写 158

9.3.5 文件的随机访问 159

问题与练习 161

*第10章 二维数组和指针 163

10.1 概述 163

10.2 二维数组和一维数组 169

10.3 马鞍点 170

10.4 指针数组和二级指针 172

10.5 指针数组和二维数组 173

问题与练习 175

*第11章 非线性结构与递归 176

11.1 树形结构与递归 176

11.2 递归函数 180

问题与练习 183

附录A 命名规则 185

附录B 常用的ANSI C标准库函数 186

参考文献 191

前言

前  言本书采用辩证逻辑叙述方法。所谓辩证,是指从程序设计的基本矛盾出发,说明概念的必然发展过程。所谓逻辑,是指从机器语言程序出发,逐步分析和引出有关程序设计的概念。程序设计的基本矛盾是数据结构和算法的矛盾。数据结构即一组有组织的数据和对数据的基本操作,一般用程序语言来表示;算法是用基本操作表示的数据处理的有限步骤。算法越来越复杂,同时要求程序易写、易读、易维护且足够高效,这就推动了程序语言的发展,而发展的程序语言又反过来扩展了算法。 本书从程序设计中的问题出发学习各种概念:每一个问题都是程序设计中的问题,每一个问题的解决都产生新的程序以及新的概念。读者从本书中所感受到的,不是一个高高在上的思想者的存在,即他告诉你做什么,而是读者自身的存在,即读者知道自己要做什么,并且可以描述出每一个问题的产生过程和解决方案。 本书内容概要第1章机器语言模式。首先用若干条虚拟的机器指令模拟一台计算机,通过一个简单的求和程序引入存储器、地址、寄存器、程序计数器等概念。然后用一个方程的两种求解程序,说明算法和指令集的相互作用关系,同时引入程序入口地址、子程序调用、断口地址、现场保护、栈等概念。最后,通过分析机器语言的局限性,引入汇编语言、汇编程序等概念。本章的重点不是机器语言程序设计,而是理解有关程序设计的一些基本概念,以及数据结构和算法这一对矛盾最初的表现形式。 第2章C语言模式。首先分析汇编语言的局限性,由此引出高级程序语言——C语言。然后通过将一个整数按位逆置的各种算法,引出C语言基于基本类型的编程模式,包括主函数框架、标准输入/输出函数、表达式、程序流程控制结构等基本知识。最后分节详述这些基本知识。 第3章函数。首先将一个整数按位逆置的算法设计为一个函数,然后逐步引入函数的相关知识。核心内容是函数调用的三个步骤:一是主调函数通过实参对被调函数的形参进行初始化;二是被调函数如果有返回值,系统就根据返回值类型创建一个临时变量,以初始化方式存储这个返回值;三是主调函数如果需要被调函数的返回值,就从这个临时变量取值。 第4章一维数组和指针。由一个整数的按位逆置,到一个整数的按位求和,再到一组整数求和,通过算法的逐步深入,自然而然地揭示出对指针的需求。然后,通过“对象即类型化的空间”这个基本概念,结合程序设计的需要,简洁明了地把指针“设计”出来。 第5章字符串。字符串是标准库提供的一种数据结构。字符数组加串结束符是它的存储结构,串长度、串复制、串连接等是它的基本操作。该章不仅实现了字符串的基本操作代码,而且补充了一些基本操作,并在此基础上实现了模式匹配。 第6章结构体、联合体和枚举。这是基本类型的扩展。 第7章顺序表。首先分析了数组的局限性,然后建立顺序表克服这些局限性。 第8章链表。首先分析了顺序表这种连续存储结构的局限性,然后建立链表克服这种局限性。 第9章文件。文件主要是指磁盘文件,是对标准输入/输出文件的扩展。该章通过对比引出磁盘文件的读写操作。 第10章二维数组和指针。该章是第4章一维数组和指针的自然扩展,对数组和指针的一系列概念进行了严谨而简洁的综述。 第11章非线性结构与递归。首先通过英语的树形结构引入递归概念,然后将递归算法与非线性结构联系起来进行讲解。 教辅资源本书配有多媒体教学课件,大部分程序在课件中都有结构、算法、代码、运行及结果的跟踪演示,而且允许自由输入数据。 用书教师可访问华章网站(www.hzbook.com)下载。 致读者读者如有问题,可以直接与作者联系:tjwanglizhu@163.com。

热门图书
推荐新闻
技术文库
论坛推荐