网站地图
c程序设计(田淑清著书籍)

《c程序设计》是2003年8月1日电子工业出版社出版的图书,作者是田淑清。本书主要讲述了C语言中最基本的数据类型等有关内容。

为了使初学者易于接受,能尽快地学会用C语言编写程序并上机实践,在第一部分中只介绍了整数中的int类型和浮点数float,double类型;介绍了对这三种类型数据的输入和输出,从而暂时避开了C语言中繁多的整数类型和整数的各种表示方式、避开了烦琐的输入、输出的各种规则。

在这一部分,介绍了结构化程序设计的基本组成结构以及相关的语句,使读者能掌握一些最基本的算法;学习编写最简单的、具有良好风格的C语言程序。

在第5章介绍了函数的初步知识之后,所有章节中的例题基本都以函数的形式给出,要求读者自这一章开始,全部运用函数来完成各个练习,以便由易到难逐步培养编写C函数的能力,逐步掌握对函数的应用。

在这部分,结合C语言的学习,陆续介绍了程序设计中的一些基本算法,如数的交换、累加、连乘、选最大最小数、递推、枚举等。在这些算法的基础上,介绍了求一元高次方程的一个根、求定积分等有关数值计算的基本算法。

第6章是有关结构化程序设计的基本常识,不需要死记硬背,其中的内容应该体现在具体的程序设计中。

在这一段的学习时间内,读者可在教师或有关专业人员的指导下,参考附录F中“简单的上机操作”中的内容,在Turbo C的环境下运行自己编写的练习程序,通过上机实践,逐步熟悉上机操作的步骤,并有意识地去练习看懂系统给出的各种信息,为培养自己独立调试程序的能力做好准备。

总的来说,这部分的内容难度较小,学起来应该并不困难。

在第二部分中,引进了指针的概念,在C语言中,指针几乎是无处不在,只有建立了“地址”、“指针”以及“引用指针所指存储单元”的概念才能正确地使用数组、字符串,才能在函数之间通过实参和形参正确地传送数据。这也是学习C语言的重点和难点所在,希望读者从一开始,就要特别重视指针概念的建立,以便为后续章节的学习打下基础。

在这一部分,进一步介绍C语言中的各种复杂数据结构,介绍了各种数据结构在函数间的数据传递,同时也讨论了函数的递归调用,文件的基本应用。

在第7章介绍了字符类型,字符处理是当前程序设计中很重要的一个方面,因此读者应该很好地掌握。

第9、10章分别介绍了一维和二维数组,数组是程序设计中不可缺少的一种数据结构,而在C语言中,数组和指针又有着密不可分的关系,在这两章中分别讨论了一维和二维数组和指针的关系、讨论了如何通过指针引用数组元素、如何通过指针向函数传递数组。并以大量的例题,例举了利用数组这一存储结构,进行查找、插入、删除、排序等的基本算法。

第16章介绍了C语言中另外一种复杂的数据结构结构体类型。在这一章除讨论了结构体变量的一般应用外,重点介绍了利用指向本身的结构体,通过动态存储分配建立动态链表的算法,以及对链表进行基本操作(插入、删除结点等)的算法。

在计算机的应用中,建立“文件”的概念和掌握对文件的操作是一种最基本的技能,第21章,简单介绍了有关文件的概念以及C程序中对文件的基本操作。

在学习这一部分内容时,读者应当参考附录F“简单的程序调试”中介绍的内容,在Turbo C环境下,逐步学会调试程序的简单步骤,培养自己独立调试程序的能力。在程序设计中,这一能力的培养是十分重要的。

以上两部分,在介绍C语言的同时,较侧重于帮助读者掌握用C语言来进行“程序设计”的基本知识,因而尽量避开了C语言中的一些语法细节。

第三部分就C语言的“语言”内容进行了补充,例如:第13章的“用户标识符的作用域”,第14章的“编译预处理”,第17章的“C语言中的整型数和整型变量”,第20章的“在终端上按格式进行输入和输出”等章节,都是在真正用C语言进行程序设计时所必须具备的知识。这些章节的内容相对独立,有关内容的教与学,可以根据学时的安排,按需要随时穿插进行;读者也可根据需要随时查阅。

尽管作者根据多年的教学经验,试图按照初学者的学习规律来安排本书的内容,主观上有着良好的愿望,但由于水平的限制,书中会有很多不足和错误,欢迎广大读者批评和指正。

