计算机程序设计(C语言版)
作者 : 贾伯琪 顾为兵 苏仕华 张四海 何克东 编著
出版日期 : 2011-08-23
ISBN : 978-7-111-35351-5
适用人群 : 可作为高等学校信息类、计算机类专业的教学用书,也可
定价 : 36.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 342
开本 : 16
原书名 :
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

本书选用Linux和Microsoft Visual C++ 6.0作为教学环境,以C程序设计语言为载体,展示了在程序设计过程中如何分析问题、组织数据并解决问题。也阐述了在计算应用过程中将算法和编码相联系的具体程序设计过程,进而向读者介绍计算机结构化程序设计的基本概念、技术和方法。本书内容全面,全书内容大致可分两大部分:第一部分由第1章和第2章组成,主要包括计算机系统组成及基本工作原理、微型机系统结构、信息的表示及存储形式、程序与算法的基本概念、C语言的程序结构;剩下的章节构成第二部分:主要介绍数据类型、运算符和表达式、控制结构、数组、函数、预处理、指针、结构体与共用体、位运算、流与文件操作、面向对象程序设计简介。
本书可作为计算机及相关专业本科生的C语言教材,也适合教师和专业人士参考。

图书特色

计算机程序设计 C语言版
贾伯琪 顾为兵 苏仕华 张四海 何克东◎编著

本书选用Linux和Microsoft Visual C++ 6.0作为教学环境,从结构化程序设计技术出发,以C程序设计语言为载体,通过对典型问题的分析、算法描述和相应的C语言代码实现,展示了在程序设计过程中如何分析问题、组织数据并解决问题,也阐述了在计算应用过程中将算法和编码相联系的具体程序设计过程,进而向读者介绍计算机结构化程序设计的基本概念、技术和方法,启发读者使用计算机解决问题所需的思路和算法思想,引导读者培养逻辑思维的能力、抽象能力和计算机程序设计能力。
本书内容全面,全书内容大致可分三大部分:第一部分由第1章和第2章组成,涵盖了学习程序设计的预备知识,主要包括计算机系统组成及基本工作原理、微型机系统结构、信息的表示及存储形式、程序与算法的基本概念、C语言的程序结构;第二部分由第3~12章组成,主要介绍数据类型、运算符和表达式、控制结构、数组、函数、预处理、指针、结构体与共用体、位运算、流与文件操作、面向对象程序设计简介;第三部分由4个附录组成,主要包括C语言常用的库函数、ASCII码表、C语言的开发环境及上机过程介绍等知识。
本书可作为计算机及相关专业本科生的C语言教材,也适合教师和专业人士参考。

学校介绍:
中国科学技术大学是中国科学院所属的一所以前沿科学和高新技术为主、兼有特色管理和人文学科的综合性全国重点大学,1958年9月创建于北京,首任校长由郭沫若兼任。它的创办被称为“我国教育史和科学史上的一项重大事件”。建校后,中国科学院实施“全院办校,所系结合”的办学方针,汇集了严济慈、华罗庚、钱学森、赵忠尧、郭永怀、赵九章、贝时璋等一批国内最有声望的科学家。1970年年初,中国科学技术大学迁至安徽省合肥市。1978年以后,学校在全国率先提出并实施了创办少年班、首建研究生院、建设国家大科学工程、面向世界开放办学等一系列具有创新精神和前瞻意识的教育改革措施,很快发展成为国家高质量人才培养和高水平科学研究的重要基地。
20世纪90年代以来,学校主动适应国内外科技、教育和社会经济发展的要求与挑战,面向世界科学前沿领域和国家重大需求,凝练科学目标,开展科学研究,取得了一批具有世界领先水平的原创性科技成果。
长期以来,学校大力弘扬“红专并进,理实交融”的校风,坚持“我创新,故我在”和精品办学、英才教育的理念,形成了不断开拓创新的优良传统,以及教学与科研相结合、理论与实践相结合的鲜明特色,培养出一批德才兼备的高层次优秀人才。
目前,全校上下正深化改革,锐意创新,力争把学校建设成为质量优异、特色鲜明、规模适度、结构合理的一流研究型大学,面向全国培养具有创新能力和现代知识结构的一流人才,具有较强知识创新和技术创新能力的教育与科研基地。

图书前言

