- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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 stdio.h
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、程序调试错误信息列出解决方法 1 In function main:|
int,y; 是 改为int x,y; 2 error: 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); 3 error: 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,5 9 是 可运算范围内 2 测试用例 55555,7933 63488 是 3 测试用例 -89,-79 -168 是
()、输入和输出信息描述及数据类型确定;
(1)、输入数据输出数据#include stdio.h
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(n0,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 (n0)
return -1; //若n为负则返回值为-1
else if (n==0 || n==1)
return 1; //若n为0或1则返回值为1
else
{
printf(fact(%ld)=%ld*fact(%ld)\n,n,n,n-1); //输出
文档评论(0)