百道网
 您现在的位置:图书 > C程序设计
C程序设计


C程序设计

作  者:乔林 编著

出 版 社:清华大学出版社

丛 书:清华大学计算机基础教育课程系列教材

出版时间:2009年05月

定  价:26.00

I S B N :9787302196327

所属分类: 教育学习  >  教材  >  研究生/本科/专科教材  专业科技  >  计算机/网络  >  软件应用与开发    

标  签:高等教育教材  教材  C语言及其相关  语言与开发工具  程序语言与软件开发  计算机与互联网  计算机专业  大学  教材教辅与参考书  

[查看微博评论]

分享到:

TOP内容简介

计算机程序设计基础是高等学校计算机基础课程中的核心课程。本书以C程序设计语言为基础,注重讲解程序设计与软件开发的基本概念、方法和思路,培养读者的基本编程能力、逻辑思维和抽象思维能力。
  本书内容包括C语言概述、数据类型与数据对象、运算与操作、基本程序结构、分支结构、循环结构、函数、算法、程序组织、数组、结构体与共用体、指针、字符串、文件和链表。通过强调那些程序设计中起重要作用的思想与技术,使读者体会并初步掌握实用程序的设计与开发能力。
  本书可作为高等院校计算机及理工类各专业、成人教育学院程序设计课程的教材,也可作为计算机应用开发人员及相关人员自学参考书。

TOP目录

第1章 C语言概述1
1.1 C语言简介1
1.1.1 C语言历史1
1.1.2 C语言特点1
1.2 C语言的关键字与标识符2
1.2.1 字符集2
1.2.2 标识符2
1.2.3 关键字3
1.2.4 预定义标识符3
1.3 C程序基本结构4
1.3.1 Hello World4
1.3.2 数据对象6
1.3.3 C程序的结构特点8
1.4 C程序开发流程9
1.4.1 头文件与源文件的编辑9
1.4.2 源文件的编译9
1.4.3 目标文件的链接10
1.4.4 程序调试与执行10
1.5 Turbo C 3.0上机环境与基本操作10
1.5.1 Turbo C 3.0上机环境简介10
1.5.2 文件的创建和保存11
1.5.3 源文件的编辑13
1.5.4 编译与链接13
1.5.5 程序的执行14
1.6 Visual C++ 6.0上机环境与基本操作15
1.6.1 Visual C++ 6.0上机环境简介16
1.6.2 文件的创建和保存16
1.6.3 源文件的编辑17
1.6.4 编译与链接17
1.6.5 程序的执行18
习题118

第2章 数据类型与数据对象20
2.1 数据类型概述20
2.2 整数类型21
2.2.1 整数类型数据对象21
2.2.2 整数类型的取值范围22
2.3 实数类型22
2.3.1 double类型的使用22
2.3.2 float类型的使用23
2.3.3 实数类型的取值范围23
2.4 字符类型24
2.4.1 字符类型的取值范围24
2.4.2 字符类型数据对象的使用25
2.5 常数25
2.5.1 文字常数26
2.5.2 符号常数28
2.6 变量30
2.6.1 变量的定义30
2.6.2 变量的使用30
2.6.3 变量的特征31
2.6.4 变量的赋值31
2.6.5 变量的初始化33
2.7 常量33
2.8 用户自定义类型34
2.8.1 枚举类型34
2.8.2 typedef关键字35
习题236

第3章 运算与操作37
3.1 表达式37
3.1.1 操作数37
3.1.2 操作符与表达式求值37
3.2 算术操作符38
3.2.1 基本算术操作符38
3.2.2 递增递减操作符38
3.3 赋值操作符39
3.3.1 赋值操作符与赋值表达式39
3.3.2 复合赋值表达式40
3.4 表达式求值41
3.4.1 表达式的一般求值规则41
3.4.2 操作符的优先级与结合性41
3.5 逗号操作符43
3.6 混合运算与类型转换43
3.6.1 隐式类型转换43
3.6.2 显式类型转换44
习题345

第4章 基本程序结构46
4.1 语句与注释46
4.1.1 简单语句46
4.1.2 复合语句46
4.1.3 空语句47
4.1.4 注释47
4.2 字符输入输出47
4.2.1 字符数据对象的输出48
4.2.2 字符数据对象的输入48
4.3 格式化输出49
4.3.1 printf函数的基本用法49
4.3.2 格式描述符49
4.3.3 输出精度与格式对齐51
4.4 格式化输入55
4.4.1 scanf函数的基本用法55
4.4.2 取址操作符57
4.4.3 输入时的场宽57
4.5 程序的顺序结构58
4.5.1 顺序结构示例58
4.5.2 条件表达式58
习题459

