C++蓝桥杯基础篇(一)

片头

嗨!各位小伙伴们,大家好!今天,我们将学习C++蓝桥杯基础的相关知识,准备好了吗,咱们开始咯~


第1题 A+B

代码如下:

#include<iostream>
using namespace std;

int main(){
    int a,b;
    cin>>a>>b;
    int ret = a+b;
    cout<<ret<<endl;
    
    return 0;
}

第2题 差

代码如下:

//差
//读取四个整数A,B,C,D,并计算(A*B-C*D)的值

int main() {
	int A, B, C, D;
	cin >> A >> B >> C >> D;
	int ret = A * B - C * D;
	cout << "DIFERENCA = " << ret << endl;

	return 0;
}

第3题 计算圆的面积

代码如下:

//计算圆的面积
// A = ΠR^2
int main() {
	double pai = 3.14159;
	double R;
	scanf("%lf", &R);
	double ret = pai * R * R;
	printf("A = %.4lf\n", ret);

	return 0;
}

第4题 平均数1

代码如下:

//平均数1
//读取2个浮点数A和B的值,对应于2个学生的成绩
//计算平均分,A的成绩权重为3.5,B的成绩权重为7.5
//成绩的范围在0~10之间,且均保留1位小数
//输入占2行,每行包含1个浮点数,第一行表示A,第二行表示B
//输出为"MEDLA = X",其中X为平均分,结果保留5位小数

int main() {
	double A, B;
	scanf("%lf%lf", &A, &B);
	double ret = (A * 3.5 + B * 7.5) / 11;
	printf("MEDLA = %.5lf\n", ret);

	return 0;
}

第5题 工资

代码如下:

//工资
//读取一名员工编号,本月的工作总时长,以及时薪
//并输出他的工资条,工资条中包括员工编号和员工月收入
//输入包含2个整数和1个浮点数,分别代表员工编号,工作时长,以及时薪
//输出共2行,第一行格式为"NUMBER = X",其中X为员工编号
//第2行格式为"SALARY = U$ Y",其中Y为该员工月收入,保留2位小数

int main() {
	int number, time;
	double TimeSalary;
	scanf("%d%d%lf", &number, &time, &TimeSalary);

	double ret = time * TimeSalary;//月收入
	printf("NUMBER = %d\n", number);//员工编号
	printf("SALARY = U$ %.2lf\n", ret);

	return 0;
}

第6题 油耗

代码如下:

//油耗
//给定一个汽车行驶的总路程(km)和消耗的油量(l),
//求汽车每消耗1升汽油可行驶多少公里路程
//第一行包含整数X,表示行驶总路程
//第二行包含保留1位小数的浮点数Y,表示消耗的油量
//输出格式为"M km/l",其中,M为计算结果,保留3位小数

int main() {
	int X;
	double Y;
	scanf("%d%lf", &X, &Y);
	printf("%.3lf km/l\n", (X * 1.0) / Y);

	return 0;
}

第7题 两点间的距离

代码如下:

//两点间的距离
//给定2个点P1和P2,其中,P1的坐标为(x1,y1),P2的坐标为(x2,y2)
// 距离 = sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1))
//输入共2行,每行包含2个双精度浮点数xi,yi,表示其中1个点的坐标
//输入数值均保留1位小数
//输出结果保留4位小数

int main() {
	double x1, x2, y1, y2;
	scanf("%lf%lf", &x1, &y1);
	scanf("%lf%lf", &x2, &y2);
	double ret = sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
	printf("%.4lf\n", ret);

	return 0;
}

第8题 钞票

代码如下:

方法一:

//钞票
//读取一个整数值并将其分解为多张钞票的和,每种面值的钞票可以使用多张
//并要求所用的钞票尽可能少
//请你输出读取值和钞票清单
//钞票的可能面值为100,50,20,10,5,2,1
//输入一个整数N
//输出读取数值以及每种面值的钞票的需求数量
// nota(s) de R$ 100,00
// nota(s) de R$ 50,00
// nota(s) de R$ 20,00
// nota(s) de R$ 10,00
// nota(s) de R$ 5,00
// nota(s) de R$ 2,00
// nota(s) de R$ 1,00


