Multiple Choice Questions and Answers for Data Types and Sizes in C Language

List of C language programming interview questions on “Data Types and Sizes” along with answers, explanations and/or solutions:

1. Comment on the output of this C code?
  1.     #include 
  2.     int main()
  3.     {
  4.         int a[5] = {1, 2, 3, 4, 5};
  5.         int i;
  6.         for (i = 0; i < 5; i++)
  7.             if ((char)a[i] == '5')
  8.                 printf("%d\n", a[i]);
  9.             else
  10.                 printf("FAIL\n");
  11.     }
a) The compiler will flag an error
b) Program will compile and print the output 5
c) Program will compile and print the ASCII value of 5
d) Program will compile and print FAIL for 5 times
Answer:d

Explanation:The ASCII value of 5 is 53, the char type-casted integral value 5 is 5 only.

Output:
$ cc pgm1.c
$ a.out
FAILED
FAILED
FAILED
FAILED
FAILED
2. The format identifier ‘%i’ is also used for _____ data type?

a) char
b) int
c) float
d) double
Answer:b

Explanation:Both %d and %i can be used as a format identifier for int data type.
3. Which data type is most suitable for storing a number 65000 in a 32-bit system?

a) signed short
b) unsigned short
c) long
d) int
Answer:b

Explanation:65000 comes in the range of short (16-bit) which occupies the least memory. Signed short ranges from -32768 to 32767 and hence we should use unsigned short.
4. Which of the following is a User-defined data type?

a) typedef int Boolean;
b) typedef enum {Mon, Tue, Wed, Thu, Fri} Workdays;
c) struct {char name[10], int age};
d) all of the mentioned
Answer:d

Explanation:typedef and struct are used to define user-defined data types.
5. What is the size of an int data type?

a) 4 Bytes
b) 8 Bytes
c) Depends on the system/compiler
d) Cannot be determined
Answer:c

Explanation:The size of the data types depend on the system.
6. What is the output of this C code?
  1.     #include  
  2.     int main()
  3.     {
  4.        signed char chr;
  5.        chr = 128;
  6.        printf("%d\n", chr);
  7.        return 0;
  8.     }
a) 128
b) -128
c) Depends on the compiler
d) None of the mentioned
Answer:b

Explanation:signed char will be a negative number.

Output:
$ cc pgm2.c
$ a.out
-128
7. Comment on the output of this C code?
  1.     #include  
  2.     int main()
  3.     {
  4.         char c;
  5.         int i = 0;
  6.         FILE *file;
  7.         file = fopen("test.txt", "w+");
  8.         fprintf(file, "%c", 'a');
  9.         fprintf(file, "%c", -1);
  10.         fprintf(file, "%c", 'b');
  11.         fclose(file);
  12.         file = fopen("test.txt", "r");
  13.         while ((c = fgetc(file)) !=  -1)
  14.             printf("%c", c);
  15.         return 0;
  16.     }
a) a
b) Infinite loop
c) Depends on what fgetc returns
d) Depends on the compiler
Answer:a
Explanation:None.
Output:
$ cc pgm3.c
$ a.out
a
8. What is short int in C programming?

a) Basic datatype of C
b) Qualifier
c) short is the qualifier and int is the basic datatype
d) All of the mentioned
Answer:c
9. Comment on the output of this C code?
  1.     #include 
  2.     int main()
  3.     {
  4.         float f1 = 0.1;
  5.         if (f1 == 0.1)
  6.             printf("equal\n");
  7.         else
  8.             printf("not equal\n");
  9.     }
a) equal
b) not equal
c) Output depends on compiler
d) None of the mentioned

Answer:b

Explanation:0.1 by default is of type double which has different representation than float resulting in inequality even after conversion.

Output:
$ cc pgm4.c
$ a.out
not equal
10. Comment on the output of this C code?
  1.     #include 
  2.     int main()
  3.     {
  4.         float f1 = 0.1;
  5.         if (f1 == 0.1f)
  6.             printf("equal\n");
  7.         else
  8.             printf("not equal\n");
  9.     }
a) equal
b) not equal
c) Output depends on compiler
d) None of the mentioned

Answer:a

Explanation:0.1f results in 0.1 to be stored in floating point representations.

Output:
$ cc pgm5.c
$ a.out
equal
11. What is the output of this C code (on a 32-bit machine)?
  1.     #include 
  2.     int main()
  3.     {
  4.         int x = 10000;
  5.         double y = 56;
  6.         int *p = &x;
  7.         double *q = &y;
  8.         printf("p and q are %d and %d", sizeof(p), sizeof(q));
  9.         return 0;
  10.     }
a) p and q are 4 and 4
b) p and q are 4 and 8
c) Compiler error
d) p and q are 2 and 8

Answer:a

Explanation:Size of any type of pointer is 4 on a 32-bit machine.

Output:
$ cc pgm6.c
$ a.out
p and q are 4 and 4
12. Which is correct with respect to size of the datatypes?

a) char > int > float
b) int > char > float
c) char < int < double
d) double > char > int

Answer:c

Explanation:char has lesser bytes than int and int has lesser bytes than double in any system
13. What is the output of the following C code(on a 64 bit machine)?
  1.     #include 
  2.     union Sti
  3.     {
  4.         int nu;
  5.         char m;
  6.     };
  7.     int main()
  8.     {
  9.         union Sti s;
  10.         printf("%d", sizeof(s));
  11.         return 0;
  12.     }
a) 8
b) 5
c) 9
d) 4

Answer:d

Explanation:Since the size of a union is the size of its maximum datatype, here int is the largest hence 4.
Output:
$ cc pgm7.c
$ a.out
4
14. What is the output of this C code?
  1.     #include 
  2.     int main()
  3.     {
  4.         float x = 'a';
  5.         printf("%f", x);
  6.         return 0;
  7.     }
a) a
b) run time error
c) a.0000000
d) 97.000000

Answer:d

Explanation:Since the ASCII value of a is 97, the same is assigned to the float variable and printed.

Output:
$ cc pgm8.c
$ a.out
97.000000
15. Which of the datatypes have size that is variable?

a) int
b) struct
c) float
d) double

Answer:b

Explanation:Since the size of the structure depends on its fields, it has a variable size.

Related

Multiple Choice Questions 3375194104829956484

Post a Comment

emo-but-icon

item