扫描二维码,下载手机APP
下载安卓APP箭头
客服QQ
箭头给我发消息

客服QQ:2698585038

跟我学C语言

综合评级:
★★★★★

定价:
¥39.80

作者:
李宛洲

出版社:
机械工业出版社

出版日期:
2015年6月

页数:
241

字数:
390

ISBN:
9787111495529

书籍介绍

本书从初学者的角度,以Visual Studio 2010为平台,由浅入深地分析、讲解了规范的C语言程序设计方法。通过例题逐步引导初学者跨过学C语言的心理门坎,进而由易到难地向初学者展现C语言程序结构设计的全过程。

为方便教学或自学,本书在每个教学环节均安排了突出学习重点的C语言程序设计例题,初学者必须熟读这些示例程序才能理解C语言程序设计的基本概念。此外,初学者还应通过各章配置的上机编程练习题,夯实C语言编程的基本能力,并拓展视野。

本书既可以作为大专院校理工科专业新生的C语言程序设计课程教材,也可以作为自学者学习C语言编程的启蒙读物。

本书配有生动活泼的教学课件和难易搭配的课堂测验考卷供读者参考。

目录

前言

第1章 什么是C语言 1

1.1 概述 1

1.1.1 C语言的历史 1

1.1.2 面向对象的程序设计语言—C++ 1

1.1.3 为何不直接学习C++ 1

1.2 如何学习C语言 1

第2章 创建C程序—照猫画虎入门C语言 3

2.1 编程步骤 3

2.2 在Visual Studio 2010环境下建立C程序 3

2.2.1 打开Visual Studio 2010平台 4

2.2.2 建立一个新项目 5

2.2.3 在项目中建立一个C程序 7

2.3 跟我学C例题21—C程序框架 9

2.3.1 在屏幕上输出一段文字的C程序 9

2.3.2 编辑运行C程序 10

2.3.3 开始执行—非调试模式 11

2.3.4 解决编译错误的“傻瓜”办法 13

2.3.5 初学者的常见错误 13

2.4 跟我学C例题22—变量和输入/输出语句 13

2.5 读解C程序 16

2.5.1 主函数main和C程序结构 16

2.5.2 书写程序时应遵循的“潜规则” 17

2.5.3 C语句的构成 17

2.5.4 C语句词汇 17

2.5.5 什么是变量 18

2.6 跟我学C例题23—C语言变量类型 19

2.6.1 如何打开一个已存在的程序 19

2.6.2 变量类型能影响程序执行结果 21

2.6.3 可以输入小数的变量类型 21

2.7 跟我学C练习题一 22

 

第3章 C语言的输入/输出格式—跟我学I/O 23

3.1 格式输入/输出函数scanf()、gets()和printf() 23

3.1.1 跟我学C例题31—求任意一个数的正弦值 23

3.1.2 函数scanf()的一般形式 24

3.1.3 函数scanf()是否可以从键盘输入一段文字 26

3.1.4 字符串输入函数gets() 30

3.1.5 使用scanf函数的注意事项 32

3.1.6 格式输出函数printf() 33

3.2 cin函数和cout函数 36

3.2.1 cin和cout格式 36

3.2.2 cin能否读入字符串中的空格 37

3.3 多学一点也无妨—缓冲区的概念 38

3.3.1 输入缓冲区 38

3.3.2 输出缓冲区—printf函数与cout函数的不同 39

3.4 本章要点 41

3.4.1 基本概念 41

3.4.2 输入/输出函数一览 42

3.5 跟我学C练习题二 43

第4章 说文解字拆分C程序—程序结构Ⅰ 45

4.1 条件分支语句ifelse 45

4.1.1 跟我学C例题41—条件分支 45

4.1.2 ifelse语句 46

4.1.3 ifelse嵌套 47

4.2 逻辑关系表达式 48

4.2.1 跟我学C例题43—逻辑或 48

4.2.2 跟我学C例题44—逻辑与 49

4.2.3 跟我学C例题45—逻辑非 50

4.2.4 运算符一览 51

4.3 跟我学C例题46—教学评估(多路分支语句) 52

4.3.1 教学评估问题 52

4.3.2 图解switch语句 55

4.4 本章要点 56

4.4.1 控制语句一览 56

4.4.2 基本概念和编程要求 56

4.5 跟我学C练习题三 57

第5章 说文解字拆分C程序—程序结构Ⅱ 59

5.1 跟我学C例题51—for语句 59

5.1.1 月供问题 59

5.1.2 循环语句for 60

5.1.3 循环条件的多样性 61

5.1.4 跟我学C例题52—for语句形态的多样性 62

5.2 while()—仅判断循环条件 63

5.2.1 清晰的主题 64

5.2.2 while语句的循环方式 64

5.2.3 dowhile()—至少循环一次 65

5.3 跟我学C例题53—循环与数组 65

5.3.1 跟我学计数 65

5.3.2 程序=循环+数组 66

5.3.3 初识数组 67

5.4 数组变量 68

5.4.1 基本概念 68

5.4.2 数组变量是同类型元素的线性集合 68

5.4.3 数组地址 69

