Bird
Raised Fist0
Kotlinprogramming~20 mins

Vararg parameters in Kotlin - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Vararg Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of function with vararg parameter
What is the output of this Kotlin code using a vararg parameter?
Kotlin
fun printAll(vararg messages: String) {
    for (m in messages) print("$m ")
}

fun main() {
    printAll("Hi", "there", "Kotlin")
}
A[Hi, there, Kotlin]
BHi,there,Kotlin
C
Hi
there
Kotlin
DHi there Kotlin
Attempts:
2 left
💡 Hint
Remember that the function prints each message followed by a space.
🧠 Conceptual
intermediate
1:30remaining
Vararg parameter usage in Kotlin
Which statement about vararg parameters in Kotlin is true?
AVararg parameters must always be the first parameter in the function.
BA function can have multiple vararg parameters.
CVararg parameters allow passing zero or more arguments of the specified type.
DYou cannot pass an array to a vararg parameter.
Attempts:
2 left
💡 Hint
Think about how many arguments you can pass to a vararg parameter.
❓ Predict Output
advanced
2:00remaining
Output with vararg and spread operator
What is the output of this Kotlin code snippet?
Kotlin
fun sumAll(vararg numbers: Int): Int {
    var sum = 0
    for (n in numbers) sum += n
    return sum
}

fun main() {
    val nums = intArrayOf(1, 2, 3)
    println(sumAll(*nums, 4))
}
ACompilation error
B10
C7
D6
Attempts:
2 left
💡 Hint
The spread operator (*) passes array elements as individual arguments.
🔧 Debug
advanced
2:00remaining
Identify the error with vararg usage
What error does this Kotlin code produce?
Kotlin
fun printNumbers(prefix: String, vararg nums: Int) {
    for (n in nums) print("$prefix$n ")
}

fun main() {
    printNumbers(prefix = "#", 1, 2, 3)
}
APrints: #1 #2 #3
BRuntime error: prefix not found
CCompilation error: missing argument for prefix
DCompilation error: vararg parameter must be the last parameter
Attempts:
2 left
💡 Hint
Check the order of parameters when using vararg.
🚀 Application
expert
2:30remaining
Count total characters using vararg strings
What is the value of totalChars after running this Kotlin code?
Kotlin
fun countChars(vararg words: String): Int {
    return words.sumOf { it.length }
}

fun main() {
    val totalChars = countChars("Kotlin", "is", "fun")
}
A11
B10
C12
DCompilation error
Attempts:
2 left
💡 Hint
Add the lengths of all strings passed as arguments.

Practice

(1/5)
1.

What does the vararg keyword do in Kotlin functions?

easy
A. Allows passing a variable number of arguments to a function
B. Declares a function that returns multiple values
C. Defines a function with no parameters
D. Specifies a function that accepts only one argument

Solution

  1. Step 1: Understand the purpose of vararg

    The vararg keyword lets a function accept zero or more arguments of the same type without needing an array or list explicitly.
  2. Step 2: Compare options with this meaning

    Only Allows passing a variable number of arguments to a function correctly describes this behavior, while others describe unrelated function features.
  3. Final Answer:

    Allows passing a variable number of arguments to a function -> Option A
  4. Quick Check:

    Vararg = variable arguments [OK]
Hint: Vararg means many arguments, not just one [OK]
Common Mistakes:
  • Thinking vararg returns multiple values
  • Confusing vararg with no parameters
  • Assuming vararg limits to one argument
2.

Which of the following is the correct syntax to declare a function with a vararg parameter in Kotlin?

fun printAll(____ numbers: Int) { for (n in numbers) println(n) }
easy
A. var
B. varargs
C. vararg
D. args

Solution

  1. Step 1: Recall the exact keyword for variable arguments

    Kotlin uses vararg (singular) to declare variable number of arguments.
  2. Step 2: Check each option

    Only vararg matches the correct keyword; others are incorrect or invalid syntax.
  3. Final Answer:

    vararg -> Option C
  4. Quick Check:

    Keyword is vararg, not varargs [OK]
Hint: Remember: vararg is singular keyword [OK]
Common Mistakes:
  • Using 'varargs' instead of 'vararg'
  • Omitting the keyword entirely
  • Using 'var' or 'args' which are invalid here
3.

What is the output of this Kotlin code?

fun sumAll(vararg numbers: Int): Int { var sum = 0; for (n in numbers) sum += n; return sum }

fun main() {
  println(sumAll(1, 2, 3))
  println(sumAll())
}
medium
A. Error and error
B. 6 and error
C. Error and 0
D. 6 and 0

Solution

  1. Step 1: Understand the function behavior with vararg

    The function sums all integers passed. If no arguments, the loop does not run, sum stays 0.
  2. Step 2: Calculate outputs for calls

    sumAll(1,2,3) = 1+2+3 = 6; sumAll() = 0 (no arguments)
  3. Final Answer:

    6 and 0 -> Option D
  4. Quick Check:

    Sum of inputs or zero if none [OK]
Hint: Vararg can be empty, sum then zero [OK]
Common Mistakes:
  • Assuming empty vararg causes error
  • Forgetting sum starts at zero
  • Confusing vararg with list requiring explicit array
4.

Identify the error in this Kotlin function declaration:

fun printNames(vararg names: String, age: Int) {
  for (name in names) println(name)
  println(age)
}
medium
A. Function cannot have more than one parameter
B. Vararg parameter must be the last parameter
C. Vararg parameter cannot be of type String
D. Vararg parameters must be declared with 'varargs'

Solution

  1. Step 1: Recall vararg parameter position rule

    Kotlin requires the vararg parameter to be the last in the parameter list.
  2. Step 2: Check the function parameters

    Here, vararg names is before age, which is invalid syntax.
  3. Final Answer:

    Vararg parameter must be the last parameter -> Option B
  4. Quick Check:

    Vararg last parameter rule [OK]
Hint: Vararg must always be last parameter [OK]
Common Mistakes:
  • Placing vararg parameter before others
  • Thinking vararg can be anywhere
  • Using 'varargs' instead of 'vararg'
5.

Given this function:

fun combine(vararg parts: String): String {
  return parts.joinToString(separator = ", ")
}

Which call correctly passes an existing array val arr = arrayOf("a", "b", "c") to combine?

hard
A. combine(*arr)
B. combine(arr)
C. combine(arr.toList())
D. combine(arr as String)

Solution

  1. Step 1: Understand how to pass an array to vararg

    Kotlin requires the spread operator * to pass an array as vararg arguments.
  2. Step 2: Evaluate each option

    combine(*arr) uses *arr, correctly spreading the array. combine(arr) passes the array as a single argument, not vararg. combine(arr.toList()) passes a list, not vararg. combine(arr as String) is invalid cast.
  3. Final Answer:

    combine(*arr) -> Option A
  4. Quick Check:

    Use * to spread array for vararg [OK]
Hint: Use * to spread array into vararg [OK]
Common Mistakes:
  • Passing array without * operator
  • Passing list instead of array
  • Trying invalid casts to String
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