Multiple choice technology security

unsigned int i; 
scanf("%u",&i);

With the size of unsigned integers being 4 bytes, What happens when a negative number is entered?

  1. A run-time error is encountered and the program aborts.

  2. unsigned int variables cannot store the sign (+ or -) of the number. The sign is discarded and only the number is stored in i.

  3. A large positive number will be stored in i.

  4. Unsigned int variables cannot store signed numbers. Hence in this program i will contain garbage values.

Reveal answer Fill a bubble to check yourself
C Correct answer
Explanation

In C, scanf("%u", &i) expects an unsigned integer representation. If a negative number (e.g. -1) is entered, it is parsed and converted to its unsigned equivalent via two's complement conversion, resulting in a large positive integer being stored in i.