Hint: Uninitialized array elements default to zero if partially initialized [OK]
Common Mistakes:
Assuming uninitialized elements have garbage values
Expecting compilation error for partial init
Confusing array size with initializer count
4. Identify the error in the following C code snippet:
int data[3];
data = {1, 2, 3};
medium
A. Missing semicolon after array declaration.
B. Array size must be omitted when initializing.
C. Arrays cannot be assigned values after declaration like this.
D. Braces should be parentheses for assignment.
Solution
Step 1: Understand array assignment rules
In C, arrays cannot be assigned values after declaration using = and braces.
Step 2: Check other options
Semicolon is present, size can be specified, braces are correct for initialization but not assignment.
Final Answer:
Arrays cannot be assigned values after declaration like this. -> Option C
Quick Check:
Array assignment after declaration is invalid [OK]
Hint: Arrays must be initialized at declaration, not assigned later [OK]
Common Mistakes:
Trying to assign array with braces after declaration
Confusing array assignment with pointer assignment
Using parentheses instead of braces
5. You want to create an integer array of size 6 where the first two elements are 10 and 20, and the rest are zeros. Which of the following is the best way to initialize it in C?
hard
A. int arr[6] = {0}; arr[0] = 10; arr[1] = 20;
B. int arr[6] = {10, 20, 0, 0, 0, 0};
C. int arr[6] = {10, 20};
D. int arr[6]; arr[0] = 10; arr[1] = 20;
Solution
Step 1: Analyze partial initialization
int arr[6] = {10, 20}; partially initializes first two elements; rest are zero by default, so it works.
Step 2: Compare with explicit zero initialization and assignment
int arr[6] = {0}; arr[0] = 10; arr[1] = 20; explicitly zeroes all elements then assigns first two, ensuring clarity and no garbage.
Step 3: Evaluate best practice
int arr[6] = {0}; arr[0] = 10; arr[1] = 20; is best for clarity and safety; int arr[6] = {10, 20}; works but less explicit; int arr[6] = {10, 20, 0, 0, 0, 0}; is verbose; int arr[6]; arr[0] = 10; arr[1] = 20; leaves uninitialized elements.
Final Answer:
int arr[6] = {0}; arr[0] = 10; arr[1] = 20; -> Option A
Quick Check:
Explicit zero init then assign first elements [OK]
Hint: Zero initialize first, then assign specific elements for clarity [OK]
Common Mistakes:
Assuming partial init always safe without explicit zero
Not initializing array before assignment
Overwriting zeros with uninitialized values
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.