【C/C++基础练习题】简单函数练习题

内容专栏:【C/C++要打好基础啊】

本文内容:简单函数使用练习题(复习之前写过的实验报告)

本文作者:Melon西西

发布时间 :2023.2.11


目录

1.给定某个年、月、日的值,计算出这一天属于该年的第几天,写出计算闰年的函数和计算日期的函数

2.编写函数判断一个数是否是“素数”。在主函数中调用该函数找出1000以内的所有素数,并按6个一行输出。

3.阶乘​编辑

4.用递归算法解决下面的 “兔子问题”:假定小兔子一个月就可以长成大兔子,而大兔子每个月都会生出一对小兔子。(即兔子从生后第三个月才会生小兔子。)如果年初养了一对小兔子,问到年底时将有多少对兔子?  (当然得假设兔子没有死亡而且严格按照上述规律长大与繁殖)。

5.编写一个程序,输入一个十进制数n,输出相应的二进制数或者八进制数,或者其他进制数。设计一个递归函数实现数制转换。整数n以及要转换为的进制(2、8、16或者其他)都由用户输入。


1.给定某个年、月、日的值,计算出这一天属于该年的第几天,写出计算闰年的函数和计算日期的函数

#include
using namespace std;
int main()
{	
	int day = 0, yue=0,year = 0, sum = 0;
	int mounth[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
	cin >> year >> yue >> day;
	int sumyue = 0;
	for (int i = 0;i < yue-1;i++)
	{
		sumyue += mounth[i];
	}
	if (yue > 2)
	{
		if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
		{
			sumyue++;
		}
	}
	sum = sumyue + day;
	cout << "这一天是该年的第" << sum << "天" << endl;
	return 0;
}

2.编写函数判断一个数是否是“素数”。在主函数中调用该函数找出1000以内的所有素数,并按6个一行输出。

#include
#include
using namespace std;
int main()
{
	int t = 1, count = 0;
	for (int i = 1; i < 1000; i++)
	{
		for (int j = 2; j < i; j++)
		{
			if (i % j == 0)
			{
				t = 0;
			}
		}
		if (t == 1)
		{
			cout << setw(3) << i << " ";
			count++;
			if (count % 6 == 0)
			{
				cout << "\n";
			}
		}
		t = 1;
	}
	return 0;
}

3.阶乘【C/C++基础练习题】简单函数练习题_第1张图片

 【C/C++基础练习题】简单函数练习题_第2张图片

 

#include
using namespace std;
double n = 0, r = 0, t = 0;
double fact(double a)
{
	if (a == 1)
	{
		return  1;
	}
	else
	{
		return a * fact(a - 1);
		if (r == 0)
		{
			return 1;
		}
		else if (r == 1)
		{
			return n;
		}
	}
}
int main()
{	
	cout << "请输入n和r的值:" << endl;
	cin >> n >> r;
	t = n - r;
	if (n == 0 && r == 0)
	{
		cout << "程序结束" << endl;
	}
	else if (n < 1 || n < r)
	{
		cout << "Input Invalid!"<
#include
using namespace std;
double n = 0, r = 0, t = 0;
double fact(double a)
{
	int temp = 1;
	for (int i = 1;i <= a;i++)
	temp *= i;
	return temp;
}
int main()
{	
	cout << "请输入n和r的值:" << endl;
	cin >> n >> r;
	t = n - r;
	if (n == 0 && r == 0)
	{
		cout << "程序结束" << endl;
	}
	else if (n < 1 || n < r)
	{
		cout << "Input Invalid!"<

4.用递归算法解决下面的 “兔子问题”:假定小兔子一个月就可以长成大兔子,而大兔子每个月都会生出一对小兔子。(即兔子从生后第三个月才会生小兔子。)如果年初养了一对小兔子,问到年底时将有多少对兔子?  (当然得假设兔子没有死亡而且严格按照上述规律长大与繁殖)。

#include
using namespace std;
int rabbit(int n)
{
	if (n < 3)
	{
		return 1;
	}
	int fn = rabbit(n - 2) + rabbit(n - 1);
	{
		return fn;
	}
}

int main()
{
	int mouth = 12;
	rabbit(mouth);
	cout << "年底有" << rabbit(mouth)<<"对兔子";
		return 0;
}

5.编写一个程序,输入一个十进制数n,输出相应的二进制数或者八进制数,或者其他进制数。设计一个递归函数实现数制转换。整数n以及要转换为的进制(2、8、16或者其他)都由用户输入。

#include
#include
using namespace std;
int zhihuan(int a, int b)
{
	string arr = "0123456789ABCDEF";
	if (a < b)
	{
		cout << arr[a];
	}
	else
	{
		zhihuan(a / b, b);
		cout << arr[a % b];
	}
	return 0;
}
int main()
{
	int n, m, num = 0;
	cout << "请输入一个十进制数n:";
	cin >> n;
	cout << "请输入想转化成的m进制数:";
	cin >> m; 
	cout << n << "转化成" << m << "进制数为:";
	zhihuan(n, m);
}

你可能感兴趣的:(【C/C++要打好基础啊】,c++,算法,c语言)