万本电子书0元读

万本电子书0元读

顶部广告

跟我学C语言电子书

C语言是计算机专业的基础课和核心课程。

售       价:¥

纸质售价:¥53.80购买纸书

9人正在读 | 1人评论 6.2

作       者:陈锐,田建新

出  版  社:清华大学出版社

出版时间:2013-09-01

字       数:5130

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(1条)
  • 读书简介
  • 目录
  • 累计评论(1条)
C语言是计算机专业的基础课和核心课程。本书内容全面,结构清晰,语言通俗,重难突出,所有程序都能够直运行。本书内容包括C7语言概述、常用的程序发环境、基本数据类型、表达式、顺序结构程序设计、选择结构程序设计、循环结构程序设计、数组、函数、预处理命令、指针、结构体和共用体、位运算、文件、表、键盘和鼠标、网络编程基础、常用算法、栈和队列、排序、学生成绩管理系统、常见错误和程序调试技术。 本书可作为学习C程序设计、从事计算机软件发、参加等级考试和软考的人员的参考书,也可以作为计<br/>
目录展开

扉页

内容简介

版权页

前言

目录

第1章 C语言概述

1.1 为什么要选择C语言

1.1.1 选择C语言的好处

1.1.2 C语言的特点

1.1.3 如何学好C语言

1.2 进制转换

1.2.1 十进制数的表示

1.2.2 二进制数的表示

1.2.3 二进制数、十六进制数和八进制数转换为十进制数

1.2.4 十进制数转换为二进制数

1.2.5 十进制数转换为十六进制数

1.2.6 十进制数转换为八进制数

1.2.7 二进制数与十六进制数、八进制数的转换

1.3 计算机中数的表示

1.3.1 计算机中的正数与负数表示

1.3.2 原码和补码

1.3.3 浮点数

1.4 小结

第2章 C语言开发环境

2.1 Turbo C 2.0开发环境介绍

2.1.1 运行Turbo C 2.0

2.1.2 Turbo C 2.0环境设置

2.1.3 Turbo C 2.0的使用

2.2 Win-TC开发环境介绍

2.2.1 Win-TC开发环境概述

2.2.2 Win-TC的使用

2.3 LCC开发环境介绍

2.3.1 使用LCC开发环境创建项目

2.3.2 LCC开发环境的介绍

2.3.3 LCC的使用

2.4 Visual C++ 6.0开发环境介绍

2.4.1 使用Visual C++ 6.0新建项目

2.4.2 使用Visual C++ 6.0新建源程序文件

2.4.3 使用Visual C++ 6.0开发环境

2.5 小结

第3章 基本数据类型

3.1 变量

3.1.1 为什么要使用变量

3.1.2 什么是变量——变量在计算机中的表示

3.1.3 如何定义变量

3.1.4 为什么要有数据类型

3.1.5 C语言有哪些数据类型

3.1.6 什么符号可以作为变量名——用户定义的标识符

3.1.7 关键字——已经被占用的标识符

3.1.8 初识变量赋值

3.2 整型变量

3.2.1 为什么要使用整型变量

3.2.2 基本整型变量

3.2.3 基本整型变量的输入——使用scanf函数

3.2.4 基本整型变量的输出——使用printf函数

3.2.5 长整型变量——解决大整数问题

3.2.6 短整型变量——节省内存空间

3.2.7 无符号整型变量——只包括非负的整数

3.2.8 整型变量的应用举例

3.3 实型变量

3.3.1 为什么使用实型变量

3.3.2 单精度浮点型变量

3.3.3 双精度浮点型变量

3.3.4 长双精度浮点型变量

3.3.5 实型变量的应用举例

3.4 字符型数据类型

3.4.1 为什么要使用字符型变量

3.4.2 字符型变量

3.4.3 字符型数据的输入与字符型变量值的输出——使用%c和%s

3.4.4 字符型变量的应用举例

3.5 常量

3.5.1 为什么使用常量

3.5.2 整型常量

3.5.3 浮点型常量

3.5.4 字符型常量与字符串型常量

3.5.5 常量与常数

3.6 小结

习题

第4章 运算符与表达式

4.1 表达式

4.1.1 运算符有哪些

4.1.2 什么是表达式

4.1.3 运算符的优先级与结合性

4.1.4 自动类型转换

4.2 算术运算符与算术表达式

