The scope of a variable in C is the part of the program where the variable can be accessed or used.
Click to reveal answer
beginner
What is the difference between local and global variables?
Local variables are declared inside a function and can only be used within that function. Global variables are declared outside all functions and can be used anywhere in the program after their declaration.
Click to reveal answer
intermediate
What happens if a local variable and a global variable have the same name?
The local variable will hide or override the global variable inside its scope (usually inside the function). Outside the function, the global variable is used.
Click to reveal answer
beginner
What is block scope in C?
Block scope means a variable declared inside a pair of braces { } is only accessible inside those braces.
Click to reveal answer
intermediate
What is the scope of a static variable inside a function?
A static variable inside a function keeps its value between calls but is only accessible inside that function.
Click to reveal answer
Where can a global variable be accessed in a C program?
AOnly inside the block where it is declared
BOnly inside the function where it is declared
CAnywhere in the program after its declaration
DNowhere, global variables do not exist in C
✗ Incorrect
Global variables are declared outside all functions and can be accessed anywhere after their declaration.
What is the scope of a variable declared inside a for loop in C?
AOnly inside the for loop block
BEntire program
COnly inside the function containing the loop
DGlobal scope
✗ Incorrect
Variables declared inside the for loop block have block scope and are accessible only inside that block.
If a local variable and a global variable share the same name, which one is used inside the function?
ALocal variable
BGlobal variable
CBoth variables are used simultaneously
DCompilation error
✗ Incorrect
The local variable hides the global variable inside the function scope.
What does the static keyword do when used with a variable inside a function?
AMakes the variable global
BMakes the variable accessible only outside the function
CDeletes the variable after the function ends
DKeeps the variable value between function calls and limits scope to the function
✗ Incorrect
Static variables inside functions retain their value between calls and are only accessible inside that function.
Which of these is NOT a valid scope type in C?
ALocal scope
BClass scope
CBlock scope
DGlobal scope
✗ Incorrect
C does not have class scope because it is not an object-oriented language.
Explain the difference between local and global variables in C and give an example of each.
Think about where the variables are declared and where they can be used.
You got /4 concepts.
Describe what happens when a local variable has the same name as a global variable in C.
Consider which variable the program uses inside the function.
You got /3 concepts.
Practice
(1/5)
1. What is the scope of a variable declared inside a function in C?
easy
A. It can be accessed only in the main function.
B. It is global and can be accessed anywhere in the program.
C. It is local to that function and cannot be accessed outside.
D. It is accessible only in loops inside the function.
Solution
Step 1: Understand variable declaration inside a function
A variable declared inside a function is created when the function starts and destroyed when it ends.
Step 2: Identify the scope of such variables
These variables are local to the function and cannot be accessed outside it.
Final Answer:
It is local to that function and cannot be accessed outside. -> Option C
Quick Check:
Local variable scope = inside function only [OK]
Hint: Local variables stay inside their function only [OK]
Common Mistakes:
Thinking local variables are global
Assuming local variables exist outside function
Confusing local with static variables
2. Which of the following is the correct way to declare a global variable in C?
easy
A. int x; // declared outside any function
B. int x; inside main()
C. static int x; inside a function
D. int x; inside a loop
Solution
Step 1: Identify global variable declaration
Global variables are declared outside all functions, usually at the top of the file.
Step 2: Check each option
int x; // declared outside any function declares int x; outside any function, which is correct for global scope.
Final Answer:
int x; // declared outside any function -> Option A
Quick Check:
Global variables declared outside functions [OK]
Hint: Globals declared outside all functions [OK]
Common Mistakes:
Declaring globals inside functions
Using static inside functions for globals
Declaring variables inside loops thinking they are global
3. What will be the output of the following C code?
int x = 5;
void func() {
int x = 10;
printf("%d", x);
}
int main() {
func();
printf(" %d", x);
return 0;
}
medium
A. 10 10
B. 5 10
C. 5 5
D. 10 5
Solution
Step 1: Analyze variable scopes in func()
Inside func(), a local variable x is declared with value 10, which hides the global x.
Step 2: Check printf outputs
First printf prints local x (10). Then main prints global x (5).
Final Answer:
10 5 -> Option D
Quick Check:
Local hides global inside function [OK]
Hint: Local variable hides global inside function [OK]
Common Mistakes:
Assuming global x prints inside func()
Mixing order of printed values
Ignoring local variable shadowing
4. Identify the error in the following C code snippet:
void func() {
printf("%d", x);
}
int main() {
int x = 5;
func();
return 0;
}
medium
A. x is not declared globally, so func() cannot access it
B. Variable x is used before declaration in func()
C. Missing return type for main()
D. Syntax error in printf statement
Solution
Step 1: Check variable x usage in func()
func() tries to print x but x is declared only inside main(), so func() cannot see it.
Step 2: Understand variable scope rules
Variables declared inside main() are local to main() only, not visible in other functions.
Final Answer:
x is not declared globally, so func() cannot access it -> Option A
Quick Check:
Local variables not visible outside their function [OK]
Hint: Functions can't access locals from other functions [OK]
Common Mistakes:
Thinking main()'s x is global
Ignoring variable scope rules
Assuming implicit global variables
5. Consider the following C code:
int x = 1;
void outer() {
int x = 2;
{
int x = 3;
printf("%d ", x);
}
printf("%d ", x);
}
int main() {
outer();
printf("%d", x);
return 0;
}
What is the output when this program runs?
hard
A. 1 2 3
B. 3 2 1
C. 3 3 3
D. 2 3 1
Solution
Step 1: Analyze innermost block variable
The innermost block declares x = 3, so first printf prints 3.
Step 2: Analyze outer block variable
After inner block ends, the x = 3 goes out of scope, so next printf prints outer x = 2.