int main() {
	int N;
	cin >> N;

	int red = N / 100;  //100元钞票的数量
	N = N - red * 100;
	cout << red << " nota(s) de R$ 100,00" << endl;

	int green = N / 50; //50元钞票的数量
	N = N - green * 50;
	cout << green << " nota(s) de R$ 50,00" << endl;

	int brown = N / 20; //20元钞票的数量
	N = N - brown * 20;
	cout << brown << " nota(s) de R$ 20,00" << endl;

	int blue = N / 10; //10元钞票的数量
	N = N - blue * 10;
	cout << blue << " nota(s) de R$ 10,00" << endl;

	int purple = N / 5; //5元钞票的数量
	N = N - purple * 5;
	cout << purple << " nota(s) de R$ 5,00" << endl;

	int yellow = N / 2; //2元钞票的数量
	N = N - yellow * 2;
	cout << yellow << " nota(s) de R$ 2,00" << endl;

	int light = N / 1; //1元钞票的数量
	cout << light << " nota(s) de R$ 1,00" << endl;

	return 0;
}

方法二:

int main() {
	int N;
	cin >> N;

	int num_100 = N / 100;
	int num_50 = N % 100 / 50;
	int num_20 = N % 100 % 50 / 20;
	int num_10 = N % 100 % 50 % 20 / 10;
	int num_5 = N % 100 % 50 % 20 % 10 / 5;
	int num_2 = N % 100 % 50 % 20 % 10 % 5 / 2;
	int num_1 = N % 100 % 50 % 20 % 10 % 5 % 2;

	cout << num_100 <<"nota(s) de R$ 100,00" << endl;
	cout << num_50 << "nota(s) de R$  50,00" << endl;
	cout << num_10 << "nota(s) de R$  10,00" << endl;
	cout << num_20 << "nota(s) de R$  20,00" << endl;
	cout << num_10 << "nota(s) de R$  10,00" << endl;
	cout << num_5 << "nota(s) de R$   5,00" << endl;
	cout << num_2 << "nota(s) de R$   2,00" << endl;
	cout << num_1 << "nota(s) de R$   1,00" << endl;

	return 0;
}

第9题 时间转换

代码如下:

//时间转换
//读取一个整数值,它代表持续时间(以秒为单位),
//请你将其转换为小时:分钟:秒来表示
//输入一个整数N
//输出转换后的时间表示,格式为"hours:minutes:seconds"

int main() {
	int N;
	cin >> N;

	int hours = N / 3600; //转换为多少小时
	N = N - hours * 3600;

	int minutes = N / 60; //转换为多少分钟
	N = N - minutes * 60;

	int seconds = N / 1;  //转换为多少秒
	cout << hours <<":"<< minutes <<":" <<seconds << endl;

	return 0;
}

方法二:

int main() {
	int N;
	cin >> N;

	int hour = N / 3600;			//小时
	int minutes = N % 3600 / 60;	//分钟
	int seconds = N % 3600 % 60;	//秒

	cout << hour << ":" << minutes << ":" << seconds << endl;
	return 0;
}

第10题 简单乘积

代码如下:

//简单乘积
//读取2个整数值
//计算乘积并将结果存储在名为PROD的变量中
//输出格式为"PROD = X",其中,X为乘积结果

int main9() {
	int a, b;
	cin >> a >> b;
	int PROD = a * b;
	cout << "PROD = " << PROD << endl;

	return 0;
}

第11题 简单计算

代码如下:

//简单计算
//给定2个产品的产品编号,产品数量以及产品单价
//计算买下2种产品一共需要花费多少钱
//输入共2行
//每行包含2个整数和1个浮点数,
//表示其中1件产品的产品编号,产品数量以及产品单价
//输出格式为"VALOR A PAGAR:R$ X",其中X为产品总价值,保留2位小数