第5章 分支结构61
5.1 逻辑值61
5.2 关系操作符与关系表达式61
5.2.1 关系操作符及其优先级61
5.2.2 关系表达式62
5.3 逻辑操作符与逻辑表达式62
5.3.1 逻辑操作符及其优先级63
5.3.2 逻辑表达式63
5.3.3 复杂逻辑表达式64
5.4 if分支结构65
5.4.1 简单if分支结构65
5.4.2 if-else语句66
5.4.3 if-else if-else语句67
5.5 switch分支结构71
5.5.1 switch语句71
5.5.2 break语句73
5.6 分支结构的嵌套75
5.6.1 if与switch结构的互相嵌套75
5.6.2 if分支结构的多重嵌套75
习题577

第6章 循环结构79
6.1 循环结构概述79
6.2 while循环80
6.2.1 while语句80
6.2.2 while循环示例80
6.3 for循环82
6.3.1 简单for循环82
6.3.2 for循环与while循环的关系83
6.3.3 复杂for循环83
6.3.4 “更简单的”for循环84
6.4 循环流程控制85
6.4.1 break语句85
6.4.2 continue语句86
6.5 循环嵌套87
6.6 程序结构化88
6.6.1 程序结构化的基本概念88
6.6.2 结构化程序设计的基本原则88
6.6.3 理解程序的整体思路89
6.6.4 自顶向下逐步求精89
习题690

第7章 函数92
7.1 函数调用92
7.1.1 库函数的调用方法92
7.1.2 函数原型93
7.2 函数定义94
7.2.1 函数定义的一般格式94
7.2.2 函数的返回值95
7.2.3 返回BOOL值的函数96
7.3 函数参数97
7.3.1 形式参数与实际参数97
7.3.2 参数传递机制98
7.3.3 函数调用栈框架100
7.3.4 函数的嵌套调用102
7.4 全局数据对象与局部数据对象102
7.4.1 局部数据对象102
7.4.2 全局数据对象103
7.4.3 静态局部数据对象104
7.5 函数与程序模块化106
习题7107

第8章 算法108
8.1 算法概述108
8.1.1 算法的基本概念108
8.1.2 算法的基本特征109
8.2 算法描述110
8.2.1 伪代码110
8.2.2 流程图111
8.3 算法设计114
8.3.1 最大公约数问题115
8.3.2 素性判定问题116
8.4 算法效率117
8.4.1 最大公约数算法的效率117
8.4.2 素性判定算法的效率118
8.4.3 素性判定算法的除虫任务119
8.4.4 效率!效率!120
8.5 递归算法121
8.5.1 递归函数的基本概念121
8.5.2 递归函数设计122
8.5.3 递归与循环123
8.5.4 汉诺塔问题124
8.5.5 递归算法设计的一般策略126
习题8128

第9章 程序组织130
9.1 头文件与源文件130
9.1.1 源文件130
9.1.2 头文件131
9.1.3 头文件的包含方法131
9.1.4 头文件的包含测试132
9.2 工程项目文件管理133
9.2.1 Turbo C环境下的工程文件管理133
9.2.2 Visual C++环境下的工程文件管理135
9.3 常用标准库函数138
9.3.1 stdio库138
9.3.2 math库138
9.3.3 ctype库140
9.3.4 stdlib库142
9.4 作用域与生存期144
9.4.1 量的作用域与可见性145
9.4.2 量的存储类与生存期146
9.4.3 静态函数147
9.4.4 声明与定义147
9.5 多文件程序开发示例148
9.5.1 单文件版本148
9.5.2 多文件版本153
习题9157

第10章 数组158
10.1 一维数组158
10.1.1 一维数组数据对象的定义158
10.1.2 一维数组的存储表示159
10.1.3 一维数组数据对象的初始化159
10.2 数组元素操作160
10.2.1 数组元素的访问160
10.2.2 数组元素的下标161
10.3 数组与函数162
10.3.1 一维数组作为函数参数162
10.3.2 数组参数传递规范165
10.4 多维数组167
10.4.1 多维数组数据对象的定义167
10.4.2 多维数组数据对象的初始化167
10.4.3 多维数组的存储表示168
10.4.4 多维数组元素的访问168
习题10170

第11章 结构体与共用体171
11.1 结构体类型171
11.1.1 结构体类型的定义171
11.1.2 结构体类型的存储布局172
11.1.3 结构体类型的嵌套173
11.2 结构体变量174
11.2.1 结构体变量的定义174
11.2.2 结构体变量的初始化175
11.3 结构体应用175
11.3.1 结构体成员的访问175
11.3.2 结构体与数组177
11.3.3 结构体与函数178
11.4 库与接口179
11.4.1 有理数库180
11.4.2 接口设计原则184
11.5 共用体184
11.5.1 共用体的基本概念184
11.5.2 共用体成员的存储185
11.5.3 结构体与共用体的嵌套186
习题11188

