What is the output of the following C program? (Assume little-endian representation, with the least significant byte at the lowest address, and a two-byte short int.)
#include <stdio.h>
int main()
{
union saving {
short int one;
char two[2];
};
union saving m;
m.two[0] = 5;
m.two[1] = 2;
printf("%d, %d, %d\n", m.two[0], m.two[1], m.one);
}
Pick an option to check yourself, or open the answer below.
Show answer & explanation
Correct answer: D. 5, 2, 517
Explanation
two[0] is the low byte and two[1] the high byte of one, so one = 2 × 256 + 5 = 517.
More Programming Languages and Computer Graphics questions
- Given below are three implementations of swap() in C++: (a) void swap(int a, int b) { int temp; temp = a; a = b; b = temp; } called as swap…
- In Java, which of the following statements is/are True ? S1 : The ‘final’ keyword applied to a class definition prevents the class from bei…
- Which of the following statements is/are True ? P : C programming language has a weak type system with static types. Q : Java programming l…
- A graphic display system has a frame buffer that is 640 pixels wide, 480 pixels high and 1 bit of color depth. If the access time for each…
- Which of the following statements is/are True regarding the solution to the visibility problem in 3D graphics ? S1 : The Painter’s algorith…
- Consider the matrix M = [2 0 2; 0 1 1; 0 0 1] representing a set of planar (2D) geometric transformations in homogeneous coordinates. Which…