【GESP】C++一级练习BCQM3010、BCQM3012、BCQM3019,变量值交换
三道交换两个变量值的题目。从给定值到读取输入循序渐进,可以一起练习。
BCQM3010
题目要求
描述
现有两个整型变量a和b,分别存放了整数20和22。编程实现交换两个变量里的数,并输出结果。
输入
无
输出
如题
输入样例
无
输出样例
1
2
a=22
b=20
题目分析
最简单的交换两个变量值的题目。交换变量的值也算是涉及到算法的最基础的问题了。思路很简单,通过一个中间变量来交换两个变量的值。即:
1
2
3
a的值 -> 中间变量
b的值 -> a
中间变量的值 -> b
代码参考
1
2
3
4
5
6
7
8
9
10
#include <cstdio>
int main() {
int a = 20, b = 22, c = 0;
c = a;
a = b;
b = c;
printf("a=%d\n", a);
printf("b=%d", b);
return 0;
}
BCQM3012
题目要求
描述
尼克是一位好学的学生,他经常做实验。有一天他在做实验的时候需要交换一瓶10毫升的红墨水和一瓶20毫升的蓝墨水,但他不会,便向狐狸老师求助,狐狸老师念了一句咒语“阿布拉卡达布拉”帮助了尼克。试编一程序,模拟这一过程。
输入
无
输出
第一行输出交换前两个瓶子的墨水数量。
第二行交换后两个瓶子的墨水数量(单位ml)。
输入样例
无
输出样例
1
2
a=10 b=20
a=20 b=10
题目分析
与BCQM3010类似,只是输出格式不同。并且注意要先把交换前的值输出,再输出交换后的值。
代码参考
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <cstdio>
int main() {
int a = 10, b = 20, c = 0;
// 交换前
printf("a=%d ", a);
printf("b=%d\n", b);
c = b;
b = a;
a = c;
// 交换后
printf("a=%d ", a);
printf("b=%d\n", b);
return 0;
}
BCQM3019
题目要求
描述
尼克是一位好学的学生,他经常做实验。有一天他在做实验的时候需要交换一瓶x毫升的红墨水和一瓶y毫升的蓝墨水,但他不会,便向狐狸老师求助,狐狸老师念了一句咒语“阿布拉”帮助了尼克。试编一程序,模拟这一过程。
输入
输入x, y
输出
第一行输出交换前两个瓶子的墨水数量。
第二行交换后两个瓶子的墨水数量(单位ml)。
输入样例
10 20
输出样例
1
2
a=10 b=20
a=20 b=10
题目分析
在BCQM3012基础上增加了变量输入环节,先读取变量值然后在交换和输出。读取变量输入可以用scanf
或cin
函数。
代码参考
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <cstdio>
int main() {
int x, y, c = 0;
// 读取变量输入值
scanf("%d%d", &x, &y);
// 输出交换前变量值
printf("a=%d ", x);
printf("b=%d\n", y);
c = y;
y = x;
x = c;
// 输出交换后变量值
printf("a=%d ", x);
printf("b=%d\n", y);
return 0;
}
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
本文由作者按照 CC BY 4.0 进行授权