分享
 
 
 

C程序设计(清华大学计算机基础教育课程系列教材)

C程序设计(清华大学计算机基础教育课程系列教材)  点此进入淘宝搜索页搜索
  特别声明:本站仅为商品信息简介,并不出售商品,您可点击文中链接进入淘宝网搜索页搜索该商品,有任何问题请与具体淘宝商家联系。
  參考價格: 点此进入淘宝搜索页搜索
  分類: 图书,教材教辅与参考书,大学,计算机专业,
  品牌: 乔林

基本信息·出版社:清华大学出版社

·页码:270 页

·出版日期:2009年

·ISBN:730219632X/9787302196327

·条形码:9787302196327

·包装版本:1版

·装帧:平装

·开本:16

·正文语种:中文

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

产品信息有问题吗?请帮我们更新产品信息。

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

编辑推荐《C程序设计》可作为高等院校计算机及理工类各专业、成人教育学院程序设计课程的教材,也可作为计算机应用开发人员及相关人员自学参考书。

目录

第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

……[看更多目录]

序言计算机科学技术的发展不仅极大地促进了整个科学技术的发展,而且明显地加快了经济信息化和社会信息化的进程。因此,计算机教育在各国备受重视,计算机知识与能力已成为21世纪人才素质的基本要素之一。

清华大学自1990年开始将计算机教学纳入基础课的范畴,作为校重点课程进行建设和管理,并按照“计算机文化基础”、“计算机技术基础”和“计算机应用基础”三个层次的课程体系组织教学:

第一层次“计算机文化基础”的教学目的是培养学生掌握在未来信息化社会里更好地学习、工作和生活所必须具备的计算机基础知识和基本操作技能,并进行计算机文化道德规范教育。

第二层次“计算机技术基础”是讲授计算机软硬件的基础知识、基本技术与方法,从而为学生进一步学习计算机的后续课程,并利用计算机解决本专业及相关领域中的问题打下必要的基础。

第三层次“计算机应用基础”则是讲解计算机应用中带有基础性、普遍性的知识,讲解计算机应用与开发中的基本技术、工具与环境。

以上述课程体系为依据,设计了计算机基础教育系列课程。随着计算机技术的飞速发展,计算机教学的内容与方法也在不断更新。近几年来,清华大学不断丰富和完善教学内容,在有关课程中先后引入了面向对象技术、多媒体技术、Internet与互联网技术等。与此同时,在教材与CAI课件建设、网络化的教学环境建设等方面也正在大力开展工作,并积极探索适应21世纪人才培养的教学模式。

为进一步加强计算机基础教学工作,适应高校正在开展的课程体系与教学内容的改革,及时反映清华大学计算机基础教学的成果,加强与兄弟院校的交流,清华大学在原有工作的基础上,重新规划了“清华大学计算机基础教育课程系列教材”.

该系列教材有如下几个特色:

1 自成体系: 该系列教材覆盖了计算机基础教学三个层次的教学内容。其中既包括所有大学生都必须掌握的计算机文化基础,又包括适用于各专业的软、硬件基础知识;既包括基本概念、方法与规范,又包括计算机应用开发的工具与环境。

2 内容先进: 该系列教材注重将计算机技术的最新发展适当地引入教学中来,保持了教学内容的先进性。例如,系列教材中包括了面向对象与可视化编程、多媒体技术与应用、Internet与互联网技术、大型数据库技术等。

3 适应面广: 该系列教材照顾了理、工、文等各种类型专业的教学要求。

4 立体配套: 为适应教学模式、教学方法和手段的改革,该系列教材中多数都配有习题集和实验指导、多媒体电子教案,有的还配有CAI课件以及相应的网络教学资源。

本系列教材源于清华大学计算机基础教育的教学实践,凝聚了工作在第一线的任课教师的教学经验与科研成果。我希望本系列教材不断完善,不断更新,为我国高校计算机基础教育做出新的贡献。

文摘插图:

C程序设计(清华大学计算机基础教育课程系列教材)

总之,定义变量的目的就是用来在程序执行过程中保存待处理的数据,保存中间或最终结果,不同类型的变量用来保存不同类型的数据。因为变量是与内存单元相对应,当程序代码或程序代码片段开始执行时,系统为变量分配内存单元,变量就有了自己的内存空间;当退出程序或程序片段时,由于释放所占用的内存,变量的内容也就不复存在。

2.6.3 变量的特征

假设main函数中存在下述三个整数类型变量a、b、sum定义:

int a,b, sum;这里,系统为每个变量分配恰当的存储空间以存放该变量的值,在程序执行期间程序对变量的操作都将翻译成对该存储区的操作。

此类变量存储结构图对理解C程序有很大帮助,读者应勤于使用。

图2-2方框中没有写入任何内容,这是有意的。在C程序中,变量一经定义,其对应的存储空间就存在了,但此时该存储空间中还没有保存任何有意义的数据或信息,即程序还不能从该存储空间中获取变量的值。

在此,可以将变量特征总结如下。

(1)变量总是具有值的。在任意时刻,变量都具有一个唯一值与其相对应,虽然值本身可以在程序执行期间改变。

(2)变量总是与内存中的地址相对应。

(3)变量总是具名的,在程序中除非使用间接的手段,否则无法创建和访问匿名变量。

(4)变量具有确定的类型,编译器需要知道变量类型以便为其开辟合适的存储空间并进行类型检查。

2.6.4 变量的赋值

如前述例子所揭示的,程序执行时可以通过C语言所提供的赋值操作改变数据对象(变量)的值。但是,变量名称和变量类型是不可以改变的,即只有数据对象与值之间的关系可以在程序执行期间动态改变。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
>>返回首頁<<
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有