Рубрики

C | Функции | Вопрос 11

#include <stdio.h>
#include <stdarg.h>

int fun(int n, ...)

{

    int i, j = 1, val = 0;

    va_list p;

    va_start(p, n);

    for (; j < n; ++j)

    {

        i = va_arg(p, int);

        val += i;

    }

    va_end(p);

    return val;

}

int main()

{

    printf("%d\n", fun(4, 1, 2, 3));

    return 0;

}

(А) 3
(Б) 5
(С) 6
(D) 10

Ответ: (с)
Объяснение: Функция получает переменное число аргументов, поскольку после первого аргумента есть три точки. Первый аргумент — это число всех аргументов, включая первый. Функция в основном возвращает сумму всех оставшихся аргументов. См. Http://espressocode.top/how-to-count-variable-numbers-of-arguments-in-c для деталей.
Тест на этот вопрос

Рекомендуемые посты:

C | Функции | Вопрос 11

0.00 (0%) 0 votes