Bird
Raised Fist0
C Sharp (C#)programming~20 mins

Params keyword for variable arguments in C Sharp (C#) - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Params Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of method using params keyword

What is the output of this C# program?

C Sharp (C#)
using System;
class Program {
    static void PrintNumbers(params int[] numbers) {
        foreach (var num in numbers) {
            Console.Write(num + " ");
        }
    }
    static void Main() {
        PrintNumbers(1, 2, 3);
    }
}
ASystem.Int32[]
B1, 2, 3
C1 2 3
DError: params keyword not allowed
Attempts:
2 left
💡 Hint

Remember, params allows passing multiple arguments as an array.

❓ Predict Output
intermediate
2:00remaining
Output when passing an array to a params parameter

What will this program print?

C Sharp (C#)
using System;
class Program {
    static void ShowItems(params string[] items) {
        foreach (var item in items) {
            Console.Write(item + ",");
        }
    }
    static void Main() {
        string[] fruits = {"apple", "banana"};
        ShowItems(fruits);
    }
}
ASystem.String[],
Bapple,banana,
Capple, banana,
DError: Cannot convert string[] to params string[]
Attempts:
2 left
💡 Hint

Passing an array to a params parameter passes all elements as arguments.

❓ Predict Output
advanced
2:00remaining
Output when mixing normal and params parameters

What is the output of this program?

C Sharp (C#)
using System;
class Program {
    static void Display(string title, params int[] numbers) {
        Console.Write(title + ": ");
        foreach (var n in numbers) {
            Console.Write(n + " ");
        }
    }
    static void Main() {
        Display("Numbers", 5, 10, 15);
    }
}
ANumbers: 5 10 15
BNumbers: 5,10,15
CNumbers: System.Int32[]
DError: params must be last parameter
Attempts:
2 left
💡 Hint

The params parameter must be last and collects all extra arguments.

❓ Predict Output
advanced
2:00remaining
What error occurs with params not last?

What error will this code produce?

C Sharp (C#)
class Program {
    static void Test(params int[] numbers, string label) {
    }
}
ACompile-time error: missing return type
BRuntime error: invalid params usage
CNo error, compiles fine
DCompile-time error: params must be last parameter
Attempts:
2 left
💡 Hint

Check the position of the params parameter.

🧠 Conceptual
expert
2:00remaining
How many items in params array when called with no arguments?

Consider this method:

void PrintAll(params string[] items) { Console.WriteLine(items.Length); }

What will be printed when calling PrintAll() with no arguments?

A0
B1
Cnull
DCompile-time error
Attempts:
2 left
💡 Hint

Think about what params does when no arguments are passed.

Practice

(1/5)
1. What does the params keyword do in a C# method?
easy
A. Makes the method run faster by optimizing loops.
B. Allows the method to accept a variable number of arguments as an array.
C. Declares a method as asynchronous.
D. Specifies that the method returns multiple values.

Solution

  1. Step 1: Understand the purpose of params

    The params keyword allows a method to accept zero or more arguments as a single array parameter.
  2. Step 2: Compare with other options

    Options B, C, and D describe unrelated features: performance, async methods, and multiple return values, which params does not do.
  3. Final Answer:

    Allows the method to accept a variable number of arguments as an array. -> Option B
  4. Quick Check:

    params = variable arguments [OK]
Hint: Remember: params means flexible number of inputs [OK]
Common Mistakes:
  • Thinking params changes method speed
  • Confusing params with async keyword
  • Believing params allows multiple return values
2. Which of the following is the correct syntax to declare a method using params in C#?
easy
A. public void PrintNumbers(params int numbers[]) { }
B. public void PrintNumbers(int params[] numbers) { }
C. public void PrintNumbers(int[] params numbers) { }
D. public void PrintNumbers(params int[] numbers) { }

Solution

  1. Step 1: Recall correct params syntax

    The params keyword comes before the array type and parameter name: params int[] numbers.
  2. Step 2: Identify incorrect placements

    Options B, C, and D place params incorrectly or use invalid syntax for arrays in C#.
  3. Final Answer:

    public void PrintNumbers(params int[] numbers) { } -> Option D
  4. Quick Check:

    params before array type [OK]
Hint: Put params right before the array type [OK]
Common Mistakes:
  • Placing params after the type or variable name
  • Using square brackets incorrectly
  • Confusing params with pointer syntax
3. What is the output of this C# code?
public class Program {
  public static void PrintAll(params string[] words) {
    foreach (var word in words) {
      Console.Write(word + " ");
    }
  }
  public static void Main() {
    PrintAll("hello", "world", "!");
  }
}
medium
A. hello world !
B. hello world!
C. hello, world, !
D. Compilation error

Solution

  1. Step 1: Understand method call with params

    The method PrintAll accepts any number of strings as an array and prints each with a space after it.
  2. Step 2: Trace the output

    It prints "hello ", then "world ", then "! ", resulting in "hello world ! " with spaces after each word.
  3. Final Answer:

    hello world ! -> Option A
  4. Quick Check:

    Params prints each argument with space [OK]
Hint: Params passes arguments as array, loop prints each [OK]
Common Mistakes:
  • Missing spaces between words
  • Expecting commas instead of spaces
  • Thinking it causes compile errors
4. Identify the error in this method declaration:
public void Show(params int[] numbers, string label) {
  Console.WriteLine(label);
}
medium
A. The 'params' parameter must be the last parameter in the method.
B. The 'params' keyword cannot be used with arrays.
C. The method must return a value when using 'params'.
D. The 'params' keyword requires the parameter to be optional.

Solution

  1. Step 1: Check parameter order rules for params

    The params parameter must be the last one in the method signature.
  2. Step 2: Identify the error

    Here, params int[] numbers is before string label, which is invalid.
  3. Final Answer:

    The 'params' parameter must be the last parameter in the method. -> Option A
  4. Quick Check:

    params must be last [OK]
Hint: Params must always be last parameter [OK]
Common Mistakes:
  • Placing params before other parameters
  • Thinking params can be anywhere
  • Confusing params with optional parameters
5. You want to create a method SumAll that sums any number of integers passed to it. Which of these method declarations correctly uses params and returns the sum?
hard
A. public int SumAll(params int numbers) { return numbers.Length; }
B. public int SumAll(int[] numbers, params int n) { return numbers.Sum() + n; }
C. public int SumAll(params int[] numbers) { int sum = 0; foreach(var n in numbers) sum += n; return sum; }
D. public int SumAll(params int[] numbers) { return numbers[0]; }

Solution

  1. Step 1: Check correct use of params and summing logic

    public int SumAll(params int[] numbers) { int sum = 0; foreach(var n in numbers) sum += n; return sum; } correctly declares params int[] numbers and sums all elements in a loop.
  2. Step 2: Evaluate other options

    public int SumAll(int[] numbers, params int n) { return numbers.Sum() + n; } has invalid params int n after array; public int SumAll(params int numbers) { return numbers.Length; } uses params int numbers which is invalid; public int SumAll(params int[] numbers) { return numbers[0]; } returns only first element, not sum.
  3. Final Answer:

    public int SumAll(params int[] numbers) { int sum = 0; foreach(var n in numbers) sum += n; return sum; } -> Option C
  4. Quick Check:

    Params array summed with loop [OK]
Hint: Params must be array; sum with loop or LINQ [OK]
Common Mistakes:
  • Using params with single int instead of array
  • Placing params parameter incorrectly
  • Returning only first element instead of sum
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