Trắc Nghiệm Ngôn Ngữ Lập Trình C ( English ) - Bài 59
1-
|
What will be the output of the program?
#include<stdio.h>
#include<stdarg.h>
void fun1(int num, ...);
void fun2(int num, ...);
int main()
{
fun1(1, "Apple", "Boys", "Cats", "Dogs");
fun2(2, 12, 13, 14);
return 0;
}
void fun1(int num, ...)
{
char *str;
va_list ptr;
va_start(ptr, num);
str = va_arg(ptr, char *);
printf("%s ", str);
}
void fun2(int num, ...)
{
va_list ptr;
va_start(ptr, num);
num = va_arg(ptr, int);
printf("%d", num);
}
|
|
A -
|
Dogs 12
|
|
B -
|
Cats 14
|
|
C -
|
Boys 13
|
|
D -
|
Apple 12
|
2-
|
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
|
3-
|
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
|
4-
|
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
|
5-
|
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
|
6-
|
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
|
7-
|
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
|
8-
|
Point out the error in the following program.
#include<stdio.h>
#include<stdarg.h>
void varfun(int n, ...);
int main()
{
varfun(3, 7, -11.2, 0.66);
return 0;
}
void varfun(int n, ...)
{
float *ptr;
int num;
va_start(ptr, n);
num = va_arg(ptr, int);
printf("%d", num);
}
|
|
A -
|
Error: too many parameters
|
|
B -
|
Error: invalid access to list member
|
|
C -
|
Error: ptr must be type of va_list
|
|
D -
|
No error
|
9-
|
The macro va_arg is used to extract an argument from the variable argument list and advance the pointer to the next argument.
|
|
A -
|
True
|
|
B -
|
False
|
10-
|
In a function that receives variable number of arguments the fixed arguments passed to the function can be at the end of argument list.
|
|
A -
|
True
|
|
B -
|
False
|
[Người đăng: Thành Lãm - ST]
|