计算机程序设计是计算机教学系列课程中的重要组成部分。本课程的主要任务是以培养学生计算机应用能力和计算思维能力为目标,引导学生进入计算机程序设计的广阔天地。当今社会已进入信息化时代,善于运用计算机技术和手段进行学习、工作、解决专业问题已经是高级人才必备的素质。计算机程序设计教学不仅是大学通识教育的一个重要组成部分,更是培养大学生用计算思维方式解决专业问题、成为复合型创新人才的基础性教育的关键环节。
  本书从结构化程序设计方法出发,以C程序设计语言为载体,通过对典型问题的分析、算法描述和相应的C语言代码实现,展示了在程序设计过程中如何分析问题、组织数据并解决问题,阐述了在计算应用过程中将算法和编码相联系的具体程序设计过程,进而向读者介绍计算机结构化程序设计的基本概念、技术和方法,以启发读者使用计算机解决问题所需的思路和算法思想,培养读者的逻辑思维能力、抽象能力和计算机程序设计能力。
  本书通过部分实例与相关专业应用的有机结合,揭示了程序设计与后续课程以及与专业应用之间的密切联系,帮助读者学以致用,明确学习目标,并激发学习动力。因此,本书讲解的计算机程序设计不仅为解决专业领域的问题提供了有效的方法和手段,还提供了一种独特的处理问题的思维方式。
  本书采用基础优先的策略,全书内容从逻辑上可分三大部分:第一部分由第1章和第2章组成,涵盖了学习程序设计的预备知识,主要包括计算机系统组成及基本工作原理、微型机系统结构、信息的表示及存储形式、程序与算法的基本概念、C语言的程序结构;第二部分由第3~12章组成,主要介绍数据类型、运算符和表达式、控制结构、数组、函数、预处理、指针、结构体与共用体、位运算、流与文件操作、面向对象程序设计简介;第三部分涵盖了4个附录,主要包括C语言常用的库函数、ASCII码表、C语言的开发环境及上机过程介绍等知识。全书以计算机程序设计的思想贯穿始终,并以计算思维能力的培养为目标,引导读者从宏观上把握程序设计的理念。
  从计算机学科的整体培养目标来看,程序设计不仅要求学生学习语法,更要求学生学会解决实际问题,本书最重要的是教会初学者在解决问题时使用多种层次的抽象,能从高、中、低多个层面看待问题。程序设计课程与计算机学科的其他课程有很大区别,在程序设计课程中,学生要从案例中学习、从实践中学习、从错误中学习,需要花费大量时间编写、调试并修改程序。从我们计算机程序设计课程组诸多教师的经验看来,对于初学编程的人,不仅必须掌握数据与数据之间的关系,以及数据在计算机内的表示、数据的操作、基础逻辑和循环的基本编程技术,还需要强化上机实践。只有通过实践才能切实感受和领悟用计算机进行问题求解的思维模式和基本方法。
  对于刚接触程序设计的新生来说,在掌握了编写程序的基本技能后,就应该重点理解和运用结构化程序设计的思想和方法。在程序设计课程教学过程中,很多人容易陷入一个误区,即只注重语言本身的学习,以为学会了语法、规则、指令就等于掌握了程序设计,却忽略了计算思维的培养。然而,经验表明该课程的教学应该突出使用编程解决特定问题的方式,即程序设计方法,而不是语言本身。
  本书内容全面,在知识的讲解上又不失趣味性,作为教材,既适合作为初学者的入门读物,符合初学者的学习特点和过程,也适合教师和专业人士参考。如果读者耐心地读完本书,会发现本书在内容上具有较大的跨度和深度。
  本书选用Linux和Microsoft Visual C++ 6.0作为教学环境,为了方便读者学习,在本书的附录中提供了ASCII码对照表、常用标准库函数、C程序的上机过程与UNIX系统使用,以及VC++ 6.0集成环境开发C程序的基本方法。
  本书由贾伯琪、顾为兵、苏仕华、张四海和何克东编著,具体分工如下:顾为兵完成第3章和第7章,苏仕华完成第4章、第9章和第12章,张四海编写第6章和第10章并提供部分与专业结合的实例,何克东编写第1章,贾伯琪完成其他章节并负责对全书内容进行调整、修改和统一定稿。
  感谢计算机程序设计课程组的帅建梅、尹东、王上飞、谭立湘、刘勇、白雪飞、郑重、吴文涛、秦琳琳、杨坚等老师的大力支持和帮助。
  感谢中科大近代物理系的邓友金教授和刘乃乐副教授,中科大生命科学学院的梁治博士后,中科大信息科学技术学院的周武旸教授,赵明老师,他们为本书的实例研究提供了有趣的问题素材,与他们的讨论对该部分内容的完成具有重要影响。
  鉴于编者水平和成书时间有限,书中错误和不妥之处在所难免,敬请同行教师和读者批评指正。读者可以发E-mail到bqjia@ustc.edu.cn与作者沟通。