4.2.1 基本算术表达式

4.2.2 自增表达式——++a和a++

4.2.3 自减表达式——--a和a--

4.2.4 算术运算符的混合运算——算术运算符的优先级与结合性

4.2.5 算术表达式应用举例

4.3 赋值运算符与赋值表达式及其应用

4.3.1 赋值运算符与赋值表达式

4.3.2 类型转换

4.3.3 赋值表达式的应用举例

4.4 关系运算符与关系表达式及其应用

4.4.1 关系运算符和关系表达式

4.4.2 关系表达式应用举例

4.5 逻辑运算符和逻辑表达式及其应用

4.5.1 逻辑运算符和逻辑表达式

4.5.2 逻辑表达式应用举例

4.6 逗号表达式

4.6.1 逗号运算符与逗号表达式

4.6.2 逗号表达式中应注意的问题

4.6.3 逗号表达式应用举例

4.7 小结

第5章 顺序结构程序设计

5.1 语句和程序

5.1.1 什么是简单语句

5.1.2 为什么使用复合语句

5.1.3 什么是复合语句

5.1.4 使用复合语句应注意的问题

5.1.5 为什么要有程序

5.1.6 C语言程序的框架结构

5.2 顺序结构程序设计

5.2.1 顺序结构程序设计的特点——自上而下执行每一个语句

5.2.2 顺序结构程序设计——求圆的面积

5.2.3 顺序结构程序——求一元二次方程ax2+bx+c=0的根

5.2.4 顺序结构程序设计应用举例——将小写字母转换为大写字母

5.3 小结

第6章 选择结构程序设计

6.1 条件运算符

6.1.1 为什么要有条件运算符

6.1.2 条件运算符与条件表达式

6.2 if选择语句

6.2.1 为什么要有if选择语句——理解容易

6.2.2 if选择语句——单分支选择结构

6.2.3 if-else选择语句——双分支的选择结构

6.2.4 if...else if…else选择语句——多分支选择结构

6.2.5 if选择语句的嵌套

6.2.6 设置标志变量

6.2.7 if选择语句与条件运算符——相互转换

6.3 switch选择语句

6.3.1 switch选择语句

6.3.2 switch选择语句应用举例

6.4 选择结构程序设计应用举例

6.5 小结

第7章 循环结构程序设计

7.1 为什么要有循环结构

7.1.1 如何重复输出多个hello world

7.1.2 如何求连续的n个自然数的和

7.2 while循环语句

7.2.1 while循环语句——当型循环

7.2.2 while循环语句应用举例

7.3 do-while循环语句

7.3.1 为什么要有do-while

7.3.2 do-while循环语句——直到型循环

7.3.3 比较while循环结构和do-while循环结构

7.4 for循环语句

7.4.1 for循环语句概述

7.4.2 for循环语句的灵活性

7.4.3 几种循环语句的比较

7.5 goto语句与goto语句构成的循环语句

7.5.1 goto语句——无条件转移语句

7.5.2 goto语句构成的循环语句——向前跳转

7.5.3 goto语句与while语句、for语句的比较

7.6 break语句

7.6.1 循环中的“提前开溜”

7.6.2 使用break语句

7.7 continue语句

7.7.1 为什么要有continue语句

7.7.2 使用continue语句

7.7.3 continue语句与break语句的区别

7.7.4 continue语句应用举例

7.8 多重循环程序设计

7.8.1 为什么要有循环的嵌套——一层循环是不能解决所有问题的

7.8.2 循环的嵌套——循环结构中还可以有循环结构

7.8.3 多重循环应用举例——输出乘法口诀表

7.9 循环结构程序应用举例

7.9.1 循环结构程序应用举例——求π的近似值

7.9.2 循环结构程序应用举例——求101~200之间的所有质数

7.9.3 循环结构程序应用举例——质数问题的改进算法

7.9.4 循环结构程序应用举例——百鸡问题

7.10 小结

第8章 数组

8.1 为什么要有数组

8.1.1 多变量的解决之道——数组的引入

8.1.2 数组就是这个样子——初识数组

8.1.3 数组的数组——维度的出现

8.2 一维数组

8.2.1 一维数组是这样定义的

8.2.2 一维数组的引用——其实很简单

8.2.3 一维数组的初始化——方法有许多