5.4.4 声明一个数组变量 69

5.5 数组操作 70

5.5.1 字符串操作 70

5.5.2 数值型数组操作 71

5.6 break与continue的异同 72

5.7 本章要点 73

5.8 跟我学C练习题四 73

第6章 说文解字拆分C程序—程序结构Ⅲ 75

6.1 跟我学C例题61—应用函数 75

6.2 变量的存储方式—变量三代表 77

6.3 初识函数 79

6.3.1 函数概念 79

6.3.2 函数定义 79

6.4 参数传递与函数返回值 80

6.4.1 跟我学C例题62—照猫画虎学函数 80

6.4.2 函数返回单个变量—return语句 81

6.5 函数返回多个变量—变量地址 82

6.5.1 跟我学C例题63—形参表中的数据变量 82

6.5.2 函数之间的虫洞—变量的地址 84

6.5.3 归纳 86

6.6 变量作用域 86

6.6.1 作用域的基本概念 86

6.6.2 函数内部声明的变量=局部变量 87

6.6.3 函数外部声明的变量=全局变量 87

6.6.4 函数私密性—尽量避免使用全局变量 88

6.6.5 变量存储类型一览 88

6.7 文章大纲化—程序函数化 88

6.8 跟我学C例题64—无知者无畏(学C还是用C) 89

6.9 本章要点 93

6.10 跟我学C练习题五 94

第7章 说文解字拆分C程序—变量的内涵Ⅰ 97

7.1 再说变量—常识 97

7.1.1 常量与变量 97

7.1.2 类型自动转换 97

7.1.3 类型强制转换 98

7.2 变量的本质—存储它的地址 98

7.2.1 字节、字与变量的地址 98

7.2.2 操作变量的方式 99

7.3 互联网域名—IP地址 100

7.4 海量的内存—无限的网络 101

7.5 如何获取变量的地址 101

7.6 再看函数—形参与实参 102

7.6.1 实参是地址 102

7.6.2 实参是数组 103

7.7 指针的概念 104

7.7.1 为什么指针也是变量 105

7.7.2 指针是一个存储地址的变量 106

7.7.3 指针指向一个变量 106

7.7.4 指针指向数组 108

7.7.5 指针的数据类型 108

7.7.6 跟我学C例题71 110

7.8 本章要点 112

7.9 跟我学C练习题六 112

第8章 说文解字拆分C程序—变量的内涵Ⅱ 117

8.1 糊涂师数糊涂——如何存储表格 117

8.2 物类聚集——数组 118

8.2.1 数组的基本概念 118

8.2.2 一维数组声明形式 119

8.3 二维数组 119

8.3.1 二维数组声明形式及初始化 119

8.3.2 函数形参是二维数组 121

8.3.3 交换指针的值(二级指针) 125

8.4 指向指针的指针 128

8.5 二维数组的本质—矢量的数组 129

8.5.1 指针类型一览 129

8.5.2 二维数组—矢量数组 130

8.5.3 矢量指针—指向二维数组 130

8.5.4 形参是矢量指针 131

8.5.5 问题集锦 133

8.5.6 字符串数组 136

8.5.7 二维数组的形参简写形式 138

8.6 再说糊涂表—破家值万贯 138

8.6.1 简单变量的局限性—客观对象有多种属性 138

8.6.2 打开你的胸襟—构建大千世界的结构 138

8.6.3 结构体的嵌套 140

8.7 结构—变量的组合 142

8.7.1 基本数据类型与构造数据类型 142

8.7.2 数据是客观事物属性的描述 142

8.7.3 结构变量—打包数据 143

8.7.4 结构体的概念—打包的方法 143

8.7.5 数据封装的概念 144

8.7.6 结构数组—线性表 144

8.8 索引未来—指针数组 146

8.8.1 索引举例1—糊涂掌门 146

8.8.2 索引举例2—傻瓜买车 147

8.8.3 指针与索引 147

8.9 本章要点 151

8.10 跟我学C练习题七 152

8.11 跟我学C练习题八 154

第9章 说文解字拆分C程序—指针与函数 157

9.1 指针概念一览 157

9.2 指针与函数 157

9.2.1 函数是变量 157

9.2.2 函数的存储方式—函数三代表 157

9.2.3 指针型函数—返回的是指针 158

9.2.4 函数型指针—指向函数的指针 159

9.2.5 跟我学C例题91—方法与变量分离 160

9.2.6 类型说明符typedef—变量的Facebook 162

9.3 按需申请内存空间—按需分配 164

9.3.1 标准C语言的动态内存申请函数—malloc() 165

9.3.2 动态内存申请的存储空间生存期 166

9.3.3 释放内存空间函数free() 167

9.3.4 动态内存申请—结构变量的长度 167

9.4 魅力指针—链表 168

9.4.1 指针与数据结构 168

9.4.2 美丽的链—指针实战 169

*9.5 指针与引用 177

9.5.1 递归倒序单链表—二级指针 177

9.5.2 结构嵌套中的变量表达形式 179

9.5.3 引用的定义 179

9.5.4 引用的特色—伊人红妆 180

