Bird
Raised Fist0
Goprogramming~20 mins

Go compilation and execution flow - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
๐ŸŽ–๏ธ
Go Compilation Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
โ“ Predict Output
intermediate
2:00remaining
Output of a simple Go program with init and main
What is the output of this Go program when compiled and run?
Go
package main
import "fmt"

func init() {
    fmt.Println("Init function called")
}

func main() {
    fmt.Println("Main function called")
}
AInit function called\nMain function called
BMain function called\nInit function called
CInit function called
DMain function called
Attempts:
2 left
๐Ÿ’ก Hint
Remember that init functions run before main in Go.
โ“ Predict Output
intermediate
2:00remaining
Output of Go program with multiple init functions
What is the output of this Go program with two init functions in the same package?
Go
package main
import "fmt"

func init() {
    fmt.Println("First init")
}

func init() {
    fmt.Println("Second init")
}

func main() {
    fmt.Println("Main function")
}
AMain function\nFirst init\nSecond init
BFirst init\nMain function\nSecond init
CSecond init\nFirst init\nMain function
DFirst init\nSecond init\nMain function
Attempts:
2 left
๐Ÿ’ก Hint
Multiple init functions run in the order they appear in the source file.
โ“ Predict Output
advanced
2:00remaining
Output of Go program with package-level variable initialization
What is the output of this Go program considering package-level variable initialization order?
Go
package main
import "fmt"

var a = initializeA()
var b = initializeB()

func initializeA() int {
    fmt.Println("Initializing A")
    return 1
}

func initializeB() int {
    fmt.Println("Initializing B")
    return 2
}

func main() {
    fmt.Println("a =", a, ", b =", b)
}
AInitializing A\nInitializing B\na = 1 , b = 2
Ba = 0 , b = 0
Ca = 1 , b = 2\nInitializing A\nInitializing B
DInitializing B\nInitializing A\na = 1 , b = 2
Attempts:
2 left
๐Ÿ’ก Hint
Package-level variables are initialized in the order they are declared.
โ“ Predict Output
advanced
2:00remaining
Output of Go program with multiple packages and init functions
Given two packages, main and util, what is the output when running the main package?
Go
package util

import "fmt"

func init() {
    fmt.Println("util init")
}

func UtilFunc() {
    fmt.Println("util function")
}

---

package main

import (
    "fmt"
    "util"
)

func init() {
    fmt.Println("main init")
}

func main() {
    fmt.Println("main function")
    util.UtilFunc()
}
Amain function\nutil init\nmain init\nutil function
Butil init\nmain init\nmain function\nutil function
Cmain init\nutil init\nmain function\nutil function
Dutil function\nutil init\nmain init\nmain function
Attempts:
2 left
๐Ÿ’ก Hint
Package init functions run before main, and dependencies init first.
๐Ÿง  Conceptual
expert
2:00remaining
Order of compilation and linking in Go build process
Which of the following correctly describes the order of steps in Go's compilation and execution flow when building and running a program?
AExecution โ†’ Linking โ†’ Compilation to object files โ†’ Type checking โ†’ Source code parsing
BLinking โ†’ Compilation to object files โ†’ Type checking โ†’ Source code parsing โ†’ Execution
CSource code parsing โ†’ Type checking โ†’ Compilation to object files โ†’ Linking โ†’ Execution
DCompilation to object files โ†’ Source code parsing โ†’ Type checking โ†’ Linking โ†’ Execution
Attempts:
2 left
๐Ÿ’ก Hint
Think about how source code is processed step-by-step before running.

Practice

(1/5)
1. What does the go build command do in Go programming?
easy
A. It compiles the code and creates an executable file.
B. It runs the code without compiling.
C. It only checks the code for errors without compiling.
D. It deletes the executable file.

