图书板块图书分类品牌系列获奖图书图书专题新书上架编辑推荐作者团队
C语言程序设计基础
计算机等级考试教材
ISBN: 9787549524136

出版时间:2012-08-01

定  价:40.00

作  者:马杰 主编 覃匡宇 陈基漓 张向利 副主编

责  编:方奕华
所属板块: 高教出版

读者对象: 计算机二级

装帧: 平装

开本: 16

字数: 492 (千字)

页数: 308
图书简介

本书是根据计算机等级考试二级的教学大纲中对C语言的要求而编写的“C语言程序设计”教材。在编撰过程中,针对初学C语言遇到的问题,力求面向应用,重视实践,精选了大量典型的程序实例和图表,用通俗的语言,由浅入深系统地介绍了C语言的基本概念、语法规则和程序设计的方法,使读者能正确、直观地理解编程问题,便于初学者学习和掌握。

本书以Visual C++ 6.0软件系统作为C语言程序开发环境,注重教材的可读性和实用性,内容涵盖了C语言和程序设计的主要基础知识。书中所列的实例均能在Visual C++ 6.0环境下运行。每章后都有习题,习题类型丰富,针对性强,基本涉及了所有关键的知识点,使读者既能加深对基本概念的理解,又能拓宽编程思路。书后有附录,便于读者查询。

本书可以作为高校计算机程序设计课程的教材,也可作为计算机等级考试的教材。

作者简介

马杰,副教授,长期从事程序设计教学。

图书目录

第1章 C语言概述

1.1 C语言的出现及特点…………………………………………………………………………………………1

1.1.1计算机程序设计语言介绍……………………………………………………………………………1

1.1.2 C语言的特点………………………………………………………………………………………2

1.2简单C程序示例………………………………………………………………………………………………2

1.3 C语言程序的编译和运行……………………………………………………………………………………6

1.3.1程序编写与运行步骤…………………………………………………………………………………6

1.3.2 Visual C++6.0 的上机过程…………………………………………………………………………6

1.4 算法 …………………………………………………………………………………………………………8

1.4.1 算法的概念 …………………………………………………………………………………………8

1.4.2 流程图及N-S流程图 ………………………………………………………………………………9

习题一…………………………………………………………………………………………………………10

第2章 数据类型、运算符和表达式 ………………………………………………………………………11

2.1 概述…………………………………………………………………………………………………………11

2.2 标识符、常量和变量………………………………………………………………………………………12

2.2.1 标识符………………………………………………………………………………………………12

2.2.2 常量…………………………………………………………………………………………………13

2.2.3 变量…………………………………………………………………………………………………14

2.3 整型数据……………………………………………………………………………………………………15

2.3.1整型数据分类………………………………………………………………………………………15

2.3.2整型数据在内存中的存储形式…………………………………………………………………16

2.3.3整型常量……………………………………………………………………………………………17

2.3.4整型变量……………………………………………………………………………………………18

2.4 实型数据……………………………………………………………………………………………………19

2.4.1实型数据的分类及在内存中存储形式……………………………………………………………19

2.4.2实型常量与实型变量 ……………………………………………………………………………21

2.5 字符型数据………………………………………………………………………………………………22

2.5.1字符型数据在内存中存储形式…………………………………………………………………22

2.5.2字符型常量的表示与字符型变量的定义方法…………………………………………………23

2.6算术运算符和算术表达式………………………………………………………………………………25

2.6.1 C语言中运算符简介……………………………………………………………………………25

2.6.2算术运算符和算术表达式………………………………………………………………………26

2.6.3运算符的优先级、结合性………………………………………………………………………27

2.7 类型转换………………………………………………………………………………………………28

2.7.1隐式(自动)类型转换………………………………………………………………………………28

2.7.2强制类型转换………………………………………………………………………………29

2.8 赋值运算符和赋值表达式…………………………………………………………………………………30

2.8.1 赋值运算符和赋值表达式………………………………………………………………………30

2.8.2 复合赋值运算符…………………………………………………………………………………31

