C语言程序设计

C语言程序设计"

作者:梁海英、李淑梅、白文秀、侯锟
ISBN:9787302313595
定价:¥32
字数:千字
页数:
出版时间:2013.02.01
开本:
版次:1-2
装帧:
出版社:清华大学出版社
简介

本书按照程序设计的体系结构,系统地介绍了C程序设计的基本思想及基本方法。全书内容分为两部分。第一部分(第1~7章)依次介绍了C程序设计的基本应用:包括C程序的基本结构、基本运算量,以及结构化程序设计的顺序结构、选择结构、循环结构、数组及函数的开发方法与应用实现;第二部分(第8~12章)详细介绍了C程序设计的高级应用:包括预处理、结构体、共用体、指针、文件及位运算等应用。

本书从实用的角度出发,内容选取先进精准、组织循序渐进、讲解文字精练;各部分辅助图表、结合实例、深入浅出、结构清晰;典型实例精挑细选、算法分析流程图化、程序结构错落有致、程序结果真实有效;各章习题针对性强、题型丰富;免费提供电子课件、源程序及习题答案;详细介绍了开发环境Visual C++ 6.0的使用方法,全部例题均在此环境中成功运行。

本书可作为高等学校非计算机专业本科生的计算机通识教材,也可作为计算机相关专业的程序设计入门教材、计算机技术的培训教材,还可作为全国计算机等级考试的参考用书和编程爱好者自学C语言的自学教材。

本书对应的电子教案、习题答案和实例源文件可以到http://www.tupwk.com.cn /downpage网站下载。

前言

前    言

C语言程序设计简单易学,具有广泛的用途,是非常适合高等学校各专业学生学习的程序设计语言,又是计算机学科的程序设计基础课。通过C语言程序的学习,读者可以运用相关知识和技能更好地进行算法和程序的设计,也为后继课程的学习打下良好的基础。

我们基于多年的丰富教学经验及素材积累,精心编写此书,目的是让初学者能循序渐进地掌握程序设计的思想,系统地掌握C语言程序设计的方法,从实用的角度出发,选取适当的相关案例,配备精练的讲解文字,辅助直观的算法流程图,编写缩进格式的实现程序,得到真实有效的运行结果。对于各种程序设计语言的共同概念,如数据类型、结构化程序设计的三种基本结构、数组及函数等进行深入讲解,使读者能够全面地理解程序设计语言,使读者能在此基础上自学其他程序设计语言。

全书共12章,第1章介绍C程序结构及其特点、Visual C++ 6.0的安装及使用;第2章介绍数据类型、常量、变量、函数和表达式;第3章介绍传统流程图及N-S结构化流程图、赋值语句、数据输入输出函数调用语句及顺序结构程序设计;第4章介绍关系运算符、逻辑运算符和表达式、用if语句和switch语句实现选择结构程序设计;第5章介绍用while语句、do-while语句和for语句实现循环结构程序设计及用break和continue语句提前结束循环;第6章介绍数组的定义和初始化、数组元素的使用、数值数组元素的常用操作、字符数组的使用;第7章介绍函数的定义、被调函数的声明、函数的调用、数组作函数参数、变量的作用域和存储类别;第8章介绍宏定义、文件包含、条件编译;第9章介绍结构体类型、共用体类型、枚举类型;第10章分别介绍指向变量的、指向数组的、指向函数的、指向指针的和指向结构体的指针变量及动态存储分配;第11章介绍文件的打开与关闭、文件的顺序读写和随机读写及文件检测函数;第12章介绍位运算符和位域。

除封面署名的作者外,在本书编写过程中,得到了所在学院的同事的热心帮助和支持,参加本书内容编写、程序调试、课件制作、习题收集、答案制作、内容审校等工作的老师还有李颖、于萍、逯洋、英昌盛、王海燕、叶丽娜、张桂杰、赵靖华、刘哲、李闯、张伟、赵鹏、王继魁、吕凯、刘伟、丛飚、刘松、孙英慧、邹晓辉、王发斌、刘艳玲、李爽、罗琳、王晓雪等,在此向他们表示衷心的感谢。

需要本书电子课件、源程序及习题答案的读者,请到清华大学出版社网站下载。

由于时间仓促,书中难免存在不妥之处,请读者原谅,并提出宝贵意见。我们的电话是010-62796045,信箱是huchnehao@263.net。

编者   

年  月  日

目录

目    录 

第 1 章  引言 / 1

1.1  程序设计语言 / 1

1.1.1  低级语言 / 1

