本书不仅介绍编程的理论和方法,还特别强调通过上机实践提高学生的编程能力。以往的C语言教材往往使用Turbo C等一些传统的C语言开发环境,这已经不能满足现代编程技术的教学需要。本书以Visual C++ 6.0为基本开发环境,用一定的篇幅对Visual C++ 6.0的编程和调试环境做较深入的介绍,既能激发同学们的学习兴趣,更能为今后更高级开发技术的学习打下良好的基础。本书的例题和上机综合实验全部在Visual C++ 6.0环境下调试通过,为提高学生的实践能力提供帮助。
本书主要用作计算机相关专业教材,也可作为各类大专院校学生和广大计算机爱好者学习C语言的参考书。
本书较全面而又系统地讲述了C语言及其程序设计方法。
全书共分为两个部分:第一部分是C语言程序设计,系统地对C语言的基本语法和基本技巧加以介绍;第二部分是上机实验,内容包括编程思路、设计方法、程序代码、调试过程等,用于提高学生的实际程序设计能力。
本书从C程序实例开始,由浅入深地进行介绍,通过典型例题对重点部分进行强化,符合程序设计学习的规律。本书的例题和上机综合实验全部在Visual C++ 6.0环境下调试通过。
本书主要用作高等院校计算机相关专业教材,也可作为广大计算机爱好者学习C语言的参考书。
第一部分 C语言程序设计
第1章 C程序实例3
1.1 几个例子3
1.2 C的基本字符与词汇6
1.2.1 C语言的字符集6
1.2.2 词汇6
1.3 C程序的上机操作8
1.3.1 启动Visual C++6.09
1.3.2 程序上机操作过程10
习题14
第2章 数据类型、运算及表达式16
2.1 数据和数据类型16
2.2 常量17
2.2.1 整型常量17
2.2.2 实型常量17
2.2.3 字符常量18
2.2.4 字符串常量18
2.2.5 符号常量--宏定义19
2.3 变量20
2.3.1 整型变量20
2.3.2 实型变量21
2.3.3 字符型变量21
2.4 赋值与算术运算22
2.4.1 赋值运算22
2.4.2 二元算术运算22
2.4.3 自加、自减运算24
2.4.4 复合赋值运算24
2.5 变量赋初值25
2.6 类型转换25
2.6.1 自动类型转换25
2.6.2 强制类型转换26
2.7 位运算26
2.7.1 按位与运算--&27
2.7.2 按位或运算--|28
2.7.3 按位异或运算--∧28
2.7.4 取反运算--~29
2.7.5 左移运算--<<29
2.7.6 右移运算-->>29
习题30
第3章 数据的输入输出32
3.1 字符输入输出函数32
3.1.1 字符输入函数getchar32
3.1.2 字符输出函数putchar33
3.1.3 文件包含34
3.2 格式输入输出函数35
3.2.1 格式输出函数printf35
3.2.2 格式输入函数scanf40
3.3 应用举例41
习题43
第4章 程序设计与程序结构45
4.1 程序设计概述45
4.1.1 结构化程序设计 45
4.1.2 面向对象的程序设计 46
4.2 程序设计与算法47
4.2.1 程序设计的基本步骤47
4.2.2 算法的设计与描述48
4.2.3 C程序的书写风格50
4.3 程序的基本控制结构50
4.4 顺序结构程序设计51
4.4.1 空语句和表达式语句51
4.4.2 复合语句52
4.5 应用举例52
习题54
第5章 选择结构程序设计55
5.1 关系运算和逻辑运算55
5.1.1 关系运算55
5.1.2 逻辑运算56
5.2 if语句57
5.2.1 if语句的3种形式57
5.2.2 条件运算61
5.3 switch语句62
5.4 应用举例64
习题67
第6章 循环程序设计69
6.1 while循环语句69
6.2 do-while循环语句70
6.3 for循环语句71
6.4 循环的退出74
6.4.1 break语句74
6.4.2 continue语句75
6.4.3 goto语句76
6.5 应用举例77
习题80
第7章 数组82
7.1 一维数组82
7.1.1 一维数组的定义82
7.1.2 一维数组的使用83
7.1.3 一维数组的初始化84
7.2 二维数组85
7.2.1 二维数组的定义85
7.2.2 二维数组的初始化86
7.2.3 二维数组的引用87
7.3 字符数组和字符串88
7.3.1 字符数组的定义89
7.3.2 字符串89
7.4 应用举例93
习题95
第8章 函数98
8.1 C程序与函数98
8.2 函数的定义和说明100
8.2.1 函数的定义100
8.2.2 函数的说明103
8.3 函数的调用103
8.3.1 函数调用的格式104
8.3.2 参数的传递105
8.4 应用举例1106
8.5 函数的嵌套调用与递归调用108
8.5.1 函数的嵌套调用108
8.5.2 函数的递归调用110
8.6 作用域与存储类112
8.6.1 作用域112
8.6.2 存储类115
8.6.3 内部函数与外部函数118
8.7 应用举例2119
习题122
第9章 指针125
9.1 指针的概念125
9.1.1 什么是指针125
9.1.2 指针变量的定义126
9.1.3 指针的运算126
9.2 指针作函数参数128
9.3 数组与指针131
9.3.1 一维数组与指针131
9.3.2 多维数组与指针136
9.3.3 字符指针与字符串137
9.4 应用举例141
习题143
第10章 结构、联合和枚举146
10.1 结构的概念146
10.1.1 结构类型的定义146
10.1.2 结构变量的说明147
10.1.3 结构变量的引用148
10.1.4 结构变量的初始化149
10.2 结构数组150
10.3 指向结构的指针152
10.3.1 指向结构的指针概述152
10.3.2 结构指针作函数参数155
10.4 动态数据结构156
10.4.1 内存的动态分配和释放函数157
10.4.2 链表159
10.5 联合167
10.5.1 联合的定义167
10.5.2 联合变量的说明与引用167
10.6 枚举169
10.7 类型定义171
10.8 应用举例173
习题177
第11章 文件179
11.1 C文件的概念179
11.1.1 C语言文件的特点179
11.1.2 二进制流和字符流179
11.1.3 缓冲与非缓冲文件系统180
11.2 文件类型指针181
11.3 文件的打开与关闭181
11.3.1 文件的打开--fopen函数182
11.3.2 文件的关闭--fclose函数183
11.4 文件的读写184
11.4.1 字符读写函数--fputc和fgetc184
11.4.2 字符串读写函数--fgets和fputs186
11.4.3 数据块读写函数--fread和fwrite188
11.4.4 格式化读写函数--fscanf和fprintf190
11.5 文件的定位191
11.5.1 rewind函数191
11.5.2 ftell函数192
11.5.3 fseek函数192
11.6 输入输出重定向194
11.7 应用举例195
习题196
第二部分 上机实验
第12章 实验201
12.1 实验1 熟悉VC++编程环境与顺序结构程序设计201
12.2 实验2 选择结构程序设计202
12.3 实验3 循环结构程序设计203
12.4 实验4 程序调试204
12.5 实验5 利用数组的编程212
12.6 实验6 函数213
12.7 实验7 指针215
12.8 实验8 结构和枚举216
12.9 实验9 链表应用217
12.10 实验10 文件操作217
附录A 运算符的优先级及其结合性219
附录B 标准ASCII字符集221
附录C 常用的C库函数224
参考文献227