《C语言基础教程》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:张晓蕾主编
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2007
  • ISBN:9787115162670
  • 页数:300 页
图书介绍:本书以案例带动知识点的学习,案例丰富,介绍C语言的基础知识。

第1章 C语言程序设计入门 1

1.1 C语言程序设计基础 1

1.1.1 C语言概述 1

1.1.2 C语言程序开发流程 2

1.1.3 程序案例 3

1.【案例1】第一个C语言程序(在Turbo C 2.0环境下实现) 3

2.【案例2】第一个C语言程序(在Visual C++ 6.0中实现) 7

1.2 程序语法错误的调试 13

1.2.1 程序设计中的错误 13

1.语法错误 13

2.运行错误 13

3.逻辑错误 13

1.2.2 语法错误的分类 13

1.致命错误 14

2.错误 14

3.警告 14

1.2.3 养成良好的编程习惯 14

1.文件的注释 14

2.语句行与语句块 15

3.程序代码缩进对齐 15

4.函数与变量 16

1.2.4 程序案例——【案例3】程序语法错误的简单调试 16

习题 19

第2章 C语言程序设计基础 20

2.1 C语言程序的基本语法结构 20

2.1.1 主函数main() 20

2.1.2 单行语句与复合语句 21

1.单行语句 21

2.复合语句 22

2.1.3 空语句与分隔符 22

1.空语句 22

2.分隔符 22

3.注释 23

2.1.4 C语言程序的结构特点 24

2.1.5 程序案例 24

1.【案例4】进入C程序 24

2.【案例5】终止程序执行 25

2.2 C语言的基础元素 26

2.2.1 标识符与关键字 26

1.标识符 26

2.关键字 26

2.2.2 常量与变量 27

1.变量 27

2.常量 28

2.2.3 数据类型 30

1.整型 30

2.浮点型 31

3.双精度型 31

4.字符型 32

5.无值型 32

6.用户自定义类型 33

2.2.4 格式化输出函数printf() 33

1.printf()函数及其应用 33

2.指定输出宽度与小数位 35

3.设置前导0 35

4.输出长整型数与双精度浮点数 35

5.对齐方式 35

2.2.5 格式化输入函数scanf() 36

1.scanf()函数的基本用法 36

2.格式化字符串中非格式字符的处理 37

3.字符串输入与宽度控制 37

4.指定输入数据的范围 38

2.2.6 非格式化输入/输出函数 38

1.字符串输出函数puts() 38

2.字符串输入函数gets() 39

3.字符输出函数putchar() 39

4.字符输入函数getch()和getche() 40

5.getchar()函数 41

2.2.7 程序案例 41

1.【案例6】在屏幕上输出信息 41

2.【案例7】数据的格式化输出 42

3.【案例8】数据的输入 44

4.【案例9】学生成绩的输入 45

5.【案例10】电话号码的输入 46

6.【案例11】暂停程序 47

7.【案例12】大小写字母转换 47

2.3 C语言的运算符与表达式 48

2.3.1 运算符与表达式 48

2.3.2 算术运算、赋值运算与类型转换 49

1.算术运算符与算术表达式 49

2.赋值运算符与赋值表达式 51

3.类型转换运算符 51

2.3.3 关系运算、逻辑运算与条件运算 53

1.关系运算符与关系表达式 53

2.逻辑运算符与逻辑表达式 54

3.条件运算 56

2.3.4 sizeof运算符 56

2.3.5 程序案例 56

1.【案例13】温度转换 56

2.【案例14】数据类型的强制转换 57

3.【案例15】字母转换 58

4.【案例16】真值表 59

习题 59

第3章 程序流程控制 62

3.1 程序流程与算法基础 62

3.1.1 程序与算法 62

1.算法 62

2.算法的实现 62

3.1.2 算法流程图 64

1.流程图 65

2.N-S图 66

3.算法的图形描述 66

3.1.3 顺序结构 67

3.1.4 程序案例 67

1.【案例17】大写字符 67

2.【案例18】程序提示框 68

3.【案例19】字符图形 69

3.2 选择结构语句 70

3.2.1 选择结构概述 70

3.2.2 if语句 71

1.if语句 71

2.if...else...语句 72

3.if...else if...语句 73

4.使用if语句时的注意事项 74

3.2.3 switch语句 75

1.switch语句 75

2.switch语句中的break 77

3.2.4 选择结构的嵌套 79

3.2.5 程序案例 80

1.【案例20】密码检查 80