int main() {
	int No1, num1,No2,num2;
	double price1,price2;

	scanf("%d%d%lf", &No1, &num1, &price1);
	scanf("%d%d%lf", &No2, &num2, &price2);

	double ret1 = num1 * price1;
	double ret2 = num2 * price2;
	double Ret = ret1 + ret2;

	printf("VALOR A PAGAR:R$ %.2lf\n", Ret);

	return 0;
}

第12题 球的体积

代码如下:

//球的体积
//给定一个球体的半径R,计算球的体积
//计算球体的公式为 V=(4/3)*Π*R^3
//Π取3.14159
//输入一个整数R
//输出格式为"VOLUME = X",X为球体的体积,结果保留3位小数

int main() {
	int R;
	double pai = 3.14159;
	cin >> R;
	double V = (4 / 3.0) * pai * (R * R * R);
	printf("VOLUME = %.3lf\n", V);

	return 0;
}

第13题 计算面积

代码如下:

//计算面积
//给定3个浮点数A,B,C
//(1)底边为A,高为C的三角形
//(2)半径C的圆,pi=3.14159
//(3)底边为A和B,高为C的梯形
//(4)边长为B的正方形
//(5)边长为A和B的长方形

//输入共1行,3个浮点数A,B,C

//输出共5行,
//第一行,格式为"TRIANGULO:X",其中,X为所求三角形的面积
//第二行,格式为"CIRCULO:X",其中,X为所求圆形面积
//第三行,格式为"TRAPEZIO:X",其中,X为所求梯形面积
//第四行,格式为"QUADRADO:X",其中,X为所求正方形面积
//第五行,格式为"RECTANGLE:X",其中,X为所求长方形面积
//所有结果保留3位小数

int main13() {
	double A, B, C;
	double pi = 3.14159;
	scanf("%lf%lf%lf", &A, &B, &C);

	printf("TRIANGULO: %.3lf\n", A * C * 0.5);
	printf("CIRCULO: %.3lf\n", pi * C * C);
	printf("TRAPEZIO: %.3lf\n", (A + B) * C * 0.5);
	printf("QUADRADO: %.3lf\n", B * B);
	printf("RECTANGLE: %.3lf\n", A * B);

	return 0;
}

第14题 平均数2

代码如下:

//平均数2
//读取3个浮点数 A,B,C
//计算平均分,A的成绩权重为2,B的成绩权重为3,C的成绩权重为5
//成绩的取值范围在0~10之间,均保留1位小数
//输入共3行,每行包含1个浮点数
//第1行表示A,第2行表示B,第3行表示C
//输出格式为"MEDIA = X",其中,X为平均分,结果保留1位小数

int main() {
	double A, B, C;
	scanf("%lf%lf%lf", &A, &B, &C);
	double ave = (A * 2 + B * 3 + C * 5) / (2 + 3 + 5);
	printf("MEDIA = %.1lf\n", ave);

	return 0;
}

第15题 工资和奖金

代码如下:

//工资和奖金
//给定你一个销售人员的名字,底薪以及月销售额
//计算月收入
//月收入 = 底薪+15%的月销售额
//输入第1行包含一个由大写字母构成的长度不超过10的字符串,
//表示销售人员的名字

//第2行包含1个浮点数,表示该人员的底薪
//第3行包含1个浮点数,表示该人员的月销售额

//输出格式为"TOTAL = R$ X",X为该人员月收入
//结果保留2位小数

int main() {
	string name;
	cin >> name;

	double dixin;
	cin >> dixin;

	double month_sale;
	cin >> month_sale;

	double TOTAL = dixin + month_sale * 0.15;
	printf("TOTAL = R$ %.2lf\n", TOTAL);

	return 0;
}

第16题 最大值

代码如下:

//最大值
//给定3个整数,找出最大值
//max(a,b) = (a+b+abs(a-b))*0.5
//输出格式为"X eh o maior",其中,X为3个数中的最大值

