
c程式设计(田淑清着书籍)
《c程式设计》是2003年8月1日电子工业出版社出版的图书,作者是田淑清。本书主要讲述了C语言中最基本的数据类型等有关内容。
基本介绍
- 书名:c程式设计
- 又名:新编21世纪高等职业教育电子信息类教材--C程式设计(第2版)
- 作者:田淑清
- ISBN:ISBN 7-5053-8996-3
- 页数:305页
- 定价:24元
- 出版社:电子工业出版社
- 出版时间:2003-8-1
- 开本:平装16开
内容简介
为了使初学者易于接受,能儘快地学会用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 简单的上机操作和程式的调试
参考文献
张长海 陈娟 编