1.1 程序与程序设计 1
1.1.1 C程序 1
第一章 程序设计基础概念 1
1.1.2 程序设计 2
1.2 算法 2
1.3 结构化程序设计和模块化结构 3
1.3.1 结构化程序 3
1.3.2 模块化结构 5
习题 6
第二章 C程序设计的初步知识 7
2.1 简单C语言程序的构成和格式 7
2.2 常量、变量和标识符 8
2.2.1 标识符 8
2.2.2 常量 9
2.2.3 用定义一个符号名的方法来代表一个常量 9
2.3.2 整型变量 10
2.3.1 整型常量 10
2.2.4 变量 10
2.3 整型数据 10
2.3.3 整型数据的分类 11
2.3.4 整数在内存中的存储形式 12
2.4 实型数据 13
2.4.1 实型常量 13
2.4.2 实型常量 13
2.5 算术表达式 14
2.5.1 基本的算术运算符 14
2.5.2 运算符的优先级、结合性和算术表达式 14
2.5.3 强制类型转换表达式 15
2.6 赋值表达式 15
2.6.1 赋值运算符和赋值表达式 15
2.6.3 赋值运算中的类型转换 17
2.6.2 复合的赋值表达式 17
2.7.1 自加运算符(++)和自减运算符(--) 18
2.7 自加、自减运算符和逗号运算符 18
2.7.2 逗号运算符和逗号表达式 19
习题 19
第三章 顺序结构 22
3.1 赋值语句 22
3.2 数据输出 22
3.2.1 printf函数的一般调用形式 22
3.3.1 scanf函数的一般调用形式 22
3.3.2 scanf函数中常用的格式说明 23
3.2.3 调用printf 函数时的注意事项 26
3.3 数据输入 26
3.2.2 printf函数中常用的格式说明 27
3.3.3 通过scanf函数从键盘输入数据 28
3.4.2 空语句 29
3.4 复合语句和空语句 29
3.4.1 复合语句 29
3.5 程序举例 30
习题 31
第四章 选择结构 35
4.1 关系运算和逻辑运算 35
4.1.1 C语言中的逻辑值 35
4.1.2 关系运算符和关系表达式 35
4.1.3 逻辑运算符和逻辑表达式 36
4.2 if语句和if语句构成的选择结构 37
4.2.1 if语句 37
4.2.2 嵌套的 if语句 40
4.3 条件表达式构成的选择结构 40
4.4.1 switch语句 43
4.4 switch语句以及用switch语句和break 语句构成的选择结构 43
4.4.2 switch语句的执行过程 44
4.4.3 在switch 语句体中使用break 语句 45
4.5 语句标号和 goto语句 46
4.5.1 语句标号 46
4.5.2 goto语句 46
习题 46
第五章 循环结构 50
5.1 while语句和用while语句构成的循环结构 50
5.1.1 while循环的一般形式 50
5.1.2 while循环的执行过程 50
5.2 do-while语句和用 do-while语句构成的循环结构 52
5.2.1 do-while语句构成的循环结构 52
5.3 for语句和用 for语句构成的循环结构 53
5.3.1 for语句构成的循环结构 53
5.2.2 do-while循环的执行过程 53
5.3.2 for循环的执行过程 54
5.3.3 有关 for语句的说明 54
5.4 循环结构的嵌套 55
5.5 break和continue 语句在循环体中的作用 57
5.5.1 break语句 57
5.5.2 continue语句 58
5.6 程序举例 58
习题 62
第六章 字符型数据 67
6.1 字符型常量 67
6.1.1 字符常量 67
6.1.2 转义字符常量 67
6.1.3 字符串常量 68
6.1.4 可对字符量进行的运算 68
6.3.1 调用printf 和scanf 函数输出和输入字符 69
6.2 字符变量 69
6.3 字符的输入和输出 69
6.3.2 调用putchar 和getchar 函数输出和输入字符 70
6.4 程序举例 71
习题 73
第七章 函数 76
7.1 库函数 76
7.2 函数的定义和返回值 77
7.2.1 函数定义的语法 77
7.2.2 函数的返回值 78
7.3 函数的调用 79
7.3.1 函数的两种调用方式 79
7.3.2 函数调用时的语法要求 79
7.4 函数的说明 80
7.4.1 函数说明的形式 80
7.5 调用函数和被调用函数之间的数据传递 81
7.4.2 函数说明的位置 81
7.6 程序举例 83
习题 88
第八章 指针 92
8.1 变量的地址和指针 92
8.2 指针变量的定义和指针变量的基类型 93
8.3 给指针变量赋值 94
8.3.1 给指针变量赋地址值 94
8.3.2 给指针变量赋“空”值 95
8.4 对指针变量的操作 95
8.4.1 通过指针来引用一个存储单元 95
8.4.2 移动指针 96
8.4.3 指针比较 97
8.5.1 形参为指针变量时,实参和形参之间的数据传递 98
8.5 函数之间地址值的传递 98
8.5.2 通过传送地址值,在被调用函数中直接改变调用函数中变量的值 99
8.5.3 函数返回地址值 100
习题 100
第九章 数组 105
9.1 一维数组的定义和一维数组元素的引用 105
9.1.1 一维数组的定义 105
9.1.2 一维数组元素的引用 106
9.1.3 一维数组的初始化 106
9.1.4 通过赋初值定义数组的大小 107
9.1.5 一维数组的定义和数组元素引用举例 107
9.2 一维数组和指针 108
9.2.1 一维数组和数组元素的地址 108
9.2.3 通过指针来引用一维数组元素 109
9.2.4 用带下标的指针变量引用一维数组元素 109
9.2.2 通过数组的首地址引用数组元素 109
9.3 函数之间对一维数组和数组元素的引用 110
9.3.1 数组元素作实参 110
9.3.2 数组名作实参 110
9.3.3 数组元素地址作为实参 112
9.3.4 函数的指针形参和函数体中数组的区别 113
9.4 一维数组应用举例 114
9.5 二维数组的定义和二维数组元素的引用 122
9.5.1 二维数组的定义 122
9.5.2 二维数组元素的引用 123
9.5.3 二维数组的初始化 123
9.5.4 通过赋初值定义二维数组的大小 124
9.5.5 二维数组的定义和数组元素引用举例 125
9.6 二维数组和指针 125
9.6.1 二维数组和数组元素的地址 125
9.6.2 通过地址来引用二维数组元素 126
9.6.3 通过建立一个指针数组来引用二维数组元素 127
9.6.4 通过建立一个行指针来引用二维数组元素 128
9.7 二维数组名和指针数组长为实参 128
9.7.1 二维数组名作为实参时,实参和形参之间的数据传递 128
9.7.2 指针数组作为实参时,实参和形参之间的数据传递 129
9.8 二维数组程序举例 129
习题 133
第十章 字符串 140
10.1 用一个一维字符数组来存放字符串 140
10.1.1 通过赋初值的方式给一维字符数组赋字符串 141
10.1.2 在C程序执行过程中给一维字符数组赋字符串 142
10.2.2 通过赋值运算指针指向一个字符串 143
10.2.3 用字符数组作为字符串和用指针指向的一个字符串之间的区别 143
10.2.1 通过赋初值的方式使指针指向一个字符串 143
10.2 使指针指向一个字符串 143
10.3 字符串的输入和输出 144
10.3.1 输入和输出字符串时的必要条件 144