编辑版
编辑版
实验题目
标准库函数使用与编译预处理
实验时间
2013-5-26
实验地点
DS1421
实验成绩
实验性质
□验证性 □设计性 □综合性
教师评价:
□算法/实验过程正确;□源程序/实验内容提交□程序结构/实验步骤合理;
□实验结果正确;□语法、语义正确;□报告规范;
其他:
评价教师签名:
一、实验目的
1、理解变量的作用域和生存期的概念;
2、掌握全局变量和局部变量的定义方法以及其作用域的确定方法,并能进行区别;
3、理解“文件包含”处理和“工程文件”的方法概念及区别,并学会应用;
4、理解局部变量对冋名全局变量的屏蔽作用,掌握在程序流程的执行点选择确定操 作变量的方法;
5、理解和掌握最大公约数和最小公倍数的求解方法及程序实现。
二、实验项目内容(实验题目)
编程实现功能:求 2个数的最大公约数和最小公倍数。要求用函数实现,并且 将主函数和这两个函数分别存入3个文件“ sy3-学号-a.cpp” , “ sy3-学号 -b.cpp , sy3学号-c.cpp中。然后用文件包含和工程文件2种方法实现多文件编译
链接。
三、源程序(实验过程或算法)
1、#include 方式:
“a.cpp”文件如下:
#i nclude
#include "e:sy3b.cpp"
#include "e:sy3c.cpp" long b(i nt m,i nt n);
long c(i nt m,i nt n ,i nt r);
void mai n()
{
long ml, n1,g,l;
printf("This is in File sy3-2010-a.cpp\n");
prin tf("*** in put: m1, n1****\n");
sca nf("%ld,%ld",&m1,&n 1);
g=b(m1, n1);
prin tf("g=%ld\n",g);
l=c(m1, n1,g);
prin tf("l=%ld\n",l);
}
“ b.cpp”文件如下:
#i nclude
long b(i nt m,i nt n)
{
in t r,t;
prin tf("This is in File sy3b.cpp\n");
if(m
t=m ,m=n,n=t;
while( n!=0)
{ r=m% n;
m=n;
n=r;
}
return m;
}
“c.cpp”文件如下:
#i nclude
long c(i nt m,i nt n ,i nt r)
{
long bs;
printf("This is in File sy3c.cpp\n");
bs=m* n/r;
return bs;
}
对“a.cpp”文件进行编译、连接、运行,得到结果。
2、工程方式:
a.cpp+b.cpp+c.cpp形成工程文件sy3,对”工程文件sy3'编译、连接、
运行,得到结果。其窗口如下:
编辑版
编辑版
四、源程序调试过程(或运行结果)
使用文件包含所得结果:
使用工程文件所得结果:
使用工程文件所得结果:
五、实验小结(体会):
1.通过本次实验我学会了如何使用“文件包含”处理和
“工程文件”处理。
2?通过本次实验我了解到了不同类型的变量作用域和生存 期不同,要区别对待,分开使用才能更好的编写程序。