1、合 肥 师 范 学 院实 验 报 告 册2013 / 201 学年 第 1 学期系 别 计算机科学与技术系实验课程 高级语言程序设计专 业 班 级 姓 名 学 号 指导教师 实验名称 课时 实验报告成绩实验(一)VC 工作环境及顺序结构程序设计 2实验(二)选择结构程序设计 2实验(三)循环结构程序设计 2实验(四)数组 4实验(五)函数 2实验(六)指针 2实验(七)文件 2高级语言程序设计实验 班级: 学号: 姓名: -1-实验一 VC 工作环境及顺序结构程序设计一、实验目的1. 熟悉 VC+的运行环境,掌握运行一个 C 程序的基本步骤,包括编辑、编译、连接和运行;2. 理解顺序结构程序方
2、式;3. 了解常用数据类型的输入输出方法;4. 了解 C 程序的基本框架,能编写简单的 C 程序,了解程序调试;二、实验预习内容在认真阅读教材及实验指导书的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。1. 输入并运行一个简单、正确的程序。输入编程示例 “Hello,World !”程序,即:# include “stdio.h”int main(void) printf(“Hello,World !n“);return 0;1) 参考实验指导书 P223P233 ,学习 C 程序的编辑、编译、运行,熟悉 VC+6.0 的基本界面操作。2) 修改本例,使用 printf()输出
3、自己的个性化签名,保存到文件 ex1_1.c 中。2. 程序改错题:# include stdio.h int mian(void) printf( Welcome to You! n“ )return 0;1) 分析本程序段中哪些地方存在错误?请标记出来,并给出修改意见。2) 输入上面程序(或打开 error1_2.c) ,学习程序调试。3. 程序阅读题:1) 请分析下面程序(ex1_3.c )运行结果是什么?# include int main(void)char c1,c2 ;c1=97;c2=98;printf( “c1=%c,c2=%c n“, c1, c2 );printf( “c
4、1=%d,c2=%d n“, c1, c2 );return 0;运行结果是:2) 若将程序第 4,5 行改为c1=197;高级语言程序设计实验 班级: 学号: 姓名: -2-c2=198;运行结果又如何?并简单分析。4. 程序填空题:购房从银行贷款 d 元,准备每月还款为 p 元,月利率为 r,计算多少月能还清。设 d 为300000 元,p 为 6000 元,r 为 1%.对求得的月份取小数点后一位,对第 2 位小数四舍五入处理。提示:(1)还清月数 m 的公式是 lg()1dr(2)可以考虑使用数学函数:lg10() 、lg() 。现有程序文件 ex1_4.c,请勿改动主函数 main
5、的任何内容,仅在 main 函数的对应序号位置上填入所编写的若干表达式或语句,并上机调试运行。#include #include 【1】int main(void)float d=300000,p=6000,r=【2】, m ; m=【3】 ;printf(“m=%6.1fn“, m); return 0; 填空内容:【1】 【2】 【3】 5. 编程题:1) 输入一个三位数 n,输出 n 的个位数字、十位数字和百位数字。请在下面空白处,填写 NS 图和相应的程序段,并将程序保存于 ex1_5.c 中。NS 图: 程序段:高级语言程序设计实验 班级: 学号: 姓名: -3-6. 结束本次实验三
6、、实验课后训练1. 实验指导书 P254 第( 6) 、 (7)题;2. 实验指导书 P255P256 第(1) 、 (2) 、 (3)题;3. 实验指导书 P258P259 第(1) 、 (3)题。高级语言程序设计实验 班级: 学号: 姓名: -4-四、实验报告1. 在本次实验中,你所用到的程序调试方法有哪些?2. 简述本次实验过程中出现的问题、解决方法、结果如何。3. 实验总结高级语言程序设计实验 班级: 学号: 姓名: -5-实验二 选择结构程序设计一、实验目的1. 学会正确使用逻辑运算符和逻辑表达式;2. 理解选择结构程序方式;3. 熟练掌握 if 语句和 switch 语句。二、实验
7、预习内容在认真阅读教材及实验指导书的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。1. 程序改错题:改正下面“计算分段函数”的程序(error2_1.c )中的错误,输入 x,计算并输出分段函数 f(x )的值 (保留 1 位小数) 。)0(1)(xf #include int main(void)double x, y; printf(“Enter x: “); scanf(“%f“, x); if(x != 0) y = 1 / x else y = 0; printf(“f(%.2f) = %.1fn“, x, y); return 0; 1) 分析本程序段中哪些地方存在
8、错误?请标记出来,并给出修改意见。2) 打开 error2_1.c 文件,学习使用程序调试中的单步跟踪。2. 编程题:输入 3 个整数,按从小到大输出。请在下面空白处,填写相应的程序段,并将程序保存于 ex2_2.c 中。运行程序,并检查结果是否正确。高级语言程序设计实验 班级: 学号: 姓名: -6-3. 编程题:给出一个整型百分制成绩,要求输出相应等级 A、 B、C、D 、E 。90 分以上为A,8089 分为 B,7079 分为 C,6069 分为 D,不及格为 E。编程实现,并运行检查结果是否正确。1) 用 if 语句实现,请在下面空白处,填写 NS 图和相应的程序段,并将程序保存于e
9、x2_3a.c 中。NS 图: 程序段:2) 验证程序时,你一共输入了几次数据,相应的运行结果如何?请填在下面的空白处。3) 用 switch 语句实现,请在下面空白处,填写相应的程序段,并将程序保存于ex2_3b.c 中。高级语言程序设计实验 班级: 学号: 姓名: -7-4) 验证程序时,你一共输入了几次数据,相应的运行结果如何?请填在下面的空白处。4. 结束本次实验三、实验课后训练1. 实验指导书 P260 第( 2)题;2. 编程题:1) 输入月薪 salary,输出应交的个人所得税 tax(保留 2 位小数) 。计算公式:tax=rate*(salary-850)当 salary =
10、850 时,rate = 0;当 850 salary=1350 时,rate = 5%;当 1350 salary=2850 时,rate = 10%;当 2850 salary=5850 时,rate = 15%;当 5850 salary 时,rate = 20% 要求:本题分别用 if 语句和 switch 语句。请在下面空白处,填写相应的程序段,并将程序分别保存于 ex2_4a.c 和 ex2_4b.c 中。输入输出示例:Please enter the salary :1010.87tax=8.04高级语言程序设计实验 班级: 学号: 姓名: -8-四、实验报告1. 结合实验预习内
11、容中的第 3 题和实验课后训练的第 2 题,请分析比较 if 和 switch 语句的特点。2. 在本次实验中,你所用到的程序调试方法有哪些?3. 简述本次实验过程中出现的问题、解决方法、结果如何。4. 实验总结高级语言程序设计实验 班级: 学号: 姓名: -9-实验三 循环结构程序设计一、实验目的1. 理解循环结构的程序方式;2. 熟练掌握 while,do-while 和 for 三种循环结构;3. 理解循环嵌套。4. 进一步学习调试程序二、实验预习内容在认真阅读教材及实验指导书的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。1. 编程题:输入实数 x 和正整数 n,计算
12、,不用 pow()函数。循环部分分别用 for、while、do-nxwhile 三种语句编写。请在下面空白处,填写相应的程序段,并将程序保存于文件ex3_1a.c、ex3_1b.c 和 ex3_1c.c 中。2. 编程题:输出如下图形,请在下面空白处,填写相应的程序段,并将程序保存于 ex3_2.c 中。3. 编程题:高级语言程序设计实验 班级: 学号: 姓名: -10-从键盘读入一个整数,统计该数的位数。请在下面空白处,填写相应的程序段,并将程序保存于 ex3_3.c 中。4. 编程题:某地需要搬运砖块,已知男人一人搬 3 块,女人一人搬 2 块,小孩两人搬一块。问用 45人正好搬 45
13、块砖,有多少种搬法?。请在下面空白处,填写相应的程序段,并将程序保存于 ex3_4.c 中。5. 结束本次实验三、实验课后训练1. 实验指导书 P261 第( 1)题;2. 实验指导书 P261 第( 4)题;高级语言程序设计实验 班级: 学号: 姓名: -11-四、实验报告1. 简述本次实验过程中出现的问题、解决方法、结果如何。2. 实验总结高级语言程序设计实验 班级: 学号: 姓名: -12-实验四 数组一、实验目的1. 掌握一维数组和二维数组的定义和使用方法;2. 掌握字符数组的使用方法。二、实验预习内容在认真阅读教材及实验指导书的基础上,上机前请预习以下内容,并在空白处填写相应的程序段
14、。1. 编程题:输入 N 个整数(N 使用符号常量说明) ,按升序排序。请在下面空白处,填写相应的程序段,并将程序保存于文件 ex4_1.c 中。2. 编程题:已有一个已按降序排序的整数数组,将用户输入的一个整数插入此数组,使数组仍然保持降序。请在本页背面空白处,填写相应的程序段,并将程序保存于 ex4_2.c 中。高级语言程序设计实验 班级: 学号: 姓名: -13-3. 编程题:有一篇文章,共 3 行文字,每行 80 个字符,要求分别统计其中英文大写字母、小写字母、数字、空格及其它字符的个数。请在下面空白处,填写相应的程序段,并将程序保存于 ex4_3.c 中。4. 编程题:找出一个二维数
15、组的“鞍点” ,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点。 (测试数据等描述见实验指导书 P262 第(4)题) 。请在本页背面空白处,填写相应的程序段,并将程序保存于 ex4_4.c 中。5. 结束本次实验三、实验课后训练1. 实验指导书 P61 第( 7)题;2. 实验指导书 P64 第( 9)题;高级语言程序设计实验 班级: 学号: 姓名: -14-四、实验报告1. 简述本次实验过程中出现的问题、解决方法、结果如何。2. 实验总结。高级语言程序设计实验 班级: 学号: 姓名: -15-实验五 函数一、实验目的1. 掌握 C 语言中函数的定义和使用方法;2. 理解 C 语
16、言中函数参数传递方式;3. 理解 C 语言中变量的作用域;4. 理解递归函数的定义和调用。二、实验预习内容在认真阅读教材及实验指导书的基础上,上机前请预习以下内容,并在空白处填写相应的程序段。1. 编程题:编写函数,将字符串中的元音字母全部复制到另一个字符串中,然后输出(说明详见实验指导书 P263 第(2)题)请在下面空白处,填写相应的程序段,并将程序保存于文件ex5_1.c 中。2. 编程题:用递归法将一个整数 n 转换为相应的字符串,例如,输入 483,输出的是字符串“483” ,n 的位数不确定,可以是任意的正整数。 (说明详见实验指导书 P264 第(2)题)(1) 请在下面空白处,
17、填写相应的程序段,并将程序保存于文件 ex5_2.c 中。(2) 请在下面空白处,用图示法描述函数转换 483 时的过程。高级语言程序设计实验 班级: 学号: 姓名: -16-3. 编程题:求两个整数的最大公约数和最小公倍数(说明详见实验指导书 P264 第(4)题)(1) 方法一:编写两个函数,分别返回两个整数的最大公约数和最小公倍数。请在下面空白处,填写相应的程序段,并将程序保存于文件 ex5_3.c。(2) 方法二:使用两个全局变量分别表示最大公约数和最小公倍数,编写一个函数fun,用全局变量带回最大公约数和最小公倍数。请在下面空白处,填写相应的程序段,并将程序保存于文件 ex5_4.c
18、 中。4. 结束本次实验三、实验课后训练1. 实验指导书 P263 第( 3)题;2. 实验指导书 P264 第( 1)题;高级语言程序设计实验 班级: 学号: 姓名: -17-四、实验报告1. 简述本次实验过程中出现的问题、解决方法、结果如何。2. 实验总结。高级语言程序设计实验 班级: 学号: 姓名: -18-实验六 指针一、实验目的1. 掌握 C 语言中指针用法;2. 理解指针与数组关系;3. 理解指针与字符串关系。二、实验预习内容在认真阅读教材及实验指导书的基础上,上机前请预习以下内容,并在空白处填写相应的程序段。1. 编程题:编写函数 swap( int * ,int *),实现交换
19、两个数的功能,要求:swap 函数的形参用指针变量,并在 main()中调用 swap( )以实现交换功能。请在下面空白处,填写相应的程序段,并将程序保存于文件 ex6_1.c 中。2. 编程题:编写一函数 slen( ),求一个字符串的长度。在 main( )中输入字符串,并输出其长度(说明详见实验指导书 P265 第( 4)题) 。分别在程序中按以下两种情况来处理:(1) 函数形参用指针变量。请在下面空白处,填写相应的程序段,并将程序保存于文件 ex6_2a.c 中。高级语言程序设计实验 班级: 学号: 姓名: -19-(2) 函数形参用数组名。请在下面空白处,填写相应的程序段,并将程序保
20、存于文件ex6_2b.c 中。3. 编程题:有一个包含 n 个整数元素的数组,编写函数 move(int arr ,int n,int m),实现使数组前面各个数顺序向后移动 m 个位置,最后 m 个数变成最前面 m 个数。并在 main( )中调用 move( )实现移动。 (教材第 8 章课后习题第(4)题) 。请在下面空白处,填写相应的程序段,并将程序保存于文件 ex6_3.c。4. 结束本次实验三、实验课后训练1. 实验指导书 P265 第( 2)题;2. 实验指导书 P266 第( 4)题;高级语言程序设计实验 班级: 学号: 姓名: -20-四、实验报告1. 简述本次实验过程中出现
21、的问题、解决方法、结果如何。2. 实验总结。高级语言程序设计实验 班级: 学号: 姓名: -21-实验七 文件一、实验目的1. 了解文件和文件指针的概念。2. 学会使用文件操作函数实现对文件打开、关闭、读、写等操作。3. 学会对数据文件进行简单的操作。二、实验预习内容在认真阅读教材及实验指导书的基础上,上机前请预习以下内容,并在空白处填写相应的程序段。1. 编程题:建立如图的简单链表。由 3 个学生数据的结点组成(每个学生的 num 和 score 都保存在data1.txt 的文件中,以空格间隔) ,要求向屏幕输出各结点中的数据。请在下面空白处,填写相应的程序段,并将程序保存于文件 ex7_
22、1.c 中。高级语言程序设计实验 班级: 学号: 姓名: -22-2. 编程题:有 5 个学生,每个学生有 3 门课的成绩,从键盘输入以上数据(包括学号、姓名、3 门课的成绩) ,学生信息用结构体数组保存,数据如下:计算出平均成绩,将原有数据和计算出的平均成绩输出存放于文件 stud.txt 中(写入数据后,验证 stud.txt 中的内容是否正确) 。请在下面空白处,填写相应的程序段,并将程序保存于文件 ex7_2.c。3. 结束本次实验三、实验课后训练1. 实验指导书 P267 第( 2)题;2. 实验指导书 P267 第( 3)题;学号 姓名 成绩 1 成绩 2 成绩 310101 Wang 89 98 67.510103 Tang 60 80 9010106 Sun 75.5 91.5 9910109 Zhao 100 50 6310111 Liu 58 68 71高级语言程序设计实验 班级: 学号: 姓名: -23-四、实验报告1. 简述本次实验过程中出现的问题、解决方法、结果如何。2. 实验总结。