2.8.3 变量赋初始值………………………………………………………………………………………32

2.8.4 赋值运算中的类型转换……………………………………………………………………………33

2.9 自加、自减运算符和逗号运算符…………………………………………………………………………35

2.9.1 自加运算符(++)和自减运算符(--)……………………………………………………………35

2.9.2 逗号运算符和逗号表达式…………………………………………………………………………36

2.10 关系、逻辑运算符及表达式…………………………………………………………………………37

2.10.1关系运算符和关系表达式…………………………………………………………………………38

2.10.2逻辑运算符和逻辑表达式…………………………………………………………………………40

2.11 位运算…………………………………………………………………………………………………41

2.11.1位运算符和位运算……………………………………………………………………………41

2.11.2位运算符的运算功能…………………………………………………………………………42

习题二……………………………………………………………………………………………………………45

第3章 语句和程序控制………………………………………………………………………………………48

3.1 程序的三种基本结构及流程图表示……………………………………………………………………48

3.2 C语言语句………………………………………………………………………………………………50

3.3 数据的输入和输出………………………………………………………………………………………51

3.3.1 putchar函数…………………………………………………………………………………………51

3.3.2 getchar函数…………………………………………………………………………………………52

3.3.3 printf函数…………………………………………………………………………………………52

3.3.4 scanf函数……………………………………………………………………………………………56

3.4 if语句……………………………………………………………………………………………………58

3.4.1 if语句的两种基本形式……………………………………………………………………………58

3.4.2 if语句的嵌套………………………………………………………………………………………61

3.4.3 条件运算符与条件表达式…………………………………………………………………………64

3.5 switch语句………………………………………………………………………………………………65

3.6 for语句…………………………………………………………………………………………………67

3.7 while语句………………………………………………………………………………………………73

3.8 do-while语句…………………………………………………………………………………………74

3.9 break语句及continue语句……………………………………………………………………………77

3.9.1 break语句……………………………………………………………………………………………77

3.9.2 continue语句………………………………………………………………………………………78

3.10 goto语句………………………………………………………………………………………………80

3.11 程序举例………………………………………………………………………………………………81

习题三…………………………………………………………………………………………………………92

第4章 函数与程序结构………………………………………………………………………………………96

4.1 函数及其定义……………………………………………………………………………………………97

4.2 函数的参数及函数的值…………………………………………………………………………………98

4.3 函数的调用……………………………………………………………………………………………100

4.4 递归……………………………………………………………………………………………………103

4.5 C语言程序的一般结构………………………………………………………………………………104

4.6 变量的作用域与存储类型……………………………………………………………………………104

4.6.1 变量的作用域……………………………………………………………………………………104

4.6.2 变量的存储类型…………………………………………………………………………………106

4.7 C语言编译预处理命令…………………………………………………………………………………108

4.7.1 宏定义………………………………………………………………………………………………108

4.7.2 文件包含……………………………………………………………………………………………110

4.7.3 条件编译……………………………………………………………………………………………112

习题四………………………………………………………………………………………………………113

第5章 数组……………………………………………………………………………………………………116

5.1 数组的概念……………………………………………………………………………………………116

5.2 一维数组………………………………………………………………………………………………117

5.2.1 一维数组的定义…………………………………………………………………………………117

5.2.2 一维数组元素的引用……………………………………………………………………………118

5.2.3 一维数组的初始化………………………………………………………………………………119

5.2.4一维数组的程序设计应用举例……………………………………………………………………120

5.3 二维数组………………………………………………………………………………………………126

5.3.1 二维数组的定义…………………………………………………………………………………126

5.3.2 二维数组元素的引用……………………………………………………………………………127

5.3.3 二维数组的初始化………………………………………………………………………………127

5.3.4二维数组的程序设计应用举例……………………………………………………………………129

5.4 数组在函数调用中的应用………………………………………………………………………………131

5.4.1 数组元素作为函数实参…………………………………………………………………………131

5.4.2 一维数组名作为函数参数………………………………………………………………………131

5.4.3 二维数组名作为函数参数………………………………………………………………………135

