An array in C is a collection of elements of the same type stored in contiguous memory locations. It allows storing multiple values under a single name.
Click to reveal answer
beginner
How do you declare an integer array of size 5 in C?
You declare it as: int arr[5]; This creates space for 5 integers in memory.
Click to reveal answer
beginner
What is the difference between declaration and initialization of an array?
Declaration creates the array with a specified size but does not assign values. Initialization assigns values to the array elements at the time of declaration or later.
Click to reveal answer
beginner
How to initialize an array with values at the time of declaration?
Example: int arr[3] = {10, 20, 30}; This creates an array of size 3 with elements 10, 20, and 30.
Click to reveal answer
intermediate
What happens if you initialize fewer elements than the declared size?
The remaining elements are automatically set to zero. For example, int arr[5] = {1, 2}; sets arr[0]=1, arr[1]=2, and arr[2], arr[3], arr[4] = 0.
Click to reveal answer
How do you declare an array of 10 floats in C?
Aint arr[10];
Bfloat arr;
Cfloat arr[10];
Darr float[10];
✗ Incorrect
Option C correctly declares an array of 10 floats.
What is the index of the first element in a C array?
ADepends on the array size
B0
C-1
D1
✗ Incorrect
C arrays start indexing from 0.
What will be the value of arr[3] after this declaration? int arr[5] = {1, 2, 3};
A0
B3
CUndefined
DGarbage value
✗ Incorrect
Elements not initialized explicitly are set to 0.
Which of the following is a valid initialization of an array in C?
Aint arr = {5, 10, 15};
Bint arr[3] = (5, 10, 15);
Cint arr[3] = 5, 10, 15;
Dint arr[] = {5, 10, 15};
✗ Incorrect
Option D correctly initializes an array with inferred size.
What is the size of the array declared as int arr[4];?
A4 elements
BDepends on the values
CSize of int in bytes
DCannot be determined
✗ Incorrect
The array has 4 elements as declared.
Explain how to declare and initialize an integer array of size 5 with values 1 to 5 in C.
Use int arr[5] = {...}; syntax.
You got /3 concepts.
Describe what happens when you declare an array but do not initialize it in C.
Think about default values in local arrays.
You got /3 concepts.
Practice
(1/5)
1. Which of the following is the correct way to declare an integer array of size 5 in C?
easy
A. array int arr[5];
B. int arr;
C. int arr = 5;
D. int arr[5];
Solution
Step 1: Understand array declaration syntax in C
In C, to declare an array of integers with size 5, the syntax is int arr[5];.
Step 2: Check each option
int arr[5]; matches the correct syntax. Options A, B, and D are incorrect because they either miss the size, use wrong keywords, or assign a value instead of declaring an array.
Final Answer:
int arr[5]; -> Option D
Quick Check:
Array declaration = int arr[5]; [OK]
Hint: Array size goes inside square brackets after type [OK]
Common Mistakes:
Forgetting to specify size inside brackets
Using wrong keywords like 'array'
Assigning a value instead of declaring
2. Which of the following is the correct way to initialize an integer array with values 1, 2, 3 in C?
easy
A. int arr[3] = (1, 2, 3);
B. int arr = {1, 2, 3};
C. int arr[3] = {1, 2, 3};
D. int arr[3] = [1, 2, 3];
Solution
Step 1: Recall array initialization syntax
In C, arrays are initialized using curly braces with values inside, and size must be specified if not inferred.
Step 2: Evaluate each option
int arr[3] = {1, 2, 3}; correctly declares an array of size 3 and initializes it with values 1, 2, 3. int arr = {1, 2, 3}; misses the size, C uses parentheses instead of braces, and D uses square brackets which is invalid.
Final Answer:
int arr[3] = {1, 2, 3}; -> Option C
Quick Check:
Array init uses braces and size = int arr[3] = {1, 2, 3}; [OK]
Hint: Use curly braces {} to initialize arrays with size [OK]
Common Mistakes:
Using parentheses () instead of braces {}
Omitting array size when required
Using square brackets [] for initialization
3. What will be the output of the following C code?
int arr[4] = {10, 20};
for(int i = 0; i < 4; i++) {
printf("%d ", arr[i]);
}
medium
A. 10 20 0 0
B. 10 20 0 20
C. 10 20 10 20
D. 10 20 garbage garbage
Solution
Step 1: Understand partial initialization of arrays
When an array is partially initialized in C, the remaining elements are set to zero automatically.
Step 2: Trace the loop output
arr[0] = 10, arr[1] = 20, arr[2] = 0, arr[3] = 0. The loop prints all four elements separated by spaces.
Final Answer:
10 20 0 0 -> Option A
Quick Check:
Partial init fills rest with 0 = 10 20 0 0 [OK]
Hint: Uninitialized array elements default to 0 if partially initialized [OK]
Common Mistakes:
Assuming uninitialized elements have garbage values
Confusing partial initialization with full initialization
Miscounting array size in loop
4. Identify the error in the following C code snippet:
int arr[3];
arr = {1, 2, 3};
medium
A. Array size is not specified
B. Cannot assign values to array after declaration using braces
C. Missing semicolon after array declaration
D. Array elements must be initialized with parentheses
Solution
Step 1: Understand array assignment rules in C
In C, arrays cannot be assigned values using braces after declaration. Initialization must happen at declaration.
Step 2: Check the code snippet
The code tries to assign values to arr using braces after declaration, which is invalid syntax and causes a compilation error.
Final Answer:
Cannot assign values to array after declaration using braces -> Option B
Quick Check:
Array assignment after declaration with {} is invalid [OK]
Hint: Initialize arrays only at declaration with braces [OK]
Common Mistakes:
Trying to assign arrays after declaration with {}
Confusing initialization with assignment
Using parentheses instead of braces
5. Given the following code, what will be the output?
int arr[] = {5, 10, 15};
int *ptr = arr;
for(int i = 0; i < 3; i++) {
printf("%d ", *(ptr + i));
}
Choose the correct output.
hard
A. 5 10 15
B. 5 0 15
C. Garbage values
D. Compilation error
Solution
Step 1: Understand pointer and array relationship
In C, the name of the array is a pointer to its first element. Pointer arithmetic allows accessing elements by offset.
Step 2: Trace the loop output
Pointer ptr points to arr[0]. *(ptr + i) accesses arr[i]. Loop prints 5, 10, 15 separated by spaces.