编 者
2011年7月于中国科学技术大学

上架指导

计算机\程序设计

封底文字

本书选用Linux和Microsoft Visual C++ 6.0作为教学环境,从结构化程序设计技术出发,以C程序设计语言为载体,通过对典型问题的分析、算法描述和相应的C语言代码实现,展示了在程序设计过程中如何分析问题、组织数据并解决问题,也阐述了在计算应用过程中将算法和编码相联系的具体程序设计过程,进而向读者介绍计算机结构化程序设计的基本概念、技术和方法,启发读者使用计算机解决问题所需的思路和算法思想,引导读者培养逻辑思维的能力、抽象能力和计算机程序设计能力。
本书内容全面,全书内容大致可分三大部分:第一部分由第1章和第2章组成,涵盖了学习程序设计的预备知识,主要包括计算机系统组成及基本工作原理、微型机系统结构、信息的表示及存储形式、程序与算法的基本概念、C语言的程序结构;第二部分由第3~12章组成,主要介绍数据类型、运算符和表达式、控制结构、数组、函数、预处理、指针、结构体与共用体、位运算、流与文件操作、面向对象程序设计简介;第三部分由4个附录组成,主要包括C语言常用的库函数、ASCII码表、C语言的开发环境及上机过程介绍等知识。
本书可作为计算机及相关专业本科生的C语言教材,也适合教师和专业人士参考。
学校介绍:
中国科学技术大学是中国科学院所属的一所以前沿科学和高新技术为主、兼有特色管理和人文学科的综合性全国重点大学。1958年9月创建于北京,首任校长由郭沫若兼任。它的创办被称为“我国教育史和科学史上的一项重大事件”。建校后,中国科学院实施“全院办校,所系结合”的办学方针,汇集了严济慈、华罗庚、钱学森、赵忠尧、郭永怀、赵九章、贝时璋等一批国内最有声望的科学家。1970年初,中国科学技术大学迁至安徽省合肥市。1978年以后,学校在全国率先提出并实施了创办少年班、首建研究生院、建设国家大科学工程、面向世界开放办学等一系列具有创新精神和前瞻意识的教育改革措施,很快发展成为国家高质量人才培养和高水平科学研究的重要基地。
 20世纪90年代以来,学校主动适应国内外科技、教育和社会经济发展的要求与挑战,面向世界科学前沿领域和国家重大需求,凝练科学目标,开展科学研究,取得了一批具有世界领先水平的原创性科技成果。
 长期以来,学校大力弘扬“红专并进,理实交融”的校风,坚持“我创新,故我在”和精品办学、英才教育的理念,形成了不断开拓创新的优良传统,以及教学与科研相结合、理论与实践相结合的鲜明特色,培养出一批德才兼备的高层次优秀人才。
 目前,全校上下正深化改革,锐意创新,力争把学校建设成为质量优异、特色鲜明、规模适度、结构合理的一流研究型大学,面向全国培养具有创新能力和现代知识结构的一流人才,具有较强知识创新和技术创新能力的教育与科研基地。

图书目录

