Рубрики

ВОРОТА | Gate IT 2008 | Вопрос 48

Рассмотрим программу на C ниже. Что это печатает?

# include <stdio.h>
# define swapl (a, b) tmp = a; a = b; b = tmp

void swap2 ( int a, int b)

{

        int tmp;

        tmp = a; a = b; b = tmp;

 }

void swap3 (int*a, int*b)

{

        int tmp;

        tmp = *a; *a = *b; *b = tmp;

}

int main ()

{

        int num1 = 5, num2 = 4, tmp;

        if (num1 < num2) {swap1 (num1, num2);}

        if (num1 < num2) {swap2 (num1 + 1, num2);}

        if (num1 >= num2) {swap3 (&num1, &num2);}

        printf ("%d, %d", num1, num2);

}

 / * Добавить код здесь. Удалите эти строки, если не пишете код * / 

(А) 5, 5
(Б) 5, 4
(С) 4, 5
(D) 4, 4

Ответ: (с)
Объяснение: оператор if (num1> = num2) {swap3 (& num1, & num2);}) имеет значение true, поэтому будет выполнен вызов по ссылке.
Тест на этот вопрос

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

ВОРОТА | Gate IT 2008 | Вопрос 48

0.00 (0%) 0 votes