2023年GESP等级考试12月三级编程题

这篇文章介绍了一道GESP等级考试的编程题目,涉及将长度和重量单位从大单位转换为小单位,如千米转换为毫米,千克转换为克等。给出了一个C++代码示例来解决此类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GESP等级考试12月三级:编程题真题及答案解析

试题名称:单位转换时间

限制:1.0s

内存限制:128.0MB

[问题描述]

小杨这周的数学作业是做单位转换,喜欢编程的小杨决定编程帮他解决这些问题,小杨只学了长度单位和重量单位,具体来说:

长度单位包括千米(km)、米(m)、毫米(mm),它们之间的关系是:1km-1000m-1000000mm

重量单位包括千克(kg)、克(g)、毫克(mg),它们之间的关系是:1kg-1000g=1000000mg,

小杨的作业只涉及将更大的单位转换为更小的单位,也就是说,小杨的作业只会包含如下题型:米转换为毫米,千米转换为毫米,千米转换为米,克转换为毫克,千克转换为毫克,千克转换为克.

现在,请你帮忙完成单位转换的程序。

[输入描述]

输入的第一行为一个整数N,表示题目数量。

接下来 N行,每行一个字符串,表示转换单位的题目,格式为x单位1=?单位2。其中,x为一个不超过1000的非负整数,单位1和单位2分别为两个单位的英文缩写,保证它们都是长度单位或都是重量单位,且单位1比单位2更大。

例如,如果题目需要你将1km转换为mm,则输入为1km=?mm。

保证1≤N≤1000。

[输出描述]

输出N行,依次输出所有题目的答案,输出时,只需要将输入中的?代入答案,其余部分一字不差地输出即可。由于小杨的题目只涉及将更大的单位转换为更小的单位,并且输入的x是整数,因此答案一定也是整数。

例如,如果题目需要你将1km转换为mm,输入为1km-?mm,则你需要输出1 km=1000000mm。

[特别提醒]

在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。输入格式将严格按照题目要求,且你的输出必须和标准答案完全一致才能得分,请在提交前仔细检查。

[样例输入1]

2

1km=?mm

1m=?mm

[样例输出1]

1km=1000000mm

1m=1000mm

[样例输入2]

5

100m=?mm

1000km=?m

20kg=?g

200g=?mg

0kg=?mg

1km=1000000mm

1m=1000mm

[样例输出2]

100m=100000mm

1000km=1000000m

20kg=20000mg

0kg=0mg 

AC代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	int a;
	string b,c,d,e,f;
	for(int i=1;i<=n;++i)
	{
		cin>>a>>b>>c>>d>>e;
		if(b=="km" && e=="m")
		{
			cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<a*1000<<" "<<f<<endl;
		}
		else if(b=="km" && e=="mm")
		{
			cout<<a<<" "<<b<<" "<<c<<" "<<" "<<a*1000000<<" "<<e<<endl;
		}
		else if(b=="m" && e=="mm")
		{
			cout<<a<<" "<<b<<" "<<c<<" "<<" "<<a*1000<<" "<<e<<endl;
		}
		else if(b=="kg" && e=="g")
		{
			cout<<a<<" "<<b<<" "<<c<<" "<<" "<<a*1000<<" "<<e<<endl;
		}
		else if(b=="kg" && e=="mg")
		{
			cout<<a<<" "<<b<<" "<<c<<" "<<" "<<a*1000000<<" "<<e<<endl;
		}
		else if(b=="g" && e=="mg")
		{
			cout<<a<<" "<<b<<" "<<c<<" "<<" "<<a*1000<<" "<<e<<endl;
		}
	}
	return 0;
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值