📖 Scenario: Imagine you want to understand why the C programming language is still popular and widely used today, even though many new languages exist.
🎯 Goal: You will create a simple C program that stores reasons why C is widely used in an array of strings and then prints each reason one by one.
📋 What You'll Learn
Create an array of strings called reasons with exactly 4 reasons why C is widely used
Create an integer variable called count to store the number of reasons
Use a for loop with variable i to iterate over the reasons array
Print each reason on its own line using printf
💡 Why This Matters
🌍 Real World
Understanding why C is widely used helps beginners appreciate its importance in system programming, embedded devices, and performance-critical applications.
💼 Career
Many software development jobs require knowledge of C because it is foundational for understanding low-level programming and working with hardware.
Progress0 / 4 steps
1
DATA SETUP: Create the reasons array
Create a string array called reasons with these exact entries: "Fast and efficient", "Close to hardware", "Portable", "Large community"
C
Hint
Use const char *reasons[] = { ... }; to create the array of strings.
2
CONFIGURATION: Create the count variable
Create an integer variable called count and set it to the number of elements in the reasons array using sizeof(reasons) / sizeof(reasons[0])
C
Hint
Use int count = sizeof(reasons) / sizeof(reasons[0]); to get the number of elements.
3
CORE LOGIC: Loop through the reasons array
Use a for loop with variable i from 0 to count - 1 to iterate over the reasons array
C
Hint
Use for (int i = 0; i < count; i++) and inside the loop use printf("%s\n", reasons[i]);.
4
OUTPUT: Print the reasons
Run the program to print each reason on its own line using printf
C
Hint
Make sure your program prints each reason on its own line exactly as shown.
Practice
(1/5)
1. Why is the C programming language widely used in system software development?
easy
A. Because it is fast and works close to the computer's hardware
B. Because it has a built-in graphical user interface
C. Because it automatically manages memory for the programmer
D. Because it is only used for web development
Solution
Step 1: Understand C's speed and hardware access
C is designed to be fast and allows direct access to memory and hardware, which is essential for system software.
Step 2: Compare with other options
Options A, B, and C are incorrect because C is not only for web development (A), does not have built-in GUI (B), and does not automatically manage memory (C).
Final Answer:
Because it is fast and works close to the computer's hardware -> Option A
Quick Check:
Speed and hardware access = D [OK]
Hint: Remember: C is close to hardware and very fast [OK]
Common Mistakes:
Thinking C has automatic memory management
Confusing C with languages made for web or GUI
Assuming C is slow or high-level only
2. Which of the following is the correct way to declare an integer variable in C?
easy
A. integer number;
B. int number;
C. num int;
D. var number;
Solution
Step 1: Recall C syntax for variable declaration
In C, the keyword int is used to declare integer variables, followed by the variable name and a semicolon.
Step 2: Check each option
Only int number; uses the correct syntax: int number;. Others use incorrect keywords or order.
Final Answer:
int number; -> Option B
Quick Check:
Correct int declaration = A [OK]
Hint: Use 'int' keyword for integers in C [OK]
Common Mistakes:
Using 'integer' instead of 'int'
Placing type after variable name
Using 'var' keyword (not in C)
3. What will be the output of the following C code?
int main() {
int a = 5;
int b = 3;
int c = a + b * 2;
printf("%d", c);
return 0;
}
medium
A. 16
B. 13
C. 11
D. 10
Solution
Step 1: Understand operator precedence in the expression
Multiplication (*) has higher precedence than addition (+), so b * 2 is calculated first: 3 * 2 = 6.
Step 2: Calculate the final value of c
Then add a: 5 + 6 = 11.
Final Answer:
11 -> Option C
Quick Check:
5 + (3 * 2) = 11 [OK]
Hint: Remember multiplication before addition in expressions [OK]
Common Mistakes:
Adding before multiplying
Confusing operator precedence
Misreading variable values
4. Identify the error in this C code snippet:
int main() {
int x = 10
printf("%d", x);
return 0;
}
medium
A. Missing semicolon after variable declaration
B. Incorrect printf format specifier
C. Variable x is not declared
D. Missing return statement
Solution
Step 1: Check syntax line by line
The line int x = 10 is missing a semicolon at the end, which is required in C.
Step 2: Verify other parts
The printf format specifier %d matches the integer variable, variable x is declared, and return statement is present.
Final Answer:
Missing semicolon after variable declaration -> Option A
Quick Check:
Semicolon missing after int x = 10 [OK]
Hint: Check for missing semicolons after statements [OK]
Common Mistakes:
Ignoring missing semicolon errors
Assuming printf format is wrong
Thinking return statement is optional
5. You want to write a C program that needs to run very fast and control hardware directly. Which feature of C helps achieve this best?
hard
A. Automatic garbage collection
B. Built-in support for web APIs
C. Dynamic typing of variables
D. Low-level memory access using pointers
Solution
Step 1: Identify features that allow hardware control
C allows direct memory access through pointers, which lets programmers control hardware and memory precisely.
Step 2: Eliminate incorrect options
Automatic garbage collection and dynamic typing are not features of C, and built-in web API support is unrelated to hardware control.
Final Answer:
Low-level memory access using pointers -> Option D
Quick Check:
Pointers enable hardware control = C [OK]
Hint: Pointers give direct memory control in C [OK]
Common Mistakes:
Confusing C with languages that have garbage collection
Thinking C supports dynamic typing
Assuming C has built-in web features
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.