第1章 C程序设计的初步知识

1.1 简单 C程序的组成和格式

1.2 十进制整型数和实型数

1.2.1 常量

1.2.2 十进制整型常量

1.2.3 浮点常量

1.2.4 用定义一个符号名的方法来代表一个常量

1.3 标识符

1.3.1 关键字

1.3.2 预定义标识符

1.3.3 用户标识符

1.4 整型变量和实型变量

1.4.1 变量

1.4.2 整型变量

1.4.3 浮点型变量

1.4.4 给变量置初值

1.4.5 定义不可变的变量

1.5 可进行算术运算的表达式

1.5.1 基本的算术运算符

1.5.2 运算符的优先级与结合性和算术表达式

1.5.3 强制类型转换表达式

1.6 赋值表达式

1.6.1 赋值运算符和赋值表达式

1.6.2 复合的赋值表达式

1.6.3 赋值运算中的类型转换

1.7 自加、自减运算符和逗号运算符

1.7.1 自加运算符(++)和自减运算符(--)

1.7.2 逗号运算符和逗号表达式

习题

第2章 简单的C语句及其顺序程序结构

2.1 赋值语句

2.2 整型数和实型数的简单输入和输出语句

2.2.1 调用 printf 函数输出数据到终端

2.2.2 调用 scanf 函数从终端键盘输入数据

2.3 复合语句和空语句

2.3.1 复合语句

2.3.2 空语句

习题

第3章 分支结构

3.1 关系运算和逻辑运算

3.1.1 C 语言中的逻辑值

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

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

3.2 用if 语句构成的分支结构

3.2.1 if 语句

3.2.2 嵌套的 if 语句

3.3 由条件表达式构成的分支结构

3.4 由switch 语句和 break 语句构成的分支结构

3.4.1 switch 语句

3.4.2 switch 语句的执行过程

3.4.3 在 switch 语句体中使用 break 语句

习题

第4章 循环结构4

4.1 用for语句构成的循环结构

4.1.1 for 循环的一般形式?

4.1.2 for 循环的执行过程

4.1.3 有关 for 语句的说明

4.2 用while 语句构成的循环结构

4.2.1 while 循环的一般形式

4.2.2 while 循环的执行过程

4.3 用do-while语句构成的循环结构

4.3.1 do-while 循环的一般形式

4.3.2 do-while 循环的执行过程

4.4 循环结构的嵌套

4.5 几种循环结构的比较

4.6 break 和 continue 语句在循环体中的作用

4.6.1 break 语句

4.6.2 continue 语句

4.7 语句标号和 goto 语句

4.7.1 语句标号

4.7.2 goto 语句

4.8 程序举例

习题

第5章 函数的初步知识

5.1 库函数

5.2 函数的定义和返回值

5.2.1 函数定义的语法

5.2.2 函数的返回值

5.3 函数的调用

5.3.1 函数的两种调用方式

5.3.2 函数调用时的语法要求

5.4 调用函数和被调用函数之间的数据传递

5.5 函数原型的说明

5.5.1 函数原型的说明语句

5.5.2 函数原型说明语句的位置

5.6 程序举例

习题

第6章 算法和结构化程序设计

6.1 程序和程序设计

6.1.1 程序

6.1.2 程序设计

6.2 算法

6.3 结构化程序设计和模块化结构

6.3.1 结构化程序

6.3.2 模块化结构

6.4 怎样评价一个程序

习题

第7章 字符数据和字符数据处理

7.1 字符常量

7.1.1 常规字符常量

7.1.2 转义字符常量

7.1.3 可对字符量进行的运算

7.2 字符变量

7.3 字符的输入和输出

7.3.1 调用 printf 和 scanf 函数

7.3.2 调用 putchar 和 getchar 函数

7.3.3 调用 getche 和 putche 函数

7.3.4 调用 getch 和 putch 函数

7.4 程序举例

习题

第8章 地址和指针

8.1 什么是地址?什么是指针?

8.2 指针变量的定义和指针变量的基类型

8.3 给指针变量赋值

8.3.1 使指针指向一个对象

8.3.2 给指针变量赋“空”值

8.4 对指针变量的操作

8.4.1 通过指针或地址来引用一个存储单元

8.4.2 移动指针

8.4.3 指针比较

8.5 函数之间地址值的传递

8.5.1 地址或指针变量作为实参

8.5.2 在被调用函数中直接改变调用函数中的变量的值

