Machine-translated by Google. Questions are authored in English.
Top

Discussion

What is the output of this C code? 

   int main()
    {
        if (~0 == 1)
            printf("yes\n");
        else
            printf("no\n");
    }

 

  • A.yes
  • B.no
  • C.Compile time error
  • D.Undefined

Answer: B

Correct answer: no

~0 flips every bit of zero, giving all ones - which in two’s complement is -1, not 1. So the comparison ~0 == 1 is false and the else branch prints no. Confusing ~ (bitwise NOT) with ! (logical NOT) is what the question is testing.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.