C++练习(期末)

目录

1、【作图题】编写一个函数,返回1到200之间偶数的乘积

2、【作图题】编写一个程序,从外界获取四个数,返回这前两个数的和的平方根和后两个数平方根的和,必须包含函数(非main)的调用

3、【作图题】编写一个程序,从外界获取三个数,返回这前两个数的和的平方根和第三个数的乘积,必须包含函数(非main)的调用

4、【作图题】编写一个程序,从外界获取两个数,返回这两个数的和的平方根,必须包含函数(非main)的调用

5、【作图题】编写一个函数,从外界获取一个小数,返回该数整数部分的一半

6、【作图题】编写一个程序,用于求从外界输入的三个数的最小公倍数和最大公约数。

7、【作图题】编写一个程序,用于求从外界输入的两个数的最小公倍数和最大公约数。

8、【作图题】编写一个程序,用于生成平均值,数据从外界获取4个小数。

9、【作图题】编写程序,用于计算评委得分,5个评委的分数,去掉最高分和最低分,返回平均分。

10、【作图题】编写程序,从外界获取学生的5门科目成绩,返回平均值和最高分。

11、【作图题】编写程序,从外界获取两个实数,返回平均值的整数部分。

12、【作图题】求200-300之间的素数,并输出

13、【作图题】编写程序,从外界获取两个整数,用于求四个数的最大值,必须有可调用的函数。

14、【作图题】编写程序,从外界获取两个整数,用于求三个数的最大值,必须有可调用的函数。

15、【作图题】编写程序,从外界获取两个整数,用于求两个数的最大值。

16、【作图题】编写一个程序,通过获取用户输入的数据来输出该数据是否是素数。

17、【作图题】求1-100之间的所有素数,并统计素数的个数。

18、【作图题】编程显示任意输入5个数字中的最大值,最小值,平均值。


1、【作图题】编写一个函数,返回1到200之间偶数的乘积

#include <iostream>
using namespace std;

int main()
{
	// 注意:使用int类型会超出范围(int最大值:2147483647),所以这里选择使用double类型
	double sum = 1;
	for(int i=2;i<=200;i+=2)
	{
		sum*=i;
	}
	cout << "1 ~ 200偶数乘积=" << sum;
	return 0;
}

2、【作图题】编写一个程序,从外界获取四个数,返回这前两个数的和的平方根和后两个数平方根的和,必须包含函数(非main)的调用

#include <iostream>
using namespace std;

double sum(double arr[])
{
	double x,y;
	x = ((arr[0]+arr[1]) / 2);
	y = ((arr[2]+arr[3]) / 2);
	return (x+y);
}

int main()
{
	double arr[4];
	for(int i=0;i<4;i++)
	{
		cin >> arr[i];
	}
	cout << "前两个数的和的平方根和后两个数平方根的和=" << sum(arr);
	return 0;
}

3、【作图题】编写一个程序,从外界获取三个数,返回这前两个数的和的平方根和第三个数的乘积,必须包含函数(非main)的调用

#include <iostream>
using namespace std;

double sum(double arr[])
{
	double x,y;
	x = ((arr[0]+arr[1]) / 2);
	y = (x * arr[2]);
	return y;
}

int main()
{
	double arr[3];
	for(int i=0;i<3;i++)
	{
		cin >> arr[i];
	}
	cout << "前两个数的和的平方根和第三个数的乘积 =" << sum(arr) << endl;
	return 0;
}

4、【作图题】编写一个程序,从外界获取两个数,返回这两个数的和的平方根,必须包含函数(非main)的调用

#include <iostream>
using namespace std;

double sum(double x, double y)
{
	return (x+y)/2;
}

int main()
{
	//【作图题】编写一个程序,从外界获取两个数,返回这两个数的和的平方根,必须包含函数(非main)的调用
	double x,y;
	cin >> x >> y;
	cout << "两个数的和的平方根 =" << sum(x,y) << endl;
	return 0;
}

5、【作图题】编写一个函数,从外界获取一个小数,返回该数整数部分的一半

#include <iostream>
using namespace std;

double halt(double x)
{
	int y = (int)x;
	double n = (double)y;
	return (n/2);
}

int main()
{
	double x;
	cin >> x;
	cout << "从外界获取一个小数,返回该数整数部分的一半=" << halt(x) << endl;
	return 0;
}

6、【作图题】编写一个程序,用于求从外界输入的三个数的最小公倍数和最大公约数。

#include <iostream>
using namespace std;

//最大公约数(最大公因数定义: 指两个或多个整数共有约数中最大的一个)
int gys(int x,int y, int w, int m)
{
	int gys = 1;
	for (int i = m; i > 1; i--)
	{
		if (x%i==0 && y%i==0 && w%i==0)
		{
			gys=i;
			break;
		}
	}
	return gys;
}