8.5.3 函数返回地址值

习题?

第9章 一维数组

9.1 一维数组的定义和一维数组元素的引用

9.1.1 一维数组的定义

9.1.2 一维数组元素的引用

9.1.3 一维数组的初始化

9.1.4 通过赋初值定义数组的大小

9.2 一维数组的应用举例(一)

9.3 一维数组和指针

9.3.1 一维数组和数组元素的地址

9.3.2 通过数组的首地址引用数组元素

9.3.3 通过指针来引用一维数组元素

9.3.4 用指针带下标的形式引用一维数组元素

9.4 一维数组名或数组元素作实参

9.4.1 数组元素作实参

9.4.2 数组名作实参

9.4.3 数组元素地址作为实参

9.5 一维数组应用举例(二)

习题

第10章 二维数组

10.1 二维数组的定义和二维数组元素的引用

10.1.1 二维数组的定义

10.1.2 二维数组元素的引用

10.1.3 二维数组的初始化

10.1.4 通过赋初值定义二维数组的大小

10.2 二维数组的应用举例(一)

10.3 二维数组和指针?

10.3.1 二维数组和数组元素的地址

10.3.2 通过地址来引用二维数组元素

10.3.3 通过建立指针数组来引用二维数组元素

10.3.4 通过建立行指针来引用二维数组元素

10.4 通过建立指针数组和一维数组来构造二维数组

10.5 二维数组名和指针数组作为实参

10.5.1 二维数组名作为实参

10.5.2 指针数组作为实参

10.6 二维数组应用举例(二)

习题

第11章 字符串

11.1 用一维字符数组来存放字符串

11.1.1 通过赋初值的方式给一维字符数组赋字符串

11.1.2 在 C 程序执行过程中给一维字符数组赋字符串

11.2 使用指针指向一个字符串

11.2.1 通过赋初值的方式使指针指向字符串

11.2.2 通过赋值运算使指针指向字符串

11.2.3 用字符数组作为字符串和用指针指向的字符串之间的区别

11.3 字符串的输入和输出

11.3.1 输入和输出字符串时的必要条件

11.3.2 逐个字符输入和输出

11.3.3 用格式说明符“%s”进行整串输入和输出

11.3.4 调用 gets和puts 函数在终端按行输入输出字符

11.4 字符串数组

11.5 用于字符串处理的函数

11.6 程序举例

习题

第12章 对函数的进一步讨论

12.1 传给 main () 函数的参数

12.2 通过实参向函数传递函数名或指向函数的指针

12.3 函数的递归调用

习题

第13章 C语言中用户标识符的作用域和存储类

13.1 内部变量、外部变量和存储分类

13.1.1 用户标识符的作用域

13.1.2 内部变量、外部变量和存储分类

13.2 内部变量及其作用域和生存期

13.2.1 auto 变量

13.2.2 register 变量

13.2.3 静态存储类的内部变量

13.3 外部变量及其作用域和生存期

13.3.1 外部变量的作用域和生存期

13.3.2 在同一编译单位内使用extern说明符

13.3.3 在不同编译单位内使用extern说明符

13.3.4 静态外部变量

13.4 函数的存储分类

13.4.1 用 extern 说明函数

13.4.2 用 static 说明函数

13.5 在 Turbo C 集成环境下连接多个编译单位的方法

习题S

第14章 编译预处理

14.1 宏替换S

14.1.1 不带参数的宏定义

14.1.2 带参数的宏定义

14.1.3 终止宏定义

14.2 文件包含

14.3 条件编译

14.4 #line 行

习题

第15章 动态存储分配

15.1 malloc 函数和 free 函数

15.2 calloc 函数

15.3 realloc 函数

习题

第16章 结构体类型和用户定义类型

16.1 用 typedef 说明一种新类型名

16.2 结构体类型

16.3 结构体类型的说明

16.4 结构体类型的变量、数组和指针的定义

16.5 给结构体变量、数组赋初值

16.6 引用结构体类型变量中的数据

16.7 通过结构体组成较复杂的存储结构

16.8 函数之间结构体变量的数据传递

16.8.1 向函数传递结构体变量的成员

16.8.2 向函数传递结构体变量

16.8.3 传递结构体的地址

16.8.4 函数值为结构体类型

16.8.5 函数的返回值可以是指向结构体变量的指针类型

16.9 利用结构体变量构成链表

16.9.1 结构体中含有可以指向本结构体的指针成员

