计算机基础教育 > 算法与程序设计类

C语言程序设计与应用教程(第二版)

书号:9787113103941 套系名称:高等院校新课程体系计算机基础教育规划教材

作者:周虹 闫瑞峰 王永利主编 出版日期:2009-10-01

定价:29.00 页码 / 开本:302 /16

策划编辑:严晓舟 秦绪好 责任编辑:秦绪好

适用专业:无 适用层次:本科/高职高专

最新印刷时间:

资源下载
教学课件 教学素材(暂无)
习题答案(暂无) 教学案例
教学设计(暂无) 教学视频(暂无)
内容简介 前言 目录 作者介绍 图书特色
  •         本书共12章,分别为:程序设计基础,简单的数据类型、运算符和表达式,顺序结构程序设计,选择结构程序设计,循环结构程序设计,数组,函数,编译预处理,指针,结构体与共用体,位运算,文件。书中程序都经过上机调试通过。本书文字严谨、流畅,例题丰富,文档规范,注重程序设计技能训练。本书在第一版的基础上增加了小结和习题,同时对部分章节进行了修改。

            本书适合作为高等院校非计算机专业学生学习C语言程序设计的教材,也可作为程序设计爱好者学习C语言程序设计的参考书。
  •         第二版前  言

            随着计算机的普及和社会信息化程度的提高,掌握一门计算机语言已经成为计算机用户必备的技能之一。目前,无论是从事计算机专业工作的人员,还是非计算机专业的人员,都将C语言作为学习程序设计的入门语言。C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好,既具有高级语言的优点,又具有低级语言的许多特点。本书在编写过程中,力求做到概念准确、内容简洁、由浅入深、循序渐进、繁简适当、题型丰富,注重常用算法的介绍,有助于培养学生设计程序和分析问题的能力。书中全部实例都已上机调试通过。

            本书既可作为高等院校本、专科学生的教材,也可作为其他计算机应用人员学习高级程序设计语言的参考书。

            本书内容共分12章,分别为程序设计基础、简单的数据类型和运算符及表达式、顺序结构程序设计、选择结构程序设计、循环结构程序设计、数组、函数、编译预处理、指针、结构体和共用体及枚举类型、位运算以及文件。其中第1章和第6章由周虹和宋旭明编写,第2章由薛佳楣编写,第3章和第4章由闫瑞华编写,第5章由周虹编写,第7章由支援编写,第8章由曲思龙编写,第9章和第10章由富春岩编写,第11章由张竟达编写,第12章由刁树民编写。最后由周虹统稿,葛茂松担任主审。

            程序设计是一门实践性很强的课程,不可能只凭借听课和看书就能掌握,应当十分重视自己动手编写程序和上机运行程序,上机实践多多益善。为了帮助同学们学习本书,编者还编写了一本配套的学习指导书《C语言程序设计与应用实践教程》,提供本书中各章的学习指导、实验、习题及参考答案。

            本书在编写过程中得到了中国铁道出版社和佳木斯大学很多老师的帮助,哈尔滨学院的贾宗福教授审阅了此书,并提出了许多宝贵意见,在此对他们表示衷心的感谢。同时对在编写过程中参考的大量文献资料的作者一并表示感谢。由于时间紧迫,加之编者水平有限,书中难免有疏漏和不足之处,恳请读者提出宝贵意见和建议。

            编  者  

            2007年2月


            第一版前言
     
            随着计算机的普及和社会信息化程度的提高,掌握一门计算机语言已经成为计算机用户必备的技能之一。目前,无论是从事计算机专业工作的人员,还是非计算机专业的人员,都将C语言作为程序设计的入门语言。因为C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好,既具有高级语言的优点,又具有低级语言的许多特点。全书在编写过程中,力求做到概念准确、内容简洁、由浅入深、循序渐进、繁简适当、题型丰富,注重常用算法的介绍,有助于培养学生程序设计和分析问题的能力。书中全部实例都经过上机调试通过。

            本书是在《C语言程序设计与应用教程》的基础上修订而成,在内容上根据实际需要进行了若干调整,每一章增加了小结和习题。

            本书由周虹、闫瑞峰、王永利担任主编。其中,第1章和第8章由胡佳山编写,第2章由刘景春编写,第3章由王永利编写,第4章由李春洁编写,第5章由王晓娟编写,第6章由周虹编写,第7章由于占龙编写,第9章由王超编写,第10章由赵佳彬编写,第11章和第12章由闫瑞峰编写。最后由周虹教授统稿,李殿奎主审。

           程序设计是一门实践性很强的课程,不可能只靠听课和看书就能掌握C语言程序设计,应当重视动手编写程序和上机运行程序,上机的时间越多越好。为了帮助读者学习本书,我们还编写了《C语言程序设计与应用实践教程(第二版)》,提供本书中各章学习指导、实验、习题及参考答案。

            本书在编写过程中得到了中国铁道出版社和佳木斯大学很多老师的帮助,哈尔滨学院的贾宗福教授审阅了此书,并提出了许多宝贵意见,在此对他们表示衷心的感谢,同时对编写的过程中参考的大量文献资料的作者一并表示感谢。由于时间紧迫,加之编者水平有限,书中难免有不足之处,恳请广大读者提出宝贵意见和建议。

            编  者 

            2009年7月

  • 第1章  程序设计基础 1
    1.1  算法及表示 1
    1.1.1  算法的特性 1
    1.1.2  算法的表示 1
    1.2  程序设计及结构化程序设计方法 4
    1.2.1  高级语言源程序的执行 4
    1.2.2  程序设计 5
    1.2.3  结构化程序设计 6
    1.3  C程序的构成 8
    1.4  程序的书写格式和程序的书写风格 10
    小结 10
    习题 10
    第2章  数据类型、运算符和表达式 12
    2.1  C语言数据类型简介 12
    2.2  标识符 12
    2.2.1  字符集 12
    2.2.2  标识符概述 13
    2.2.3  标识符的分类 13
    2.3  常量 14
    2.3.1  整型常量 14
    2.3.2  实型常量 14
    2.3.3  字符常量和字符串常量 15
    2.3.4  符号常量 16
    2.4  变量 16
    2.4.1  整型变量 17
    2.4.2  实型变量 18
    2.4.3  字符变量 19
    2.4.4  变量赋初值 20
    2.5  运算符和表达式 20
    2.5.1  C运算符简介 20
    2.5.2  表达式的求值规则 21
    2.5.3  混合运算中的类型转换 21
    2.5.4  算术运算符与算术表达式 22
    2.5.5  赋值运算符与赋值表达式 24
    2.5.6  逗号运算符与逗号表达式 25
    2.5.7  关系运算符与关系表达式 26
    2.5.8  逻辑运算符与逻辑表达式 27
    2.5.9  条件运算符与条件表达式 28
    2.5.10  sizeof运算符 30
    2.6  应用举例 30
    小结 32
    习题 32
    第3章  顺序结构程序设计 35
    3.1  C语句概述 35
    3.2  赋值语句 37
    3.3  字符数据的输入/输出 38
    3.3.1  字符输出函数putchar() 38
    3.3.2  字符输入函数getchar() 39
    3.4  格式输入/输出 40
    3.4.1  格式输出函数printf() 40
    3.4.2  格式输入函数scanf() 48
    3.5  应用举例 52
    小结 53
    习题 54
    第4章  选择结构程序设计 57
    4.1  if语句 57
    4.1.1  简单if语句 57
    4.1.2  双分支if语句 59
    4.1.3  多分支if语句 60
    4.1.4  if语句使用说明 62
    4.2  if语句的嵌套 63
    4.3  多分支结构 66
    4.4  应用举例 69
    小结 76
    习题 76
    第5章  循环结构程序设计 80
    5.1  while语句 80
    5.2  do…while语句 83
    5.3  for语句 85
    5.4  几种循环的比较 89
    5.5  循环嵌套 90
    5.6  break语句 92
    5.7  continue语句 93
    5.8  应用举例 94
    小结 103
    习题 103
    第6章  数组 107
    6.1  数组和数组元素 107
    6.2  一维数组 108
    6.2.1  一维数组的定义和引用 108
    6.2.2  一维数组的初始化 109
    6.2.3  一维数组程序举例 111
    6.3  多维数组 120
    6.3.1  二维数组的定义和引用 120
    6.3.2  二维数组的初始化 122
    6.3.3  二维数组程序举例 123
    6.4  字符数组 126
    6.4.1  字符数组的定义和引用 126
    6.4.2  字符数组的初始化 127
    6.4.3  字符串的输入/输出 127
    6.4.4  用于字符处理的库函数 129
    6.4.5  字符数组应用举例 132
    6.5  应用举例 135
    小结 137
    习题 138
    第7章  函数 141
    7.1  模块化程序设计 141
    7.1.1  模块化程序设计简介 141
    7.1.2  函数概述 142
    7.2  函数的定义 143
    7.2.1  无参函数的定义 144
    7.2.2  有参函数的定义 144
    7.2.3  函数的返回值 145
    7.3  函数的调用 146
    7.3.1  函数调用的一般形式 146
    7.3.2  函数的声明 147
    7.3.3  函数参数的传递 149
    7.4  函数的嵌套调用与递归调用 150
    7.4.1  函数的嵌套调用 150
    7.4.2  函数的递归调用 151
    7.5  数组作函数参数 154
    7.5.1  数组元素作函数实参 154
    7.5.2  数组名作函数参数 155
    7.5.3  多维数组名作函数参数 156
    7.6  变量的作用域 156
    7.6.1  局部变量 156
    7.6.2  全局变量 157
    7.7  变量的存储类别 158
    7.7.1  变量的生存期 158
    7.7.2  局部变量的存储类别 159
    7.7.3  全局变量的存储类别 160
    7.7.4  存储类别小结 162
    7.8  内部函数和外部函数 163
    7.8.1  内部函数 163
    7.8.2  外部函数 163
    7.9  应用举例 163
    小结 166
    习题 166
    第8章  编译预处理 168
    8.1  宏定义 168
    8.1.1  不带参数的宏定义 168
    8.1.2  带参数的宏定义 169
    8.2  文件包含 171
    8.3  应用举例 173
    小结 174
    习题 174
    第9章  指针 178
    9.1  相关概念 178
    9.1.1  变量的地址 178
    9.1.2  数据的访问方式 179
    9.1.3  指针和指针变量 179
    9.2  指针变量的定义和引用 179
    9.2.1  指针变量的定义 179
    9.2.2  指针变量的初始化和赋值 180
    9.2.3  指针变量的引用 181
    9.2.4  指针的运算 182
    9.3  指针变量作函数参数 183
    9.4  数组的指针和指向数组的指针变量 185
    9.4.1  指向数组元素的指针 186
    9.4.2  通过指针引用数组元素 186
    9.4.3  数组名作函数参数 189
    9.4.4  指向多维数组的指针与指针变量 196
    9.5  字符串与指针 200
    9.5.1  字符串的表示形式 200
    9.5.2  对使用字符指针变量与字符数组的讨论 201
    9.5.3  字符串指针作函数参数 203
    9.6  函数与指针 204
    9.6.1  用函数指针变量调用函数 204
    9.6.2  指向函数的指针变量作函数参数 205
    9.7  返回指针值的函数 206
    9.8  指针数组和指向指针的指针 206
    9.8.1  指针数组的概念 207
    9.8.2  指向指针的指针 208
    9.8.3  main()函数的命令行参数 209
    9.9  应用举例 209
    小结 213
    习题 214
    第10章  结构体与共用体 216
    10.1  结构体类型及变量的定义 216
    10.1.1  结构体类型的定义 216
    10.1.2  结构体变量的定义 218
    10.2  结构体变量的引用和初始化 219
    10.3  结构体数组 221
    10.3.1  定义结构体数组 221
    10.3.2  结构体数组的初始化 222
    10.3.3  结构体数组应用 222
    10.4  指向结构体类型数据的指针 223
    10.4.1  指向结构体变量的指针 223
    10.4.2  指向结构体数组的指针 225
    10.4.3  结构体变量和指向结构体的指针作函数参数 226
    10.5  用指针处理链表 228
    10.5.1  链表概述 228
    10.5.2  处理动态链表所需的函数 229
    10.5.3  链表的基本操作 229
    10.6  共用体 235
    10.6.1  共用体变量的引用方式 236
    10.6.2  共用体类型数据的特点 236
    10.7  枚举类型 237
    10.8  用typedef定义类型 240
    10.9  应用举例 242
    小结 245
    习题 245
    第11章  位运算 248
    11.1  位运算符与位运算 248
    11.1.1  按位与运算符(&) 248
    11.1.2  按位或运算符(|) 249
    11.1.3  按位异或运算符(^) 249
    11.1.4  按位取反运算符(~) 250
    11.1.5  左移运算符(<<) 251
    11.1.6  右移运算符(>>) 251
    11.1.7  位运算赋值运算符 251
    11.1.8  不同长度的数据进行位运算 252
    11.2  应用举例 252
    小结 253
    习题 253
    第12章  文件 256
    12.1  文件的概念 256
    12.2  文件操作函数 257
    12.2.1  文件的打开 257
    12.2.2  文件的关闭 259
    12.3  文件检测函数 259
    12.4  常用的读写函数 260
    12.4.1  读写字符函数 260
    12.4.2  读写字符串函数 262
    12.4.3  读写数据块函数 262
    12.4.4  格式化读写函数fprintf()函数和fscanf()函数 265
    12.5  文件的定位 266
    12.5.1  rewind()函数 266
    12.5.2  随机读写和fseek()函数 266
    12.6  应用举例 267
    小结 269
    习题 270
    附录A  习题参考答案 272
    附录B  常用ASCII码表 290
    附录C  运算符和结合性 291
    附录D  C语言常用语法提要 293
    附录E  C库函数 297
    参考文献 303