C语言实验报告的 函数
实验名:函数的定义及调用
实验目的
1、 掌握C语言函数定义及调用的规则。
2、 理解参数传递的过程。
二、实验内容
(一)题目 1
1、题目内容描述main()
{
int,y;
printf(“%d\n”,sum(x+y));
int sum(a,b)
{
int a,b;
return(a+b);
}
}
2、编写并调试一个求n!(n为整数)的递归函数,希望能在程序运行过程中动态地显示递归函数被调用的轨迹。
三、 分析讨论
1、针对以上实验内容写出相应的参数传递过程并分析结果。
2、讨论参数的传递的几种形式。
2、输入和输出信息描述及数据类型确定;
(1)、输入数据输出数据int
3、程序源代码(填写程序调试正确后的代码)
#include
int main()
{
int sum(int a,int b); //对被调用函数sum 的声明
int x,y,z;
scanf("%d,%d",&x,&y);
z=sum(x,y); //调用sum 函数,将其值赋给z
printf("%d\n",z); //输出函数结果z
return 0;//返回值为0
}
int sum(int a,int b) //定义sum函数
{
return(a+b); //将a+b的值作为返回值返回到调用sum的位置
}
4、程序调试错误信息列出解决方法1In function 'main':|
int,y;是改为int x,y;2error: stray '\241' in program|
error: expected expression before '%' token|
error: stray '\' in program|
printf(“%d\n”,sum(x+y));是将整段改为int sum(int a , int b);
int x,y,z;
z=sum(x,y);
printf("%d\n",z);3error: 'a' redeclared as different kind of symbol|
error: 'b' redeclared as different kind of symbol|
int a,b;是去掉整句话是加上scanf("%d,%d",&x,&y);是将int及后面的语句块都移到main外面、测试与结果分析
(1)、测试数据与结果
测试序号测试用例选取原因测试输入数据测试输出结果是否正确结果分析1测试用例4,59是可运算范围内2测试用例55555,793363488是3测试用例-89,-79-168是
()、输入和输出信息描述及数据类型确定;
(1)、输入数据输出数据#include
long fact (long n); //对被调用的函数fact的声明
int main()
{
int n;
long result; //定义result为长型整数
printf("Input n:");
scanf("%d",&n);
result=fact(n); //调用fact函数
if (result==-1)
printf("n<0,data error!\n"); //fact函数返回值即result为-1时输出此句话
else
printf("%d!=%ld\n",n,result); //fact函数返回值即result不为-1时输出此句
return 0; //主函数返回值为0
}
long fact(long n) //定义fact函数函数值和n都为长整型
{
if (n<0)
return -1; //若n为负则返回值为-1
else if (n==0 || n==1)
return 1; //若n为0或1则返回值为1
else
{
printf("fa