1.1.2  高级语言 / 2

1.2  程序结构及其特点 / 2

1.2.1  程序结构 / 3

1.2.2  程序结构的特点 / 3

1.2.3  程序书写规则 / 5

1.2.4  程序保留字 / 5

1.3  Visual C++ 6.0的安装及使用 / 6

1.3.1  Visual C++ 6.0的安装 / 7

1.3.2  Visual C++ 6.0的启动 / 7

1.3.3  Visual C++ 6.0上机过程 / 7

1.3.4  Visual C++ 6.0的退出 / 10

1.4  习题 / 10

第 2 章  数据类型及基本运算量 / 13

2.1  数据类型 / 13

2.1.1  基本数据类型 / 13

2.1.2  构造数据类型 / 15

2.1.3  指针类型 / 15

2.1.4  空类型(void) / 15

2.2  常量 / 15

2.2.1  直接常量 / 16

2.2.2  符号常量 / 18

2.3  变量 / 19

2.3.1  变量的种类 / 19

2.3.2  变量的定义 / 20

2.3.3  变量的使用 / 20

2.4  库函数 / 22

2.4.1  数学函数 / 22

2.4.2  输入输出函数 / 23

2.5  运算符及表达式 / 23

2.5.1  运算符及表达式简介 / 23

2.5.2  算术运算符和算术表达式 / 25

2.5.3  赋值运算符和赋值表达式 / 29

2.5.4  逗号运算符和逗号表达式 / 32

2.6  习题 / 33

第 3 章  顺序结构程序设计 / 35

3.1  结构化程序设计 / 35

3.1.1  结构化程序的特点 / 35

3.1.2  结构化程序的设计方法 / 35

3.2  传统流程图及N-S结构化流程图 / 36

3.3  C语句概述 / 38

3.4  赋值语句 / 40

3.5  数据输入输出函数调用语句 / 41

3.5.1  数据输入输出的方法 / 41

3.5.2  字符输入输出 / 41

3.5.3  格式输入与输出 / 43

3.6  顺序结构程序设计举例 / 50

3.7  习题 / 52

第 4 章  选择结构程序设计 / 55

4.1  选择结构程序设计概述 / 55

4.2  关系运算符和表达式 / 56

4.2.1  关系运算符 / 56

4.2.2  关系表达式 / 57

4.3  逻辑运算符和表达式 / 58

4.3.1  逻辑运算符 / 58

4.3.2  逻辑表达式 / 59

4.4  用if语句实现选择结构程序设计 / 60

4.4.1  if语句的3种形式 / 60

4.4.2  if语句的嵌套 / 65

4.4.3  条件运算符和条件表达式 / 67

4.5  用switch语句实现选择结构程序设计 / 68

4.6  选择结构程序设计举例 / 71

4.7  习题 / 75

第 5 章  循环结构程序设计 / 79

5.1  循环结构程序设计概述 / 79

5.2  用于实现循环结构程序设计的语句 / 80

5.2.1  用while语句实现循环结构程序设计 / 80

5.2.2  用do-while语句实现循环结构程序设计 / 86

5.2.3  用for语句实现循环结构程序设计 / 91

5.2.4  循环的嵌套 / 96

5.2.5  几种循环语句的比较 / 99

5.3  用break和continue语句提前结束循环 / 99

5.3.1  break语句 / 99

5.3.2  continue语句 / 101

5.4  循环结构程序设计举例 / 102

5.5  习题 / 105

第 6 章  数组 / 111

6.1  数组的概念 / 111

6.2  数组的定义 / 112

6.3  数组的初始化 / 114

6.4  数组元素的使用 / 116

6.5  数值数组元素的常用操作 / 119

6.5.1  一维数组元素的常用操作 / 119

6.5.2  二维数组元素的常用操作 / 130

6.6  数值数组的应用举例 / 135

6.6.1  一维数组程序举例 / 136

6.6.2  二维数组程序举例 / 140

6.7  字符数组的使用 / 141

6.7.1  字符串和字符串结束标志 / 141

6.7.2  字符数组的输入输出 / 142

6.7.3  字符串处理函数 / 143

6.8  字符数组应用程序举例 / 148

6.9  习题 / 149

第 7 章  用户自定义函数 / 155

7.1  用户自定义函数的种类 / 155

7.2  函数的定义 / 156

7.3  被调函数的声明 / 158

7.4  函数的调用 / 159

7.4.1  函数调用的一般形式 / 159

7.4.2  函数调用的方式 / 159