8.2.4 一维数组的应用举例——求数组各元素的平均值

8.2.5 一维数组的应用举例——数组元素的倒排

8.2.6 一维数组的应用举例——冒泡排序

8.3 二维数组

8.3.1 二维数组原来是这样定义的

8.3.2 二维数组的引用——其实并不难

8.3.3 二维数组的初始化——多样的初始化

8.3.4 二维数组应用举例——计算各科成绩的平均分

8.3.5 二维数组应用举例——矩阵的转置

8.3.6 二维数组应用举例——有趣的魔方阵

8.4 字符数组

8.4.1 字符数组是这样定义的

8.4.2 字符数组的初始化

8.4.3 字符数组的连续输出——格式符%s

8.4.4 字符数组的连续输入——格式符%s

8.4.5 常用的字符串处理函数

8.4.6 字符数组的应用举例

8.5 小结

第9章 函数

9.1 为什么要有函数及函数的分类

9.1.1 为什么要有函数

9.1.2 函数有哪些——库函数和用户函数

9.2 函数的定义形式

9.2.1 不带参数的函数定义形式

9.2.2 带参数的函数定义形式——有参数列表

9.2.3 带参数的函数定义形式——形参定义的传统方式

9.3 局部变量与全局变量

9.3.1 局部变量

9.3.2 全局变量

9.4 函数的参数与函数的值

9.4.1 形式参数与实际参数

9.4.2 函数的返回值

9.5 函数的调用

9.5.1 函数调用的一般形式

9.5.2 函数调用的方式

9.5.3 对被调用函数的声明

9.6 函数的嵌套调用

9.6.1 函数的嵌套调用过程

9.6.2 函数的嵌套应用举例

9.7 函数的递归调用

9.7.1 什么是递归——自己调用自己

9.7.2 递归函数应用举例——求n!

9.7.3 递归函数调用应用举例——Fibonacci数列

9.8 数组作为函数的参数

9.8.1 数组元素作为函数的参数——只能传递一个数组元素

9.8.2 数组名作为函数的参数——可以传递整个数组

9.8.3 数组名作为参数传递——实际上传递的是数组的首地址

9.8.4 多维数组名作为函数的参数——传递整个数组

9.9 变量的存储

9.9.1 什么是动态存储与静态存储——生存期不同

9.9.2 auto变量——自动类型变量

9.9.3 static变量——静态变量

9.9.4 register变量——使运行速度更快的变量

9.9.5 extern变量——声明外部变量

9.10 内部函数与外部函数

9.10.1 内部函数——使用static

9.10.2 外部函数——使用extern

9.11 函数应用举例

9.11.1 函数应用举例——递归求解n个数的最大值

9.11.2 函数应用举例——递归求解a与b的最大公约数

9.11.3 函数应用举例——字符数组元素逆序存放

9.12 小结

第10章 预处理命令

10.1 宏定义

10.1.1 为什么要有宏定义

10.1.2 不带参数的宏定义

10.1.3 宏定义与常量定义的区别

10.1.4 带参数的宏定义

10.1.5 宏定义中的参数与函数的参数的区别

10.2 文件包含命令

10.2.1 为什么要有文件包含命令

10.2.2 文件包含命令——#include

10.3 条件编译

10.3.1 第一种条件编译命令——#ifdef

10.3.2 第二种条件编译命令——#ifdef…#elif…#endif

10.3.3 第三种条件编译命令——#ifndef

10.3.4 第四种条件编译命令——#if

10.4 小结

第11章 指针

11.1 指针的相关概念

11.1.1 为什么要有指针和指针变量

11.1.2 什么是地址

11.1.3 什么是指针变量——存放地址的变量

11.2 指针变量

11.2.1 定义指针变量

11.2.2 使用指针变量

11.2.3 指针变量作为函数参数

11.3 数组与指针

11.3.1 指向数组元素的指针

11.3.2 通过指针引用数组元素

11.3.3 指针变量的自增运算和自减运算

11.3.4 数组指针作为函数的参数

11.3.5 指向多维数组的指针变量

11.4 字符串与指针

11.4.1 指向字符串的指针变量

11.4.2 字符串指针作为函数的参数

11.4.3 字符数组与字符指针变量的比较

11.5 指针数组与指向指针的指针

11.5.1 指针数组

11.5.2 指向指针的指针

