- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
完成情况 成绩等级 评阅人 评阅日期 1 2 3 4 5 6 7
实验1、函数
一、实验目的
1、进一步掌握函数的定义、调用、返回值以及值传递、地址传递的不同;
2、理解并掌握函数的嵌套调用和函数的递归调用;
3、了解全局变量和局部变量、动态变量、静态变量的概念和使用方法;
4、熟悉进入和跳出函数的调试方法
二、实验内容
1、程序填空题(请填写适当的符号或语句,使程序实现其功能)
下列程序的功能为:通过调用一个判断素数的函数isprime(),验证歌德巴赫猜想:即任何大于2的偶数均可表示为两个素数之和。例如:4=2+2(特例,仅此一个),6=3+3,8=3+5,…。程序要求输入任一偶数,输出6到该数范围内的各个满足条件的组合。
#include stdio.h
int isprime(int m)
{ int i ;
for(i=2;m%i!=0;i++);
return ( 【1】 );
}
main()
{ int n,x,a,b;
scanf(%d,x);
for(n=6;n=x ;n+=2)
for(a=3;a=n/2;a+=2)
if( 【2】 )
{ b=n-a;
if( 【3】 )
{ printf(“%d=%d+%d”,n,a,b);
【4】 ; //退出a循环,判别下一个n的组合
}
}
}
2、程序调试题(纠正程序中存在错误,使程序实现其功能)
函数fac()是用户自定义的一个用递归方法求任意整数阶乘的函数,在main函数中通过调用该函数求出一个三位整数n,其每位数字的阶乘之和正好等于该数本身,即x!+y!+z!=n。
例如145=1!+4!+5!。程序中存在错误,请调试程序。
#includestdio.h
int fac(int m) //1
{ int f; //2
if(m==0||m==1) //3
f=1; //4
else //5
f=f*fac(m-1); //6
return f; //7
}
main()
{ int i,a,b,c; //8
for(i=100;i=999;i++) //9
{ a = i / 100; //10
b = i % 100 / 10; //11
c = i % 10; //12
if(i=fac(a)+fac(b)+fac(c)) //13
printf(%d, i); //14
}
}
3、编程题:编写程序:根据下面的要求,按所给的公式计算并输出结果。
要求:
⑴分别编写一个求阶乘n!的函数fac(n)、一个求组合数函数cnm(n,m);
⑵编写主函数,由键盘输入n和m,通过嵌套调用①中的函数完成计算。
⑶输入n和m要给出提示,并检查n和m的合理性,不合理的输入应输出错误信息,并不再进行计算。
4、编程题: 用递归方法编写求Fibonacci数列第n项系数的函数fib(n),并且在main函数中调用该函数输出Fibonacci数列从第1项到第n项的系数,每行输出5项,n的值由用户从键盘输入。
5、编程题: 编程实现以下功能:在主函数中,由键盘输入10个整数存放在一维数组a中,并调用选择算法函数selectedsort对数组元素进行降序排列。其中的排序算法函数selectedsort调用findmax函数查找数组局部的最大值的下标位置。自定义函数的首部及功能如下:
⑴ int findmax(int arr[],int start,int end):该函数用于查找数组中从start到end之间的数组元素中最大值所在的下标位置;
⑵void selectedsort(int arr[ ],int n):该函数应用选择算法对n个数组元素进行降序排列。
6、分析以下程序的运行结果,然后运行程序验证自己的分析是否正确。
#include stdio.h
void f(int c)
{ int a=0;
static int b=0;
a++;
b++;
printf(%d: a=%d, b=%d\n, c, a, b);
}
main()
{ int i;
文档评论(0)