//擂台法
int main() {
	int a[3];//读取键盘中录入的数字
	for (int i = 0; i <= 2; i++) {
		cin >> a[i];
	}

	int max = a[0];//设定最大值为下标为0的数
	for (int i = 1; i <= 2; i++) {
		if (a[i] > max) {
			max = a[i];
		}
	}
	cout << max << " eh o maior" << endl;
	return 0;
}

第17题 距离

代码如下:

//距离
//2辆汽车在同一地点,同时,沿同一方向前进
//1辆车的速度为60km/h,另一辆车的速度为90km\h
//显然,快车和慢车的距离会不断拉开,
//每过1个小时(60min),两车的距离就拉开30公里
//现在,2车之间的距离为L公里,请你求出两车已经行驶了多长时间

//输入一个整数L,表示2车之间的距离
//输出格式为"X minutos",其中,X为已经行驶的时间,单位为分钟

int main() {
	int L;
	cin >> L;//表示2车之间的距离

	int t = L / (90 - 60);//走了多少小时
	t = t * 60;			  //走了多少分钟

	cout << t << "minutos" << endl;
	return 0;
}

第18题 燃料消耗

代码如下:

//燃料消耗
//一辆汽车每行驶12公里需要消耗1升汽油
//该汽车的行驶速度S(km\h)和行驶时间T(h)
//计算该车在行驶过程中一共消耗了多少升汽油

//输入第一行包含1个整数T,表示行驶时间(h)。
//第二行包含1个整数S,表示行驶速度(km\h)

//输出行驶期间的总油耗,保留3位小数

int main() {
	int T, S;
	scanf("%d%d", &T, &S);
	double ret = (T * S) / 12.0;
	printf("%.3lf\n", ret);
	return 0;
}

第19题 天数转换

代码如下:

方法一:

//天数转换
//读取对应于一个人的年龄(以天为单位)的整数值
//并转化为年,月,日表示方式输出
//年,月,日分别对应"ano(s)","mes(es)","dia(s)"
//方便计算,假设全年365天,每月30天
//输入一个整数N
//输出转换后的天数表达


int main() {
	int age_day;
	cin >> age_day;

	int ano = age_day / 365;//计算年份
	age_day = age_day - ano * 365;

	int mes = age_day / 30;//计算月份
	age_day = age_day - mes * 30;

	int dia = age_day / 1;//计算日期

	cout << ano << " 年" << mes << " 月" << dia << " 日" << endl;

	return 0;
}

方法二:

int main() {
	int N;
	cin >> N;

	int year = N / 365;        //年数
	int month = N % 365 / 30;  //月数
	int day = N % 365 % 30;    //天数

	cout << year <<"年" << month << "月" << day << "日" << endl;
	return 0;
}

第20题 钞票和硬币

代码如下:

方法一:

//钞票和硬币
//读取一个带有2个小数位的浮点数,代表货币价值
//将该值分解为多种钞票和硬币的和
//每种面值的钞票和硬币使用数量不限
//要求使用的钞票和硬币的数量尽可能少

//钞票的面值是100,50,20,10,5,2
//硬币的面值是1,0.5, 0.25, 0.10, 0.05, 0.01

//输入一个浮点数N
//输出每种面值的钞票和硬币的需求数量

