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