An array in C is a collection of elements of the same type stored in contiguous memory locations. It allows you to store multiple values under a single name and access them using an index.
Click to reveal answer
beginner
How do you access the third element of an array named arr?
You access it using arr[2] because array indexing starts at 0 in C.
Click to reveal answer
intermediate
How do you find the length of a statically declared array in C?
Use sizeof(arr) / sizeof(arr[0]) to get the number of elements in the array.
Click to reveal answer
intermediate
How can you copy elements from one array to another in C?
You can copy elements using a loop to assign each element individually, for example:
for(int i = 0; i < n; i++) { dest[i] = src[i]; }
Click to reveal answer
advanced
What is the result of accessing an array out of its bounds in C?
Accessing out of bounds leads to undefined behavior. It can cause crashes or incorrect data because C does not check array bounds.
Click to reveal answer
What is the index of the first element in a C array?
A0
B1
C-1
DDepends on the array size
✗ Incorrect
In C, array indexing always starts at 0.
Which of the following correctly declares an array of 5 integers?
Aint arr[5];
Bint arr();
Cint arr;
Darray int arr[5];
✗ Incorrect
The correct syntax to declare an array of 5 integers is int arr[5];.
How do you get the number of elements in a statically declared array arr?
Acount(arr)
Bsizeof(arr) / sizeof(arr[0])
Carr.length
Dlength(arr)
✗ Incorrect
In C, you calculate the number of elements by dividing the total size of the array by the size of one element.
What happens if you access arr[10] when arr has only 5 elements?
AReturns last element
BReturns 0
CCompiler error
DUndefined behavior
✗ Incorrect
Accessing beyond the array size causes undefined behavior in C.
Which loop is commonly used to iterate over all elements of an array?
Ado-while loop
Bwhile loop
Cfor loop
Dswitch statement
✗ Incorrect
A for loop is typically used to iterate over arrays because it clearly controls the index.
Explain how to declare, initialize, and access elements of an array in C.
Think about how you store multiple values and get each one by its position.
You got /3 concepts.
Describe common operations you can perform on arrays in C and any risks involved.
Consider what you do with a list of items and what can go wrong if you go outside the list.
You got /4 concepts.
Practice
(1/5)
1. What does the following C code do? int arr[5] = {1, 2, 3, 4, 5};
easy
A. Creates an array of 5 integers with values 1 to 5
B. Creates a pointer to an integer
C. Declares a single integer variable
D. Creates a 2D array of integers
Solution
Step 1: Understand the declaration
The code declares an integer array named arr with size 5.
Step 2: Check the initialization
The array is initialized with values 1, 2, 3, 4, and 5 in order.
Final Answer:
Creates an array of 5 integers with values 1 to 5 -> Option A
Quick Check:
Array declaration with initialization = Creates an array of 5 integers with values 1 to 5 [OK]
Hint: Array size and values match initialization count [OK]
Common Mistakes:
Confusing array with pointer declaration
Thinking it's a single variable, not an array
Assuming it's a 2D array
2. Which of the following is the correct syntax to access the third element of an array named arr?
easy
A. arr(3)
B. arr[2]
C. arr{3}
D. arr[3]
Solution
Step 1: Recall array indexing in C
Arrays in C use zero-based indexing, so the first element is arr[0].
Step 2: Identify the third element index
The third element is at index 2, so arr[2] accesses it.
Final Answer:
arr[2] -> Option B
Quick Check:
Third element index = 2 [OK]
Hint: Remember C arrays start at index 0 [OK]
Common Mistakes:
Using parentheses instead of brackets
Using 1-based indexing (arr[3])
Using curly braces for access
3. What is the output of this C code?
int arr[4] = {10, 20, 30, 40};
int sum = 0;
for(int i = 0; i < 4; i++) {
sum += arr[i];
}
printf("%d", sum);
medium
A. 100
B. 90
C. Syntax error
D. 40
Solution
Step 1: Sum all elements in the array
The loop adds arr[0]=10, arr[1]=20, arr[2]=30, arr[3]=40 to sum.
Step 2: Calculate the total sum
10 + 20 + 30 + 40 = 100.
Final Answer:
100 -> Option A
Quick Check:
Sum of array elements = 100 [OK]
Hint: Add all elements using loop index 0 to size-1 [OK]
Common Mistakes:
Off-by-one error in loop causing wrong sum
Confusing sum with last element value
Syntax errors from missing semicolons
4. Identify the error in this code snippet:
int arr[3] = {1, 2, 3};
for(int i = 0; i <= 3; i++) {
printf("%d ", arr[i]);
}
medium
A. Array size should be 4
B. printf format specifier is wrong
C. Loop condition should be i < 3, not i <= 3
D. Variable i should be declared outside the loop
Solution
Step 1: Analyze loop condition
The loop runs from i=0 to i=3 inclusive, so it accesses arr[3].
Step 2: Check array bounds
Array arr has size 3, valid indices are 0,1,2. Accessing arr[3] causes out-of-bounds error.
Final Answer:
Loop condition should be i < 3, not i <= 3 -> Option C
Quick Check:
Array index must be less than size [OK]
Hint: Loop index must be less than array size [OK]
Common Mistakes:
Using <= instead of < in loop condition
Assuming array size auto-expands
Misunderstanding printf format specifier
5. You want to find the largest number in an integer array arr of size n. Which code snippet correctly does this?
hard
A. int max = arr[n]; for(int i = 0; i < n; i++) { if(arr[i] > max) max = arr[i]; }
B. int max = 0; for(int i = 0; i <= n; i++) { if(arr[i] > max) max = arr[i]; }
C. int max = arr[0]; for(int i = 1; i < n; i++) { if(arr[i] < max) max = arr[i]; }
D. int max = arr[0]; for(int i = 1; i < n; i++) { if(arr[i] > max) max = arr[i]; }
Solution
Step 1: Initialize max with first element
Set max = arr[0] to start comparison from first element.
Step 2: Loop from second element to end
Loop i from 1 to n-1, compare arr[i] with max, update max if arr[i] is larger.
Step 3: Check other options for errors
int max = 0; for(int i = 0; i <= n; i++) { if(arr[i] > max) max = arr[i]; } uses max=0 which fails if all numbers are negative; loop condition i <= n causes out-of-bounds; int max = arr[n]; for(int i = 0; i < n; i++) { if(arr[i] > max) max = arr[i]; } initializes max with arr[n] which is invalid index; int max = arr[0]; for(int i = 1; i < n; i++) { if(arr[i] < max) max = arr[i]; } finds minimum instead of maximum.
Final Answer:
int max = arr[0]; for(int i = 1; i < n; i++) { if(arr[i] > max) max = arr[i]; } -> Option D
Quick Check:
Initialize max with first element and compare correctly [OK]
Hint: Start max with arr[0], loop i from 1 to n-1 [OK]
Common Mistakes:
Using wrong loop bounds causing out-of-bounds access
Initializing max with 0 ignoring negative values
Confusing max with min logic
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.