Главная / Программирование /
Язык программирования C / Тест 6
Язык программирования C - тест 6
Упражнение 1:
Номер 1
С какого ключевого слова начинается описание структуры?
Ответ:
 (1) struct
 
 (2) class
 
 (3) union
 
Номер 2
Что такое ярлык структуры?
Ответ:
 (1) обязательное имя, которое может использоваться в дальнейшем как сокращенная запись подробного описания 
 (2) необязательное имя, которое может использоваться в дальнейшем как сокращенная запись подробного описания 
 (3) элемент или переменная, упомянутые в структуре 
Номер 3
Что такое член структуры?
Ответ:
 (1) обязательное имя, которое может использоваться в дальнейшем как сокращенная запись подробного описания 
 (2) необязательное имя, которое может использоваться в дальнейшем как сокращенная запись подробного описания 
 (3) элемент или переменная, упомянутые в структуре 
Упражнение 2:
Номер 1
Как определить переменную D
в качестве структуры типа DATE
, не выделяя какую-либо память?
Ответ:
 (1) struct {...} DATE D
 
 (2) struct DATE D
 
 (3) struct D
 
Номер 2
С помощью какой конструкции может быть указан член определенной структуры?
Ответ:
 (1) имя структуры.член
 
 (2) член.имя структуры
 
 (3) имя структуры:член
 
Номер 3
Могут ли в C быть вложенные структуры?
Ответ:
 (1) не могут 
 (2) могут 
Упражнение 3:
Номер 1
Отметьте верные утверждения:
Ответ:
 (1) структуры можно присваивать или копировать как целое, и что они могут быть переданы функциям или возвращены ими 
 (2) единственные операции, которые вы можете проводить со структурами, состоят в определении ее адреса с помощью операции & и доступе к одному из ее членов 
 (3) автоматические структуры, как и автоматические массивы, не могут быть инициализированы 
 (4) инициализация не возможна в случае внешних или статических структур 
Номер 2
Как с помощью указателя P
можно обратиться к члену структуры?
Ответ:
 (1) P.член структуры
 
 (2) P-> член структуры
 
 (3) (*P).член структуры
 
Упражнение 4:
Номер 1
Можно ли в качестве членов структур использовать массивы?
Ответ:
 (1) можно 
 (2) нельзя 
Номер 2
Что будет результатом выражения: sizeof(OBJECT)
?
Ответ:
 (1) целое, равное размеру указанного объекта в байтах 
 (2) целое, равное размеру указанного объекта в битах 
 (3) размер члена структуры 
Номер 3
Что должен содержать каждый узел двоичного дерева?
Ответ:
 (1) указатель на данные 
 (2) указатель узла левого потомка 
 (3) указатель узла правого потомка 
Упражнение 5:
Номер 2
Какую лучше использовать структуру данных, для решения задачи, состоящей в подсчете числа появлений всех слов в некотором файле ввода?
Ответ:
 (1) односвязный список 
 (2) двусвязный список 
 (3) двоичное дерево 
Номер 3
Какую лучше использовать структуру данных, для решения задачи, состоящей в подсчете числа появлений слов, среди которых много упорядоченных комбинаций?
Ответ:
 (1) двоичное дерево 
 (2) 2-3 деревья 
 (3) AVL деревья 
Упражнение 6:
Номер 3
Отметьте верные утверждения:
Ответ:
 (1) функция lookup(S,T)
использует поиск по алгоритму хеширования 
 (2) поиск по алгоритму хеширования - поиск, при котором поступающее имя преобразуется в маленькое положительное число, которое затем используется для индексации массива указателей 
 (3) если никакие имена при хешировании не получают никакого значения, то элементом массива будет NULL
 
Упражнение 7:
Номер 1
#DEFINE external 02
#DEFINE static 04
Что означает следующая идиома: FLAGS |= external | static;
?
Ответ:
 (1) включает биты external
и static
в FLAGS
 
 (2) выключает биты external
и static
в FLAGS
 
 (3) для проверки на включение битов external
и static
в FLAGS
 
Номер 2
#define EXTERN 02
#define STAT 04
Что означает следующая идиома: flags &= ~(EXTERN | STAT);
?
Ответ:
 (1) включает биты EXTERN
и STAT
в flags
 
 (2) выключает биты EXTERN
и STAT
в flags
 
 (3) для проверки на включение битов EXTERN
и STAT
в flags
 
Номер 3
#DEFINE external 02
#DEFINE static 04 Что означает следующая идиома: IF ((FLAGS & (external | static)) == 0) ...
?
Ответ:
 (1) включает биты external