11.5.3 指针数组作为main函数的参数

11.6 函数与指针

11.6.1 函数指针调用函数

11.6.2 指向函数的指针作为函数参数

11.7 返回指针值的函数

11.7.1 为什么函数要返回指针值——可以返回多个值

11.7.2 返回指针类型的函数

11.8 小结

第12章 结构体和共用体

12.1 结构体

12.1.1 为什么要有结构体

12.1.2 结构体类型的定义

12.1.3 定义结构体变量

12.1.4 引用结构体变量

12.1.5 结构体变量的初始化

12.2 结构体数组

12.2.1 为什么要有结构体数组

12.2.2 定义结构体数组

12.2.3 结构体数组的初始化

12.2.4 结构体数组应用举例

12.3 指针与结构体

12.3.1 指向结构体变量的指针

12.3.2 指向结构体数组的指针

12.3.3 结构体变量和指向结构体的指针作为函数的参数

12.4 typedef类型定义

12.4.1 typedef——为数据类型重新起个名字

12.4.2 使用typedef时应注意的问题

12.4.3 typedef的应用举例

12.5 共用体

12.5.1 为什么要有共用体——节省内存,多选一

12.5.2 定义共用体

12.5.3 引用共用体变量

12.5.4 使用共用体应该注意的问题

12.5.5 共用体应用举例

12.6 枚举类型

12.6.1 为什么要有枚举类型——变量的值只有有限的几种

12.6.2 定义枚举类型及变量

12.6.3 使用枚举类型时应注意的问题

12.6.4 枚举类型应用举例

12.7 小结

第13章 位运算

13.1 为什么要有位运算与位运算符

13.1.1 为什么要有位运算——提高效率

13.1.2 位运算符

13.1.3 位运算符的优先级与结合性

13.2 位运算符和位运算

13.2.1 按位与运算符和按位与运算

13.2.2 按位或运算符与按位或运算

13.2.3 按位异或运算符与按位异或运算

13.2.4 按位取反运算符与按位取反运算

13.2.5 左移运算符与左移运算

13.2.6 右移运算符与右移运算

13.2.7 与位运算符相结合的赋值运算符

13.3 位运算应用举例

13.3.1 以二进制形式输出一个数——按位与运算并输出1或0

13.3.2 取一个整数的中间几位

13.4 位段

13.4.1 定义位段

13.4.2 引用位段成员

13.4.3 使用位段需要说明的问题

13.5 小结

第14章 文件

14.1 文件的相关概念

14.1.1 为什么要有文件

14.1.2 文件的分类——二进制文件和文本文件

14.1.3 缓冲文件系统

14.2 打开与关闭文件

14.2.1 文件类型指针——FILE*

14.2.2 打开文件——使用fopen函数

14.2.3 关闭文件——使用fclose函数

14.3 读取文件与写入文件

14.3.1 使用fputc函数写文件和使用fgetc函数读取文件

14.3.2 使用fputs函数写文件和使用fgets函数读取文件

14.3.3 使用fwrite函数写文件和使用fread函数读取文件

14.3.4 使用fprintf函数写文件和使用fscanf函数读取文件

14.4 文件的定位

14.4.1 rewind函数——移动位置指针到文件的开始位置

14.4.2 fseek函数——移动位置指针到任意位置

14.4.3 ftell函数——得到位置指针的当前位置

14.5 文件状态检测

14.5.1 feof函数——检测位置指针是否到了文件末尾

14.5.2 ferror函数——检测是否操作文件错误

14.5.3 clearerr函数——清除错误标志

14.6 文件的输入与输出操作函数总结

14.7 小结

第15章 链表

15.1 链表的相关概念

15.1.1 为什么要有链表——节省内存单元,不用事先定义空间大小

15.1.2 什么是链表

15.1.3 简单链表——静态链表

15.1.4 动态存储分配

15.2 链表的操作

15.2.1 创建链表

15.2.2 链表的输出操作

15.2.3 链表的插入操作

15.2.4 链表的删除操作

15.2.5 链表的综合操作

15.3 链表操作应用举例

15.3.1 链表操作应用举例——逆置链表

15.3.2 链表操作应用举例——约瑟夫问题

15.4 小结

第16章 键盘和鼠标

16.1 键盘操作

16.1.1 键盘编码

16.1.2 键盘操作函数

16.2 鼠标操作

