Exercise"In the middle of difficulty lies opportunity."
- Albert Einstein
|
| 1. |
Point out the error in the following program.
#include<stdio.h>
#include<stdarg.h>
fun(...);
int main()
{
fun(3, 7, -11.2, 0.66);
return 0;
}
fun(...)
{
va_list ptr;
int num;
va_start(ptr, n);
num = va_arg(ptr, int);
printf("%d", num);
}
|
| A. |
Error: fun() needs return type | | B. |
Error: ptr Lvalue required | | C. |
Error: Invalid declaration of fun(...) | | D. |
No error |
Answer: Option B
Explanation:
There is no fixed argument in the definition fun()
|
| 2. |
Point out the error if any in the following program (Turbo C).
#include<stdio.h>
#include<stdarg.h>
void display(int num, ...);
int main()
{
display(4, 'A', 'a', 'b', 'c');
return 0;
}
void display(int num, ...)
{
char c; int j;
va_list ptr;
va_start(ptr, num);
for(j=1; j<=num; j++)
{
c = va_arg(ptr, char);
printf("%c", c);
}
}
|
| A. |
Error: unknown variable ptr | | B. |
Error: Lvalue required for parameter | | C. |
No error and print A a b c | | D. |
No error and print 4 A a b c |
Answer: Option B
Explanation:
No answer description available for this question. Let us discuss.
|
| 3. |
Point out the error in the following program.
#include<stdio.h>
#include<stdarg.h>
void varfun(int n, ...);
int main()
{
varfun(3, 7, -11, 0);
return 0;
}
void varfun(int n, ...)
{
va_list ptr;
int num;
num = va_arg(ptr, int);
printf("%d", num);
}
|
| A. |
Error: ptr has to be set at begining | | B. |
Error: ptr must be type of va_list | | C. |
Error: invalid access to list member | | D. |
No error |
Answer: Option B
Explanation:
Using va_start(ptr, int);
|
| 4. |
Point out the error in the following program.
#include<stdio.h>
#include<stdarg.h>
int main()
{
void display(char *s, int num1, int num2, ...);
display("Hello", 4, 2, 12.5, 13.5, 14.5, 44.0);
return 0;
}
void display(char *s, int num1, int num2, ...)
{
double c;
char s;
va_list ptr;
va_start(ptr, s);
c = va_arg(ptr, double);
printf("%f", c);
}
}
|
| A. |
Error: invalid arguments in function display() | | B. |
Error: too many parameters | | C. |
Error: in va_start(ptr, s); | | D. |
No error |
Answer: Option E
Explanation:
We should have use va_start(ptr, num2);
|
| 5. |
Point out the error in the following program.
#include<stdio.h>
#include<stdarg.h>
int main()
{
void display(int num, ...);
display(4, 12.5, 13.5, 14.5, 44.3);
return 0;
}
void display(int num, ...)
{
float c; int j;
va_list ptr;
va_start(ptr, num);
for(j=1; j<=num; j++)
{
c = va_arg(ptr, float);
printf("%f", c);
}
}
|
| A. |
Error: invalid va_list declaration | | B. |
Error: var c data type mismatch | | C. |
No error | | D. |
No error and Nothing will print |
Answer: Option D
Explanation:
Use double instead of float in float c;
|
|
|