- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C实验六函数
实验六 函数
实验目的
熟练掌握函数的定义和使用方法。
熟练掌握调用函数与被调用函数之间的数据传递。
掌握函数的返回值和类型。
掌握函数的嵌套调用和递归调用。
实验内容
读程序、写结果
⑴/***** s6-1.c *****/
#includestdio.h
main()
{
void func(int a,int b);
int a=2,b=10;
func(a,b);
printf(a=%d,b=%d\n ,a,b);
}
void func(int a,int b)
{
int temp;
temp=a;
a=b;
b=temp;
}
上机前分析结果:
实际上机结果(分析原因):
⑵/***** s6-2..c *****/
#includestdio.h
int a=1,j=2;
main()
{
void func();
int i=2;
func();
printf(a=%d,i=%d,j=%d\n ,a,i,j);
}
void func()
{
int n,i=5;
printf(a=%d,i=%d\n ,a,--i);
i++;
a++;
if(a4)
func();
a--;
j+=3;
printf(a=%d,j=%d\n ,a,j);
}
提示:注意函数递归调用的过程。
上机前分析结果:
实际上机结果:
(3)/***** s6-3.c *****/
#includestdio.h
int qian1( int x, int y )
{
int qian2(int x,int y);
int c, s, t ;
s=x+y;
t=x-y;
c=qian2(s, t);
return (c);
printf(c=%d\n, c);
}
int qian2( int x , int y )
{
return ( x + y ) ;
}
main()
{
int a=1, b=2, c ;
c=2*qian1(a, b);
printf(c = %d\n, c);
}
上机前分析结果:
实际上机结果:
2. 完善程序
(1)给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。(s6-4.c)
/***** s6-4.c*****/
#include stdio.h
double fun(int n)
{
int i, k;
double s, t;
s=0;
k=1;
for(i=1; i=n; i++)
{
t=2*n;
s=s+k*(2*i-1)*(2*i+1)/(t*t);
k=k*(-1);
}
return s;
}
main()
{
int n=-1;
while(n0)
{
printf(Please input(n0): );
scanf(%d,n);
}
printf(\nThe result is: %lf\n,fun(n));
}
例如:当行参n的值为10时,函数返回-0.204491。
/***** s6-4.c*****/
#include stdio.h
double fun(int n)
{
int i, k;
double s, t;
s=0;
k=1;
for(i=1; i=n; i++)
{
t=2*n;
s=s+k*(2*i-1)*(2*i+1)/(t*t);
k=k*(-1);
}
return s;
}
main()
{
int n=-1;
while(n0)
{
printf(Please input(n0): );
scanf(%d,n);
}
printf(\nThe result is: %lf\n,fun(n));
}
(2)以下函数的功能是:求100(不包括100)以内能被2或5整除,但不能同时被2或5整除的自然数。结果保存在数组bb中,函数fun()返回数组bb元素的个数。(s6-5.c)
/***** s6-5.c *****/
#include stdio.h
#define N 100
int fun(int bb[])
{
int i,j;
for (j=i=0; i100;i++)
if ((i%2!=0i%5==0)||(i%2==0i%5!=0))
bb[j++]=i;
return j;
}
main()
{
int i,n;
int bb[N];
n=fun(bb);
for (i=0;in;i++)
{
if (i%10==0)
printf(\n);
printf(%4d,bb[i]);
}
}
改错
(1)以下fun()函数用以判断n是否为素数。fun()函数中有逻辑错。main()函数完成从键盘接收一个整数,再以该数为参数调用fun()函数,修改fun()函数
文档评论(0)