int main() {
	double money;
	scanf("%lf", &money);
	double temp = money;

	int zheng = temp;			   //整数部分
	double xiaoshu = money - zheng;//小数部分

	int num_100 = zheng / 100;
	zheng = zheng -  num_100 * 100;

	int num_50 = zheng / 50;
	zheng = zheng - num_50 * 50;

	int num_20 = zheng / 20;
	zheng = zheng - num_20 * 20;

	int num_10 = zheng / 10;
	zheng = zheng - num_10 * 10;

	int num_5 = zheng / 5;
	zheng = zheng - num_5 * 5;

	int num_2 = zheng / 2;
	zheng = zheng - num_2 * 2;

	int num_1 = zheng / 1;
	zheng = zheng - num_1;

	cout << num_100 << " 张100元" << endl;
	cout << num_50  <<"  张50元"  << endl;
	cout << num_20  <<"  张20元"  << endl;
	cout << num_10  <<"  张10元"  << endl;
	cout << num_5   <<"  张5元"   << endl;
	cout << num_2   <<"  张2元"   << endl;
	cout << num_1   <<"  张1元"   << endl;


	//0.5, 0.25, 0.10, 0.05, 0.01
	int num_half_5 = xiaoshu / (0.5);
	xiaoshu = xiaoshu - num_half_5 * (0.5);

	int num_half_25 = xiaoshu / (0.25);
	xiaoshu = xiaoshu - num_half_25 * (0.25);

	int num_shalf_1 = xiaoshu / (0.10);
	xiaoshu = xiaoshu - num_shalf_1 * (0.10);

	int num_shalf_5 = xiaoshu / (0.05);
	xiaoshu = xiaoshu - num_shalf_5 * (0.05);

	int num_sshalf_1 = xiaoshu / (0.01);
	xiaoshu = xiaoshu - num_sshalf_1 * (0.01);

	cout << num_half_5   <<"   张0.5元" << endl;
	cout << num_half_25  << "  张0.25元" << endl;
	cout << num_shalf_1  << "  张0.10元" << endl;
	cout << num_shalf_5  << "  张0.05元" << endl;
	cout << num_sshalf_1 << "  张0.01元" << endl;

	return 0;
}

方法二: 将输入的带小数的金额扩大100倍,再进行计算

int main() {
	double money;
	scanf("%lf", &money);	//键盘中读取带2位小数的金额
	int n = money * 100;	//将金额扩大100倍

	printf("NOTAS:\n");
	printf("%d nota(s) de R$ 100\n", n / 10000); n %= 10000;
	printf("%d nota(s) de R$ 50\n", n / 5000); n %= 5000;
	printf("%d nota(s) de R$ 20\n", n / 2000); n %= 2000;
	printf("%d nota(s) de R$ 10\n", n / 1000); n %= 1000;
	printf("%d nota(s) de R$ 5\n", n / 500); n %= 500;
	printf("%d nota(s) de R$ 2\n", n / 200); n %= 200;
	printf("%d nota(s) de R$ 1\n", n / 100); n %= 100;

	printf("MOEDAS:\n");
	printf("%d moeda(s) de R$ 0.50\n", n / 50); n %= 50;
	printf("%d moeda(s) de R$ 0.25\n", n / 25); n %= 25;
	printf("%d moeda(s) de R$ 0.10\n", n / 10); n %= 10;
	printf("%d moeda(s) de R$ 0.05\n", n / 5);  n %= 5;
	printf("%d moeda(s) de R$ 0.01\n", n / 1);  n %= 1;

	return 0;
}

片尾

今天我们学习了C++蓝桥杯基础篇(一)相关习题,希望对各位小伙伴有所帮助!!!

求点赞收藏加关注!!!

谢谢大家!!!

相关推荐
White の algo18 分钟前
C语言常见概念
c语言·开发语言·算法
阿猿收手吧!20 分钟前
【C语言】C语言经典面试题详解
linux·c语言·开发语言·算法
m0_7482361124 分钟前
2024 Rust现代实用教程:1.1Rust简介与安装更新
开发语言·数据库·rust
SomeB1oody31 分钟前
【Rust自学】20.4. 结语:Rust学习一阶段完成+附录
开发语言·后端·学习·rust
五行星辰33 分钟前
Java 读取 Word 模板文档并替换内容生成新文档
java·开发语言·word
旺代1 小时前
Qt实现简易视频播放器
开发语言·qt
獨枭1 小时前
如何在 Qt 中添加和使用系统托盘图标
开发语言·数据库·qt
瀛洲客1 小时前
Qt 支持的动画格式对比,Lottie/APNG/GIF/WEBP
开发语言·qt·lottie动画·apng动画·gif+ webp
JAVA新视界1 小时前
Spring JDBC模块解析 -深入SqlParameterSource
java·开发语言·数据库·spring boot·sql·spring
__基本操作__1 小时前
方波的基波和谐波详细推导,以及matlab验证[电路原理---2]
开发语言·学习·matlab