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

Discussion

What is the output of this C code?

int main()
    {
        int i = 5;
        int l = i / -4;
        int k = i % -4;
        printf("%d %d\n", l, k);
        return 0;
    }

 

  • A.Compile time error
  • B.-1  1
  • C.1  -1
  • D.Run time error

Answer: B

Correct answer: -1 1

Integer division truncates toward zero, so \(5 / (-4) = -1\) rather than \(-2\). The remainder then follows from \((a/b) \times b + a\%b = a\):

\[ (-1) \times (-4) + r = 5 \;\Rightarrow\; r = 1 \]

The remainder takes the sign of the dividend, which is positive here, so the output is -1 1.

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

Post your comment

Please log in or register to post a comment.