一道考察賦值語句的面試題

2021-07-04 02:51:35 字數 831 閱讀 9641

#include using namespace std;

int main()

{ int x=2,y,z;

x*=(y=z=5); cout<

解析:x*=(y=z=5)的意思是說5賦值給z,z再賦值給y,x=x*y,所以x為2*5=10.

x==(y=z)的意思是說z賦值給y,然後看x和y相等否?不管相等不相等,x並未發生變化,仍然是0.

x=(y==z)的意思是說首先看y和z相等否,相等則返回乙個布林值1,不相等則返回乙個布林值0.現在y和z是相等的,所以返回的布林值是1,再把1賦值給x,所以x是1.

x=(y&z)的意思是首先使y和z按位與.y是3,z也是3.y的二進位制數字是0011,z的二進位制數字也是0011.按位與的結果如下表所示.y0

011z

0011

y&z001

1 所以y&z的二進位制數字仍是0011,也就是還是3.再賦值給x,所以x是3.

x=(y&&z)的意思是說首先使y和z進行與運算.與運算是指如果y為真,z為真,則(y&&z)為真,返回乙個布林值1.這時y與z都為3,所以為真,返回1,所以x為1.

x=(y|z)的意思是說使y和z按位或.y是4,z是3.y的二進位制數字是0100,z的二進位制數字是0011.與的結果如下表所示.y0

100z

0011

y|z011

1 所以y|z的二進位制數字是0111,也就是7.再賦值給x,x為7.

x=(y||z)的意思是說首先使y和z進行或運算.或運算是指如果y和z中有乙個為真則為真,返回乙個布林值1.這時y和z都為真,所以為真,返回1.所以x為1.

答案:10,10,1,3,1,7,1.

一道面試題

一道面試題 射擊運動員10發打中90環有多少種可能,請編寫程式計算出來,並列印出結果,0環和10環均有效。打中90環就是沒打中10環,所以打中90環跟打中10環的可能性是一樣的。然後開始遞迴狂打槍,一到10就記錄 if params i 10 在迴圈的控制中已經排除了大於10的可能性 i 10 pa...

一道面試題

前些時候在找工作,就在準備結束此次找工作歷程的時候,去了一家公司面試,去了之後技術經理直接帶到一台電腦旁,給了一張紙條,上面是這樣的題目 用c或c 來實現 1 建立一棵樹,該樹的深度是隨機的,每個節點的位元組點數是隨機的。2 給每個節點分配一段隨機大小的記憶體空間,給每個節點賦乙個隨機數。3 遍歷這...

一道面試題

如果n為偶數,則將它除以2,如果n為奇數,則將它加1或者減1。問對於乙個給定的n,怎樣才能用最少的步驟將它變到1。例如 n 61 n 60 n 2 30 n 2 15 n 16 n 2 8 n 2 4 n 2 2 n 2 1 public class myclass public static vo...