第一部分 上机实验 1
第1章 熟悉C语言上机环境 1
1.1 课内上机实验题目 1
实验1.1.1 输出“欢迎使用VC++” 1
实验1.1.2 输入3个数并输出平均值 2
实验1.1.3 输入3个数交换后输出 2
1.2 课外扩展上机实验题目 2
实验1.2.1 求矩形的面积 2
第2章 数据类型、运算符与表达式 4
2.1 课内上机实验题目 4
实验2.1.1 分析程序结果 4
实验2.1.2 自加和自减运算 5
实验2.1.3 各种运算符的使用 5
2.2 课外扩展上机实验题目 6
实验2.2.1 加密程序 6
实验2.2.2 测试整型和字符型数据表示 7
实验2.2.3 测试转义字符对输出的控制作用 7
实验2.2.4 测试实型数据的舍入误差 8
第3章 简单的C程序设计 9
3.1 课内上机实验题目 9
实验3.1.1 分析程序功能 9
实验3.1.2 格式输出练习 9
实验3.1.3 printf()函数的使用 10
实验3.1.4 字符输入输出函数 10
实验3.1.5 putchar()函数的使用 10
实验3.1.6 计算两个数的和、差、积、商 11
3.2 课外扩展上机实验题目 11
实验3.2.1 不同类型数据的输入 11
实验3.2.2 计算三角形的周长和面积 11
实验3.2.3 逆序输出正整数 12
实验3.2.4 计算商品的实际售价 12
实验3.2.5 计算圆周长、圆面积、圆柱体表面积、圆柱体体积 13
第4章 程序的控制结构 14
4.1 课内上机实验题目 14
实验4.1.1 分析程序功能 14
实验4.1.2 计算两个正数的和、差、积、商 14
实验4.1.3 计算运费 15
实验4.1.4 判断闰年 15
实验4.1.5 转换星期 15
实验4.1.6 输出某月天数 16
实验4.1.7 猜数游戏 17
4.2 课外扩展上机实验题目 17
实验4.2.1 排列问题 17
实验4.2.2 判断某一天是某一年的第几天 18
实验4.2.3 将整数每位数字转换为英文 19
实验4.2.4 打印出所有的“水仙花数” 19
实验4.2.5 将某一正整数分解质因数 20
实验4.2.6 判定三角形是何种三角形 21
实验4.2.7 计数控制的循环 21
实验4.2.8 条件控制的循环 22
实验4.2.9 标记控制的循环 22
实验4.2.10 需要放置多少粒小麦 23
实验4.2.11 编程实现人民币的拆分 24
实验4.2.12 输出百分制分数 25
实验4.2.13 判断某人是否肥胖 25
实验4.2.14 老师和老师夫人的年龄 26
实验4.2.15 回文数判断 27
实验4.2.16 猴子吃桃 27
实验4.2.17 兔子对数 28
实验4.2.18 奖金统计 28
第5章 函数 30
5.1 课内上机实验题目 30
实验5.1.1 调试运行下列程序 30
实验5.1.2 利用以下递归公式求qn(x)前5项值 32
实验5.1.3 用递归方法求函数f(x,n)的值 32
实验5.1.4 用递归方法计算斐波那契数列 33
实验5.1.5 编写一判断素数的函数 34
实验5.1.6 带参数的宏定义举例 35
实验5.1.7 定义宏,将大写字母转换成小写字母 36
5.2 课外扩展上机实验题目 36
实验5.2.1 将正偶数n拆成两个素数之和 36
实验5.2.2 求两个正数的最大公约数和最小公倍数 37
实验5.2.3 牛顿迭代法求方程的根 38
实验5.2.4 打印年历 39
第6章 数组 43
6.1 课内上机实验题目 43
实验6.1.1 写出程序的主要功能 43
实验6.1.2 二维字符数组的使用 43
实验6.1.3 二维数组的使用 44
实验6.1.4 一维字符数组的使用 44
实验6.1.5 二维数组的加法 44
实验6.1.6 字符串的使用 45
6.2 课外扩展上机实验题目 45
实验6.2.1 平分七筐鱼 45
实验6.2.2 餐饮服务质量调查打分 47
实验6.2.3 学生成绩统计 48
实验6.2.4 青年歌手参加歌曲大奖赛打分 50
实验6.2.5 查找最长单词 51
实验6.2.6 将一个字符串插入到另一个字符串的指定位置 52
实验6.2.7 找鞍点 52
第7章 指针 54
7.1 课内上机实验题目 54
实验7.1.1 用指针输出整型数组元素 54
实验7.1.2 用指针处理字符数组元素 54
实验7.1.3 用指针进行数组元素运算 54
实验7.1.4 用指针变量输出字符 55
实验7.1.5 字符指针的使用 55
实验7.1.6 指向指针的指针 55
实验7.1.7 指向指针的指针和指针数组 55
实验7.1.8 指向一维数组的指针 56
实验7.1.9 用指针实现3个数排序 56
实验7.1.10 用指针计算平均成绩 56
实验7.1.11 指针数组处理字符串 57
7.2 课外扩展上机实验题目 57
实验7.2.1 观察指针变量值的变化规律 57
实验7.2.2 向一组有序的字符串中插入一个新的字符串 58
实验7.2.3 合并排序 60
第8章 结构体和共用体 63
8.1 课内上机实验题目 63
实验8.1.1 结构体变量做函数参数 63
实验8.1.2 结构体指针变量做函数参数 63
实验8.1.3 结构体的指针的使用 64
实验8.1.4 结构体数组的使用 64
实验8.1.5 构造单向链表 64
实验8.1.6 结构体的嵌套和结构体指针数组的使用 65
实验8.1.7 结构体数组名做函数参数 65
实验8.1.8 结构体应用 66
实验8.1.9 共用体的成员变量空间共用示例1 66
实验8.1.10 共用体的成员变量空间共用示例2 67
8.2 课外扩展上机实验题目 67
8.2.1 查找定价最高和最低的书名及定价 67
8.2.2 跳水比赛计分 68
8.2.3 工资调整 70
8.2.4 出卖耶稣的叛徒 72
8.2.5 用单链表来实现出卖耶稣的叛徒 73
第9章 文件操作 75
9.1 课内上机实验题目 75
实验9.1.1 阅读程序写结果 75
实验9.1.2 向data.dat文件写入100条记录 75
实验9.1.3 统计平均成绩高于90分的学生人数 76
实验9.1.4 阅读程序写出程序功能 76
9.2 课外扩展上机实验题目 77
实验9.2.1 将两个文本文件连接为一个文本文件 77
实验9.2.2 将一个文件复制到另一个文件 78
实验9.2.3 给文本文件加上行号另存 78
实验9.2.4 多文件程序的实现 80
实验9.2.5 多文件程序练习 82
第10章 位运算 86
10.1 课内上机实验题目 86
实验10.1.1 分析下面程序运行结果 86
实验10.1.2 右移运算和与运算 86
实验10.1.3 位域的使用 87
实验10.1.4 左移运算 87
实验10.1.5 混合运算 87
实验10.1.6 关系运算和位运算 88
实验10.1.7 字符型运算的位运算 88
10.2 课外扩展上机实验题目 88
实验10.2.1 将一个二进制整数的奇数位翻转 88
实验10.2.2 将十进制数转化为二进制数 89
实验10.2.3 将十六进制数按二进制输出 89
实验10.2.4 判断给定的整数是不是2的整数次幂 90
实验10.2.5 利用位运算实现加法和减法 90
第11章 C程序设计常见错误及解决方案 92
11.1 课内上机实验题目 92
实验11.1.1 将两个字符串连接起来 92
实验11.1.2 输入10个数输出最大值和最小值 92
实验11.1.3 s=1+1/3+1/5+1/7+…+1/(2n+1) 93
11.2 课外扩展上机实验题目 93
实验11.2.1 提取字符串中所有字母 93
实验11.2.2 输出下列表达式的值 94
实验11.2.3 输出整数n的所有质数因子 95
实验11.2.4 用函数统计某班学生的平均成绩 96
第二部分 课后习题及解析 98
第1章 程序设计基础 98
1.1 习题 98
1.2 习题解析 100
第2章 数据类型、运算符与表达式 102
2.1 习题 102
2.2 习题解析 103
第3章 简单的C程序设计 105
3.1 习题 105
3.2 习题解析 108
第4章 程序的控制结构 111
4.1 习题 111
4.2 习题解析 116
第5章 函数 120
5.1 习题 120
5.2 习题解析 126
第6章 数组 129
6.1 习题 129
6.2 习题解析 134
第7章 指针 138
7.1 习题 138
7.2 习题解析 142
第8章 结构体和共用体 146
8.1 习题 146
8.2 习题解析 152
第9章 文件操作 158
9.1 习题 158
9.2 习题解析 162
第10章 位运算 165
10.1 习题 165
10.2 习题解析 167
第11章 C程序设计常见错误及解决方案 168
11.1 习题 168
11.2 习题解析 171
第三部分 课程设计 172
3.1 学生综合测评管理系统 172
3.2 小型信息管理系统 180
3.3 通讯录管理系统 187
附录 198
参考文献 203