欢迎来到中国铁道出版社有限公司官网!
$itImage.title$

C语言程序设计

书      号:9787113193454

丛  书 名:

作      者:贾宗璞,许合利

译      者:

开      本:16开

装      帧:平装

正文语种:

出  版 社:中国铁道出版社有限公司

定      价:39

  • 内容简介

    "本书为河南省“十二五”普通高等教育规划教材和省级精品资源共享课程主讲教材。全
    书共分14章,主要内容包括:C语言概述,基本数据类型、运算符与表达式,顺序结构程序
    设计,选择结构程序设计,循环结构程序设计,数组,函数,编译预处理,指针,结构体、
    共用体及枚举类型,文件,C++基础,VC++6.0开发环境及程序测试与调试,上机实验内容等。
    各章后附有大量习题,书后附有完整的ASCII代码与字符对照表、C语言中的关键字、运算
    符优先级和结合方向、常用库函数。
    本书内容丰富、新颖,图文并茂,通俗易懂,实用性强,适合作为高等学校非计算机专
    业的计算机基础课教材,也可作为全国计算机等级考试(二级C语言)的参考用书,还可作
    为计算机人员的参考书。"
  • 前言


    C语言是国际上广泛流行的一种面向过程的计算机高级语言,其历史悠久,发展迅速。后来发展起来的C++、 Java、 C#等语言,无不是在其基础上进行扩充或改造的。 C语言与其他高级语言相比,形式简洁、数据类型丰富、表达能力强、运算符丰富、程序设计灵活、可读性和可移植性好、目标程序效率高。 C语言既具有低级语言的特点,又具有完善的模块化结构,体现了结构化程序设计的思想。它是继Pascal语言之后的又一门优秀的课程教学语言,并且是教学需要与实际应用相结合的一门语言。C语言具有很强的处理功能,不仅可用于开发系统软件,也可用于开发应用软件。
    学习C语言,起初会觉得要记的东西太多,这是由于它太灵活的原因。但是学到一定程度,就能体会到C语言的特色。 C语言中的指针非常重要,是今后开发工作中的得力助手,因为在使用C/C++的实际工作中指针无处不见,很多参数完全就是指针化的。要学好C语言,就要透彻理解其相关概念,并辅之以大量编程训练和上机实验。要积极实践,善于思考,结合具体的项目学用相长。
    本书是根据教育部高等学校计算机科学与技术教学指导委员会编制的《关于进一步加强高等学校计算机基础教学的意见暨计算机基础课程教学基本要求(试行)》编写的,属于较高要求的C语言版本。全书共分14章,第1章介绍了C语言的基本知识、算法及程序设计的一般方法;第2章介绍了C语言的基本数据类型、常量和变量、运算符以及表达式;第3章、第4章、第5章介绍了C语言进行结构化程序设计的基本方法,包括结构化程序的顺序结构、选择结构、循环结构及其设计方法;第6章介绍了数组;第7章介绍了函数;第8章介绍了编译预处理;第9章充分阐述了C语言的指针;第10章对结构体、共用体及枚举类型作了较详细的介绍;第11章对C语言文件操作作了较详细的阐述;第12章对C++的基本特性、基本概念以及面向对象程序设计的基本方法进行了初步阐述;第13章介绍了VC ++6.0开发环境、程序测试与调试及常见出错信息与分析;第14章提出了上机实验总的目的和要求,并为了配合理论教学介绍了各实验项的目的和要求、实验内容及操作步骤。另外,每章都配有本章重点、本章难点、小结和习题,在书末还有附录,以帮助大家学习。
    本书的编写人员均为河南理工大学多年从事计算机教学的教师,很早就从事C语言及计算机相关课程的教学实践工作,曾多次编写C语言讲义、教辅资料、习题集。在此基础上,经过认真讨论、集思广益、精心整理,编写成了本教材。本书上机环境由初期的Turbo C改成了Visual C++ 6.0,理论知识及上机实验内容几经推敲,内容选取上既注重了先进性、科学性和系统性,又兼顾了实用性和趣味性。在文字叙述上力求做到深入浅出,通俗易懂,便于自学;同时用大量的典型实例化解各章的难点,充分展示了计算机解决问题的思想和方法,突出了程序设计的基本方法的阐述,注意计算思维的训练。另外,编者多年来一直参与全国计算机等级考试的组织、辅导工作,对全国计算机等级考试的大纲有透彻的理解,所以本书符合大纲中二级C语言的要求。习题包含了等级考试的选择题、填空题、程序修改题和编程题等。因此,本书除了适合作为普通高等学校非计算机专业教材外,还可以作为全国计算机等级考试(二级C语言)的参考用书,也可以作为计算机人员的参考书。
    本书由贾宗璞、许合利任主编,赵珊、王利红任副主编,逯静、陈莉、崔志恒、乔应旭参与编写。具体编写分工:贾宗璞编写第1章、第7章,赵珊编写第2章、第4章,王利红编写第3章、第12章,逯静编写第5章、第13章,陈莉编写第6章、第11章,崔志恒编写第8章、第14章,许合利编写第9章,乔应旭编写第10章及附录。在本书的编写过程中,得到了河南理工大学领导和教务处的大力支持,在此表示衷心感谢。由于编者水平有限,书中疏漏和不妥之处在所难免,敬请读者批评指正。
    编 者 
    2016年11月
  • 目录

    第1章 C语言概述.................................1
    1.1 C语言的发展及特点....................1
    1.1.1 C语言的发展 ......................1
    1.1.2 C语言的特点 ......................2
    1.2 C语言程序的基本结构................3
    1.3 算法及其描述 ..............................5
    1.3.1 算法的概念 .........................5
    1.3.2 算法的描述方法 .................7
    1.4 程序设计方法 ............................11
    1.4.1 程序设计的一般步骤 .......11
    1.4.2 结构化程序设计方法 .......12
    小结 .....................................................13
    习题 .....................................................14
    第2章 基本数据类型、运算符与
    表达式 .....................................15
    2.1 C语言的数据类型......................15
    2.2 常量和变量 ................................16
    2.2.1 常量 ...................................16
    2.2.2 变量 ...................................18
    2.3 整型数据 ....................................18
    2.3.1 整型常量的表示 ...............18
    2.3.2 整型变量 ...........................18
    2.3.3 整型常量的类型 ...............20
    2.4 实型数据 ....................................21
    2.4.1 实型常量的表示 ...............21
    2.4.2 实型变量 ...........................21
    2.4.3 实型常量的类型 ...............22
    2.5 字符型数据 ................................23
    2.5.1 字符型常量 .......................23
    2.5.2 字符变量 ...........................25
    2.6 算术运算符与算术表达式 ........25
    2.6.1 基本算术运算符 ...............25
    2.6.2 算术表达式及算术运算符的
    优先级和结合性 ...............26
    2.6.3 自增、自减运算符 ...........27
    2.7 赋值运算符与赋值表达式 ........28
    2.7.1 赋值运算符 .......................28
    2.7.2 复合赋值运算符 ...............28
    2.7.3 赋值表达式 .......................29
    2.8 逗号运算符与逗号表达式 ........29
    2.9 位运算符 ....................................29
    2.9.1 位运算符 ...........................29
    2.9.2 位运算复合赋值运算符 ...31
    2.10 数据类型转换与计算类型长度运算符......................................31
    2.10.1 自动类型转换 .................32
    2.10.2 强制类型转换 .................33
    2.10.3 计算类型长度运算符 .....33
    小结 .....................................................34
    习题 .....................................................34
    第3章 顺序结构程序设计...................38
    3.1 C语言语句概述..........................38
    3.1.1 简单语句 ...........................38
    3.1.2 复合语句 ...........................39
    3.2 字符数据的输入/输出 ...............39
    3.2.1 字符输出函数 ...................40
    3.2.2 字符输入函数 ...................40
    3.3 格式化输入/输出函数 ...............41
    3.3.1 格式输出函数....................41
    3.3.2 格式输入函数 ...................44
    3.4 顺序结构程序设计举例 ............47
    小结 .....................................................49
    习题 .....................................................49
    第4章 选择结构程序设计...................52
    4.1 关系运算符和关系表达式 ........52
    4.1.1 关系运算符 .......................52
    4.1.2 关系表达式 .......................53
    4.2 逻辑运算符和逻辑表达式 ........54
    4.2.1 逻辑运算符 .......................54
    4.2.2 逻辑表达式 .......................54
    4.3 if语句及其构成的选择结构......55
    4.3.1 if语句的形式.....................55
    4.3.2 if语句的嵌套.....................57
    4.3.3 条件运算符和条件表达式 ...............................59
    4.4 switch语句及其构成的选择
    结构.............................................60
    4.4.1 switch语句的形式.............60
    4.4.2 在switch语句中使用break
    语句 ...................................61
    4.5 选择结构程序设计举例 ............62
    小结 .....................................................64
    习题 .....................................................65
    第5章 循环结构程序设计...................70
    5.1 概述 ............................................70
    5.2 while语句 ...................................71
    5.3 do…while语句 ...........................72
    5.4 for语句........................................74
    5.5 break语句和continue语句..........76
    5.5.1 break语句 ..........................76
    5.5.2 continue语句 .....................77
    5.6 循环的嵌套 ................................77
    5.7 循环结构程序设计举例 ............78
    小结 .....................................................81
    习题 .....................................................82
    第6章 数组.........................................89
    6.1 一维数组 ....................................89
    6.1.1 一维数组的定义 ...............89
    6.1.2 一维数组元素的引用 .......90
    6.1.3 一维数组的存储与初始化 ...............................91
    6.1.4 一维数组程序设计举例 ...92
    6.2 二维数组与多维数组 ................93
    6.2.1 二维数组的定义 ...............93
    6.2.2 二维数组元素的引用 .......94
    6.2.3 二维数组的初始化 ...........95
    6.2.4 二维数组程序设计举例 ...96
    6.2.5 多维数组概述 ...................97
    6.3 字符数组与字符串 ....................97
    6.3.1 字符数组的定义 ...............97
    6.3.2 字符数组的初始化 ...........98
    6.3.3 字符数组元素的引用 .......98
    6.3.4 字符串与字符数组 ...........99
    6.3.5 字符串处理函数 .............101
    6.3.6 字符数组程序设计
    举例 .................................103
    小结 ...................................................105
    习题 ...................................................105
    第7章 函数.......................................112
    7.1 模块化程序设计 ......................112
    7.1.1 模块化程序设计的概念...112
    7.1.2 函数概述 .........................113
    7.2 函数的定义 ..............................114
    7.2.1 函数定义的一般形式 .....114
    7.2.2 函数的返回 .....................115
    7.3 函数的调用 ..............................115
    7.3.1 函数调用的一般方式 .....115
    7.3.2 函数参数的传递 .............116
    7.3.3 函数的声明 .....................117
    7.3.4 函数的嵌套调用 .............118
    7.4 函数的递归调用 ......................119
    7.5 数组作为函数参数 ..................121
    7.5.1 数组元素作为函数实参....121
    7.5.2 数组名作为函数参数 .....122
    7.5.3 多维数组名作为函数参数 .................................123
    7.6 变量的作用域 ..........................124
    7.6.1 局部变量 .........................124
    7.6.2 全局变量 .........................125
    7.7 变量的存储类别 ......................126
    7.7.1 变量的生存期 .................126
    7.7.2 局部变量的存储类别 .....126
    7.7.3 全局变量的存储类别 .....128
    7.8 内部函数和外部函数 ..............130
    小结 ...................................................131
    习题 ...................................................132
    第8章 编译预处理............................138
    8.1 宏定义 ......................................138
    8.1.1 无参宏定义 .....................138
    8.1.2 带参宏定义 .....................141
    8.2 条件编译 ..................................144
    8.3 文件包含 ..................................146
    小结 ...................................................148
    习题 ...................................................148
    第9章 指针.......................................150
    9.1 地址和指针的概念 ..................150
    9.2 指针变量 ..................................151
    9.2.1 指针变量的定义与赋值 .................................151
    9.2.2 指针变量的引用 .............152
    9.3 指针与数组 ..............................154
    9.3.1 指针与一维数组 .............154
    9.3.2 指针与二维数组 .............157
    9.4 指针与字符串 ..........................160
    9.4.1 指向字符数组的指针
    变量 .................................160
    9.4.2 指向字符串常量的指针变量 .................................161
    9.5 指针与函数 ..............................162
    9.5.1 指针作为函数的参数 .....162
    9.5.2 指向函数的指针(函数指针) ...................166
    9.5.3 返回指针值的函数
    (指针函数) ...................168
    9.6 指针数组和多级指针 ..............169
    9.6.1 指针数组的定义 .............169
    9.6.2 指针数组与字符串 .........170
    9.6.3 多级指针 .........................171
    9.6.4 指针数组作为函数参数 .................................171
    9.6.5 带参main函数 .................172
    小结 ...................................................173
    习题 ...................................................174
    第10章 结构体、共用体及枚举类型.....................................182
    10.1 结构体变量的定义 ................182
    10.1.1 结构体类型的定义 .......182
    10.1.2 结构体变量的定义 .......183
    10.2 结构体变量的引用和初始化.....................................184
    10.2.1 结构体变量的引用 .......184
    10.2.2 结构体变量的初始化 ...185
    10.3 结构体数组 ............................185
    10.3.1 结构体数组的定义 .......185
    10.3.2 结构体数组的初始化 ...186
    10.3.3 结构体数组的引用 .......186
    10.4 结构体指针变量 ....................187
    10.4.1 指向结构体变量的指针 ...............................187
    10.4.2 指向结构体数组的指针 ...............................189
    10.5 结构体与函数 ........................190
    10.5.1 结构体变量作为函数参数 ...............................190
    10.5.2 返回结构体类型数据的函数 ...............................190
    10.5.3 结构体指针作为函数参数 ...............................191
    10.6 位段结构体 ............................192
    10.6.1 位段结构体类型及其变量的定义 ...................192
    10.6.2 位域的引用 ...................193
    10.7 链表 ........................................194
    10.7.1 链表概述 .......................194
    10.7.2 内存动态管理 ...............194
    10.7.3 创建链表 .......................196
    10.7.4 顺序访问链表中的结点 ...............................197
    10.7.5 在链表中插入结点 .......197
    10.7.6 在链表中删除结点 .......199
    10.8 共用体 ....................................201
    10.8.1 共用体类型及其变量的定义 ...............................201
    10.8.2 共用体变量的引用 ......202
    10.9 枚举类型 ................................204
    10.9.1 枚举类型和枚举变量的定义 ...............................204
    10.9.2 枚举类型变量的赋值和使用 ...............................204
    10.10 用typedef定义类型 ..............205
    小结 ...................................................206
    习题 ...................................................207
    第11章 文件.....................................212
    11.1 文件概述.................................212
    11.1.1 文件的概念 ...................212
    11.1.2 文件的分类 ...................212
    11.2 文件类型指针和文件位置指针 ........................................214
    11.2.1 文件类型指针 ...............214
    11.2.2 文件位置指针 ...............214
    11.3 文件的打开和关闭.................214
    11.3.1 文件打开函数 ...............215
    11.3.2 文件关闭函数 ...............216
    11.4 文件的读/写 ...........................217
    11.4.1 读/写一个字符的函数....217
    11.4.2 块读/写函数 ..................218
    11.4.3 其他读/写函数 .............221
    11.5 文件的定位和出错检测.........221
    11.5.1 文件的定位函数 ...........221
    11.5.2 出错检测函数 ...............223
    小结 ...................................................223
    习题 ...................................................224
    第12章 C++基础..............................229
    12.1 概述 ........................................229
    12.1.1 C++的发展历程............229
    12.1.2 面向对象程序设计 .......230
    12.2 C++对C的扩充.......................231
    12.2.1 C++的输入/输出...........231
    12.2.2 重载函数与带默认参数
    的函数 ...........................233
    12.2.3 变量的引用 ...................234
    12.2.4 内联函数 .......................236
    12.2.5 作用域运算符 ...............236
    12.2.6 new和delete ..................237
    12.3 类与对象 ................................238
    12.3.1 类的定义 .......................238
    12.3.2 对象 ...............................239
    12.3.3 构造函数 .......................241
    12.3.4 析构函数 .......................243
    12.4 继承与派生 ............................243
    12.4.1 继承与派生的方式 .......243
    12.4.2 派生类的三种继承方式 ...............................244
    12.4.3 派生类的构造和析构
    函数 .....................................246
    12.5 多态性与虚函数 ....................248
    12.5.1 多态性 ...........................248
    12.5.2 虚函数 ...........................248
    小结 ...................................................251
    习题 ...................................................251
    第13章 VC++ 6.0开发环境及程序测试与调试 .................................254
    13.1 VC++ 6.0的主窗口界面 ........254
    13.2 编辑C语言源程序文件..........255
    13.2.1 新建C源程序文件 ........256
    13.2.2 编辑已存在的文件 .......257
    13.3 编译、连接和运行程序 ........258
    13.3.1 编译 ...............................258
    13.3.2 连接 ...............................260
    13.3.3 运行 ...............................260
    13.4 建立和运行多个文件的方法.........................................260
    13.5 程序测试与调试 ....................262
    13.5.1 程序测试 .......................263
    13.5.2 程序调试 .......................264
    13.6 常见编译、连接出错信息 ....267
    第14章 上机实验内容 ......................273
    14.1 上机实验总目的和要求 ........273
    14.1.1 上机实验总目的 ...........273
    14.1.2 上机实验总要求 ...........273
    14.2 实验一 基本数据类型、
    运算符与表达式.....................274
    14.2.1 实验目的和要求 ...........274
    14.2.2 实验内容及操作步骤 ...274
    14.2.3 选做题 ...........................276
    14.3 实验二 顺序和选择程序
    设计.........................................277
    14.3.1 实验目的和要求 ...........277
    14.3.2 实验内容及操作步骤 ...277
    14.3.3 选做题 ...........................279
    14.4 实验三 循环程序设计 ........279
    14.4.1 实验目的和要求 ...........279
    14.4.2 实验内容及操作步骤 ...279
    14.4.3 选做题 ...........................281
    14.5 实验四 数组 ........................282
    14.5.1 实验目的和要求 ...........282
    14.5.2 实验内容及操作步骤 ...282
    14.5.3 选做题 ...........................284
    14.6 实验五 函数( 1) ..............284
    14.6.1 实验目的和要求 ...........284
    14.6.2 实验内容及操作步骤 ...285
    14.6.3 选做题 ...........................287
    14.7 实验六 函数( 2)与编译预
    处理 ........................................288
    14.7.1 实验目的和要求 ...........288
    14.7.2 实验内容及操作步骤 ...288
    14.7.3 选做题 ...........................289
    14.8 实验七 指针 ........................289
    14.8.1 实验目的和要求 ...........289
    14.8.2 实验内容及操作步骤 ...289
    14.8.3 选做题 ...........................291
    14.9 实验八 结构体、共用体与
    枚举类型.................................292
    14.9.1 实验目的和要求 ...........292
    14.9.2 实验内容及操作步骤 ...292
    14.9.3 选做题 ...........................294
    14.10 实验九 文件 ......................295
    14.10.1 实验目的和要求 .........295
    14.10.2 实验内容及操作
    步骤 .............................295
    14.10.3 选做题 .........................296
    14.11 实验十 C++基础 ...............296
    14.11.1 实验目的和要求 .........296
    14.11.2 实验内容及操作
    步骤..............................296
    14.11.3 选做题 .........................297
    14.12 实验十一 综合程序设计....297
    14.12.1 实验目的和要求 .........297
    14.12.2 实验内容及步骤 .........297
    14.12.3 选做题 .........................298
    附录A ASCII代码与字符对照表 .......299
    附录B C语言中的关键字..................300
    附录C 运算符优先级和结合方向......300
    附录D 常用库函数 ...........................302
    参考文献 ............................................306


  • 作者介绍

    贾宗璞,吉林大学博士,教授,河南省教育厅学术技术带头人,计算机应用技术省级重点学科带头人。现任河南理工大学计算机学院院长,软件职业技术学院院长,中国煤炭工业协会信息化分会理事,教育部高等学校计算机科学与技术专业教学指导分委员会专家组成员,河南省计算机学会常务理事,河南省高校计算机教育研究会常务理事,河南省煤炭学会计算机通信专业委员会副主任,焦作市计算机学会理事长。
    许合利,硕士,教授,现任河南理工大学现代教育技术中心副主任,河南省信息化专家咨询委员会专家,河南省计算机学会理事,焦作市计算机学会常务理事,河南省教育技术协会高校专业委员会常务理事。主要从事数据库与管理信息系统,计算机测控技术,计算机网络等方面的研究,主持或参与科研项目20多项,获得河南省科技进步二等奖1项,省部级三等奖2项,河南省信息技术教育优秀成果一等奖1项,地厅级科技进步奖2项。发表论文30余篇,主编省部级规划教材4部,参编教材2部,获煤炭高等学校优秀教材二等奖1项
  • 编辑推荐

    教学改革结晶,一线教师智慧;内容系统完整,案例典型丰富;训练能力思维,掌握编程艺术。
  • 书评书荐

  • 附件下载

图书推荐