Bird
Raised Fist0
Goprogramming~10 mins

Output formatting basics in Go - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to print a formatted string with a name.

Go
package main
import "fmt"
func main() {
    name := "Alice"
    fmt.Printf("Hello, [1]!\n", name)
}
Drag options to blanks, or click blank then click option'
A"%v"
B"%d"
C"%f"
D"%s"
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using %d instead of %s causes wrong output or errors.
Forgetting to include quotes around the format specifier.
2fill in blank
medium

Complete the code to print a floating-point number with two decimal places.

Go
package main
import "fmt"
func main() {
    pi := 3.14159
    fmt.Printf("Pi is approximately [1]\n", pi)
}
Drag options to blanks, or click blank then click option'
A"%.2f"
B"%d"
C"%s"
D"%v"
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using %d for floats causes wrong output.
Using %s prints the float as a string, not formatted.
3fill in blank
hard

Fix the error in the code to print an integer with leading zeros to make it 5 digits.

Go
package main
import "fmt"
func main() {
    num := 42
    fmt.Printf("Number: [1]\n", num)
}
Drag options to blanks, or click blank then click option'
A"%05d"
B"%5d"
C"%d"
D"%f"
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using %5d pads with spaces, not zeros.
Using %f for integers causes errors.
4fill in blank
hard

Fill both blanks to print a string left-aligned in a 10-character wide field and an integer right-aligned in a 5-character wide field.

Go
package main
import "fmt"
func main() {
    name := "Bob"
    age := 30
    fmt.Printf("Name: [1] Age: [2]\n", name, age)
}
Drag options to blanks, or click blank then click option'
A"%-10s"
B"%10s"
C"%5d"
D"%-5d"
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using %10s for string aligns right, not left.
Using %-5d left-aligns integer, but question wants right-aligned.
5fill in blank
hard

Fill all three blanks to print a float with 3 decimals, a string right-aligned in 8 spaces, and an integer padded with zeros to 4 digits.

Go
package main
import "fmt"
func main() {
    price := 9.87654
    product := "Pen"
    code := 7
    fmt.Printf("Price: [1] Product: [2] Code: [3]\n", price, product, code)
}
Drag options to blanks, or click blank then click option'
A"%.3f"
B"%8s"
C"%04d"
D"%-8s"
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using %s without width does not align string.
Using %d without zero padding for code.

Practice

(1/5)
1. What does the %d format specifier do in fmt.Printf in Go?
easy
A. Prints an integer value
B. Prints a floating-point number
C. Prints a string
D. Prints a boolean value

Solution

  1. Step 1: Understand format specifiers in Go

    The %d specifier is used to print decimal integers in Go's fmt.Printf.
  2. Step 2: Match specifier to data type

    Since %d prints integers, it matches integer values, not floats, strings, or booleans.
  3. Final Answer:

    Prints an integer value -> Option A
  4. Quick Check:

    %d = integer [OK]
Hint: Remember %d is for decimal integers in printf [OK]
Common Mistakes:
  • Confusing %d with %f for floats
  • Using %d for strings
  • Thinking %d prints booleans
2. Which of the following is the correct syntax to print a string variable name using fmt.Printf in Go?
easy
A. fmt.Printf("%d", name)
B. fmt.Printf("%f", name)
C. fmt.Printf("%s", name)
D. fmt.Printf(name)

Solution

  1. Step 1: Identify the correct format specifier for strings

    The format specifier for strings in Go's fmt.Printf is %s.
  2. Step 2: Check the syntax correctness

    fmt.Printf("%s", name) uses fmt.Printf("%s", name), which correctly prints the string variable name.
  3. Final Answer:

    fmt.Printf("%s", name) -> Option C
  4. Quick Check:

    %s prints strings [OK]
Hint: Use %s for strings in fmt.Printf [OK]
Common Mistakes:
  • Using %d or %f for strings
  • Omitting quotes around format string
  • Passing variable without format specifier
3. What is the output of the following Go code?
package main
import "fmt"
func main() {
    x := 7
    y := 3.14
    fmt.Printf("x = %d, y = %.1f\n", x, y)
}
medium
A. x = 7, y = 3.1
B. x = 7, y = 3.14
C. x = 7, y = 3.0
D. x = 7, y = 3

Solution

  1. Step 1: Understand the format specifiers used

    %d prints integer x as 7. %.1f prints floating-point y rounded to 1 decimal place.
  2. Step 2: Apply rounding to y

    3.14 rounded to 1 decimal place is 3.1, so output is "x = 7, y = 3.1".
  3. Final Answer:

    x = 7, y = 3.1 -> Option A
  4. Quick Check:

    %.1f rounds float to 1 decimal [OK]
Hint: %.1f rounds float to 1 decimal place [OK]
Common Mistakes:
  • Expecting full float without rounding
  • Confusing %d with %f
  • Ignoring newline character
4. Identify the error in this Go code snippet:
package main
import "fmt"
func main() {
    name := "Alice"
    age := 30
    fmt.Printf("Name: %s, Age: %f\n", name, age)
}
medium
A. Missing newline character in format string
B. Missing import statement
C. Incorrect variable declaration
D. Using %f to print an integer variable

Solution

  1. Step 1: Check format specifiers against variable types

    name is a string, printed with %s correctly. age is an integer but printed with %f, which expects a float.
  2. Step 2: Identify the mismatch causing error

    Using %f for an integer causes a runtime error or incorrect output.
  3. Final Answer:

    Using %f to print an integer variable -> Option D
  4. Quick Check:

    Match %f with float, not int [OK]
Hint: Match %f only with float variables [OK]
Common Mistakes:
  • Using %f for integers
  • Ignoring type mismatch warnings
  • Assuming %f works for all numbers
5. You want to print a table of product names and prices aligned in columns using fmt.Printf. Which format string correctly aligns the name left in 10 spaces and price right in 6 spaces with 2 decimals?
fmt.Printf("...", name, price)
hard
A. "%10s %-6.2f\n"
B. "%-10s %6.2f\n"
C. "%10s %6.2f\n"
D. "%-10s %-6.2f\n"

Solution

  1. Step 1: Understand alignment flags in format strings

    In Go, %-10s means left-align string in 10 spaces; %6.2f means right-align float in 6 spaces with 2 decimals.
  2. Step 2: Match alignment to requirements

    We want product name left-aligned in 10 spaces and price right-aligned in 6 spaces with 2 decimals, so "%-10s %6.2f\n" fits.
  3. Final Answer:

    "%-10s %6.2f\n" -> Option B
  4. Quick Check:

    Left-align string with %-10s, right-align float with %6.2f [OK]
Hint: Use - for left-align strings, no - for right-align numbers [OK]
Common Mistakes:
  • Swapping alignment flags
  • Using wrong width or precision
  • Forgetting to specify decimal places for floats
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