Date Редакция Категория comp Теги C

19.

alloca выделяет память на стеке, а не в куче (в отличие от malloc), поэтому возвращаемый array_dup() указатель будет указывать на освобожденную область памяти.

21.

Во многих ответах на этот вопрос, найденных в сети, в качестве правильного указан вариант 1 (t = clock();). Это не верно, т.к. clock() возвращает тип clock_t, который представляет время в количестве "тиков" процессора от момента старта процесса, а time_t -- целое число секунд, прошедшее от базовой эпохи (полночь по GMT, 01.01.1970). Кроме того, типы clock_t и time_t вовсе не обязаны совпадать.

Можно было бы еще использовать следующий вариант инициализации: t = time(NULL);

34.

Ответы 1 и 3 представляются мне равнозначными, по крайней мере, с точки зрения соответствия стандарту (C89).

80.

В ответе 2 меня смутил ""if" (см. обсуждение буферизации стандартных потоков), однако это максимально корректный ответ из имеющихся. В ответе 3 появление символа новой строки преподносится как единственная причина автоматической очистки буфера, хотя таких причин может быть несколько.

85.

Функция возвращает адрес локальной переменной.

92.

В таком виде функция вообще не компилируется -- после case'ов нужен break. Отсутствует защита от n<=0.

94.

Полностью повторяет вопрос 79.

99.

Вообще говоря, подходят все варианты ответов, кроме 1.



Комментарии

comments powered by Disqus