习题五………………………………………………………………………………………………………137

第6章 指针……………………………………………………………………………………………………141

6.1 指针与地址………………………………………………………………………………………………141

6.1.1计算机内存的基本组织……………………………………………………………………………141

6.1.2内存中的存储单元…………………………………………………………………………………142

6.1.3存储单元与变量……………………………………………………………………………………143

6.1.4指针的概念…………………………………………………………………………………………144

6.1.5变量指针的使用……………………………………………………………………………………146

6.1.6指针的类型及表示…………………………………………………………………………………147

6.2指针变量定义和使用……………………………………………………………………………………148

6.2.1指针变量的定义及初始化…………………………………………………………………………148

6.2.2指针变量的引用……………………………………………………………………………………151

6.2.3指针变量的运算……………………………………………………………………………………153

6.2.4动态存储分配………………………………………………………………………………………157

6.2.5指针作为函数参数…………………………………………………………………………………159

6.3 数组与指针………………………………………………………………………………………………163

6.3.1用指针访问一维数组元素……………………………………………………………………………163

6.3.2 一维数组名与指针…………………………………………………………………………………165

6.3.3 多维数组和指针……………………………………………………………………………………168

6.3.4指向数组的行指针变量………………………………………………………………………………174

6.3.5用指向数组的指针作为函数的参数…………………………………………………………………177

6.4 指针数组…………………………………………………………………………………………………183

6.4.1 指针数组的定义及使用……………………………………………………………………………184

6.4.2 用指针数组访问二维数组元素……………………………………………………………………188

6.4.3 main函数的命令行参数……………………………………………………………………………189

6.5 指向函数的指针…………………………………………………………………………………………193

6.5.1 用指向函数的指针变量调用函数…………………………………………………………………193

6.5.2 用指向函数的指针变量作为函数的参数…………………………………………………………195

6.6 返回值类型为指针的函数………………………………………………………………………………197

6.7 指向指针的指针…………………………………………………………………………………………199

6.8有关指针的应用举例……………………………………………………………………………………203

习题六…………………………………………………………………………………………………………209

第7章 字符串…………………………………………………………………………………………………214

7.1字符串和字符数组………………………………………………………………………………………214

7.2常用的字符串处理函数…………………………………………………………………………………215

7.2.1字符串输入输出函数………………………………………………………………………………215

7.2.2字符串其它相关函数………………………………………………………………………………217

7.3 字符串与指针……………………………………………………………………………………………221

7.3.1指向字符串的指针…………………………………………………………………………………221

7.3.2字符指针作函数参数………………………………………………………………………………224

7.3.3返回值为字符指针的函数…………………………………………………………………………228

7.4存储字符串的数组………………………………………………………………………………………229

7.5有关字符串的程序举例…………………………………………………………………………………232

习题七…………………………………………………………………………………………………………235

第8章 结构体、共用体和枚举类型……………………………………………………………………237

8.1 概述………………………………………………………………………………………………………237

8.2用typedef说明新类型……………………………………………………………………………………237

8.3 结构体类型………………………………………………………………………………………………238

8.3.1 结构体类型的说明…………………………………………………………………………………238

8.3.2 结构体变量的定义…………………………………………………………………………………239

8.3.3 结构体变量的初始化………………………………………………………………………………241

8.3.4结构体与指针…………………………………………………………………………………………241

8.3.5引用结构体变量中的数据……………………………………………………………………………242

8.3.6结构体数组……………………………………………………………………………………………243

8.3.7结构体与函数…………………………………………………………………………………………244

8.3.8自引用的结构体与链表………………………………………………………………………………249

8.4 共用体……………………………………………………………………………………………………259

8.4.1 共用体类型的说明和变量定义……………………………………………………………………259

8.4.2 共用体变量的引用…………………………………………………………………………………261

8.5 枚举类型…………………………………………………………………………………………………262

8.6 应用举例…………………………………………………………………………………………………264

习题八…………………………………………………………………………………………………………269

第9章 文件……………………………………………………………………………………………………274

