An external variable is declared outside all functions and has file scope by default. It can be accessed by functions within its scope, and its lifetime lasts for the entire execution of the program. If no explicit initializer is provided, it is initialized to zero.
Programming in C MCQ - Constants, Variables and Data Types
The keyword unsigned specifies an unsigned integer type. An unsigned integer cannot represent negative values and uses its available bits for nonnegative values. Its exact range depends on the integer type and implementation.
A short int is an integer type whose range is generally smaller than or equal to that of int. The short specifier indicates an integer type with at least 16 bits, although its actual size is implementation-dependent.
C does not have a primitive data type named float as a structure, and int, float and char are all fundamental arithmetic types. A primitive type is built into the language rather than being defined as a structure.
When a char variable is passed to printf() with the %d format specifier, integer promotion takes place. On implementations where int can represent all values of char, the value is promoted to int, and %d prints that integer value. The result may depend on the stored character value, the execution character set, and whether plain char is signed or unsigned. Therefore, option C is correct.

