Bird
Raised Fist0
PowerShellscripting~20 mins

Function definition in PowerShell - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
PowerShell Function Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
What is the output of this PowerShell function call?
Consider this PowerShell function definition and call:
function Get-Square {
  param($number)
  return $number * $number
}

Get-Square 4
PowerShell
function Get-Square {
  param($number)
  return $number * $number
}

Get-Square 4
A16
B4
CError: Missing return statement
D8
Attempts:
2 left
💡 Hint
Think about what multiplying a number by itself means.
📝 Syntax
intermediate
2:00remaining
Which option correctly defines a PowerShell function with two parameters?
Select the correct syntax for a PowerShell function named 'Add-Numbers' that takes two parameters and returns their sum.
Afunction Add-Numbers { param($a, $b) return $a + $b }
Bfunction Add-Numbers($a, $b) { return $a + $b }
Cfunction Add-Numbers { $a, $b param; return $a + $b }
Dfunction Add-Numbers { param $a $b; return $a + $b }
Attempts:
2 left
💡 Hint
Remember the param block syntax inside a function.
🔧 Debug
advanced
2:00remaining
Why does this PowerShell function fail to return the expected value?
Look at this function and its call:
function Multiply {
  param($x, $y)
  $result = $x * $y
}

Multiply 3 5
PowerShell
function Multiply {
  param($x, $y)
  $result = $x * $y
}

Multiply 3 5
AThe parameters are not defined correctly; they need types.
BThe function does not have a return statement, so it returns nothing.
CThe multiplication operator '*' is invalid in PowerShell.
DThe function name 'Multiply' is a reserved keyword.
Attempts:
2 left
💡 Hint
Think about what PowerShell functions output by default.
🚀 Application
advanced
2:00remaining
What is the output of this PowerShell function with default parameter?
Given this function and call:
function Greet {
  param($name = 'Friend')
  "Hello, $name!"
}

Greet
PowerShell
function Greet {
  param($name = 'Friend')
  "Hello, $name!"
}

Greet
AError: Missing argument for parameter 'name'
BHello, $name!
CHello, !
DHello, Friend!
Attempts:
2 left
💡 Hint
What happens if you call a function without giving a value for a parameter with a default?
🧠 Conceptual
expert
2:00remaining
What is the value of $result after running this PowerShell script?
Analyze this script:
function Test-Output {
  param($val)
  if ($val -gt 10) { return 'High' }
  'Low'
}

$result = Test-Output 5
PowerShell
function Test-Output {
  param($val)
  if ($val -gt 10) { return 'High' }
  'Low'
}

$result = Test-Output 5
$result
A$null
B'High'
C'Low'
D5
Attempts:
2 left
💡 Hint
Consider what happens when the if condition is false and the function reaches the last line.

Practice

(1/5)
1. What is the main purpose of defining a function in PowerShell?
easy
A. To delete files automatically
B. To group commands so they can be reused easily
C. To run commands only once
D. To create a new variable

Solution

  1. Step 1: Understand what functions do

    Functions group multiple commands into one block that can be run many times.
  2. Step 2: Compare options with function purpose

    Only To group commands so they can be reused easily describes grouping commands for reuse, which is the function's purpose.
  3. Final Answer:

    To group commands so they can be reused easily -> Option B
  4. Quick Check:

    Functions = reusable command groups [OK]
Hint: Functions group commands for reuse, not variables or deletion [OK]
Common Mistakes:
  • Confusing functions with variables
  • Thinking functions run commands only once
  • Assuming functions delete files automatically
2. Which of the following is the correct way to define a function named Greet in PowerShell?
easy
A. def Greet() { Write-Output 'Hello' }
B. function:Greet Write-Output 'Hello'
C. func Greet { Write-Output 'Hello' }
D. function Greet { Write-Output 'Hello' }

Solution

  1. Step 1: Recall PowerShell function syntax

    PowerShell functions start with the keyword 'function', followed by the name and braces containing commands.
  2. Step 2: Check each option

    function Greet { Write-Output 'Hello' } uses correct syntax: 'function Greet { ... }'. Others use incorrect keywords or missing braces.
  3. Final Answer:

    function Greet { Write-Output 'Hello' } -> Option D
  4. Quick Check:

    PowerShell functions start with 'function' keyword [OK]
Hint: PowerShell functions start with 'function' keyword and braces [OK]
Common Mistakes:
  • Using 'def' like Python
  • Using 'func' instead of 'function'
  • Missing braces around function body
3. What will be the output of this PowerShell script?
function Add-Numbers {
  param($a, $b)
  return $a + $b
}

Add-Numbers 3 5
medium
A. 3 5
B. 35
C. 8
D. Error: Missing parentheses

Solution

  1. Step 1: Understand function parameters and return

    The function takes two parameters $a and $b, adds them, and returns the sum.
  2. Step 2: Call the function with 3 and 5

    Calling Add-Numbers 3 5 passes 3 to $a and 5 to $b, so return is 3 + 5 = 8.
  3. Final Answer:

    8 -> Option C
  4. Quick Check:

    3 + 5 = 8 [OK]
Hint: Parameters add numbers; 3 + 5 equals 8 [OK]
Common Mistakes:
  • Concatenating numbers as strings (35)
  • Returning parameters without adding
  • Expecting parentheses like other languages
4. Identify the error in this PowerShell function definition:
function SayHello {
param($name)
Write-Output "Hello, $name"
}
medium
A. No error, function is correct
B. param block should be inside braces
C. Missing parentheses after function name
D. Write-Output cannot use double quotes

Solution

  1. Step 1: Review PowerShell function syntax

    Functions use 'function Name { param(...) ... }' syntax; parentheses after name are optional.
  2. Step 2: Check param block and Write-Output usage

    Param block is correctly inside braces; double quotes allow variable expansion in Write-Output.
  3. Final Answer:

    No error, function is correct -> Option A
  4. Quick Check:

    Function syntax is valid as written [OK]
Hint: Param block inside braces is correct; parentheses after name optional [OK]
Common Mistakes:
  • Expecting parentheses after function name
  • Thinking param must be outside braces
  • Believing double quotes disallowed in Write-Output
5. You want to create a PowerShell function Get-Square that takes a number and returns its square. Which function definition correctly achieves this?
hard
A. function Get-Square { param($num) return $num * $num }
B. function Get-Square($num) { $num ^ 2 }
C. function Get-Square { param($num) $num ** 2 }
D. function Get-Square { param($num) return $num ^ 2 }

Solution

  1. Step 1: Understand PowerShell multiplication and function syntax

    PowerShell uses * for multiplication; param block defines input parameters.
  2. Step 2: Evaluate each option

    function Get-Square { param($num) return $num * $num } correctly uses param and multiplies $num by itself. function Get-Square($num) { $num ^ 2 } uses valid param syntax but ^ is bitwise XOR, not multiplication. function Get-Square { param($num) $num ** 2 } uses ** which is not PowerShell operator. function Get-Square { param($num) return $num ^ 2 } uses ^ which is bitwise XOR, not power.
  3. Final Answer:

    function Get-Square { param($num) return $num * $num } -> Option A
  4. Quick Check:

    Use * for multiplication, param inside braces [OK]
Hint: Use * for multiplication; param inside braces defines inputs [OK]
Common Mistakes:
  • Using ^ for power instead of multiplication
  • Using ** which is invalid in PowerShell
  • Incorrect param syntax with parentheses
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