C48A实验报告2_工程认证版20180905_朱立华编写V3_限定修改
时间:2020-11-20 20:33:44 来源:勤学考试网 本文已影响 人
实 验 报 告
(2018 / 2019 学年 第 一 学期)
课程名称
高级语言程序设计A(B0300311S)
实验名称
实验二: 函数实验
实验时间
2018
年
月
日
指导单位
计算机学院、软件学院、网络空间安全学院
指导教师
学生姓名
班级学号
学院(系)
专 业
PAGE 1
实 验 报 告
实验名称
实验二 函数实验
指导教师
实验类型
验证
实验学时
2
实验时间
实验目的和要求
(1)掌握正确的函数定义与调用,需要时会正确使用函数声明。会正确设置形式参数,理解参数传递及程序的执行流程。
(2)理解各种不同存储类别变量的生命期与作用域。
(3)进一步熟悉调试器的使用,会利用调试器进行查错改错,会跟踪程序运行的每一步,观察变量的变化情况。
二、实验环境(实验设备)
硬件: 微型计算机
软件: Windows 操作系统、Microsoft Visual Studio 2010
三、实验原理及内容
实验题目(1)【见实验教材实验四的题目2】:编程序exp4_2.c,巧用函数调用,打印不同行数和字符构成的等腰三角形。具体要求:定义一个函数原型void DrawTriangle (int n,char c); ,实现功能为打印一个n行的由字符c组成的等腰三角形。主程序调用该函数,实现打印5行“ '* ' ”、10行“ '# ' ”的等腰三角形。
实验解答:
源程序exp4_2.c的代码是:
= 2 \* GB3 ②主函数中只保留打印’*’组成三角形的一条调用语句,然后改变控制行数的第一个实参,测试当该值为多大时,你的屏幕无法正常显示该等腰三角形,试分析原因。(提示:模拟DOS界面可以查看属性,观赛屏幕缓冲区的大小和窗口大小,再进行测试分析)。如果希望刚才的实参提供后仍然能正常显示,可以有什么办法?
实验题目(2)【见实验教材实验四的题目5】:编程序exp4_5.c,验证歌德巴赫猜想:2000以内的正偶数(不包括2)都能够分解为两个质数之和。(算法提示:将整数分解为两个整数,然后判断它们是否均为质数。若是,则满足题意并输出;否则重新进行分解和判断。其中,判断一个整数是否为质数采用函数实现。每个偶数只要得到一种分解就停止,不必要求出该偶数的所有质数和组合)。
实验解答:
源程序exp4_5.c的代码是:
实验题目(3)【见实验教材实验四的题目8】:用调试器观察程序exp4_8.c的运行过程,并记录各种变量在每一步执行时的变化情况,在表格中填写每一个跟踪步每个变量对应的值。程序代码如下。
#include <stdio.h>
int a = 1;
int f(int a)
{
auto int b = 2;
static int c = 3;
a = a+1;
b = b+1;
c = c+1;
return (a+b+c);
}
int main()
{
int i;
for (i=0;i<3;i++)
{
a = a+2;
printf("%d \n",f(a));
}
return 0;
}
提示:首先选择“调试”菜单,再选择“窗口”子菜单,再选择打开“监视1”窗口,在其中输入&a、&b、&c、&i进行观察,点开这些地址符前面的+号,就可以看到对应变量的值,注意观察地址值的变化以区分目前空间是哪个变量在作用域,尤其同名变量。下表中在某位置该变量不可见则不填内容。
跟踪点(表示跟踪时的黄色箭头指在这一行)
全局
变量a
f的
形参a
f的自动
局部变量b
f的静态
局部变量c
主函数
的i
main函数的左大括号处
第1次for行
a = a+2;
printf行
按F11到f函数左大括号处
auto int b = 2;
a = a+1;
b = b+1;
c = c+1;
return (a+b+c);
第1次f函数右大括号处
按F10回到主函数的printf行
按F10到第2次for行
a = a+2;
printf行
按F11到f函数左大括号处
auto int b = 2;
a = a+1;
b = b+1;
c = c+1;
return (a+b+c);
第2次f函数右大括号处
按F10回到主函数的printf行
按F10到第3次for行
a = a+2;
printf行
按F11到f函数左大括号处
auto int b = 2;
a = a+1;
b = b+1;
c = c+1;
return (a+b+c);
第3次f函数右大括号处
按F10回到主函数的printf行
按F10到第4次for行
主函数的return 0;处
四、实验小结(包括问题和解决方法、心得体会、意见与建议、实验出错信息及解决方案等)
(一)实验中遇到的主要问题及解决方法
(二)实验心得
(三)意见与建议(没有可省略)
支撑毕业要求指标点
六、指导教师评语
评 分 细 则
评分项
优秀
良好
中等
合格
不合格
遵守实验室规章制度
学习态度
算法思想准备情况
程序设计能力
解决问题能力
课题功能实现情况
算法设计合理性
算法效能评价
回答问题准确度
报告书写认真程度
内容详实程度
文字表达熟练程度
其它评价意见
本次实验能力达成评价(总成绩)
批阅人
日期