9.1 文件的概念………………………………………………………………………………………………274

9.2 文件指针…………………………………………………………………………………………………274

9.3 文件的打开和关闭………………………………………………………………………………………275

9.4 文件的读写……………………………………………………………………………………………277

9.4.1 文件的字符输入和输出…………………………………………………………………………277

9.4.2 文件的字符串输入和输出………………………………………………………………………279

9.4.3 文件的格式化输入和输出………………………………………………………………………280

9.4.4块的读写…………………………………………………………………………………………282

9.5 文件的定位……………………………………………………………………………………………285

9.5.1 rewind函数………………………………………………………………………………………285

9.5.2 fseek函数和随机读写…………………………………………………………………………286

9.5.3 ftell函数………………………………………………………………………………………287

9.6文件的出错处理…………………………………………………………………………………………288

9.7文件的其它相关函数……………………………………………………………………………………288

习题九…………………………………………………………………………………………………………291

附录………………………………………………………………………………………………………………292

附录一 常见字符与ASCII代码对照表……………………………………………………………………292

附录二 C运算符的优先级和结合性………………………………………………………………………293

附录三 C常用的库函数……………………………………………………………………………………294

参考文献………………………………………………………………………………………………………298

序言/前言/后记

现代信息社会的发展离不开计算机技术。长期以来,我国的电子信息行业较偏重硬件,因此软件的发展相对滞后。然而,随着时代的发展和技术的进步,软件的重要性越来越突显,尤其是在强调自主创新的今天,掌握核心软件技术,拥有自主知识产权,已成为影响我国信息产业升级和技术进步的重大战略问题。因此,作为普通高校的学生,尤其是非计算机专业的学生,不能只满足于对一些诸如办公、制表、上网等应用软件的使用,而应该努力掌握一门计算机编程语言,并学会程序设计的方法,培养自己独立编程和解决实际问题的能力,才能更好地适应未来发展需要。

程序设计是计算机软件技术的基础。计算机只有通过运行程序才能正常工作,而程序设计的好坏,直接影响到计算机性能的高低。因此,程序设计是软件开发人员的基本功。计算机编程语言是实现程序设计的工具,C语言就是其中的一种。由于C语言的优良特性和强大功能,因此使用C语言进行程序设计已成为人们的首选。C语言和程序设计的关系就像中文语言和文章的关系一样,密不可分,缺一不可。目前,C语言程序设计已成为普通高等院校一门重要的计算机基础课程。

通常,C语言程序设计课程安排在大学一年级,而对于很多刚入校的学生而言,由于缺乏计算机方面的基础知识,加上上机实践经验不够,往往会感到抽象难学,甚至有些学生学完C语言后,不能根据实际需要设计出程序来解决问题。

究其原因,一个关键的问题就是学生在学习的过程中,忽视了对实际问题抽象成数据以及对任务的要求进行逻辑划分,缺乏设计算法的思维训练和能力培养。因为,这里的逻辑抽象和算法设计并不像数学那样有公式推导和定律可循,而是需要反复通过实例进行分析、综合、理解和借鉴才逐渐培养而成的。实际上,程序的内容无非分为两种:一是数据,二是操作。数据是任务处理的对象,操作则是任务处理的具体步骤。因此,程序设计的基本任务就是,根据实际问题的需要,将问题抽象成数据,并选择合适的数据结构进行表示,然后再根据任务要求划分处理步骤并形成算法,最后再通过计算机语言编写出可运行的程序。在C语言中,数据的表示通过数据类型等实现,而算法的操作步骤则由表达式、语句和函数等实现,C语言程序就是根据这些数据类型和表达式、语句、函数等编写而成的。

