片头
嗨!各位小伙伴们,大家好!今天,我们将学习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++蓝桥杯基础篇(一)相关习题,希望对各位小伙伴有所帮助!!!
求点赞收藏加关注!!!
谢谢大家!!!