Exercise: Variable Number Of Arguments
Questions for: Variable Number Of Arguments
Point out the error in the following program.
#include<stdio.h>
#include<stdarg.h>
void display(char *s, ...);
void show(char *t, ...);
int main()
{
display("Hello", 4, 12, 13, 14, 44);
return 0;
}
void display(char *s, ...)
{
show(s, ...);
}
void show(char *t, ...)
{
int a;
va_list ptr;
va_start(ptr, s);
a = va_arg(ptr, int);
printf("%f", a);
}
A:
Error: invalid function display() call
B:
Error: invalid function show() call
C:
No error
D:
Error: Rvalue required for t
Answer: B
The call to show() is improper. This is not the way to pass variable argument list to a function.
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: B
Use double instead of float in float c;
Discuss About this Question.
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: C
We should have use va_start(ptr, num2);
Discuss About this Question.
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: A
Using va_start(ptr, int);
Discuss About this Question.
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: C
No answer description is available. Let's discuss.
Discuss About this Question.
Ad Slot (Above Pagination)
Discuss About this Question.