四川师范大学数学与软件科学学院程序设计实验报告实验六Word文档下载推荐.docx
《四川师范大学数学与软件科学学院程序设计实验报告实验六Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《四川师范大学数学与软件科学学院程序设计实验报告实验六Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
printf("
pleaseinput:
"
);
scanf("
%d"
&
n);
while(n>
=2)
{
for(i=2;
i<
=n;
i++)
{
if(n%i==0)
{
printf("
%d\t"
i);
n=n/i;
break;
}
}
}
}
(2)试编写求n!
的函数,并求n=7的结果。
inti,j,n,s;
pleaseinputn:
s=1;
for(i=2;
s=s*i;
s);
具体要求如下:
(1)编写程序通过调试获得正确结果;
(2)分析函数的声明、定义和使用方法;
(3)分别分析函数调用时的参数传值调用方法。
2.有关变量的属性实验(静态、动态、全局、局部等方面)。
(1)仔细分析以下程序的执行结果,然后上机运行如下程序段,并对各个变量的属性及其使用结果进行比较分析:
{/******(a)******/
intx=1;
{/******(b)******/
voidprt(void);
intx=3;
prt();
printf("
Thesecondxid%d\n"
x);
}/******(c)******/
Thefirstxis%d\n"
voidprt(void)
{/******(d)******/
intx=5;
Thethirdxis%d\n"
}/******(e)******/
(2)仔细分析下列程序,是否有错误之处?
然后分析其执行结果,上机验证并对各个变量的存储属性及其结果进行比较分析:
#defineLOW11
#defineHIGH23
#defineCHANGE12
inti=LOW;
intworkover(inti);
intreset(inti);
inti=HIGH;
reset(i=i/2.5);
i=%d\n"
reset(i=i/3);
reset(i/2);
workover(i);
workover(inti)
i=(i%i++)*(i*i)/(2*i)+4;
return(i);
reset(inti)
i=i<
=CHANGE?
LOW:
HIGH;
(3)以下程序希望打印5行"
*****"
,能否做到?
为什么?
voidprt();
inti;
for(i=0;
5;
voidprt()
intj;
for(j=0;
j<
j++)
%c"
'
*'
\n"
(4)分析、编辑并执行以下程序,如果有错,请指出其错误原因,同时需要指出各个变量的存储属性。
/*****file1.c*****/
intlast(void);
intnew(int);
intreset(void);
inti;
main(void)
inti,j;
i=reset();
for(j=1;
=3;
i=%d\t,j=%d\n"
i,j);
next(i)=%d\t"
next(i));
last(i)=%d\n"
last());
new(i+j)=%d\n"
new(i+j));
intnext(void)
return(i++);
/******file2.c******/
staticinti=10;
last(void)
return(i=i-1);
new(inti)
staticintj=-5;
return(i=j+=++i);
/*****file3.c*****/
reset()
3.预编译命令实验。
(1)一般宏替换实验(教材例4.20和4.23);
ints(intn);
inti=1;
while(i<
=5)
%d\n"
s(i++));
ints(intn)
return(n*n);
(2)带参数的宏替换(教材例4.25和习题4.15);
#definePI3.1415926
#defineR2.0
#defineAREAPI*R*R
Theareais:
%f\n"
AREA);
(3)文件包含(#include"
和#include<
>
)。
#defineS(n)((n)*(n))
S(i++));
三、实验准备
(1)编写所选实验题目的程序代码和流程图;
(2)检查源程序并给出其可能的运行结果说明。
4、实验步骤
(1)上机验证所选题目,并做相应测试和分析;
(2)进行实验分析;
(3)总结基于函数、宏等技术的模块化程序设计和实现方法及其经验;
(4)编写实验报告。
5、实验结果
有错误,自定义函数后面不用加;
HIGH后面应该加上自增符号.
不能,因为i是一个全局变量,当函数调用i后,i执行自定义函数后就直接变成了5,故只能打印一行.
定义i时,i前面不加exter,自定义函数中的fast改为last,自定义函数中的rturn(i-=1_)改为return(i=i-1).