本书主要介绍了C语言的数据类型、运算符和表达式、结构化程序设计语句、数组、函数、指针、复合数据类型、文件、图形程序设计基础等各种典型内容。全书共10章,前9章分别介绍C语言各种基础知识,通过大量案例和练习让读者掌握所学知识,第10章介绍了两个综合项目,分别是不带图形界面的管理信息系统和带图形界面的迷宫探险游戏。每章最后配有类型丰富的在线测试练习题,并提供了习题参考答案。本书对C语言各知识的阐述通俗易懂,习题的选择难易适当,题型丰富;对于在Turbo C 2.0和Visual C++6.0不同环境下运行结果不同的程序,给出两种环境下的运行结果,方便读者理解。书中所有程序均已调试运行通过,运行结果为截屏显示。本书既可作为高职高专、职业技术大学、应用型本科院校计算机专业程序设计课程的教材,也可作为成人教育、自学考试和从事计算机应用的工程技术人员的参考书。本书配有视频讲解教程、配套电子教案、电子课件、源代码等相关资源,可扫描书中二维码观看视频或登录电子工业出版社的华信教育资源网(http://www.hxedu.com.cn)注册后免费下载。
刘畅,副教授,毕业于沈阳理工大学,硕士。十多年来一直从事于计算机软件方面开发与授课工作。现任计算机系软件技术教研室主任,软件专业骨干教师(在高等学校骨干教师资源信息库备案)。
第1章 C语言概述
1.1 程序设计的基本概念
1.1.1 程序的概念
1.1.2 程序设计的一般过程
1.1.3 程序设计的方法
1.2 C语言简介
1.2.1 C语言的发展
1.2.2 C语言的特点
1.2.3 C语言的书写规则
1.2.4 C程序的几种类型文件
1.2.5 C语言的应用领域及发展前景
1.3 C语言程序案例
1.3.1 第一个C语言程序
1.3.2 定义符号常量的C语言程序
1.3.3 有多个函数的C语言程序
1.4 算法
1.4.1 算法概述
1.4.2 算法的图形表示
1.5 C语言编程环境
1.5.1 Turbo C 2.0编程环境
1.5.2 Visual C++ 6.0编程环境
1.5.3 “C/C++程序设计学习与实验系统”编程环境
本章小结
学生自我完善练习
在线测试一
第2章 程序中的数据
2.1 数据类型、变量与常量
2.1.1 数据类型概述
2.1.2 标识符
2.1.3 变量的定义、赋值和初始化
2.1.4 数的原码、反码和补码
2.1.5 整型变量及整型常量
2.1.6 实型变量及实型常量
2.1.7 字符变量及字符常量、字符串常量
2.1.8 符号常量
2.2 运算符与表达式
2.2.1 算术运算符与算术表达式
2.2.2 自增、自减运算符(++、--)
2.2.3 赋值运算符与赋值表达式
2.2.4 关系运算符与关系表达式
2.2.5 逻辑运算符与逻辑表达式
2.2.6 位运算符
2.2.7 其他运算符
2.3 数据类型转换及数据的溢出误差
2.3.1 类型转换概述
2.3.2 自动类型转换
2.3.3 赋值类型转换
2.3.4 强制类型转换
2.3.5 数据的溢出和误差
2.4 数据的输入/输出
2.4.1 格式化输出函数printf
2.4.2 格式化输入函数scanf
2.4.3 字符的输入与输出
2.5 程序案例
2.5.1 典型案例——求直角三角形的周长和面积
2.5.2 典型案例——英文大小写字母的转换
本章小结
学生自我完善练习
在线测试二
第3章 程序设计语句
3.1 程序的语句与结构
3.1.1 程序的语句
3.1.2 程序的结构
3.1.3 如何设计C语言程序
3.1.4 顺序结构
3.2 选择结构
3.2.1 条件语句——if语句
3.2.2 开关语句——switch语句
3.3 循环结构
3.3.1 程序的设计过程
3.3.2 当型循环——while循环
3.3.3 直到型循环——do-while循环
3.3.4 格式化的当型循环——for循环
3.3.5 循环的嵌套
3.4 break、continue和goto语句
3.4.1 break语句
3.4.2 continue语句
3.4.3 goto语句
3.5 程序案例
3.5.1 典型案例——求四项表达式的值
3.5.2 典型案例——求1+(1+2)+(1+2+3)+(1+2+3+4)+…+(1+2+…+n)数列的和
3.5.3 典型案例——猜数字游戏
本章小结
学生自我完善练习
在线测试三
第4章 数组
4.1 数组概念的引入
4.2 一维数组
4.2.1 一维数组的定义
4.2.2 一维数组的元素引用
4.2.3 一维数组的赋值方法
4.3 二维数组
4.3.1 二维数组的定义
4.3.2 二维数组的元素引用
4.3.3 二维数组的存储
4.3.4 二维数据的赋值方法
4.4 字符数组与字符串
4.4.1 字符数组的定义、初始化和引用
4.4.2 字符串的输入和输出函数
4.4.3 字符串函数
4.5 程序案例
4.5.1 典型案例——冒泡法排序
4.5.2 典型案例——矩阵的转置
4.5.3 典型案例——打印杨辉三角形
本章小结
学生自我完善练习
在线测试四
第5章 函数和编译预处理
5.1 模块化的设计思想
5.2 函数的定义、调用和声明
5.2.1 函数的定义
5.2.2 函数的调用
5.2.3 函数的声明
5.3 函数的参数传递
5.4 函数的嵌套调用
5.5 函数的递归调用
5.6 变量的作用域和存储类型
5.6.1 变量的作用域
5.6.2 变量的生存期
5.6.3 变量的存储类型
5.7 编译预处理
5.7.1 宏定义
5.7.2 文件包含
5.7.3 条件编译
5.8 程序案例
5.8.1 典型案例——编写函数求xn
5.8.2 典型案例——设计递归函数gcd(x,y)
5.8.3 典型案例——设计函数验证任意偶数为两个素数之和
5.8.4 典型案例——编写函数实现任意进制数的转换
本章小结
学生自我完善练习
在线测试五
第6章 指针
6.1 地址和指针的关系
6.2 指针变量的定义和赋值
6.2.1 指针变量的定义及初始化
6.2.2 指针变量的赋值
6.3 指针变量的运算
6.3.1 *运算符和&运算符
6.3.2 指针的算术运算和关系运算
6.4 指针和数组的关系
6.4.1 指针与一维数组
6.4.2 指针与字符数组
6.4.3 指针与二维数组
6.4.4 指针数组
6.4.5 指向指针的指针——二级指针
6.5 指针在函数中的应用
6.5.1 函数的参数是指针
6.5.2 函数的返回值是指针
6.5.3 指向函数的指针
6.5.4 带参数的main函数
6.6 程序案例
6.6.1 典型案例——用指针统计字符串中各字符的个数
6.6.2 典型案例——找出多个字符串中最长字符串
6.6.3 典型案例——将矩阵元素右移
本章小结
学生自我完善练习
在线测试六
第7章 复合的数据类型
7.1 结构概念的引入
7.2 结构体的描述与存储
7.2.1 结构体类型定义
7.2.2 结构体变量定义
7.2.3 结构体变量初始化
7.2.4 结构体变量和成员的引用及赋值
7.2.5 结构体变量的空间分配及查看方法
7.2.6 结构体类型的嵌套定义
7.3 结构体数组和结构体指针的使用
7.3.1 结构体数组
7.3.2 结构体指针
7.4 结构体与函数的关系
7.4.1 结构体变量、指针和数组作为函数参数
7.4.2 结构体变量和指针作为函数的返回值
7.5 共用体、枚举和typedef类型定义
7.5.1 共用体
7.5.2 枚举
7.5.3 typedef重命名类型
*7.6 链表
7.6.1 链表基础知识及动态分配函数
7.6.2 链表的操作
7.7 程序案例
7.7.1 典型案例——用“结构”统计学生成绩并排序
7.7.2 典型案例——枚举示例,输出52张扑克牌
本章小结
学生自我完善练习
在线测试七
第8章 文件
8.1 文件的概念和基本操作
8.1.1 文件的概念
8.1.2 文件的打开和关闭
8.2 文件的读和写
8.2.1 字符的读、写函数
8.2.2 字符串的读、写函数
8.2.3 数据块的读、写函数
8.2.4 格式化输入/输出文件函数
8.3 文件的定位和检测
8.3.1 文件的定位
8.3.2 文件的检测
8.4 程序案例
8.4.1 典型案例——文件的字符串读写程序实现人员登录功能
8.4.2 典型案例——文件中的字数统计程序
本章小结
学生自我完善练习
在线测试八
第9章 图形程序设计基础
9.1 屏幕设置
9.1.1 屏幕显示模式与坐标系
9.1.2 图形驱动程序与图形模式
9.1.3 TC图形库函数
9.2 图形处理函数
9.2.1 图形系统管理函数
9.2.2 屏幕管理和颜色设置函数
9.2.3 画点和坐标位置相关函数
9.2.4 绘图函数
9.2.5 设定线型函数
9.2.6 基本图形的填充及填充方式的设定
9.3 图形操作函数
9.3.1 图形窗口操作函数
9.3.2 图形模式下的字符
9.4 综合程序案例
9.4.1 典型案例——画不同粗细、线型的图形
9.4.2 典型案例——运动的小车动画
本章小结
学生自我完善练习
在线测试九
第10章 综合训练项目
10.1 不带图形界面的综合项目——管理信息系统
10.1.1 项目功能介绍与系统结构分析
10.1.2 各功能模块功能简介
10.1.3 源程序及运行结果
*10.2 图形界面综合项目——迷宫探险游戏
10.2.1 项目功能介绍与系统结构分析
10.2.2 各功能模块功能简介
10.2.3 源程序及运行结果
附录A 常用字符与ASCII码对照表
参考文献