题库首页 › GESP等级认证(C++) › 题目 25363

a,b是整型变量,各自有互不相同的初始值。下列程序实现了什么效果( )。 a=a^b; b=a^b; a=a^b;

A:a,b 的值从始至终都没有改变。
B:a,b 的值实现了互换。
C:a,b 的值互换了以后,又还回去了,相当于没有变化。
D:a,b 的值最后和原值不一样,没有任何意义。

正确答案:B

答案解析

使用异或运算的特性:任何数与自身异或结果为0,任何数与0异或结果为自身。第一步将a更新为a与b的异或值;第二步将b更新为当前a(即原a与原b异或)再与当前b(即原b)异或,结果为原a;第三步将a更新为当前a(即原a与原b异或)再与当前b(即已更新为原a的值)异或,结果为原b。整个过程利用异或运算的可逆性完成两个变量值的交换,无需额外临时变量。

试卷来源:202603 CCF-GESP编程能力等级认证C++三级真题

本卷相关题目

在线做题 同科目题库