函数与程序结构实验实验报告Word文档下载推荐.docx

上传人:b****3 文档编号:15044282 上传时间:2022-10-27 格式:DOCX 页数:17 大小:94.08KB
下载 相关 举报
函数与程序结构实验实验报告Word文档下载推荐.docx_第1页
第1页 / 共17页
函数与程序结构实验实验报告Word文档下载推荐.docx_第2页
第2页 / 共17页
函数与程序结构实验实验报告Word文档下载推荐.docx_第3页
第3页 / 共17页
函数与程序结构实验实验报告Word文档下载推荐.docx_第4页
第4页 / 共17页
函数与程序结构实验实验报告Word文档下载推荐.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

函数与程序结构实验实验报告Word文档下载推荐.docx

《函数与程序结构实验实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《函数与程序结构实验实验报告Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。

函数与程序结构实验实验报告Word文档下载推荐.docx

+3!

+…+n!

的原程序,在这个程序中存在若干语法和逻辑错误。

要求在计算机上对这个例子原程序进行调试修改,是指能够争取完成指定任务。

源程序:

#include<

stdio.h>

intmain(void)

{

intk;

for(k=1;

k<

6;

k++)

printf("

k=%d\tthesumis%ld\n"

k,sum_fac(k));

}

return0;

longsum_fac(intn)

longs=0;

inti;

longfac;

for(i=1;

i<

=n;

i++)

fac*=i;

s+=fac;

returns;

2.源程序修改替换

(1)修改施上述源程序中的sum_fac函数,是其计算量最小

(2)修改上述源程序中的sum_fac函数,计算

S=1+1/2!

+1/3!

+…+1/n!

3.跟踪调试

下面是计算fabonacci数列前n项和的源程序,线要求单步执行该程序,并观察p,i,sum,n值,即:

(1)刚执行按“scanf(“%d”,&

k);

”语句是,p,i值是多少?

(2)从fabonacci函数返回后,光条停留在哪个语句上?

(3)进入fabonacci函数是,watches窗口显示的是什么?

(4)当i=3时,从调用fabonacci函数大搜返回,n值如何变化?

源程序:

longfadonacci(int);

inti,k;

longsum=0,*p=&

sum;

scanf("

%d"

&

=k;

i++){

sum+=fabonacci(i);

i=%d\tthesumis%ld\n"

i,*p);

}

return0;

longfabonacci(intn)

if(n==1||n==2)

return1;

else

returnfabonacci(n-1)+fabonacci(n-2);

其中,“longsum=0,*p=&

”声明p为长整型指针,并用&

sum取出sum的地址对p初始化;

*p表示引用p所指的变量(*p即sum)。

4.程序设计

编写并上机调试运行能实现以下功能的程序:

(1)编写一个程序,让用户输入两个整数,计算两个整数的最大公约数并输出。

要求用递归函数实现求最大公约数,同时一单步方式执行,观察其递归过程。

(2)编写一个程序,验证哥德巴赫猜想:

一个大于等于4的偶数都是两个素数之和。

(3)编写一个程序,证明对与在符号常量BEGIN和END之间的偶数这一猜测成立。

例如,如果BEGIN为10,END为20,则程序的输出应为:

GOLDBACH'

SCONJECTURE:

Everyevennumbern>

=4isthesumoftwoprimes.

10=3+7

12=5+7

……

20=3+17

5.选做题

假设一个C程序由file1.c和file2.c连个源文件及一个file.h头文件组成,file1.c,file2.c,file.h的内容分别如下述。

试编辑该多文件程序,并编译和链接,然后运行生成后的可执行文件。

源文件file1.c的内容为

#include"

file.h"

intx,y;

charch;

x=10;

y=20;

ch=getchar();

infilex=%d,y=%d,chis%c\n"

x,y,ch);

funcl();

源文件file2.c的内容为

voidfuncl(void)

x++;

y++;

ch++;

infile2x=%d,y=%d,chis%c\n"

头文件file.h的内容为

externintx,y;

externcharch;

voidfuncl(void);

三、实验步骤及结果

1.源程序改错

改后程序:

longsum_fac(intn);

intmain()

longsum_fac(intn)

longfac=1;

{

(1)

staticlongs=0;

staticinti=1;

staticlongfac=1;

for(;

(2)

doublesum_fac(intn);

k=%d\tthesumis%lf\n"

doublesum_fac(intn)

staticdoubles=0;

doublec;

doublefac=1;

fac*=i;

c=1/fac;

s+=c;

longfabonacci(int);

longfabonacci(intn)

(1)刚执行完“scanf("

”语句时,p=(longint*)0x22ff10;

i=58;

(2)从fabonacci函数返回后,光条停留在printf语句上

(3)进入fabonacci函数时,watches窗口显示的是n=1

(4)当i=3时,从调用fabonacci函数到返回,n=3

intm,n;

pleaseinputtwonumbers:

\n"

);

%d,%d"

m,&

n);

thebiggestcommondivisoris:

divisor(m,n));

intdivisor(intm,intn)

if(m>

=n&

&

n>

0)

divisor(m-n,n);

elseif(m<

n&

m>

divisor(n-m,m);

elseif(m==0)

returnn;

elseif(n==0)

returnm;

intdivisor(intm,intn);

intcheck(intn);

intn,i;

pleaseinputaevennumbern>

=4:

i=check(n);

%d=%d+%d\n"

n,i,n-i);

intcheck(intn)

inti,k,m,j,x;

for(i=2;

=n/2;

m=0,j=0;

if(divisor(i,n-i)!

=1)

continue;

for(x=2;

x<

i;

x++)

if(divisor(x,i)!

j=1;

break;

for(k=2;

(n-i);

if(divisor(k,n-i)!

m=1;

if(m==0&

j==0)

returni;

(3)

intbegin,end,i;

\nEveryevennumbern>

=4isthesumoftwoprimes.\npleaseinputtwonumbersBEGIN,END:

begin,&

end);

begin<

=end;

begin+=2)

i=check(begin);

begin,i,begin-i);

elseif(

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1