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

Optional parameters in C Sharp (C#) - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Optional Parameters Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of method with optional parameters
What is the output of this C# code when calling Greet() without arguments?
C Sharp (C#)
using System;
class Program {
    static void Greet(string name = "Guest", int times = 1) {
        for (int i = 0; i < times; i++) {
            Console.WriteLine($"Hello, {name}!");
        }
    }
    static void Main() {
        Greet();
    }
}
AHello, Guest!
BHello, !
CHello, Guest!\nHello, Guest!
DCompilation error
Attempts:
2 left
💡 Hint
Check the default values of the parameters in the method signature.
❓ Predict Output
intermediate
2:00remaining
Output with named and optional parameters
What is the output of this code snippet?
C Sharp (C#)
using System;
class Program {
    static void Display(string message = "Hi", int count = 2) {
        for (int i = 0; i < count; i++) {
            Console.WriteLine(message);
        }
    }
    static void Main() {
        Display(count: 3);
    }
}
A3\n3\n3
BHi\nHi
CHi\nHi\nHi
DCompilation error
Attempts:
2 left
💡 Hint
Named parameters can be used to specify only some arguments.
🔧 Debug
advanced
2:00remaining
Identify the error with optional parameters
What error does this code produce when compiled?
C Sharp (C#)
class Program {
    static void Print(int x = 5, int y) {
        System.Console.WriteLine(x + y);
    }
    static void Main() {
        Print(3);
    }
}
ACS1501: No overload for method 'Print' takes 1 arguments
BNo error, outputs 8
CCS0120: An object reference is required for the non-static field
DCS1737: Optional parameters must appear after all required parameters
Attempts:
2 left
💡 Hint
Check the order of optional and required parameters in method signature.
❓ Predict Output
advanced
2:00remaining
Output with multiple optional parameters and named arguments
What is the output of this program?
C Sharp (C#)
using System;
class Program {
    static void Info(string name = "Unknown", int age = 0, string city = "Nowhere") {
        Console.WriteLine($"Name: {name}, Age: {age}, City: {city}");
    }
    static void Main() {
        Info(city: "Paris", name: "Alice");
    }
}
AName: Alice, Age: 0, City: Paris
BName: Unknown, Age: 0, City: Paris
CName: Alice, Age: 0, City: Nowhere
DCompilation error due to argument order
Attempts:
2 left
💡 Hint
Named arguments can be passed in any order.
🧠 Conceptual
expert
2:00remaining
Behavior of optional parameters with method overloading
Given these two methods, what happens when Test(5) is called?
C Sharp (C#)
class Program {
    static void Test(int x, int y = 10) {
        System.Console.WriteLine($"Method1: x={x}, y={y}");
    }
    static void Test(int x) {
        System.Console.WriteLine($"Method2: x={x}");
    }
    static void Main() {
        Test(5);
    }
}
AMethod1: x=5, y=10
BMethod2: x=5
CCompilation error due to ambiguous call
DRuntime error
Attempts:
2 left
💡 Hint
Consider how C# resolves overloaded methods with optional parameters.

Practice

(1/5)
1. What is the main purpose of optional parameters in C# methods?
easy
A. To force all arguments to be passed every time
B. To make methods run faster
C. To allow skipping some arguments by providing default values
D. To declare variables inside methods

Solution

  1. Step 1: Understand optional parameters

    Optional parameters let you give default values so callers can skip them.
  2. Step 2: Compare with other options

    Options A, C, and D do not describe optional parameters correctly.
  3. Final Answer:

    To allow skipping some arguments by providing default values -> Option C
  4. Quick Check:

    Optional parameters = skip arguments with defaults [OK]
Hint: Optional parameters have default values to skip arguments [OK]
Common Mistakes:
  • Thinking optional parameters speed up code
  • Believing all arguments must always be passed
  • Confusing optional parameters with local variables
2. Which of the following method signatures correctly uses optional parameters in C#?
easy
A. void Print(string message, int count = 1)
B. void Print(int count, string message)
C. void Print(int count = 1, string message)
D. void Print(string message = "Hello", int count)

Solution

  1. Step 1: Recall optional parameter rules

    Optional parameters must come after all required parameters.
  2. Step 2: Check each signature

    A: optional first - invalid. B: no default value, so no optional parameter. C: optional first - invalid. D: optional last - correct.
  3. Final Answer:

    void Print(string message, int count = 1) -> Option A
  4. Quick Check:

    Optional parameters come last = D [OK]
Hint: Optional parameters must be last in method signature [OK]
Common Mistakes:
  • Placing optional parameters before required ones
  • Missing default values for optional parameters
  • Confusing parameter order rules
3. What is the output of this C# code?
void Greet(string name = "Guest", int times = 1) {
  for (int i = 0; i < times; i++) {
    Console.WriteLine($"Hello, {name}!");
  }
}

Greet("Alice");
medium
A. Hello, Guest! printed multiple times
B. Hello, Guest! printed once
C. Hello, Alice! printed zero times
D. Hello, Alice! printed once

Solution

  1. Step 1: Analyze method call

    Greet is called with "Alice" only, so name = "Alice", times uses default 1.
  2. Step 2: Understand loop behavior

    The loop runs once (times = 1), printing "Hello, Alice!" once.
  3. Final Answer:

    Hello, Alice! printed once -> Option D
  4. Quick Check:

    Passed name, default times = 1 [OK]
Hint: Passed args override defaults; missing ones use default [OK]
Common Mistakes:
  • Assuming default name is used when argument is passed
  • Thinking loop runs zero or multiple times incorrectly
  • Confusing parameter order and values
4. Identify the error in this method declaration:
public void Display(int x = 5, int y) {
  Console.WriteLine(x + y);
}
medium
A. Missing return type
B. Optional parameter must come after all required parameters
C. Cannot use Console.WriteLine inside methods
D. Parameters must have different names

Solution

  1. Step 1: Check parameter order

    Parameter x is optional but comes before required parameter y, which is invalid.
  2. Step 2: Verify other options

    Return type is present (void), Console.WriteLine is valid, parameter names are unique.
  3. Final Answer:

    Optional parameter must come after all required parameters -> Option B
  4. Quick Check:

    Optional params last rule violated [OK]
Hint: Optional parameters must be last in parameter list [OK]
Common Mistakes:
  • Placing optional parameters before required ones
  • Thinking Console.WriteLine is invalid in methods
  • Confusing parameter naming rules
5. You want to create a method CalculateTotal that adds two numbers but allows skipping the second number, which defaults to 10. Which method signature is correct and how would you call it to add 5 and the default 10?
hard
A. public int CalculateTotal(int a, int b = 10) { return a + b; } Call: CalculateTotal(5);
B. public int CalculateTotal(int a = 10, int b) { return a + b; } Call: CalculateTotal(5);
C. public int CalculateTotal(int a, int b) { return a + b; } Call: CalculateTotal(5);
D. public int CalculateTotal(int a = 10, int b = 5) { return a + b; } Call: CalculateTotal();

Solution

  1. Step 1: Check method signature rules

    Optional parameter b must come after required a, with default 10.
  2. Step 2: Check method call

    Calling CalculateTotal(5) passes a=5, b uses default 10, sum is 15.
  3. Final Answer:

    public int CalculateTotal(int a, int b = 10) { return a + b; } Call: CalculateTotal(5); -> Option A
  4. Quick Check:

    Optional param last, call with one arg uses default [OK]
Hint: Put optional params last and call with fewer args to use defaults [OK]
Common Mistakes:
  • Placing optional parameter before required one
  • Calling method without required arguments
  • Assuming default values apply when arguments are passed
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