实验4-函数

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

实验4 函数

程序填空

1.普通参数

本题分值:4

题目描述:输入日期的年份和月份,求该月有多少天。要求编写函数int daynum(int year,int month),求出以year为年份、以month为月份的某个月的天数。以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。

代码:

//通过日期求某月的天数。

#include

using namespace std;

int main()

{

int daynum(int year,int month);

int y,m,d;

cin>>y>>m;

if(y<1900 || y>=3000 || m<1 || m>12)

{

cout<<"输入错误!"<

return 0;

}

d=daynum(__(1)__); //以y、m作实参调用函数,求出该月的天数

cout<<"此月的天数为"<

return 0;

}

int daynum(int year,int month)

{

int days;

switch(month)

{

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12: days=31; break;

case 4:

case 6:

case 9:

case 11: days=30; break;

case 2: if(year%4==0&&year%100!=0 || year%400==0)

days=29;

else

days=28;

break;

}

return __(2)__;

}

答案:

(1) y,m

(2) days

每空分值:2

参考答案:yx3-t1.cpp

2.字符数组参数

本题分值:4

题目描述:编写一个函数,用来求字符串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); //输入一个字符串的值存放在字符数组s中,以回车结束

//cout<<"从第m个字符开始(m≥1)取n个字符构成的子串。请依次输入m、n的值:"; cin>>m>>n;

if(m>strlen(s) || n>strlen(s) || m+n>strlen(s)+1)

{

cout<<"m、n值超过了范围!\n";

return 0;

}

SubString(__(1)__);

cout<

return 0;

}

//从s中第start个字符开始取出长度为len的子串放入d中

void SubString(char s[ ], int start, int len, char d[ ])

{

int k,j;

for(j=0,k=start-1;j<=__(2)__;j++,k++)

d[j]=s[k];

d[len]='\0';

}

答案:

(1) s,m,n,d

(2) len-1

每空分值:2

参考答案:yx3-t2.cpp

3.嵌套调用

本题分值:6

题目描述:验证哥德巴赫猜想:对任意输入的正整数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)== __(1)__) //对i进行分解,并判断分解是否成功

{

cout<<"猜想错误\n";

return 0;

}

return 0;

相关文档
最新文档