实验十一C语言

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

江西理工大学理学院

实验十一函数(2)

班级______________学号___________姓名___________

___________号机器时间:________________________

实验目的:

1. 进一步掌握函数的定义和调用

2. 掌握函数的嵌套调用;

3. 了解函数的递归调用,掌握递归函数的编写规律;

4. 重点掌握数组作函数参数。

5. 掌握含多个源文件的程序的编译、连接和调试运行的方法

实验要求:

每次实验前,学生要先预习实验内容,写出分析结果或程序,经实验指导老师检查后,上机运行、调试程序,得出最终正确结果。

实验内容:

一. 读程序

要求:读懂程序,写出分析结果;上机运行程序,得到运行结果,比较之。

1、 #include

void func1(int i);

void func2(int i);

char st[]="welcome,friend!";

void func1(int i)

{ printf("%c",st[i]);

if(i<3)

{ i+=2;func2(i);

}

}

void func2(int i)

{ printf("%c",st[i]);

if(i<3)

{ i+=2;func1(i);

}

}

void main()

{ int i=0;

func1(i);

printf("\n");

}

2、

#include

long f( int g)

{ switch(g)

{ case 0:return 0;

case 1:

case 2: return 1;

}

return ( f(g-1)+ f(g-2));

}

void main ( )

{ long int k;

k = f(7);

printf("\nk= %d\n",k);

}

3、

#include

int f(int b[ ][4])

{ int i,j,s=0;

for(j=0;j<4;j++)

{ i=j;

if(i>2) i=3-j;

s+=b[i][j];

}

return s;

}

void main( )

{ int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};

printf(“%d\n”,f(a) );

}

4、

#include

float fun(int x,int y)

{

return(x+y);

}

void main()

{ i nt a=2,b=6,c=8;

printf(“%3.1 f \n”,fun( (int)fun(a+c , b) , a-c ) ;

}

二.完成程序

要求:根据要求,分析给出的上下语句,填写程序

1、mystrlen函数的功能是计算字符串的长度,并作为函数值返回。请填空,并配写主调函数。

#include

int mystrlen(char str[ ])

{ int i;

for(i=0; ____________!=…\0';i++);

return(_______);

}

void main ( )

{

_______________;

____________________;

_______________________;

}

2、通过函数求f(x)的累加和,其中f(x)=x*x*x+1

#include

int SunFun(int n) ;

int F( int x) ;

void main()

{

printf("The sum=%d\n",SunFun(11));

}

Int SunFun(int n)

{

int x,s=0;

for(x=1;x<=n;x++) s+=F( ____________ );

return s;

}

int F( int x)

{ return (___________);}

三. 调试程序

要求:分析下列程序是否正确,如有错,错在哪儿?应如何改正?如正确,运行结果如何?上机调试之。

1、函数sstrcmp()的功能是对两个字符串进行比较。当s数组中字符串和t数组中字符串

相等时,返回值为0;当s数组中字符串大于t数组中字符串时,返回值大于0;当s 数组中字符串小于t数组中字符串时,返回值小于0(功能等同于库函数strcmp())。

#include

1 int sstrcmp(char s[ ],char t[])

2 { int i=0 , j=0 ;

3 while(s[i]&&t[j]&& s[i]== t[j] ) ;

4 return s[i]-t[j];

5 }

6 void main()

7 { int x;

8 char s1[50],s2[50];

9 scanf("%s%s",s1,s2);

10 x= sstrcmp(s1,s2);

11printf("\n%d\n",x);

}

2、以下程序的功能是用递归方法计算学生的年龄,已知第一位学生年龄最小,为10岁,其余学生一个比一个大2岁,求第12位学生的年龄。

#include

void main()

1 { int age( int n) ;

2 int n =12;

3 printf (“ Age is %d\n” , age (n);

4 };

相关文档
最新文档