16.9.2 动态链表的概念

16.9.3 单向链表

16.9.4 单向环形链表

16.9.5 双向链表

习题

第17章 C 语言中的整型数和整型变量

17.1 十进制数和二、八、十六进制数之间的转换

17.1.1 十进制数和二进制数之间的转换

17.1.2 十进制数和八进制数之间的转换

17.1.3 十进制数和十六进制数之间的转换

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

17.2 整数在内存中的存储形式

17.2.1 正整数

17.2.2 负整数

17.2.3 无符号整数

17.3 C 语言中的整数类型

17.4 C 语言中的整数类型之间的转换

习题

第18章 共用体、位段结构和枚举类型

18.1 共用体

18.1.1 共用体类型的说明和变量定义

18.1.2 共用体变量的引用

18.1.3 共用体应用举例

18.2 位段结构

18.3 枚举类型

习题

第19章 位运算

19.1 位运算符和位运算

19.1.1 位运算符

19.1.2 位运算符的运算功能

19.2 位运算的简单应用

习题

第20章 在终端上按格式进行数据的输入和输出

20.1 调用 printf() 在终端上按格式进行数据的输出

20.1.1 printf() 函数的一般调用形式

20.1.2 printf () 函数中常用的格式说明

20.1.3 调用 printf (函数时的注意事项

20.2 调用 scanf() 在终端上按格式进行数据的输入

20.2.1 scanf() 函数的一般调用形式

20.2.2 scanf () 函数中常用的格式说明

20.2.3 通过 scanf 函数从键盘输入数据

习题

第21章 文件

21.1 文件的概念

21.2 文件指针

21.3 打开文件

21.4 关闭文件

21.5 getc(fgetc)函数和putc(fputc)函数

21.6 判文件结束函数 feof

21.7 fscanf 函数和fprintf函数

21.8 fgets函数和fputs函数

21.9 fread函数和fwrite函数

21.10 文件定位函数

21.10.1 fseek函数

21.10.2 ftell函数

21.10.3 rewind 函数

习题附录

附录A C 语言的关键字

附录B 双目算术运算中两边运算量类型转换规律

附录C 运算符的优先级和结合性

附录D 常用字符与 ASC Ⅱ代码对照表

附录E Turbo C 2.0 常用库函数

附录F 简单的上机操作和程序的调试

参考文献

张长海 陈娟 编


相关文章推荐:
电子工业出版社 | 浮点数 | C语言程序 | 递推 | 高次方程 | 定积分 | 数值计算 | 调试程序 | 存储单元 | 形参 | 递归调用 | 二维数组 | 存储结构 | 结构体类型 | 动态存储 | 动态链表 | 链表 | C程序 | 程序调试 | 调试程序 | 用户标识符 | 整型 | 符号名 | 预定义标识符 | 用户标识符 | 整型变量 | 实型变量 | 浮点型 | 算术运算 | 算术运算符 | 优先级 | 算术表达式 | 强制类型转换 | 赋值表达式 | 赋值运算符 | 类型转换 | 逗号运算符 | 逗号表达式 | 赋值语句 | 空语句 | 分支结构 | 关系运算 | 逻辑运算 | 逻辑值 | 关系运算符 | 关系表达式 | 逻辑表达式 | 嵌套 | 条件表达式 | 分支结构 | 循环结构 | 循环结构 | 嵌套 | 循环体 | 返回值 | 函数调用 | 被调用函数 | 函数原型 | 结构化程序 | 字符常量 | 转义字符 | 常量 | 字符变量 | 指针变量 | 赋值 | 存储单元 | 实参 | 被调用函数 | 一维数组 | 数组元素 | 一维数组 | 二维数组 | 数组元素 | 指针数组 | 二维数组 | 一维数组 | 字符数组 | 实参 | 传递函数 | 递归调用 | 用户标识符 | 存储类 | 外部变量 | 外部变量 | extern | 宏定义 | 条件编译 | 动态存储 | 结构体类型 | 类型名 | 函数值 | 结构体类型 | 返回值 | 链表 | 动态链表 | 单向链表 | 双向链表 | 整型变量 | 十进制数 | 十六进制数 | 二进制数 | 八进制数 | 负整数 | 无符号整数 | 共用体 | 位段 | 枚举类型 | 位运算 | 位运算符 | 文件指针 | fgetc | putc | fputc | fprintf | fputs | fwrite | 类型转换 |
相关词汇词典