16.2.1 鼠标的工作原理

16.2.2 鼠标综合应用举例

16.3 小结

第17章 网络编程基础

17.1 网络基础知识

17.1.1 什么是计算机网络

17.1.2 网络协议

17.1.3 协议分层

17.1.4 网络参考模型

17.1.5 端口

17.2 WinSocket基础

17.2.1 套接字Socket

17.2.2 基于TCP的Socket编程

17.2.3 基于UDP的Socket编程

17.3 WinSocket相关函数

17.3.1 WSAStartup函数——启动套接字库

17.3.2 Socket函数——建立套接字

17.3.3 bind函数——绑定本地IP地址和端口

17.3.4 listen函数——侦听客户端请求

17.3.5 accept函数——等待客户端的请求

17.3.6 send函数——发送数据

17.3.7 recv函数——接收数据

17.3.8 connect函数——建立连接

17.3.9 recvfrom函数——接收s数据

17.3.10 sendto函数——发送数据

17.4 基于TCP的简单网络程序

17.4.1 服务器端的程序实现

17.4.2 客户端程序的实现

17.5 基于UDP的简单网络聊天程序

17.5.1 服务器端程序的实现

17.5.2 客户端程序的实现

17.6 小结

第18章 常用算法

18.1 算法基础

18.1.1 什么是算法及算法的描述语言

18.1.2 算法的特性

18.1.3 算法设计的目标

18.1.4 算法的时间复杂度和空间复杂度

18.2 迭代算法

18.2.1 算法思想

18.2.2 求一个数的平方根

18.2.3 角谷猜想

18.2.4 牛顿迭代法

18.3 递推算法

18.3.1 认识递推

18.3.2 斐波那契数列

18.3.3 分西瓜

18.3.4 该存多少钱

18.4 穷举算法

18.4.1 算法思想

18.4.2 完全数

18.4.3 背包问题

18.5 递归算法

18.5.1 算法思想

18.5.2 数制转换

18.5.3 组合问题

18.6 分治算法

18.6.1 算法思想

18.6.2 求n个数的最大值和最小值

18.6.3 赛程安排问题

18.7 贪心算法

18.7.1 算法思想

18.7.2 加油站问题

18.7.3 找零钱问题

18.8 矩阵算法

18.8.1 打印魔方阵

18.8.2 打印拉丁方阵

18.8.3 将矩阵旋转90度

18.9 小结

第19章 简单数据结构——栈和队列

19.1 队列

19.1.1 队列的定义

19.1.2 队列的表示与实现

19.1.3 顺序循环队列

19.1.4 顺序循环队列的实现

19.1.5 链式队列的表示与实现

19.1.6 队列的应用——商品货架模拟

19.2 栈

19.2.1 栈的定义

19.2.2 顺序栈的存储结构与实现

19.2.3 链式栈的存储结构与实现

19.2.4 栈的应用举例——算术表达式求值

19.3 小结

第20章 常用技术——排序

20.1 排序的基础知识

20.1.1 排序的相关概念

20.1.2 排序算法的分类

20.2 插入类排序

20.2.1 直接插入排序

20.2.2 折半插入排序

20.2.3 希尔排序

20.3 选择类排序

20.3.1 简单选择排序

20.3.2 堆排序

20.4 交换类排序

20.4.1 冒泡排序

20.4.2 快速排序

20.5 归并类排序

20.5.1 二路归并排序算法思想

20.5.2 二路归并排序算法实现

20.6 分配类排序

20.6.1 基数排序算法思想

20.6.2 基数排序算法实现

20.7 各种排序方法的比较

20.8 小结

第21章 学生成绩管理系统

21.1 系统总体设计

21.1.1 项目开发目标

21.1.2 系统功能描述

21.2 系统详细设计

21.2.1 主函数的运行流程

21.2.2 功能模块设计

21.2.3 数据结构设计

21.2.4 函数功能描述

21.3 系统实现与系统测试

21.3.1 编码

21.3.2 系统测试

21.4 小结

第22章 C语言常见错误

22.1 常见错误

22.1.1 错误分类

22.1.2 常见错误举例

22.2 程序调试

22.2.1 Visual C++ 6.0 开发环境的程序调试

22.2.2 程序调试应用举例

22.3 小结

后记

参考文献

累计评论(1条) 3个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部