Bird
Raised Fist0
Kotlinprogramming~20 mins

Array creation and usage in Kotlin - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Array Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this Kotlin code?
Consider the following Kotlin code snippet. What will it print when run?
Kotlin
val arr = arrayOf(1, 2, 3, 4)
println(arr[2])
A3
B2
C4
DIndexOutOfBoundsException
Attempts:
2 left
💡 Hint
Remember that Kotlin arrays are zero-indexed.
❓ Predict Output
intermediate
2:00remaining
What does this Kotlin code print?
Look at this Kotlin code. What is the output?
Kotlin
val arr = IntArray(3) { it * 2 }
println(arr.joinToString(","))
A0,2,4
B1,2,3
C0,1,2
D2,4,6
Attempts:
2 left
💡 Hint
The lambda uses the index to calculate each element.
❓ Predict Output
advanced
2:00remaining
What is the output of this Kotlin code with array mutation?
What will this Kotlin code print?
Kotlin
val arr = arrayOf("a", "b", "c")
arr[1] = "z"
println(arr.joinToString())
Aa, b, c
Ba, z, c
Ca, z, b
DCompilation error
Attempts:
2 left
💡 Hint
Arrays in Kotlin are mutable by default.
❓ Predict Output
advanced
2:00remaining
What error does this Kotlin code produce?
What happens when this Kotlin code runs?
Kotlin
val arr = arrayOf(1, 2, 3)
println(arr[3])
APrints 3
BPrints null
CArrayIndexOutOfBoundsException
DCompilation error
Attempts:
2 left
💡 Hint
Check the valid indices for the array.
🧠 Conceptual
expert
2:00remaining
How many elements does this Kotlin array contain?
Given this Kotlin code, how many elements are in the array 'arr'?
Kotlin
val arr = Array(5) { i -> i * i }
A0
B4
C6
D5
Attempts:
2 left
💡 Hint
The first argument to Array() is the size.

Practice

(1/5)
1. What is the correct way to create an array of integers with values 1, 2, and 3 in Kotlin?
easy
A. val arr = Array(3) { 1, 2, 3 }
B. val arr = arrayOf(1, 2, 3)
C. val arr = IntArray(1, 2, 3)
D. val arr = [1, 2, 3]

Solution

  1. Step 1: Understand array creation syntax

    Kotlin uses arrayOf() to create an array with given elements.
  2. Step 2: Check each option

    val arr = arrayOf(1, 2, 3) uses arrayOf(1, 2, 3) which is correct. val arr = [1, 2, 3] uses square brackets which is invalid in Kotlin. val arr = IntArray(1, 2, 3) which uses invalid constructor arguments for IntArray. val arr = Array(3) { 1, 2, 3 } tries to pass multiple values in a lambda which is incorrect.
  3. Final Answer:

    val arr = arrayOf(1, 2, 3) -> Option B
  4. Quick Check:

    Use arrayOf() for arrays with elements [OK]
Hint: Use arrayOf() to create arrays with elements [OK]
Common Mistakes:
  • Using square brackets [] like in other languages
  • Confusing IntArray with Array<Int>
  • Trying to pass multiple values in Array constructor lambda
2. Which of the following is the correct syntax to create an array of size 5 with all elements initialized to zero in Kotlin?
easy
A. val arr = Array(5, 0)
B. val arr = Array(0, 0, 0, 0, 0)
C. val arr = Array(5) { 0 }
D. val arr = IntArray(5, 0)

Solution

  1. Step 1: Understand Array constructor usage

    Kotlin's Array(size) { init } creates an array of given size, initializing each element with the lambda result.
  2. Step 2: Evaluate options

    val arr = Array(5) { 0 } correctly uses Array(5) { 0 } to create an array of 5 zeros. val arr = Array(0, 0, 0, 0, 0) is invalid syntax. val arr = Array(5, 0) is invalid syntax. val arr = IntArray(5, 0) is invalid because IntArray constructor takes only size or size with init lambda, not two parameters.
  3. Final Answer:

    val arr = Array(5) { 0 } -> Option C
  4. Quick Check:

    Use Array(size) { value } to initialize [OK]
Hint: Use Array(size) with lambda to initialize all elements [OK]
Common Mistakes:
  • Passing two parameters to Array constructor incorrectly
  • Confusing IntArray constructor parameters
  • Passing multiple values directly to Array constructor
3. What will be the output of the following Kotlin code?
val arr = arrayOf(10, 20, 30)
println(arr[1])
medium
A. 20
B. 10
C. 30
D. IndexOutOfBoundsException

Solution

  1. Step 1: Understand array indexing

    Arrays in Kotlin are zero-indexed, so arr[0] is 10, arr[1] is 20, and arr[2] is 30.
  2. Step 2: Check the printed value

    The code prints arr[1], which is 20.
  3. Final Answer:

    20 -> Option A
  4. Quick Check:

    Array index 1 holds 20 [OK]
Hint: Remember arrays start at index 0 in Kotlin [OK]
Common Mistakes:
  • Confusing index 1 with first element
  • Expecting 30 instead of 20
  • Thinking arrays start at 1
4. Identify the error in the following Kotlin code snippet:
val arr = arrayOf(1, 2, 3)
arr[3] = 4
println(arr.joinToString())
medium
A. arr is immutable, cannot assign new value
B. No error, output is '1, 2, 3, 4'
C. Syntax error in array declaration
D. IndexOutOfBoundsException at arr[3] assignment

Solution

  1. Step 1: Check array size and indexing

    The array has 3 elements with indices 0, 1, 2. Accessing index 3 is out of bounds.
  2. Step 2: Understand runtime behavior

    Assigning arr[3] = 4 causes an IndexOutOfBoundsException at runtime.
  3. Final Answer:

    IndexOutOfBoundsException at arr[3] assignment -> Option D
  4. Quick Check:

    Array indices must be within 0 to size-1 [OK]
Hint: Array indices go from 0 to size-1 only [OK]
Common Mistakes:
  • Trying to assign value outside array bounds
  • Thinking array size auto-expands
  • Confusing immutability with index errors
5. You want to create an array of size 4 where each element is its index squared (0, 1, 4, 9). Which Kotlin code correctly does this?
hard
A. val arr = Array(4) { index -> index * index }
B. val arr = arrayOf(4) { index -> index * index }
C. val arr = intArrayOf(4) { index -> index * index }
D. val arr = Array(4) { -> it * it }

Solution

  1. Step 1: Understand array initialization with lambda

    Kotlin's Array(size) { index -> value } creates an array where each element is initialized by the lambda using the index.
  2. Step 2: Check each option

    val arr = Array(4) { index -> index * index } uses explicit lambda parameter index and correctly computes index squared. val arr = arrayOf(4) { index -> index * index } is invalid because arrayOf does not take a size and lambda. val arr = intArrayOf(4) { index -> index * index } is invalid syntax for the intArrayOf factory function. val arr = Array(4) { -> it * it } has invalid lambda syntax where it is undefined.
  3. Final Answer:

    val arr = Array(4) { index -> index * index } -> Option A
  4. Quick Check:

    Use Array(size) with index lambda for computed values [OK]
Hint: Use Array(size) with index lambda for computed elements [OK]
Common Mistakes:
  • Confusing it with index in lambda
  • Using arrayOf() for dynamic initialization
  • Not using lambda for element computation
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard