题目
假设现在有两个变量分别是x和y,其中x=3,y=5,以下选项中,( )不能交换两个变量中的值。A. x=x+y y=x-y x=x-yB. x,y=y,xC. x=y y=xD. t=x x=y y=t
假设现在有两个变量分别是x和y,其中x=3,y=5,以下选项中,( )不能交换两个变量中的值。
A. x=x+y y=x-y x=x-y
B. x,y=y,x
C. x=y y=x
D. t=x x=y y=t
题目解答
答案
C. x=y y=x
解析
本题考查变量值交换的不同方法及对各方法原理的理解。解题思路是依次分析每个选项中代码执行后变量 x 和 y 的值是否实现了交换。
选项A
- 初始时,$x = 3$,$y = 5$。
- 执行
x = x + y后,$x = 3 + 5 = 8$。 - 执行
y = x - y后,$y = 8 - 5 = 3$。 - 执行
x = x - y后,$x = 8 - 3 = 5$。
此时 $x = 5$,$y = 3$,实现了变量值的交换。
选项B
在Python中,x, y = y, x 是一种简洁的变量值交换方式。
- 初始时,$x = 3$,$y = 5$。
- 执行
x, y = y, x后,$x$ 被赋值为原来y的值 $5$,$y$ 被赋值为原来x的值 $3$。
此时 $x = 5$,$y = 3$,实现了变量值的交换。
选项C
- 初始时,$x = 3$,$y = 5$。
- 执行
x = y后,$x$ 的值变为 $5$。 - 接着执行
y = x,由于此时 $x$ 已经是 $5$,所以y也被赋值为 $5$。
此时 $x = 5$,$y = 5$,没有实现变量值的交换。
选项D
这是一种常见的使用临时变量进行值交换的方法。
- 初始时,$x = 3$,$y = 5$。
- 执行
t = x后,$t = 3$。 - 执行
x = y后,$x = 5$。 - 执行
y = t后,$y = 3$。
此时 $x = 5$,$y = 3$,实现了变量值的交换。