C Programming - Functions
Exercise "Do not wait for leaders; do it alone, person to person."
- Mother Teresa
1.
Point out the error in the program
f(int a, int b)
{
int a;
a = 20;
return a;
}
A.
Missing parenthesis in return statement B.
The function should be defined as int f(int a, int b) C.
Redeclaration of a D.
None of above
Answer: Option B
Explanation:
f(int a, int b) The variable a is declared in the function argument statement.
int a; Here again we are declaring the variable a . Hence it shows the error "Redeclaration of a"
2.
Point out the error in the program
#include<stdio.h>
int f(int a)
{
a > 20? return(10): return(20);
}
int main()
{
int f(int);
int b;
b = f(20);
printf("%d\n", b);
return 0;
}
A.
Error: Prototype declaration B.
No error C.
Error: return statement cannot be used with conditional operators D.
None of above
Answer: Option A
Explanation:
In a ternary operator, we cannot use the return statement. The ternary operator requires expressions but not code.
3.
Point out the error in the program
#include<stdio.h>
int main()
{
int a=10;
void f();
a = f();
printf("%d\n", a);
return 0;
}
void f()
{
printf("Hi");
}
A.
Error: Not allowed assignment B.
Error: Doesn't print anything C.
No error D.
None of above
Answer: Option D
Explanation:
The function void f() is not visible to the compiler while going through main() function. So we have to declare this prototype void f(); before to main() function. This kind of error will not occur in modern compilers.