In the context of the following printf() in C, pick the best statement.
i) printf ( "%d" ,8);
ii) printf ( "%d" ,090);
iii) printf ( "%d" ,00200);
iv) printf ( "%d" ,0007000);
|
(A) Only i) would compile. And it will print 8.
(B) Both i) and ii) would compile. i) will print 8 while ii) will print 90
(C) All i), ii), iii) and iv) would compile successfully and they will print 8, 90, 200 & 7000 respectively.
(D) Only i), iii) and iv) would compile successfully. They will print 8, 128 and 3584 respectively.
Answer: (D)
Explanation:
As per C standard, “An octal constant consists of the prefix 0 optionally followed by a sequence of the digits 0 through 7 only.”
So 090 isn’t valid because 0 prefix is used for octal but 9 isn’t valid octal-digit.
Quiz of this Question