2.【案例21】多人密码程序 82

3.【案例22】判断闰年 83

4.【案例23】用户登录程序 84

5.【案例24】数值比较 86

6.【案例25】成绩评定 87

7.【案例26】计算天数 88

3.3 循环结构语句 90

3.3.1 循环结构概述 90

3.3.2 while循环语句 91

3.3.3 do...while循环语句 92

3.3.4 for循环语句 93

1.for语句 93

2.特殊的for循环 94

3.3.5 循环的嵌套及注意事项 95

3.3.6 程序案例 96

1.【案例27】输入字符统计 96

2.【案例28】成绩分析 97

3.【案例29】循环选择菜单 99

4.【案例30】奇数与偶数 101

5.【案例31】乘法表 102

6.【案例32】改进的乘法表 103

7.【案例33】字符塔 104

3.4 流程转向语句 105

3.4.1 流程转向语句概述 105

3.4.2 break语句 106

3.4.3 continue语句 106

3.4.4 goto语句 107

3.4.5 程序案例 109

1.【案例34】百鸡问题 109

2.【案例35】百鸡问题优化算法 110

3.【案例36】素数 111

习题 113

第4章 数组与字符串 119

4.1 一维数组与数据排序 119

4.1.1 数组的基本概念 119

4.1.2 一维数组 120

1.一维数组的定义 120

2.一维数组的初始化 120

3.一维数组的应用 121

4.1.3 数组应用的注意事项 122

4.1.4 程序案例 123

1.【案例37】数组逆置 123

2.【案例38】完数 124

3.【案例39】成绩排序 126

4.【案例40】学生成绩分类统计 128

5.【案例41】顺序插入数据 129

4.2 二维数组与矩阵 131

4.2.1 二维数组 131

1.二维数组的定义 132

2.二维数组的赋值 132

3.二维数组的引用 133

4.二维数组的存储 133

4.2.2 多维数组 135

4.2.3 程序案例 135

1.【案例42】求矩阵对角线上元素之和 135

2.【案例43】数字三角 137

4.3 字符数组与字符串 139

4.3.1 字符数组 139

1.字符数组的定义 139

2.字符数组的引用 139

4.3.2 字符串与字符串数组 140

1.字符串 140

2.字符串数组 141

4.3.3 字符串处理函数与字符处理函数 142

1.字符串处理函数 142

2.字符处理函数 143

4.3.4 程序案例 144

1.【案例44】字符分类 144

2.【案例45】字符串长度的比较 145

3.【案例46】字符串转换 147

4.【案例47】字符统计 148

习题 149

第5章 指针 154

5.1 指针的基本概念 154

5.1.1 指针 154

5.1.2 指针的定义与引用 155

1.指针的定义 155

2.指针的引用 157

3.空指针NULL 158

4.使用指针的注意事项 158

5.1.3 程序案例——【案例48】变量、指针与存储空间 159

5.2 指针运算 160

5.2.1 指针与数组 160

5.2.2 指针的运算 161

5.2.3 程序案例 162

1.【案例49】指针运算与数组 162

2.【案例50】指针与二维数组 163

3.【案例51】指针访问二维数组 164

5.3 指针与字符串操作 166

5.3.1 字符串指针 166

5.3.2 字符指针与字符数组 167

1.字符指针与字符数组的关系 167

2.字符指针和字符数组的区别 167

5.3.3 指针数组 169

5.3.4 程序案例 169

1.【案例52】用指针进行字符串比较 169

2.【案例53】月份转换 171

习题 171

第6章 函数 176

6.1 数值比较 176

6.1.1 函数的定义 176

1.函数定义 176

2.定义函数的注意事项 176

6.1.2 函数的声明 177

1.标准库函数的声明 177

2.自定义函数的声明 177

6.1.3 函数的调用 179

1.在单行语句中调用 179

2.在表达式中调用 179

3.作为参数调用 179

6.1.4 函数的返回 180

6.1.5 程序案例 181

1.【案例54】数值比较 181

2.【案例55】计算代数式 182

6.2 函数的参数 184

6.2.1 函数参数概述 184

6.2.2 赋值调用 184

6.2.3 传址调用 185

6.2.4 数组参数与字符串参数 186

1.数组参数的传递 186

2.字符串参数的传递 189

6.2.5 程序案例 190

1.【案例56】字符串处理 190

2.【案例57】验证歌德巴赫猜想 191

3.【案例58】数据排序 193