int main()
{
	//【作图题】编写一个程序,用于求从外界输入的三个数的最小公倍数和最大公约数。
	int x = 12;
	int y = 16;
	int w = 18;
	int m = ((x<y ? x:y) < w ? (x<y ? x:y) : w);
	
	int max = gys(x,y,w,m); //最大公约数
	int min = (x*y*w) / max; //最小公倍数(n个整数乘积 / 最大公倍数)
	
	cout << "最大公约数(" << x << "," << y << "," << w << "," << ")=" << max << endl;
	cout << "最小公倍数(" << x << "," << y << "," << w << "," << ")=" << min << endl;
	return 0;
}

7、【作图题】编写一个程序,用于求从外界输入的两个数的最小公倍数和最大公约数。

#include <iostream>
using namespace std;

//最大公约数(最大公因数定义: 指两个或多个整数共有约数中最大的一个)
int gys(int x,int y, int m)
{
	int gys = 1;
	for (int i = m; i > 1; i--)
	{
		if (x%i==0 && y%i==0)
		{
			gys=i;
			break;
		}
	}
	return gys;
}

int main()
{
	//【作图题】编写一个程序,用于求从外界输入的两个数的最小公倍数和最大公约数。
	int x = 12;
	int y = 16;
	int m = (x>y?x:y);
	int max = gys(x,y,m); //最大公约数
	int min = (x*y) / max; //最小公倍数(n个整数乘积 / 最大公倍数)
	cout << "最大公约数(" << x << "," << y << "," << ")=" << max << endl;
	cout << "最小公倍数(" << x << "," << y << "," << ")=" << min << endl;
	return 0;
}

8、【作图题】编写一个程序,用于生成平均值,数据从外界获取4个小数。

#include <iostream>
using namespace std;

// 求平均值
double avg(double avgs[], int arrayLength)
{
	double  sum = 0.00;
	for(int i=0;i<=arrayLength;i++)
	{
		sum +=avgs[i];
	}
	return sum/arrayLength;
}

int main()
{
	int len = 2;
	double arr[len];
	for(int i=0;i<len;i++)
	{
		cin >> arr[i];
	}
	cout << "平均值:" << avg(arr, len) << endl;
	return 0;
}

9、【作图题】编写程序,用于计算评委得分,5个评委的分数,去掉最高分和最低分,返回平均分。

#include <iostream>
using namespace std;

// 求平均值
double avg(double avgs[], int arrayLength)
{
	double max=avgs[0], min=avgs[0], sum;
	for(int i=0;i<arrayLength;i++)
	{
		if(avgs[i] > max)
		{
			max = avgs[i];
		}
		if(avgs[i] < min)
		{
			min = avgs[i];
		}
	}
	for(int j=0;j<arrayLength;j++)
	{
		double tem = avgs[j];
		if(tem < max && tem > min)
		{
			sum +=avgs[j];
		}
	}
	return (sum/(arrayLength-2));
}

int main()
{
	//9、【作图题】编写程序,用于计算评委得分,5个评委的分数,去掉最高分和最低分,返回平均分。
	int len = 5;
	double arr[len];
	for(int i=0;i<len;i++)
	{
		cin >> arr[i];
	}
	cout << "平均分:" << avg(arr, len) << endl;
	return 0;
}

10、【作图题】编写程序,从外界获取学生的5门科目成绩,返回平均值和最高分。

#include <iostream>
using namespace std;

// 求平均值
double avg(double avgs[], int arrayLength)
{
	double sum;
	for(int i=0;i<arrayLength;i++)
	{
		sum +=avgs[i];
	}
	return (sum/arrayLength);
}

double max(double avgs[], int arrayLength)
{
	double max =avgs[0];
	for(int i=0;i<arrayLength;i++)
	{
		if(max < avgs[i])
		{
			max =avgs[i];
		}
	}
	return max;
}

int main()
{
	//【作图题】编写程序,从外界获取学生的5门科目成绩,返回平均值和最高分。
	int len = 5;
	double arr[len];
	for(int i=0;i<len;i++)
	{
		cin >> arr[i];
	}
	cout << "平均分:" << avg(arr, len) << endl;
	cout << "最高分:" << max(arr, len) << endl;
	return 0;
}

11、【作图题】编写程序,从外界获取两个实数,返回平均值的整数部分。

#include <iostream>
using namespace std;

int main()
{
	double x,y, avg;
	cin >> x >> y;
	avg = (x+y)/2;
	int int_avg = (int)avg;
	cout << "平均值整数部分:" << avg << endl;
	return 0;
}

12、【作图题】求200-300之间的素数,并输出

#include <iostream>
using namespace std;

int main()
{
	//所有的偶数都不是素数,所以在循环过程中可以只对奇数进行判定,由此可以进行一步提高效率
	int i,j;
	for(i=201;i<=300;i++)
	{
		for(j=2;j<i;j++)
		{
			if(i%j==0) break; //能被整除所以不是素数直接跳出循环
		}
		if(j>=i)
		{
			cout << "200~300素数:" << i << endl;
		}
	}
	return 0;
}

