Bird
Raised Fist0
Rustprogramming~20 mins

main function and entry point in Rust - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
๐ŸŽ–๏ธ
Rust Main Function Master
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 Rust program?

Look at this Rust code. What will it print when run?

Rust
fn main() {
    println!("Hello, {}!", "world");
}
AHello, world!
BHello, {}!
Cworld
DCompilation error
Attempts:
2 left
๐Ÿ’ก Hint

Check how println! replaces {} with the argument.

โ“ Predict Output
intermediate
2:00remaining
What happens if you rename the main function?

Consider this Rust code where the main function is renamed to start. What will happen when you try to run it?

Rust
fn start() {
    println!("Starting program");
}
AProgram runs but prints nothing
BProgram prints "Starting program"
CCompilation error: cannot find function `main`
DRuntime error: function not found
Attempts:
2 left
๐Ÿ’ก Hint

The Rust compiler looks for a function named main as the entry point.

๐Ÿ”ง Debug
advanced
2:00remaining
Why does this Rust program not compile?

This Rust program tries to return an integer from main. Why does it fail to compile?

Rust
fn main() {
    42
}
ABecause <code>main</code> cannot have a return type
BBecause <code>main</code> must return () (unit), not i32
CBecause <code>main</code> must return a String
DBecause <code>main</code> must be async
Attempts:
2 left
๐Ÿ’ก Hint

Check the required signature of the main function in Rust.

๐Ÿง  Conceptual
advanced
2:00remaining
What is the role of the main function in a Rust program?

Choose the best description of the main function's role in Rust.

AIt is a special function that runs after all other functions
BIt automatically runs in parallel with other functions
CIt is used only for testing and is optional
DIt is the program's entry point where execution starts
Attempts:
2 left
๐Ÿ’ก Hint

Think about what happens when you run a Rust program.

โ“ Predict Output
expert
3:00remaining
What is the output of this Rust program with nested main functions?

Consider this Rust code with two main functions inside modules. What will be printed when you run the program?

Rust
mod inner {
    pub fn main() {
        println!("Inner main");
    }
}

fn main() {
    println!("Outer main");
    inner::main();
}
AOuter main\nInner main
BCompilation error: multiple main functions
CInner main\nOuter main
DRuntime error: ambiguous main function
Attempts:
2 left
๐Ÿ’ก Hint

Only the top-level main function is the entry point. Other functions named main inside modules are normal functions.

Practice

(1/5)
1. What is the role of the main function in a Rust program?
easy
A. It compiles the Rust code into machine code.
B. It is the entry point where the program starts running.
C. It stores all the program's variables.
D. It handles user input automatically.

Solution

  1. Step 1: Understand the purpose of main

    The main function is special in Rust because it is where the program begins execution.
  2. Step 2: Identify the correct role

    Unlike storing variables or compiling code, main runs the first instructions when the program starts.
  3. Final Answer:

    It is the entry point where the program starts running. -> Option B
  4. Quick Check:

    Entry point = main function = C [OK]
Hint: Remember: Rust programs always start at main() [OK]
Common Mistakes:
  • Thinking main stores variables
  • Confusing main with compiler role
  • Assuming main handles input automatically
2. Which of the following is the correct syntax to declare the main function in Rust?
easy
A. fn main() {}
B. function main() {}
C. def main() {}
D. main() => {}

Solution

  1. Step 1: Recall Rust function syntax

    Rust functions start with fn, followed by the name and parentheses.
  2. Step 2: Match syntax to main function

    The correct way to declare main is fn main() {}. Other options use syntax from other languages.
  3. Final Answer:

    fn main() {} -> Option A
  4. Quick Check:

    Rust functions start with fn = D [OK]
Hint: Rust functions always start with fn keyword [OK]
Common Mistakes:
  • Using function or def instead of fn
  • Missing parentheses after main
  • Using arrow syntax not valid in Rust
3. What will be the output of this Rust program?
fn main() {
    println!("Hello, world!");
}
medium
A. Hello, world!
B. println!("Hello, world!");
C. Error: missing semicolon
D. No output

Solution

  1. Step 1: Understand println! macro

    The println! macro prints the text inside quotes to the screen followed by a newline.
  2. Step 2: Check the program output

    This program calls println!("Hello, world!"); inside main, so it prints Hello, world! exactly.
  3. Final Answer:

    Hello, world! -> Option A
  4. Quick Check:

    println! prints text = Hello, world! [OK]
Hint: println! prints text exactly as shown [OK]
Common Mistakes:
  • Thinking println! prints code literally
  • Assuming missing semicolon error
  • Expecting no output without return
4. Identify the error in this Rust program:
fn main() {
    println!("Welcome to Rust")
}
medium
A. main function cannot be empty
B. main function must return a value
C. println! macro is misspelled
D. Missing semicolon after println! macro call

Solution

  1. Step 1: Check syntax of println! call

    In Rust, statements must end with a semicolon. The println! call is missing a semicolon.
  2. Step 2: Verify other options

    Main does not need to return a value, println! is spelled correctly, and main is not empty.
  3. Final Answer:

    Missing semicolon after println! macro call -> Option D
  4. Quick Check:

    Statements end with ; = A [OK]
Hint: Always end statements with a semicolon in Rust [OK]
Common Mistakes:
  • Forgetting semicolon after println!
  • Thinking main must return a value
  • Assuming spelling error in println!
5. You want to write a Rust program that prints "Start", then "End". Which main function correctly does this?
hard
A. fn main() { print!("Start"); print!("End"); }
B. fn main() { println!("Start") println!("End") }
C. fn main() { println!("Start"); println!("End"); }
D. fn main() { println!("Start"); println!("End") }

Solution

  1. Step 1: Check for correct syntax and output

    fn main() { println!("Start"); println!("End"); } uses println! with semicolons, printing each string on its own line.
  2. Step 2: Identify errors in other options

    The version using print! does not add new lines; options missing semicolons cause syntax errors.
  3. Final Answer:

    fn main() { println!("Start"); println!("End"); } -> Option C
  4. Quick Check:

    Use println! with semicolons for separate lines = B [OK]
Hint: Use println! with semicolons for separate lines [OK]
Common Mistakes:
  • Using print! instead of println!
  • Missing semicolons after println! calls
  • Expecting print! to add new lines
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