и static
в FLAGS
 
 (2) выключает биты external
и static
в FLAGS
 
 (3) для проверки на включение битов external
и static
в FLAGS
 
Упражнение 8:
Номер 1
struct { unsigned IS_KEYWORD : 1; unsigned IS_EXTERN : 1; unsigned IS_STATIC : 1; } FLAGS; Отметьте верные утверждения:
Ответ:
 (1) здесь определяется переменная с именем FLAGS
, которая содержит три 1-битовых поля 
 (2) следующее за двоеточием число задает ширину поля в байтах 
 (3) поля описаны как unsigned
, чтобы подчеркнуть, что они действительно будут величинами без знака 
Номер 2
struct { unsigned IS_KEYWORD : 1; unsigned IS_EXTERN : 1; unsigned IS_STATIC : 1; } FLAGS; Как включить биты IS_EXTERN
и IS_STATIC
?
Ответ:
 (1) FLAGS.IS_EXTERN = FLAGS.IS_STATIC = 0;
 
 (2) FLAGS.IS_EXTERN = FLAGS.IS_STATIC = 1;
 
 (3) FLAGS |= external | static;
 
Номер 3
struct { UNSIGNED IS_KEYWORD : 1; UNSIGNED IS_EXTERN : 1; UNSIGNED IS_STATIC : 1; } FLAGS; Как выключить биты IS_EXTERN
и IS_STATIC
?
Ответ:
 (1) FLAGS.IS_EXTERN = FLAGS.IS_STATIC = 0;
 
 (2) FLAGS.IS_EXTERN = FLAGS.IS_STATIC = 1;
 
 (3) FLAGS &= \^(external \! static);
 
Упражнение 9:
Номер 1
Что произойдет, если поле перекроет границу INT
?
Ответ:
 (1) тип INT
меняется на тип LONG
 
 (2) ошибка компилятора 
 (3) поле выравнивается по границе следующего INT
 
Номер 2
Что произойдет, если полю не присвоить имя?
Ответ:
 (1) ничего, это допустимо, неименованные поля (только двоеточие и ширина) используются для заполнения свободного места 
 (2) ошибка при выполнении программы 
 (3) ошибка компилятора 
Упражнение 10:
Номер 1
Что такое объединение?
Ответ:
 (1) это переменная, которая в различные моменты времени может содержать объекты разных типов и размеров, причем компилятор берет на себя отслеживание размера и требований выравнивания 
 (2) это набор из одной или более переменных, возможно различных типов, сгруппированных под одним именем для удобства обработки 
Номер 2
Могут ли объединения появляться в структурах?
Ответ:
 (1) не могут 
 (2) могут 
Номер 3
Могут ли структуры появляться в объединениях?
Ответ:
 (1) могут 
 (2) не могут 
Упражнение 11:
Номер 1
Каким образом может быть осуществлен доступ к членам объединения?
Ответ:
 (1) имя объединения.член
 
 (2) имя объединения -> член
 
 (3) указатель объединения -> член
 
Номер 2
Какие операции можно производить с объединениями?
Ответ:
 (1) доступ к члену и извлечение адреса 
 (2) объединения могут быть присвоены, переданы функциям или возвращены ими 
 (3) указатели объединений можно использовать в точно такой же манере, как и указатели структур 
Номер 3
С помощью какого оператора в языке C можно присвоить новое имя существующему типу?
Ответ:
 (1) type
 
 (2) type def
 
 (3) typedef
 
 (4) new
 
 (5) newtype
 
Упражнение 12:
Номер 1
typedef int (*PFI) ();
Что произойдет в результате выполнения этого кода?
Ответ:
 (1) создает тип PFI
для"указателя функции, возвращающей значение типа int
" 
 (2) создает тип int
для"указателя функции, возвращающей значение типа PFI
" 
 (3) компилятор выдаст ошибку 
Номер 2
Отметьте верные утверждения:
Ответ:
 (1) описание typedef
не приводит к созданию нового в каком-либо смысле типа; оно только добавляет новое имя для некоторого существующего типа 
 (2) описанные typedef
переменные обладают точно теми же свойствами, что и переменные, описанные явным образом 
 (3) по существу конструкция typedef
сходна с #DEFINE
за исключением того, что она интерпретируется компилятором и потому может осуществлять подстановки текста, которые выходят за пределы возможностей макропроцессора языка C 
Номер 3
Какие существуют причины применения описания typedef
?
Ответ:
 (1) облегчить решение проблемы переносимости 
 (2) обеспечении лучшей документации для программы