实验4-函数与指针
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验4 函数与指针
程序填空
1.普通参数
本题分值:10
题目描述:输入日期的年份和月份,求该月有多少天。要求编写函数int daynum(int year,int month),求出以year为年份、以month为月份的某个月的天数。以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。代码:
字符数组参数
本题分值:10
题目描述:编写一个函数,用来求字符串s的任意子串。函数原型为
void SubString ( char s[ ] , int start , int len , char d[ ] ) ;
其中s是原字符串,d用来存放s中从第start个字符开始(1≤start≤strlen(s) ),长度为len的子串。以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。
代码:
#include
using namespace std;
int main( )
{
void SubString(char s[ ], int start, int len, char d[ ]);
char s[81],d[81];
int m,n;
gets(s); 嵌套调用
本题分值:10
题目描述:验证哥德巴赫猜想:对任意输入的正整数n,验证6~n以内的偶数都可分解为两个素数(质数)之和。以下程序中,函数bool divide(int n)是用来将偶数n分解为两个质数的;若分解成功,则返回true;否则返回false。函数bool IsPrime(int m)是用来判断m是否为质数的;若是,则函数返回true;否则返回false。请在计算机上调试以下程序,补足其中的空格。
代码:
#include
#include
using namespace std;
int main()
{
bool divide(int n);
int i,n;
cin>>n;
if(n<6)
{
cout<<"输入数据出错\n";
return 0;
}
for(i=6;i<=n;i+=2)
if(divide(i)== false) 全局变量
本题分值:10
题目描述:编写一函数addup,统计字符串s中字母、数字、空格和其它字符的个数,并且用几个全局变量记录上述统计结果。以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。
代码:
#include
using namespace std;
int letter, digit, space, other; 递归调用
本题分值:4
题目描述:
用递归方法求n的阶乘n!,递归公式为:n!=1(n等于0或1),n!= n×(n-1)! (n 大于1)
要求编写递归函数int fact(int n); 以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。
代码:
#include
using namespace std;
int main()
{
int fact(int n);
int n,f;
本题分值:10
题目标题:判断完数。
题目描述:
判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数bool wanshu(int n),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。
输入描述:
输入一个正整数n。
输出描述:
若n是完数,则输出"yes";否则输出"no"。
样例输入:
28
样例输出:
yes
#include
using namespace std;
bool wanshu(int n);
int main()
{
int m;
cin>>m;
if(wanshu(m))
cout<<"yes"< else cout<<"no"< return 0; } bool wanshu(int n) { int s=0; for(int i=1;i if (n%i==0) s=s+i; if (s==n) return true; else return false; } 7. 本题分值:10 题目标题:伦敦奥运会倒计时。 题目描述: 假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日— 2012年7月26日。要求程序中编写函数int CountDown(int year,int month,int day),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。 提示:所求天数= month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。 输入描述: 用户输入的日期的格式必须是year month day。其中year应是2012,month必须满足1≤month≤7。输入的数据之间用空格隔开。 输出描述: 输出为一行“距离2012伦敦奥运会还有x天。”,其中x为求出的倒计时的