2015-11-06 102 views
-12

我有個問題,有人問我,簡單地說,代碼是做什麼的?這段代碼做了什麼(C)

#define N(100) 
int main(void) 
{ 
    unsigned short i=0; 
    unsigned long arr[2*N+1]; 
    unsigned long a = 0; 

     for(i=0;i<N;i++){ 
      a ^= arr[i]; 
     } 
    printf("%lu",a); 
    return 0; 
} 

的答案:

答:arr是一個給定的陣列用2N偶數和一個奇數,則程序將打印奇數

B:arr是一個給定的數組,其中包含N對數字和相同字節數的一對數字,程序將打印此數字

C:arr是一個給定數組,其中包含N對相等的數字和一對不同的對,程序將打印不同的數字。

d:arr是一個給定的陣列數N對除以8完全沒有商和較小然後8一個號碼,該程序將打印這個號碼。

非常感謝!

+3

你基本上是要求我們做你的功課... – Kotshi

+2

你到目前爲止認爲什麼,爲什麼? –

+0

這不是我的家庭作業,我問你,因爲我從來沒有學過C,只有一點Java,我認爲它是C,但我不確定。 @ M.M – Guybalals

回答

2

作爲C,代碼是廢話! #define不起作用,arr在使用前未初始化,該循環僅涵蓋第一個N元素(而不是2*N+1)。

考慮到這一點,這些問題沒有意義。作爲聲明他們都是假的。

1

假設C是你的語言,這段代碼是垃圾。

#define N(100) 

慣於編譯,

#define N (100) 

是必要的。

此外點:

  1. 假設你在固定的#define誤差,所述陣列具有201層的元件。
  2. 它是單元化的,做它的東西是調用UB
  3. 答案選項都沒有任何意義。
  4. 該循環僅涵蓋前100個元素,它們全部初始化爲0,其餘未初始化。
+0

作爲#define N(100)我發現正確的答案是C.謝謝。 – Guybalals