前言
教学建议
第1章 计算机与程序设计基础 1
1.1 引言 1
1.2 计算机系统的基本组成与工作原理 2
1.2.1 计算机系统的组成 2
1.2.2 计算机的基本工作原理 4
1.3 微型计算机的系统结构 5
1.3.1 微型计算机的主要性能指标 5
1.3.2 微型计算机的硬件组成 5
1.3.3 微型计算机的软件系统 9
1.4 计算机中信息的表示及存储形式 13
1.4.1 计算机采用二进制编码 13
1.4.2 计算机中的信息单位 14
1.4.3 计算机中的数字系统 14
1.5 计算机程序与算法 23
1.5.1 算法的概念 23
1.5.2 算法的基本结构和表示 27
1.5.3 算法设计原则 31
1.5.4 算法的基本分类 32
1.6 程序设计和程序设计语言 35
1.7 本章小结 36
1.8 习题 37
第2章 C程序结构和设计方法 38
2.1 引言 38
2.2 C语言概述 39
2.3 C程序的基本结构 40
2.3.1 预处理部分 40
2.3.2 程序基本部分 40
2.4 程序设计方法 44
2.4.1 明确问题的需求 44
2.4.2 分析问题 46
2.4.3 设计解决问题的算法 46
2.4.4 测试并验证整个程序 50
2.4.5 维护并更新程序 52
2.5 实例研究 52
2.6 本章小结 58
2.7 习题 58
第3章 数据类型、运算符和表达式 59
3.1 引言 59
3.2 对象、变量和常量的概念 59
3.3 整型数据 61
3.3.1 整型数据的分类 61
3.3.2 整型数据所占内存
空间的大小和取值范围 62
3.3.3 整型变量的溢出 62
3.3.4 整数常量的表示方法 63
3.4 浮点型数据 64
3.4.1 浮点数据的分类、取值范围和精度 64
3.4.2 浮点数的误差 65
3.4.3 浮点常量的表示方法 65
3.5 字符型数据 66
3.5.1 字符数据类型 66
3.5.2 字符常量 67
3.5.3 字符串常量 68
3.6 void数据类型 69
3.7 表达式和运算符 69
3.7.1 运算符的优先级和结合方向 70
3.7.2 左值的概念 71
3.7.3 几种运算符简介 72
3.8 表达式中类型的隐式转换和显式转换 78
3.9 基本输入输出 81
3.9.1 格式化输出库函数printf()的使用 81
3.9.2 格式化输入库函数scanf()的使用 82
3.9.3 案例研究 83
3.10 本章小结 84
3.11 习题 84
第4章 控制结构与基本算法 86
4.1 引言 86
4.2 C语言语句 88
4.2.1 表达式语句 88
4.2.2 函数调用语句 89
4.2.3 控制语句 89
4.2.4 复合语句 89
4.2.5 空语句 89
4.3 选择结构 89
4.3.1 if语句 89
4.3.2 switch语句 94
4.4 循环控制结构 97
4.4.1 while循环语句 97
4.4.2 do ~ while语句 99
4.4.3 for循环语句 99
4.4.4 三种循环语句的比较 102
4.4.5 循环的嵌套 102
4.5 控制转向语句 104
4.5.1 break语句 104
4.5.2 continue语句 106
4.5.3 语句标号和goto语句 106
4.6 常用基本算法的程序设计 107
4.6.1 递推法 107
4.6.2 贪心法 109
4.6.3 枚举法 110
4.7 本章小结 111
4.8 习题 112
第5章 数组 114
5.1 引言 114
5.2 一维数组 115
5.2.1 一维数组的定义 115
5.2.2 一维数组的引用 116
5.2.3 一维数组的初始化 117
5.2.4 一维数组作为函数参数 123
5.3 字符数组 127
5.3.1 字符数组与字符串的关系 127
5.3.2 字符数组的定义和引用 127
5.3.3 字符数组的初始化 127
5.3.4 字符数组应用编程
(字符串处理) 130
5.4 多维数组 134
5.4.1 二维数组的定义 134
5.4.2 二维数组的内部表示 135
5.4.3 二维数组的引用 135
5.4.4 二维数组的初始化 137
5.4.5 二维数组作为函数参数 141
5.5 数组类型的应用 144
5.5.1 数据统计应用 144
5.5.2 排序算法应用 145
5.5.3 查找算法应用 151
5.5.4 字符文本处理应用 154
5.5.5 矩阵处理应用 156
5.5.6 递推与迭代算法应用 160
5.6 本章小结 162
5.7 习题 163
第6章 函数 166
6.1 引言 166
6.2 函数定义的一般形式与函数原型声明 167
6.3 函数调用 169
6.3.1 函数调用的一般形式及函数的调用方式 170
6.3.2 函数调用中的数值参数传递 171
6.3.3 函数的返回值 176
6.3.4 嵌套调用 178
6.4 函数的递归调用 179
6.5 变量存储空间 181
6.5.1 运行时环境简介 181
6.5.2 局部变量和全局变量 181
6.5.3 动态存储和静态存储 182
6.6 内部函数和外部函数 184
6.6.1 外部函数 184
6.6.2 内部函数 184
6.7 实例研究 184
6.7.1 CDMA系统中码字
生成问题 185
6.7.2 DNA序列的翻译问题 186
6.7.3 集合元素的全排列问题 190
6.8 本章小结 193
6.9 习题 194
第7章 预处理命令 196
7.1 引言 196
7.2 宏定义 197
7.2.1 不带形参的宏定义 197
7.2.2 带形参的宏定义 198
7.3 文件包含 200
7.4 条件编译 201
7.5 本章小结 203
7.6 习题 204
第8章 指针 205
8.1 引言 205
8.2 指针的概念 205
8.3 指针变量的定义 207
8.4 指针变量的引用 208
8.4.1 &运算符 208
8.4.2 *运算符 209
8.5 指针变量的运算 210
8.5.1 空指针和无效指针 210
8.5.2 指针运算 211
8.5.3 关系比较运算 214
8.6 指向数组元素的指针 214
8.7 指针作为函数参数 220
8.8 指向字符串的指针变量 224
8.9 指向多维数组的指针变量 226
8.9.1 指向数组元素的指针变量 228
8.9.2 指向行向量的指针变量 229
8.10 指针数组 233
8.10.1 指针数组的定义 233
8.10.2 指针数组的两个典型实例 233
8.11 指向指针的指针 235
8.12 指针数组作main函数的形参 237
8.13 指针函数 239
8.14 指向void量的指针变量 241
8.15 指向函数的指针 244
8.15.1 指向函数的指针变量的初始化和使用 245
8.15.2 指向函数的指针变量作为函数参数 245
8.16 动态分配内存空间和动态数组 250
8.16.1 指针变量与动态内存分配 250
8.16.2 一维动态数组的建立和使用 251
8.16.3 二维动态数组的建立和使用 253
8.16.4 C99标准允许的可变长数组 254
8.17 本章小结 255
8.18 习题 256
第9章 结构体与共用体 258
9.1 引言 258
9.1.1 结构类型定义 258
9.1.2 定义结构类型时需要注意的问题 259
9.2 结构变量的定义、引用、初始化及赋值 260
9.2.1 结构变量的定义 260
9.2.2 结构变量的引用 260
9.2.3 结构变量的初始化 261
9.2.4 结构变量的赋值 261
9.3 结构体数组及其应用 262
9.3.1 定义结构数组 262
9.3.2 结构数组的初始化 262
9.3.3 指向结构数组元素的指针 263
9.3.4 结构数组的应用举例 263
9.4 结构与链表 265
9.4.1 结构的嵌套 266
9.4.2 链表的建立和访问 266
9.4.3 链表结点的插入和删除 269
9.4.4 链表综合实例——职工信息管理系统 271
9.5 共用体和枚举类型 273
9.5.1 共用体类型 273
9.5.2 枚举类型 276
9.5.3 类型定义符typedef 278
9.6 本章小结 278
9.7 习题 279
第10章 位运算 281
10.1 引言 281
10.2 基本位运算 281
10.2.1 按位与 282
10.2.2 按位或 282
10.2.3 按位异或 282
10.2.4 取反 283
10.2.5 左移 283
10.2.6 右移 284
10.2.7 复合赋值运算符 284
10.3 位段 284
10.4 实例研究 285
10.4.1 输出字符型数据的二进制形式 285
10.4.2 求二进制数中1的个数 288
10.5 本章小结 290
10.6 习题 290
第11章 流与文件操作 291
11.1 引言 291
11.2 文件与流 292
11.3 文件类型与文件指针 293
11.4 文件的打开与关闭 293
11.4.1 文件的打开 294
11.4.2 文件的关闭 295
11.4.3 标准流指针 295
11.4.4 文件指针与文件读写位置指针的区别 296
11.5 文件的读写 296
11.5.1 格式化读写 296
11.5.2 数据块(二进制形式)的读写 298
11.5.3 字符读写函数 300
11.5.4 字符串读写 302
11.6 文件的定位和随机读写 305
11.7 文件的错误检测 308
11.8 本章小结 308
11.9 习题 308
第12章 C++语言概述 310
12.1 引言 310
12.2 面向对象程序设计方法 310
12.3 C语言与C++语言的关系 314
12.3.1 C++对C语言的改进 314
12.3.2 C++语言对面向对象方法的支持 314
12.4 本章小结 315
12.5 习题 315
附录A 常用库函数 316
附录B ASCII码表 320
附录C C语言程序的上机过程与UNIX
附录C 系统中的使用 324
附录D VC++ 6.0集成开发环境简介 329
参考文献 332

教学资源推荐
作者: (美)Al Kelley Ira Pohl
作者: Bruce Eckel
作者: [美]约翰·R. 莱文(John R. Levine) 著
作者: [丹]弗莱明·尼尔森(Flemming Nielson),[丹]汉内·里斯·尼尔森(Hanne Riis Nielson),[英]克里斯·汉金(Chris Hankin) 著
参考读物推荐
作者: 丘祐玮(Yu-Wei Chiu)著
作者: [德] 彼得?普林茨(Peter Prinz),托尼?克劳福德(Tony Crawford)著
作者: (美)Elizabeth Drake 著