當前位置:成語大全網 - 新華字典 - 請高手幫我解決壹下這道C語言題目,謝謝!

請高手幫我解決壹下這道C語言題目,謝謝!

“∧”是通過二進制的數來操作的。。。所以在執行命令中要把每個數字轉換成二進制來進行運算。

而#define是宏定義,只用來做簡單的替換

所以過程替換後就應該變成

#include<stdio.h>

main( )

{

int a=3,b=5,c=7;

a=a∧b;

b=a∧b;

a=a∧b;

b=b∧c;

c=b∧c;

b=b∧c;

a=a∧c;

c=a∧c;

a=a∧c;

printf("a=%d,b=%d,c=%d\n",a,b,c);

}

以JH(a,b)舉例 它就等於 a=a∧b;b=a∧b;a=a∧b;

a=3=0011

b=5=0101

a=a∧b=0110=6

b=0110∧0101=0011=3

a=0110∧0011=0101=5

所以這裏的宏定義實現的實際上就是x、y兩數的對調

因為假設x的某壹位上是1,y的該位是0 x=x∧y在該位就是1

y=x∧y在該位上就為1 x=x∧y在該位得0

假設x的某壹位上是0,y的該位是0 x=x∧y在該位就是0

y=x∧y在該位上就為0 x=x∧y在該位得0

假設x的某壹位上是1,y的該位是1 x=x∧y在該位就是0

y=x∧y在該位上就為1 x=x∧y在該位得1

假設x的某壹位上是0,y的該位是1 x=x∧y在該位就是1

y=x∧y在該位上就為0 x=x∧y在該位得1

所以最後的運行結果就是a與b對換,然後b與c對換,最後a與c對換

運行結果應為3 7 5