4.【案例59】字符串的复制 195

5.【案例60】字符串排序 196

6.3 函数嵌套与递归 198

6.3.1 函数嵌套 198

6.3.2 函数递归 199

1.递归调用 199

2.函数递归的条件 199

3.递归算法与循环算法 200

6.3.3 程序案例 200

1.【案例61】递归算法求阶乘 200

2.【案例62】递归算法求菲波那契数列 201

3.【案例63】循环算法求菲波那契数列 202

6.4 变量的作用域与存储类型 204

6.4.1 变量的作用域 204

1.局部变量 204

2.全局变量 205

6.4.2 变量的存储类型 206

1.静态变量 206

2.动态变量 207

3.寄存器变量 207

4.外部变量 208

6.4.3 程序案例——【案例64】程序计数 209

6.5 main函数的参数 210

6.5.1 main()函数的参数 210

6.5.2 程序案例 212

1.【案例65】main()函数的参数 212

2.【案例66】命令行计算器 213

6.6 C语言的库函数 215

6.6.1 C语言函数库 215

1.标准输入/输出函数 215

2.字符处理函数与字符串处理函数 215

3.数学函数 216

4.其他函数库 216

6.6.2 程序案例 216

1.【案例67】三角函数表 216

2.【案例68】算术测试程序 217

习题 219

第7章 结构体、共用体与枚举 226

7.1 结构体 226

7.1.1 信息的表示 226

7.1.2 结构体定义与初始化 227

1.结构体的定义 227

2.结构体变量的初始化 229

3.结构体变量的存储形式 230

7.1.3 结构体变量的引用 230

1.引用结构体变量 231

2.引用结构体指针 231

7.1.4 自定义数据类型 231

7.1.5 程序案例 233

1.【案例69】学生成绩分析 233

2.【案例70】职工工资统计 234

7.2 链表及其应用 237

7.2.1 链表 237

1.链表的定义 237

2.动态分配存储空间 238

7.2.2 程序案例 238

1.【案例71】学生信息记录 238

2.【案例72】学生信息系统 241

7.3 共用体 247

7.3.1 共用体的定义与引用 247

1.共用体的定义 247

2.共用体的引用 248

3.结构与共用体的区别 249

7.3.2 程序案例——【案例73】共同使用存储空间 250

7.4 枚举 251

7.4.1 枚举 251

1.枚举的定义与引用 251

2.使用枚举的注意事项 252

7.4.2 程序案例——【案例74】月份与天数 253

习题 254

第8章 C语言对文件的操作 260

8.1 文本文件的访问 260

8.1.1 文件的基本概念 260

1.文本文件 260

2.二进制文件 260

8.1.2 文件与指针 260

1.文件指针 261

2.设备文件 261

8.1.3 文件系统 261

1.流(Stream) 261

2.文件系统 262

8.1.4 文件的访问 262

1.文件的打开 262

2.文件的关闭 263

3.文件访问函数 263

4.文件检测函数 264

8.1.5 程序案例 264

1.【案例75】修改文本文件 264

2.【案例76】文件的复制 266

8.2 二进制文件的访问 267

8.2.1 二进制文件的访问 267

1.格式化输入/输出函数 268

2.数据块访问函数 268

8.2.2 程序案例 268

1.【案例77】存储成绩信息记录 268

2.【案例78】访问成绩信息记录 270

8.3 随机文件的访问 272

8.3.1 文件的随机访问 272

8.3.2 程序案例 273

1.【案例79】记录的随机访问 273

2.【案例80】成绩筛选 274

习题 276

第9章 编译预处理 278

9.1 宏定义 278

9.1.1 编译预处理的概念 278

9.1.2 宏定义 278

1.不带参数的宏定义 278

2.带参数的宏定义 279

3.宏的作用范围 279

4.宏定义与函数调用 280

9.1.3 程序案例——【案例81】字符分类 280

9.2 文件包含 282

9.2.1 文件包含的意义 282

9.2.2 程序案例——【案例82】文件包含 283

9.3 条件编译 284

9.3.1 条件编译 284

1.#if,#elif,#else和#endif 284

2.#ifdef和#ifndef 285

9.3.2 程序移植与调试 285

1.程序移植 285

2.程序调试 286

9.3.3 程序案例——【案例83】条件编译 286

习题 288

附录 291

附录1 ASCII码对照表 291

附录2 运算符的优先级与结合性 292

附录3 标准库函数 293

附录4 Turbo C 2.0的菜单命令 296