图书目录

目录

第1章 C语言概述001

1.1 初识C语言001

1.1.1 C语言的发展史001

1.1.2 C语言的特点与应用领域003

1.1.3 认识第一个C程序004

1.2 C语言的语法基础005

1.2.1 C语言字符集005

1.2.2 标识符006

1.2.3 保留字006

1.3 设计简单的C程序007

1.3.1 赋值语句007

1.3.2 printf ()函数008

1.3.3 scanf ()函数009

1.3.4 库函数和头文件010

1.4 C程序的开发过程012

1.4.1 C程序的实现步骤012

1.4.2 C语言常用集成开发环境013

1.5 在VC++ 6.0中开发C程序014

1.5.1 VC++ 6.0集成开发环境简介014

1.5.2 建立控制台应用程序015

1.6 程序案例019

习题1023

第2章 基本数据类型、运算符及表达式026

2.1 C语言的数据类型026

2.2 常量027

2.3 变量031

2.3.1 变量的定义031

2.3.2 整型变量033

2.3.3 实型变量037

2.3.4 字符变量038

2.4 运算符和表达式041

2.4.1 运算符的分类041

2.4.2 运算符的优先级与结合性042

2.4.3 算术运算符和算术表达式042

2.4.4 增1、减1运算符及表达式044

2.4.5 赋值运算符和赋值表达式045

2.4.6 关系运算符和关系表达式048

2.4.7 逻辑运算符和逻辑表达式050

2.4.8 逗号运算符和逗号表达式052

2.4.9 sizeof运算符053

2.5 数据类型的转换054

2.5.1 自动类型转换054

2.5.2 强制类型转换055

2.6 程序案例056

习题2058

第3章 顺序结构程序设计061

3.1 结构化程序设计基础061

3.1.1 算法的概念061

3.1.2 算法的特点062

3.1.3 算法的描述063

3.1.4 结构化程序设计067

3.2 输入语句070

3.2.1 输入/输出(I/O)函数070

3.2.2 字符输入函数和字符输入语句071

3.2.3 格式输入函数和格式输入语句072

3.2.4 通过scanf ()函数从键盘输入数据073

3.2.5 scanf ()函数输入中常见错误分析074

3.3 输出语句075

3.3.1 字符输出函数和字符输出语句075

3.3.2 格式输出函数和格式输出语句076

3.4 程序案例084

习题3086

第4章 选择结构和循环结构程序设计092

4.1 if语句092

4.1.1 if语句概述092

4.1.2 if语句的嵌套098

4.1.3 条件运算符和条件表达式100

4.2 switch语句102

4.3 选择结构程序设计案例106

4.4 while语句108

4.5 do…while语句111

4.6 for语句115

4.7 循环嵌套121

4.8 break语句和continue语句123

4.9 语句标号和goto语句125

4.10 循环结构程序设计案例126

习题4128

第5章 数组135

5.1 数组的概念135

5.2 一维数组136

5.2.1 一维数组的定义136

5.2.2 一维数组的初始化137

5.2.3 一维数组元素的引用138

5.2.4 一维数组的应用139

5.3 二维数组144

5.3.1 二维数组的定义144

5.3.2 二维数组的初始化145

5.3.3 二维数组元素的引用146

5.3.4 二维数组的应用147

5.4 字符数组148

5.4.1 字符数组的定义148

5.4.2 字符数组的初始化148

5.4.3 字符数组的引用149

5.4.4 字符串和字符串结束标志150

5.4.5 字符数组的输入和输出151

5.4.6 字符串处理函数152

5.4.7 字符数组的应用154

5.5 程序案例156

习题5158

第6章 函数162

6.1 C程序的模块化设计162

6.1.1 函数的概念162

6.1.2 C程序模块化设计163

6.1.3 函数的分类164

6.2 函数的定义165

6.2.1 无参函数的定义165

6.2.2 有参函数的定义166

6.2.3 函数定义的应用167

6.3 函数的参数与返回值168

6.4 函数的调用169

6.4.1 函数调用的一般格式170

6.4.2 函数调用的方式170

6.4.3 对被调函数的声明172

6.4.4 函数的嵌套调用174

6.4.5 函数的递归调用175

6.5 数组作为函数参数179

6.6 变量的作用域和存储类别184

6.6.1 变量的作用域184

6.6.2 变量的存储类别186

6.6.3 局部变量的存储类别186

6.6.4 全局变量的存储类别193

6.7 函数的作用域和存储类别196

6.8 程序案例197

习题6201

第7章 编译预处理210

7.1 宏定义210

7.1.1 不带参数的宏定义210

7.1.2 带参数的宏定义214

7.1.3 取消宏定义218

7.2 文件包含218

7.3 条件编译221

7.4 程序案例224

习题7225

第8章 指针231

8.1 指针概述231

8.1.1 内存地址与变量的地址231

8.1.2 指针与指针变量233

8.2 指针变量234

8.2.1 指针变量的定义与初始化234

8.2.2 指针变量的引用235

8.2.3 指针变量作为函数的参数238

8.3 指针与数组241

8.3.1 指向数组元素的指针241

8.3.2 指针变量的运算242

8.3.3 通过指针引用数组元素246

8.3.4 数组名和指针变量作函数参数250

8.4 指针与字符串253

8.4.1 字符串指针变量的定义与使用253

8.4.2 字符串指针变量作函数参数255

8.4.3 使用字符串指针变量与使用字符数组的区别256

8.5 指针与函数257

8.5.1 函数指针变量257

8.5.2 指针型函数259

8.6 指针数组和二级指针260

8.6.1 指针数组260

8.6.2 二级指针262

8.7 程序案例264

习题8265

第9章 构造数据类型270

9.1 结构体类型270

9.1.1 结构体类型声明270

9.1.2 结构体变量的定义271

9.1.3 结构体变量的初始化及成员的引用276

9.2 结构体数组278

9.2.1 结构体数组的定义278

9.2.2 结构体数组的初始化及访问279

9.3 结构体函数281

9.3.1 结构体变量作为函数参数281

9.3.2 结构体变量为函数的返回值282

9.4 结构体指针283

9.4.1 指向结构体变量的指针变量284

9.4.2 指向结构体数组元素的指针286

9.4.3 用指向结构体的指针作为函数参数287

9.5 共用体类型289

9.6 枚举类型293

9.7 用typedef定义类型296

9.8 程序案例299

习题9301

第10章 文件308

10.1 文件概述308

10.1.1 文件的概念308

10.1.2 文件指针309

10.1.3 缓冲文件系统和非缓冲文件系统310

10.2 文件的打开和关闭311

10.2.1 用fopen ()函数打开文件311

10.2.2 用fclose ()函数关闭文件 314

10.3 文件的顺序读写315

10.3.1 文本文件中字符的输入/输出315

10.3.2 文本文件中字符串的输入/输出317

10.3.3 文本文件的格式化输入/输出319

10.3.4 二进制文件的输入/输出320

10.4 文件的随机读写321

10.5 文件检测函数322

10.6 程序案例323

习题10326

附录A 常用字符与ASCII码对照表330

附录B 运算符的优先级和结合性332

参考文献334