9.5.5 递归倒序中的引用—引用指针 181

9.5.6 结构变量访问表达式 183

9.6 本章要点 184

9.7 跟我学C练习题九 184

第10章 算法初识—时间的概念 187

10.1 什么是算法 187

10.2 简单的排序算法 188

10.2.1 简单排序算法的概念 188

10.2.2 直接插入排序算法 189

10.2.3 冒泡排序算法 190

10.3 递归函数与分治算法 191

10.3.1 递归的概念 191

10.3.2 分治法的基本思想 194

10.3.3 对半检索(binary search) 194

10.3.4 汉诺塔算法 196

10.4 本章要点 198

10.5 跟我学C练习题十 199

第11章 数据收藏—跟我学文件 201

11.1 文件的概念 201

11.1.1 保存文件 201

11.1.2 保存数据——聪明的糊涂 202

11.1.3 数据似水流 204

11.1.4 硬盘的概念 205

11.1.5 文件在硬盘的存放形式 206

11.2 文件操作方式 206

11.2.1 文件操作一览 206

11.2.2 文件内部的当前操作位置偏移 207

11.2.3 文件操作表 207

11.3 建立文件的步骤 208

11.3.1 文件打开函数fopen() 208

11.3.2 跟我学C例题111—建立一个文件 208

11.3.3 跟我学C例题112—从键盘输入文件名 209

11.4 文件的读写 210

11.4.1 格式化读写函数fscanf()和fprintf() 210

11.4.2 数据块读写函数fread()和fwrite() 212

11.4.3 定位函数rewind()和fseek() 214

11.5 保存链表—动态数据文件的存取 216

11.6 本章要点 221

11.7 跟我学C练习题十一 221

附录 223

附录A 运算符的优先级 223

附录A.1 优先级规则 223

附录A.2 作者的心声 223

附录B 制作头文件的方法 228

附录B.1 头文件的宏格式 228

附录B.2 在Visual Studio 2010平台上建立头文件 229

附录C ASCII码表 232

附录D 变量命名 233

附录D.1 变量命名的共性规则 233

附录D.2 简单的Windows应用程序命名规则 234

附录E debug入门 236

附录E.1 调试程序的步骤 236

附录E.2 调试程序工具 236

附录E.3 DEBUG工具栏 238

附录E.4 DEBUG快捷键的使用说明 238

附录E.5 调试心得 239

附录F 编程进阶 240

前言

本书使用的程序设计平台是Visual Studio 2010,教授内容主线是以变量(数据)、函数(方法)和指针(编程风格)流畅地融为一体的C程序设计方法,编程方法、风格、知识点与后续的C++课程、数据结构课程融通。

C语言程序设计是新生第一学期最为困难的一门课程(无论有无计算机文化课基础),因为他们从小学、初中到高中多年教育养成的数学、物理解题思路(连续的模拟量过程推理计算),可能无法适应一种新的逻辑思维方式和完全不同的计算机程序的离散编程方法。

与传统C语言教材不同,本书在编排上删繁就简,力求语言精炼,避免大段晦涩的文字描述,突出例题引导初学者入门的思路,便于读者自学。

本书意图通过通俗易懂的语言风格,浅入深出地引导初学者渐入佳境,培养读者建立不畏惧C语言编程的心理。内容展开如同遣词造句学作文一样,给初学者一个图文并茂、一步一步地由生疏到习惯成自然的程序设计思路。

本书所有例题均从初学者角度,解说他们最容易碰到的困惑问题。读者仅需跟着本书进度,按照给出的例题动手练习(一次或多次),就能亦步亦趋地进入C语言程序设计世界。

本书分为C语言基础(第1~6章)与程序设计方法(第7~11章)两部分。基础内容主要以例题贯通前后知识点,简单易懂,引导初学者理解C语言程序设计的基本知识、强调客观对象与抽象数据变量的关系和计算机编程的思维方式。

笔者认为,C语言程序设计课程的目的不是学C语言,而是为今后面向对象的程序设计方法(C++)和数据结构的学习打下坚实的基础。通过本书的学习,初学者要培养建立和掌握(或基本掌握)真正的大型软件设计中必须遵循的规范、简洁的编程风格,以及软件工程体系结构的基本概念。

为培养初学者解决问题的能力,本书结合函数讨论了算法,结合链表训练了指针应用风格。本书注重培养学生程序设计的思维方法与基本能力,强化解决实际应用问题的编程能力。

本书配有11次上机作业、12次授课课件、2次习题课件、4次课堂测验考卷及标准程序(按期中考试以后内容安排)、4次期末试题(含标准程序)、DEBUG入门课件,以及所有的习题参考程序。

本书中所有例题都是调试通过的程序,并配有截屏及注释。初学者可以在自己的计算机上,复制例题运行过程,从而逐渐熟悉C语言。然后,通过各章配置的高强度习题,逐步地建立自己的编程思路与方法。

本书是面向对象的程序设计方法(C++)和数据结构的先修课程。若读者想进一步提高编程水平与知识,请参考附录相关内容。

限于作者水平,书中难免存在不妥之处,请读者谅解并提出宝贵意见。

编 者