2015-11-06 173 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