学生感到难学的另一个关键问题就是上机实践的机会太少。C语言作为一种编程语言,其概念新颖,内容广泛,语法细节和变化较多,不少学生因记不住而为此感到无所适从,这也反映了学生还没有从过去的思维方式中转变过来。实际上,对于理工科学生,作为刚步入大学就接触的第一门专业基础课程,C语言程序设计无论是思考问题的角度,还是处理问题的方法,都与以往他们在高中所学的数学、语文等课程的思维方式和学习方法有所不同。因此,C语言的学习要求多上机实践,光靠听课和看书是学不会的。C语言的很多语法细节只有通过动手编程,并亲自上机调试运行才能深刻理解。因为,只要上机编译,计算机就能立刻给出所有语法的错误提示,在这种背景下去修改错误才能更深刻地理解其中语法细节的来龙去脉。初学者一开始就应该着眼于学会看懂程序,并编写简单的程序,然后再逐步深入。语法细节是需要通过长期的实践和积累才能熟练掌握的,而且有些语法细节,对于初学者来说,不要滥用,比如用i=i+1能解决问题的就不必非要强求用i++,只有熟悉了才适时选用。总之,初学者一定要重视实践环节,包括编程和上机,要既会编写程序,又会调试程序。C语言程序设计学得好与坏,不是看你能做对多少是非题和选择题,而是看你能不能编写程序和调试程序。另外,对待上机出错,不少初学者感到很沮丧。其实,这是必须经历的阶段,谁也无法幸免。所谓的编程高手,都不是在一帆风顺、毫无差错中成长起来的,恰恰相反,是在不断的出错和纠错中成长起来的。初学者应该欢迎错误的出现并努力解决,而不是畏之如虎、有意躲避,而这也是跟以往思维方式截然不同的地方。

本书的作者根据长期从事C语言程序设计课程的教学实践,针对初学者遇到的问题和情况,在编撰本教材的过程中,力求面向应用,重视实践,精选了大量典型的程序实例和图表,用通俗的语言,由浅入深系统地介绍了C语言的基本概念、语法规则和程序设计的方法,内容翔实,重点突出,使读者能正确、直观地理解问题,便于初学者学习和掌握。

全书以Visual C++ 6.0软件系统作为C语言程序开发环境,注重教材的可读性和实用性,内容涵盖了C语言和程序设计的主要基础知识。书中所列的实例均能在Visual C++ 6.0环境下运行,便于读者上机验证。书后有附录,便于读者查询。每章后都有习题,习题类型丰富,针对性强,基本涉及了所有关键的知识点,使读者既能加深对基本概念的理解,又能拓宽编程思路。

全书共分9章,由桂林电子科技大学马杰、张向利、覃匡宇和桂林理工大学陈基漓共同编写而成。其中第5、6章由马杰编写;第1、3、4章由张向利编写;第8、9章由覃匡宇编写;第2、7章由陈基漓编写。全书最后由马杰、张向利统一审定。

本教材有配套辅助教材《C语言程序设计基础学习指导》一书。该书包含本书各章的习题解答、C语言实验指导、计算机等级考试样题及分析、程序设计竞赛试题及分析以及VC常用函数速查手册、VC调试常见错误等内容,内容新颖,题型丰富,实用性强,适合初学者巩固基础,加强训练,拓宽视野。

本教材参考和部分引用了国内外一些已有的C语言教材,对于他们宝贵的劳动成果,我们表示由衷的钦佩和感谢。

由于编写时间仓促,再加上作者水平有限,书中的缺点和错误在所难免,殷切希望广大读者批评指正。

媒体评论

名家推荐

编辑推荐

向高校推荐,作为计算机程序设计课教材。

精彩预览

线上商城
会员家.png 书天堂.png 天猫旗舰店.png
会员家 书天堂 天猫旗舰店
关注我们
微信公众号.png   微博二维码.png
微信公众号官方微博

微信号:bbtplus2018(工作时间)
电话:0773-2282512(工作时间)

我要投稿

批发采购

加入我们

版权所有:广西师范大学出版社集团 GUANGXI NORMAL UNIVERSITY PRESS(GROUP) |  纪委举/报投诉邮箱 :cbsjw@bbtpress.com    纪委举报电话:0773-2288699  
   网络出版服务许可证: (署) | 网出证 (桂) 字第008号 | 备案号:桂ICP备12003475号 | 新出网证(桂)字002号 | 公安机关备案号:45030202000033号