Bird
Raised Fist0
Cprogramming~10 mins

Predefined macros - 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 the current line number using a predefined macro.

C
#include <stdio.h>

int main() {
    printf("Line number: %d\n", [1]);
    return 0;
}
Drag options to blanks, or click blank then click option'
A__DATE__
B__FILE__
C__TIME__
D__LINE__
Attempts:
3 left
💡 Hint
Common Mistakes
Using __FILE__ instead of __LINE__ which prints the file name.
Using __DATE__ or __TIME__ which print date or time, not line number.
2fill in blank
medium

Complete the code to print the current file name using a predefined macro.

C
#include <stdio.h>

int main() {
    printf("File name: %s\n", [1]);
    return 0;
}
Drag options to blanks, or click blank then click option'
A__FILE__
B__LINE__
C__DATE__
D__TIME__
Attempts:
3 left
💡 Hint
Common Mistakes
Using __LINE__ which gives a number, not a string.
Using __DATE__ or __TIME__ which give date or time, not file name.
3fill in blank
hard

Fix the error in the code to print the compilation date using a predefined macro.

C
#include <stdio.h>

int main() {
    printf("Compiled on: %s\n", [1]);
    return 0;
}
Drag options to blanks, or click blank then click option'
A__DATE__
B__LINE__
C__FILE__
D__TIME__
Attempts:
3 left
💡 Hint
Common Mistakes
Using __TIME__ which gives time, not date.
Using __FILE__ or __LINE__ which give file name or line number.
4fill in blank
hard

Fill both blanks to print the compilation date and time using predefined macros.

C
#include <stdio.h>

int main() {
    printf("Compiled on: %s at %s\n", [1], [2]);
    return 0;
}
Drag options to blanks, or click blank then click option'
A__DATE__
B__TIME__
C__FILE__
D__LINE__
Attempts:
3 left
💡 Hint
Common Mistakes
Swapping the order of date and time macros.
Using __FILE__ or __LINE__ instead of date/time macros.
5fill in blank
hard

Fill all three blanks to print the file name, line number, and compilation time using predefined macros.

C
#include <stdio.h>

int main() {
    printf("File: %s, Line: %d, Time: %s\n", [1], [2], [3]);
    return 0;
}
Drag options to blanks, or click blank then click option'
A__FILE__
B__LINE__
C__TIME__
D__DATE__
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up the order of macros.
Using __DATE__ instead of __TIME__ for the time.

Practice

(1/5)
1. Which of the following predefined macros in C gives the current line number in the source code?
easy
A. __LINE__
B. __FILE__
C. __DATE__
D. __TIME__

Solution

  1. Step 1: Understand predefined macros purpose

    Predefined macros provide info about the code or environment automatically.
  2. Step 2: Identify macro for line number

    __LINE__ gives the current line number in the source file.
  3. Final Answer:

    __LINE__ -> Option A
  4. Quick Check:

    Line number macro = __LINE__ [OK]
Hint: Line number macro always has LINE in its name [OK]
Common Mistakes:
  • Confusing __FILE__ with line number
  • Using __DATE__ or __TIME__ for line info
  • Thinking __LINE__ is a function
2. Which of the following is the correct syntax to print the current file name using a predefined macro in C?
easy
A. printf("File: %s", FILE);
B. printf("File: %s", __FILE__);
C. printf("File: %s", _FILE_);
D. printf("File: %s", file);

Solution

  1. Step 1: Recall predefined macro for file name

    The macro __FILE__ holds the current source file name as a string.
  2. Step 2: Check correct syntax usage

    Using printf("File: %s", __FILE__); correctly prints the file name.
  3. Final Answer:

    printf("File: %s", __FILE__); -> Option B
  4. Quick Check:

    File name macro syntax = __FILE__ [OK]
Hint: Predefined macros always have double underscores before and after [OK]
Common Mistakes:
  • Omitting underscores in __FILE__
  • Using FILE without underscores
  • Using lowercase file instead of macro
3. What will be the output of the following C code snippet?
#include <stdio.h>
int main() {
    printf("Date: %s\n", __DATE__);
    printf("Time: %s\n", __TIME__);
    return 0;
}
medium
A. Compilation error due to undefined macros
B. Date: __DATE__\nTime: __TIME__
C. Date: current date at compilation\nTime: current time at compilation
D. Date: 0000-00-00\nTime: 00:00:00

Solution

  1. Step 1: Understand __DATE__ and __TIME__ macros

    These macros expand to strings representing the date and time when the code was compiled.
  2. Step 2: Predict output of printf statements

    The program prints the compilation date and time as strings, not the macro names or errors.
  3. Final Answer:

    Date: current date at compilation\nTime: current time at compilation -> Option C
  4. Quick Check:

    __DATE__ and __TIME__ show compile date/time [OK]
Hint: __DATE__ and __TIME__ show compile time info as strings [OK]
Common Mistakes:
  • Expecting runtime current date/time
  • Thinking macros print their own names
  • Assuming macros are undefined
4. Consider this C code snippet:
#include <stdio.h>
int main() {
    printf("Line: %d\n", LINE);
    return 0;
}

What is the problem with this code?
medium
A. LINE is not a predefined macro; it should be __LINE__
B. Missing semicolon after printf
C. printf format specifier %d is incorrect for LINE
D. No problem; code runs fine

Solution

  1. Step 1: Identify the macro usage error

    The code uses LINE instead of the correct predefined macro __LINE__.
  2. Step 2: Understand consequences

    Since LINE is undefined, this causes a compilation error.
  3. Final Answer:

    LINE is not a predefined macro; it should be __LINE__ -> Option A
  4. Quick Check:

    Predefined macros need double underscores [OK]
Hint: Predefined macros always have double underscores before and after [OK]
Common Mistakes:
  • Using LINE without underscores
  • Thinking %d is wrong for line number
  • Ignoring missing macro error
5. You want to log the current file name, line number, and compilation date in your C program for debugging. Which code snippet correctly uses predefined macros to do this?
hard
A. printf("File: %s, Line: %d, Date: %s\n", _FILE_, _LINE_, _DATE_);
B. printf("File: %s, Line: %d, Date: %s\n", FILE, LINE, DATE);
C. printf("File: %s, Line: %d, Date: %s\n", "__FILE__", "__LINE__", "__DATE__");
D. printf("File: %s, Line: %d, Date: %s\n", __FILE__, __LINE__, __DATE__);

Solution

  1. Step 1: Identify correct predefined macros

    The macros __FILE__, __LINE__, and __DATE__ provide file name, line number, and compile date respectively.
  2. Step 2: Check correct usage in printf

    Using them directly without quotes and with correct underscores prints the desired info.
  3. Final Answer:

    printf("File: %s, Line: %d, Date: %s\n", __FILE__, __LINE__, __DATE__); -> Option D
  4. Quick Check:

    Use double underscore macros directly in printf [OK]
Hint: Use __FILE__, __LINE__, __DATE__ directly without quotes [OK]
Common Mistakes:
  • Using macros without underscores
  • Putting macros inside quotes (prints names, not values)
  • Using single underscores instead of double
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