7.4.3  函数调用的参数传递 / 161

7.5  函数的嵌套调用 / 162

7.6  函数的递归调用 / 163

7.7  数组作函数参数 / 165

7.7.1  数组元素作函数实参 / 165

7.7.2  数组名作函数参数 / 166

7.8  变量的作用域 / 168

7.8.1  局部变量 / 168

7.8.2  全局变量 / 169

7.9  变量的存储类别 / 171

7.9.1  静态存储方式与动态存储方式 / 171

7.9.2  用auto声明动态局部变量 / 171

7.9.3  用static声明静态局部变量 / 172

7.9.4  用register声明寄存器变量 / 173

7.9.5  用extern声明外部变量 / 174

7.10  习题 / 175

第 8 章  预处理命令 / 181

8.1  宏定义 / 181

8.1.1  无参宏定义 / 181

8.1.2  带参宏定义 / 183

8.2  文件包含 / 189

8.3  条件编译 / 190

8.4  习题 / 191

第 9 章  用户自定义数据类型 / 193

9.1  结构体类型 / 193

9.1.1  结构体类型的定义 / 193

9.1.2  结构体类型变量的定义 / 194

9.1.3  结构体类型变量的成员变量的表示方法 / 195

9.1.4  结构体类型变量的成员变量的使用方法 / 196

9.1.5  结构体类型变量的初始化及整体赋值 / 197

9.1.6  结构体类型数组的定义和使用 / 197

9.2  共用体类型 / 199

9.2.1  共用体类型的定义 / 199

9.2.2  共用体类型变量的使用 / 199

9.3  枚举类型 / 201

9.3.1  枚举类型的定义 / 201

9.3.2  枚举类型变量的定义 / 202

9.3.3  枚举类型变量的使用 / 202

9.4  类型声明符typedef / 204

9.5  习题 / 206

第 10 章  指针 / 211

10.1  指针的基本概念 / 211

10.2  指向变量的指针变量 / 211

10.2.1  指针变量的定义 / 212

10.2.2  指针运算符 / 212

10.2.3  指针变量作为函数参数 / 215

10.3  指向数组的指针变量 / 217

10.3.1  指向数组的指针变量的定义与赋值 / 218

10.3.2  通过指针变量引用数组元素 / 218

10.3.3  指向数组的指针变量作函数参数 / 222

10.3.4  指向多维数组的指针和指向多维数组的指针变量 / 228

10.3.5  字符串的指针和指向字符串的指针变量 / 230

10.4  指向函数的指针变量和指针型函数 / 232

10.4.1  指向函数的指针变量 / 232

10.4.2  指针型函数 / 234

10.5  指针型数组和指向指针的指针变量 / 235

10.5.1  指针型数组的定义及使用 / 236

10.5.2  指向指针的指针变量 / 239

10.5.3  main函数的参数 / 240

10.6  指向结构体的指针变量 / 242

10.6.1  指向结构体变量的指针变量 / 242

10.6.2  指向结构体数组的指针变量 / 244

10.6.3  结构体指针变量作函数参数 / 245

10.7  动态存储分配 / 247

10.8  习题 / 249

第 11 章  文件 / 255

11.1  文件的种类 / 255

11.2  文件指针和文件内部的位置指针 / 256

11.3  文件的操作 / 256

11.4  文件的打开与关闭 / 258

11.4.1  文件打开函数fopen() / 258

11.4.2  文件关闭函数fclose() / 260

11.5  文件的顺序读写 / 260

11.5.1  字符读写函数fgetc()和fputc() / 260

11.5.2  字符串读写函数fgets()和fputs() / 262

11.5.3  数据块读写函数fread()和fwtrite() / 264

11.5.4  格式化读写函数fscanf()和fprintf() / 266

11.6  文件的随机读写 / 267

11.6.1  文件的定位 / 268

11.6.2  文件的随机读写 / 268

11.7  文件检测函数 / 269

11.7.1  文件结束检测函数feof() / 270

11.7.2  读写文件出错检测函数ferror() / 270

11.7.3  清除文件出错标志和结束标志函数clearerr() / 270

11.8  习题 / 270

第 12 章  位运算 / 273

12.1  位运算符 / 273

12.1.1  按位与运算 / 273

12.1.2  按位或运算 / 274

12.1.3  按位异或运算 / 275

12.1.4  按位求反运算 / 275

12.1.5  左移运算 / 275

12.1.6  右移运算 / 275

12.2  位域(位段) / 276

12.3  习题 / 279

参考文献 / 281

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个