13、【作图题】编写程序,从外界获取两个整数,用于求四个数的最大值,必须有可调用的函数。

#include <iostream>
using namespace std;

int max(int arr[], int len)
{
	int max = arr[0];
	for(int i=0;i<len;i++)
	{
		if(arr[i] > max) max=arr[i];
	}
	return max;
}

int main()
{
	//13、【作图题】编写程序,从外界获取两个整数,用于求四个数的最大值,必须有可调用的函数。
	int len = 4;
	int arr[len] = {111, 222};
	for(int i=2;i<len;i++)
	{
		cin >> arr[i];
	}
	cout << "最大值:" << max(arr, len);
	return 0;
}

14、【作图题】编写程序,从外界获取两个整数,用于求三个数的最大值,必须有可调用的函数。

#include <iostream>
using namespace std;

int max(int arr[], int len)
{
	int max = arr[0];
	for(int i=0;i<len;i++)
	{
		if(arr[i] > max) max=arr[i];
	}
	return max;
}

int main()
{
	//14、【作图题】编写程序,从外界获取两个整数,用于求三个数的最大值,必须有可调用的函数。
	int len = 3;
	int arr[len] = {111};
	for(int i=1;i<len;i++)
	{
		cin >> arr[i];
	}
	cout << "最大值:" << max(arr, len);
	return 0;
}

15、【作图题】编写程序,从外界获取两个整数,用于求两个数的最大值。

#include <iostream>
using namespace std;

int max(int x, int y)
{
	return x>y?x:y;
}

int main()
{
	int x,y;
	cin >> x >>y;
	cout << "最大值:" << max(x, y);
	return 0;
}

16、【作图题】编写一个程序,通过获取用户输入的数据来输出该数据是否是素数。

#include <iostream>
using namespace std;

int main()
{
	//17、【作图题】编写一个程序,通过获取用户输入的数据来输出该数据是否是素数。
	int i,x;
	cin >> x;
	for(i=2;i<x;i++)
	{
		if(x%i==0) break;
	}
	if(i>=x)
	{
		cout << "是素数:" << x << endl;
	} else
	{
		cout << "不是素数:" << x << endl;
	}
	return 0;
}

18、【作图题】求1-100之间的所有素数,并统计素数的个数。

#include <iostream>
using namespace std;

int main()
{
	//19、【作图题】求1-100之间的所有素数,并统计素数的个数。
	int i,x,count=0;
	for(i=1;i<100;i+=2)
	{
		for(x=2;x<i;x++)
		{
			if(i%x==0) break;
		}
		if(x>=i)	count+=1;
	}
	cout << "素数个数:" << count;
	return 0;
}

18、【作图题】编程显示任意输入5个数字中的最大值,最小值,平均值。

#include <iostream>
using namespace std;

int main()
{
	//19、【作图题】编程显示任意输入5个数字中的最大值,最小值,平均值。
	int len = 5;
	double arr[len];
	for(int i=0;i<len;i++)
	{
		cin >> arr[i];
	}
	
	double max=arr[0],min=arr[0],avg,count;
	for(int j=0;j<len;j++)
	{
		if(arr[j] > max) max=arr[j];
		if(arr[j] < min) min=arr[j];
		count += arr[j];
	}
	avg = (count / len);
	cout << "最大值:" << max << endl;
	cout << "最小值:" << min << endl;
	cout << "平均值:" << avg << endl;
	return 0;
}

19、【作图题】每次期末考试后,如果成绩低于60分则有一次补考机会,如果补考低于60分的则需要重修,如果重修成绩低于60分的还需要重修,直到成绩大于等于60分为止。 如果平时有三次缺勤的则直接重修,或者有缺考的直接重修。 请编写一个程序来实现以上功能,通过不同的用户输入数据来输出结果。

#include <iostream>
using namespace std;

void qq_cx(double y)
{
	if(y < 60)
	{
		cout << "重修没有通过,请输入重修成绩:" << endl;
		cin >> y;
		qq_cx(y);
	} else
	{
		cout << "考试通过!" << endl;
	}
}
int main()
{
	int x;
	double y;
	cout << "请输入考生缺勤次数:" << endl;
	cin >> x;
	if(x >= 3)
	{
		cout << "你的缺勤次数过多,滚去重修!" << endl;
		cout << "请输入重修成绩:" << endl;
		cin >> y;
		qq_cx(y);
	}
	else
	{
		cout << "请输入考生成绩:" << endl;
		cin >> y;
		if(y < 60)
		{
			cout << "考试没有通过,恭喜你获得一次补考机会!" << endl;
			cout << "请输入补考成绩:"<<endl;
			cin >> y;
			if(y < 60)
			{
				qq_cx(y);
			}
			else
			{
				cout << "恭喜你考试通过!" << endl;
			}
		} else
		{
			cout << "恭喜你考试通过!" << endl;
		}
	}
	return 0;
}

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值