第12章 指针189
12.1 指针变量189
12.1.1 地址与值189
12.1.2 指针变量的定义190
12.1.3 指针变量的初始化190
12.1.4 指针值NULL191
12.1.5 指针数据对象与目标数据对象的访问191
12.1.6 指针类型194
12.2 指针与函数195
12.2.1 指针作为函数参数195
12.2.2 指针与常量197
12.2.3 指针与函数返回值199
12.3 指针操作199
12.3.1 数据对象地址的计算199
12.3.2 指针加减操作200
12.3.3 指针递增递减操作201
12.3.4 指针关系操作202
12.4 指针与数组203
12.4.1 指针作为函数参数203
12.4.2 指针与数组的可互换性206
12.4.3 多维数组作为函数参数207
12.5 函数指针208
12.5.1 函数指针的基本概念208
12.5.2 函数指针类型209
12.5.3 函数指针的使用方法210
12.5.4 void类型210
12.6 查找与排序211
12.6.1 排序211
12.6.2 查找214
习题12216

第13章 字符串218
13.1 字符数组218
13.1.1 字符数组的定义218
13.1.2 字符数组的初始化218
13.1.3 字符数组的内部表示219
13.2 字符指针220
13.2.1 字符指针的定义与初始化220
13.2.2 字符指针的内部表示221
13.2.3 字符'\\0'222
13.2.4 字符指针与字符数组的差异223
13.3 字符串与函数223
13.3.1 字符串作为函数参数223
13.3.2 字符串作为函数返回值225
13.4 字符串库226
13.4.1 字符串的长度226
13.4.2 字符串的复制与合并227
13.4.3 字符串的比较228
13.4.4 字符串的查找229
13.5 动态存储管理229
13.5.1 内存分配概述229
13.5.2 动态内存分配230
13.5.3 动态内存释放231
习题13232

第14章 文件233
14.1 文件的基本概念233
14.1.1 什么是文件233
14.1.2 文件类型233
14.1.3 文件指针234
14.2 文件函数234
14.2.1 fopen函数234
14.2.2 fclose函数235
14.2.3 feof函数与EOF宏236
14.2.4 ferror函数236
14.2.5 fflush函数与fflushall函数237
14.2.6 fseek函数237
14.2.7 ftell函数238
14.2.8 rewind函数238
14.2.9 访问文件的基本策略238
14.3 面向字符的文件读写操作238
14.3.1 fputc函数与fgetc函数238
14.3.2 面向字符的文件读写举例239
14.4 面向文本行的文件读写操作240
14.4.1 fputs函数与fgets函数240
14.4.2 面向文本行的文件读写举例241
14.5 格式化信息的文件读写操作241
14.5.1 fprintf函数241
14.5.2 fscanf函数242
14.6 面向信息块的文件读写操作244
14.6.1 fwrite函数与fread函数244
14.6.2 面向信息块的文件读写举例246
习题14248

第15章 链表249
15.1 指针与结构体249
15.1.1 指针作为结构体的成员249
15.1.2 指向结构体的指针251
15.2 链表概述252
15.2.1 链表的基本概念252
15.2.2 链表与链表结点的表示253
15.2.3 链表基本操作集256
15.3 链表的创建与销毁257
15.3.1 链表的创建257
15.3.2 链表的销毁258
15.4 结点的插入与删除259
15.4.1 结点的插入操作259
15.4.2 结点的删除操作261
15.5 链表的遍历262
15.5.1 链表结点数据的输出操作262
15.5.2 使用函数指针实现链表遍历263
15.5.3 链表库应用264
习题15266
参考文献268

TOP书摘

插图:


总之,定义变量的目的就是用来在程序执行过程中保存待处理的数据,保存中间或最终结果,不同类型的变量用来保存不同类型的数据。因为变量是与内存单元相对应,当程序代码或程序代码片段开始执行时,系统为变量分配内存单元,变量就有了自己的内存空间;当退出程序或程序片段时,由于释放所占用的内存,变量的内容也就不复存在。
2.6.3 变量的特征
假设main函数中存在下述三个整数类型变量a、b、sum定义:
int a,b, sum;这里,系统为每个变量分配恰当的存储空间以存放该变量的值,在程序执行期间程序对变量的操作都将翻译成对该存储区的操作。
此类变量存储结构图对理解C程序有很大帮助,读者应勤于使用。
图2-2方框中没有写入任何内容,这是有意的。在C程序中,变量一经定义,其对应的存储空间就存在了,但此时该存储空间中还没有保存任何有意义的数据或信息,即程序还不能从该存储空间中获取变量的值。
在此,可以将变量特征总结如下。
(1)变量总是具有值的。在任意时刻,变量都具有一个唯一值与其相对应,虽然值本身可以在程序执行期间改变。
(2)变量总是与内存中的地址相对应。
(3)变量总是具名的,在程序中除非使用间接的手段,否则无法创建和访问匿名变量。
(4)变量具有确定的类型,编译器需要知道变量类型以便为其开辟合适的存储空间并进行类型检查。
2.6.4 变量的赋值
如前述例子所揭示的,程序执行时可以通过C语言所提供的赋值操作改变数据对象(变量)的值。但是,变量名称和变量类型是不可以改变的,即只有数据对象与值之间的关系可以在程序执行期间动态改变。

TOP 其它信息

装  帧:平装

页  数:270

版  次:1版

开  本:16开

正文语种:中文

加载页面用时:78.4553