C语言实验实验4-函数与指针
实验 函数与指针4
程序填空
1. 普通参数
题目描述:输入日期的年份和月份,求该月有多少天。要求编写函数intdaynum(intyear,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)__;
}
2. 字符数组参数
题目描述:编写一个函数,用来求字符串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<
cin>>m>>n;
if(m>strlen(s) ||n>strlen(s) ||m+n>strlen(s)+1)
{
cout<
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';
}
3. 嵌套调用
题目描述:验证哥德巴赫猜想:对任意输入的正整数n,验证6~n 以内的偶数都可分解为
两个素数(质数)之和。以下程序中,函数bool divide(int n)是用来将偶数n分解为
两个质数的;若分解成功,则返回true;否则返回false。函数bool IsPrime(int m)是
用来判断m是否为质数的;若是,则函数返回true;否则返回false。请在计算机上调试以
下程序,补足其中的空格。