Solution

  1. Step 1: Understand the purpose of go build

    The go build command compiles Go source code into an executable binary file.
  2. Step 2: Differentiate from other commands

    Unlike go run, go build does not run the program immediately but creates a file you can run later.
  3. Final Answer:

    It compiles the code and creates an executable file. -> Option A
  4. Quick Check:

    go build creates executable [OK]
Hint: Remember: build = compile and save executable [OK]
Common Mistakes:
  • Confusing go build with go run
  • Thinking go build runs the program immediately
  • Believing go build only checks syntax
2. Which of the following is the correct way to compile and run a Go program in one step?
easy
A. go execute main.go
B. go build main.go
C. go run main.go
D. go compile main.go

Solution

  1. Step 1: Identify the command that compiles and runs

    go run compiles the code and runs it immediately without creating an executable file.
  2. Step 2: Check other options

    go build only compiles; go execute and go compile are not valid Go commands.
  3. Final Answer:

    go run main.go -> Option C
  4. Quick Check:

    go run compiles and runs [OK]
Hint: Use go run to compile and run instantly [OK]
Common Mistakes:
  • Using go build to run directly
  • Typing invalid commands like go execute
  • Confusing compile-only and run commands
3. What will happen if you run the command go run main.go on a valid Go source file?
medium
A. It compiles the code, creates an executable file, and runs it.
B. It deletes the source file after running.
C. It only checks the code for errors but does not run it.
D. It compiles the code and runs it without creating an executable file.

Solution

  1. Step 1: Understand go run behavior

    go run compiles the source code in memory and runs it immediately without saving an executable file.
  2. Step 2: Eliminate incorrect options

    It compiles the code, creates an executable file, and runs it. is wrong because no executable file is saved. It only checks the code for errors but does not run it. is wrong because it runs the program. It deletes the source file after running. is incorrect as source files are never deleted.
  3. Final Answer:

    It compiles the code and runs it without creating an executable file. -> Option D
  4. Quick Check:

    go run compiles & runs, no file saved [OK]
Hint: Run with go run to skip saving executable [OK]
Common Mistakes:
  • Assuming go run saves an executable
  • Thinking go run only checks syntax
  • Believing source files get deleted
4. You run go build on your Go program, but no executable file appears. What is the most likely reason?
medium
A. Go automatically deletes the executable after building.
B. The source file has syntax errors preventing compilation.
C. The executable is created but hidden in a different directory.
D. The go build command only runs the program, not build it.

Solution

  1. Step 1: Understand go build behavior on errors

    If the source code has syntax errors, go build will fail and not create an executable file.
  2. Step 2: Check other options

    go build does not run the program, executables are created in the current directory by default, and Go does not delete executables automatically.
  3. Final Answer:

    The source file has syntax errors preventing compilation. -> Option B
  4. Quick Check:

    Syntax errors block build, no executable made [OK]
Hint: Check for syntax errors if no executable appears [OK]
Common Mistakes:
  • Expecting go build to run the program
  • Looking in wrong directories without checking errors
  • Assuming Go deletes executables automatically
5. You want to quickly test a small Go program without creating an executable file. Which command should you use and why?
hard
A. Use go run because it compiles and runs the program without saving an executable.
B. Use go build because it compiles and runs the program immediately.
C. Use go install because it runs the program without compiling.
D. Use go test because it compiles and runs the program.

Solution

  1. Step 1: Identify the command for quick testing

    go run compiles and runs the program immediately without creating an executable file, perfect for quick tests.
  2. Step 2: Understand why other commands don't fit

    go build creates an executable but does not run it. go install compiles and installs packages, not for quick runs. go test runs tests, not general programs.
  3. Final Answer:

    Use go run because it compiles and runs the program without saving an executable. -> Option A
  4. Quick Check:

    Quick test = go run [OK]
Hint: Use go run for quick compile-and-run tests [OK]
Common Mistakes:
  • Using go build expecting immediate run
  • Confusing go install with running code
  • Trying go test for normal program execution
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