Читайте также:
|
|
Министерство образования и науки Украины
Симферопольский автотранспортный техникум
«Утверждаю»
Заместитель директора по учебной работе
Гребнев Н.И.
«___» _______ 2009 г.
Вопросы
для программированного контроля знаний
по предмету «Системное программирование»
по специальности: 5.05010201
«Обслуживание компьютерных систем и сетей»
Вопросы составлены преподавателями Безменовой Е.Ю. Родько К.О. | Рассмотрены на заседании цикловой комиссии |
Протокол № от «___» __________ 2009 г. | |
Председатель комиссии | |
Безменова Е.Ю |
Симферополь, 2009
Пояснительная записка
Назначение
Блок вопросов теста по курсу «Системное программирование» выполнен в соответствии с рабочей и учебной программой и охватывает весь теоретический материал (в том числе и материал, задаваемый на самостоятельное изучение) и некоторые вопросы из практической части.
В целом тест предназначен как один из элементов для оценивания знаний на экзамене.
Отдельные блоки вопросов могут использоваться в следующих формах контроля знаний:
- модульные аттестации;
- допуск к дипломному проектированию.
Объем блоков вопросов.
Тест разбит на две части: первая – содержит 125 вопросов по языку программирования С++, вторая – 125 вопросов по языку программирования Ассемблер.
Учитывая достаточную сложность вопросов, время отведенное для ответа на один вопрос составляет около одной минуты
Методическая реализация.
Технически контроль осуществляется на ЭВМ с использование опросных систем-оболочек. Рекомендуемый метод, является объективным и соответствующим современным требованиям.
Структура вопроса.
Вопрос содержит 3 - 4 альтернативных варианта ответов, из которых только один является правильным.
Критерии оценивания.
При прохождении тестов определена следующая шкала оценивания:
на оценку «3» - 60% - 74%
на оценку «4» - 75% - 89%
на оценку «5» - 90% - 100%
Тестовые вопросы по блоку С++
?Подключение библиотеки определяется строкой:
+#include <iostream.h>
-include <iostream.h>
-#include 'iostream.h'
?Для использования в программе операторов ввода-вывода следует подключить библиотеку:
+iostream.h
-conio.h
-stdlib.h
?Для вывода текстовой строки с помощью оператора cout, используются:
+"..."
-'...'
-строка пишется без символов
?Для консольного ввода данных используют формат записи:
+cin>>переменная;
-cin<<переменная;
-sin>>переменная;
?Если в переменную должна быть введена строка символов, ввод продолжается до:
+первого символа пробела или ввода Enter
-первого символа пробела
-ввода Enter
?Многострочный комментарий начинается и заканчивается символами:
+/*...*/
-//...//
-{...}
?Однострочный комментарий следует за:
+//
-/*
-#
?Объявление переменной имеет вид:
+тип_данных имя_переменной
-имя_переменной тип_данных
-тип_данных:имя_переменной
?Переменная типа void:
+не имеет значения
-имеет значение
-всегда равна 0
?Строковые константы заключаются в:
+двойные кавычки
-апострофы
-константы пишутся без кавычек
?Символьные константы заключаются в:
-двойные кавычки
+апострофы
-константы пишутся без кавычек
?Префиксный оператор применяется к операнду:
+перед использованием полученного результата
-после использования полученного результата
-такого оператора не существует
?Постфиксный оператор применяется к операнду:
-перед использованием полученного результата
+после использования полученного результата
-такого оператора не существует
?Операторы инкремента и декремента являются:
+унарными
-бинарными
-универсальными
?Логическое "И" имеет вид:
+&&
-&
-and
?Логическое "ИЛИ" имеет вид:
+||
-|
-or
?Операция "не равно" в С++ имеет вид:
+!=
-<>
-=!
?В результате выполнения max=(a>b)?a:b; произойдет:
-ошибка
+если a>b, то max=a, иначе max=b
-если a>b, то max=a, иначе программа перейдет к выполнению следующего оператора
?Оператор switch является:
+оператором ветвления
-условным оператором
-такого оператора не существует
?Оператор цикла с предусловием имеет вид:
+while(выражение) оператор
-while(выражение) do оператор
-do оператор while(выражение)
?Оператор цикла с постусловием имеет вид:
+do оператор while(выражение)
-while(выражение) do оператор
-repeat оператор until выражение
?Оператор break необходим для того, чтобы:
+закончить цикл в любом операторе тела цикла
-начать новую итерацию цикла
-в С++ такого оператора не существует
?Оператор continue необходим для того, чтобы:
-закончить цикл в любом операторе тела цикла
+начать новую итерацию цикла
-в С++ такого оператора не существует
?Прототип функции объявляется:
+возвращаемый_тип имя_функции(список_параметров);
-имя_функции(список_параметров) возвращаемый_тип;
-возвращаемый_тип имя_функции(список_параметров) {тело_функции};
?Оперделение функции состоит из:
+ее заголовка и тела, заключенного в фигурные скобки
-ее заголовка и типа возвращаемого значения
-тела, заключенного в фигурные скобки
?Если функция возвращает значение, отличное от типа void, в теле функции обязательно должен присутствовать оператор:
+return
-return 0
-return имя_функции
?Вызов функции в программе представляет собой указание:
+ее имени, за которым следует список аргументов
-ее имени и типа возвращаемого значения
-типа возвращаемого значения, имени и списка аргументов
?Рекурсией называется явление, если:
+функция может вызывать сама себя
-функция может вызывать другую функцию
-функция может одновременно вызывать несколько функций
?Переменные, объявленные внутри функции, называются:
+локальными
-глобальными
-видимыми
?Под областью действия переменной понимают область программы, в которой:
+переменная доступна для использования
-к переменой можно получить доступ
-описана данная переменная
?Глобальные переменные доступны в любой из функций программы. Имена локальных и глобальных переменных:
+не должны совпадать
-могут совпадать
-могут менятся в ходе выполнения программы
?Глобальные переменные определяются:
+вне тела какой-либо из функций
-внутри главной функции
-как аргументы главной функции программы
?Операция:: называется:
+операцией разрешения области видимости
-операцией обращения к локальной переменной
-такой операции не существует в С++
?Символом перехода на новую строку является:
+'\n'
-'/n'
-"\n"
?Прототипы стандартных математических функций определены в заголовочном файле:
+math.h
-stdlib.h
-mathlib.h
?Функция возведения числа в степень имеет вид:
+pow(a,b), где a - число, b - показатель степени
-a^b, где a - число, b - показатель степени
-в С++ не существует стандартной функции возведения числа в степень
?Указатель представляет собой переменную, значение которой является:
+адресом ячейки памяти
-значением ячейки памяти
-указатель не является переменной
?Объявление указателя имеет вид:
+тип_объекта* идентификатор;
-идентификатор* тип_объекта;
-тип_объекта->идентификатор;
?К указателям могут применятся:
+арифметические операции
-операторы ввода-вывода
-любые операторы
?Параметры в функцию могут передаваться:
+по значению или по ссылке
-по значению или по указателю
-по указателю или по ссылке
?При передаче аргуменов по значению:
+функция работает с копией и не влияет на оригинал
-функция работает с оригиналом
-функция работает с копией и влияет на оригинал
?При передаче аргуменов по ссылке:
-функция работает с копией и не влияет на оригинал
+функция работает с оригиналом
-функция работает с копией и влияет на оригинал
?В С++ элементы массива нумеруются:
+с 0
-с 1
-в зависимости от указанного диапазона
?Инизиализацию массива можно произвести при его объявлении. После объявления необходимо:
+за знаком равенства перечислить значения в фигурных скобках
-за знаком равенства перечислить значения в круглых скобках
-за знаком равенства перечислить значения в квадратных скобках
?При объявлении одномерного массива с одновременной его инициализацией разрешается:
+опускать значение размера
-опускать тип элементов массива
-опускать скобки при перечислении элементов
?Многомерный массив размерности N:
+можно представить как одномерный масив измассивов размерности N-1
-можно представить как одномерный масив измассивов размерности N
-нельзя представить в виде одномерного массива
?Выберите идентификатор строкового типа данных в С++:
+в С++ не существует специального строкового типа
-string
-char
?Строки в С++ представляются как:
+массивы элементов типа char
-константа, взятая в двойные кавычки
-константа, взятая в апострофы
?Чтобы считать строку с клавиатуры следует использовать оператор:
+cin.getline
-cin
-getline
?Какие параметры принимает функция getline?
+первый аргумент указывает на строку, в которую осуществляется ввод, второй - количество вводимых символов
-первый аргумент указывает на количество вводимых символов, второй - на строку, в которую осуществляется ввод
-аргумент, указывающий на строку, в которую осуществляется ввод
?Чтобы после выполнения программы результаты оставались на экране, в конце программы следует написать оператор:
+getch()
-getchar()
-return 0
?Какая из нижеперечисленных функций копирует строку 2 в строку 1?
+strcpy
-strcat
-strcmp
?Какая из нижеперечисленных функций присоединяет строку 2 в конец строки 1?
-strcpy
+strcat
-strcmp
?Какая из нижеперечисленных функций сравнивает строку 1 со строкой 2, различая прописные и строчные буквы?
-strcpy
-strcat
+strcmp
?Какая из нижеперечисленных функций сравнивает строку 1 со строкой 2, не различая прописные и строчные буквы?
+stricmp
-strncmp
-strcmp
?Какая из нижеперечисленных функций возвращает длину строки?
+strlen
-strlength
-strlng
?Какая из нижеперечисленных функций преобразует все символы строки в строчные буквы?
+strlwr
-strupr
-strlvr
?Какая из нижеперечисленных функций преобразует все буквы строки в прописные буквы?
-strlwr
+strupr
-strypr
?Какая из нижеперечисленных функций присоединяет заданное число символов строки 2 в конец строки 1?
+strncat
-strcat
-stricat
?Какая из нижеперечисленных функций копирует заданное число символов строки 2 в строку 1?
-strcpy
+strncpy
-stricpy
?Какая из нижеперечисленных функций инвертирует строку?
+strrev
-strset
-strinv
?Какая из нижеперечисленных функций отыскивает место первого вхождения строки 2 в строку 1?
+strstr
-strtok
-strpos
?Какая из нижеперечисленных функций возвращает значение "истина", если символ с является буквой или цифрой?
+isalnum(c)
-isalpha(c)
-isdigit(c)
?Какая из нижеперечисленных функций возвращает значение "истина", если символ с является буквой?
-isalnum(c)
+isalpha(c)
-isdigit(c)
?Какая из нижеперечисленных функций преобразует строку символов в вещественное число?
+atof
-atoi
-ator
?Функции ввода-вывода для работы с файлами объявлены в заголовочном файле:
+stdlib.h
-iostream.h
-string.h
?Признаком конца строки в текстовом файле является:
+пара символов CR и LF
-символ CR
-символ LF
?Функция gets() выполняет:
+считывание строки символов из стандартного входного потока и помещает их в переменную
-считывание строки с клавиатуры
-считывание значения строковой переменной
?Функция puts():
+выводит строку в стандартный выводной поток и добавляет символ перевода на новую строку
-выводит строку в стандартный выводной поток
-выводит строку на экран
?Функция scanf() осуществляет:
+форматированный ввод информации из стандартного потока ввода
-форматированный вывод информации из стандартного потока вывода
-ввод информации из стандартного потока ввода
?К символам-заполнителям относятся:
+пробел, символ табуляции и перевод строки
-все символы, кроме знака процента
-пробел, символ табуляции, перевод строки и символ процента
?Функция printf() осуществляет:
-форматированный ввод информации из стандартного потока ввода
-форматированный вывод информации в стандартный потока вывода
-вывод информации в стандартный поток ввода
?Функция printf() принимает последовательность аргументов, применяя к каждому аргументу:
+спецификатор формата
-символ преобразования типа
-символ-заполнитель
?Спецификатор ширины поля устанавливает:
+минимальную ширину поля для выводимого значения
-максимальную ширину поля для выводимого значения
-ширину поля для выводимого значения
?Какой спецификатор функции printf() устанавливает максимальное число выводимых символов или минимальное число выводимых цифр для целых чискл?
+спецификатор точности
-спецификатор преобразования типа
-спецификатор ширины поля
?Для того, чтобы выполнять операции ввода-вывода в файловый поток, его нужно открыть с помощью функции:
+fopen()
-open()
-openf()
?Механизм, который объединяет данные и код, манипулирующий этими данными, а также защищает то и другое от постороннего вмешательства - это:
+инкапсуляция
-полиморфизм
-наследование
?Процесс, посредством которого один объект может приобретать свойства другого - это:
-инкапсуляция
-полиморфизм
+наследование
?Свойство кода вести себя по-разному, в зависимости от ситуации, возникающей в момент выполнения - это:
-инкапсуляция
+полиморфизм
-наследование
?Если объект наследует атрибуты от нескольких родителей, то говорят о:
+множественном наследовании
-простом наследовании
-полиморфизме
?Перегрузка операторов - это:
+один из способов реализации полиморфизма, заключающийся в возможности одновременного существования в одной области видимости нескольких различных вариантов применения оператора, имеющих одно и то же имя, но различающихся типами параметров, к которым они применяются
-один из способов реализации полиморфизма, заключающийся в возможности одновременного существования в одной области видимости нескольких различных вариантов применения оператора, имеющих одно и то же имя, не различающихся типами параметров, к которым они применяются
-один из способов реализации полиморфизма, заключающийся в возможности одновременного существования в разных областях видимости нескольких различных вариантов применения оператора, имеющих одно и то же имя, но различающихся типами параметров, к которым они применяются
?Виртуальная функция - это:
+функция класса, которая может быть переопределена в классах-наследниках так, что конкретная реализация метода для вызова будет определяться во время исполнения
-функция класса, которая не может быть переопределена в классах-наследниках
-функция класса, которая может быть переопределена в классах-наследниках так, что конкретная реализация метода для вызова будет определяться во время ее вызова
?Для виртуальных функций выполняется:
+позднее связывание
-раннее связывание
-динамическое связывание
?Синтаксис описания класса имеет вид:
+class <имя_класса> {//закрытые свойства и методы класса public: //открытые свойства и методы класса} <список_объектов>;
-class <имя_класса> {//открытые свойства и методы класса public: //закрытые свойства и методы класса} <список_объектов>;
-class <имя_класса> {//закрытые свойства и методы класса private: //открытые свойства и методы класса} <список_объектов>;
?Переменные, объявленные внутри класса, называются:
+данными-членами
-функциями-членами
-закрытыми элементами класса
?По умолчанию, все функции и переменные, объявленные в классе, становятся:
+закрытыми для этого класса
-открытыми для этого класса
-защищенными для этого класса
?Функции и переменные, доступные для других членов класса, объявляются после слова:
+public
-private
-protected
?Синтаксис задания функции-члена имеет вид:
+<Тип> <имя_класса>::<имя_функции>(<список_параметров>) {тело функции};
-<Тип> <имя_класса>::<имя_функции>(<список_параметров>);
-<Тип> <имя_класса>:<имя_функции>(<список_параметров>) {тело функции};
?К открытым членам класса можно обращатся, используя операцию:
+точка
-запятая
-двоеточие
?Данные-члены и функции-члены доступны только для функций-членов этого класса, если они описаны после слова:
-public
+private
-protected
?Данные-члены и функции-члены доступны для функций-членов этого класса и других функций программы, в которой имеется представитель класса, если они описаны после слова:
+public
-private
-protected
?Данные-члены и функции-члены доступны для функций-членов данного класса и классов, производных от него, если они описаны после слова:
-public
-private
+protected
?Выберите правильное утверждение:
+конструктор имееет то же имя, что и класс, членом которого он является, и не имеет возвращаемого значения
-конструктор имееет то же имя, что и класс, членом которого он является, и имеет возвращаемое значение
-конструктор имееет имя, отличное от имени класса, членом которого он является, и не имеет возвращаемого значения
?Имени какой функции-члена предшествует символ ~?
+деструктор
-конструктор
-закрытая функция-член
?Выберите правильное утверждение:
+для констуктора не указывается тип возвращаемого значения
-конструктор наследуется
-конструктор может возвращать значение
?Если в классе не определен конструктор, то:
+компилятор генерирует конструктор по умолчанию, не имеющий параметров
-компилятор генерирует конструктор по умолчанию, имеющий параметры
-компилятор выдаст ошибку периода выполнения
?Выберите правильное утверждение:
+деструктор не может иметь параметров
-класс может иметь более одного деструктора
-деструктор наследуется
?Конструктор по умолчанию:
+не имеет параметров и вызывается при создании объекта
-имеет параметры
-создается пользователем
?С помощью дружественных функций:
+можно получить доступ к закрытым членам класса
-можно получить доступ к открытым членам класса
-можно получить доступ к любым членам класса
?Дружественная функция:
-наследуется
+может быть дружественной сразу нескольким классам
-может быть дружественной только одному классу
?С++ позволяет классу наследовать:
+данные-члены и функции-члены
-данные-члены, функции-члены и конструктор
-данные-члены
?Какие члены базового класса доступны в производном классе при любом способе наследования?
+открытые и защищенные
-открытые и закрытые
-закрытые и защищенные
?Выберите не наследуемые члены класса:
+конструкторы, деструкторы, друзья класса
-конструкторы, деструкторы, друзья класса, защищеные данные-члены
-конструкторы, деструкторы, друзья класса, защищеные данные-члены и функции-члены
?Если производный класс сам служит в качестве базового класса для некоторого другого класса, то исходный базовый класс называется:
+косвенным
-производным
-родительским
?О множественном наследовании говорят, если:
+у производного класса имеется несколько базовых классов
-производный класс наследовался несколько раз
-у базового класса имеется несколько потомков
?Выберите правильное утверждение:
+любые две перегруженные функции должны иметь различные списки параметров
-любые две перегруженные функции должны иметь одинаковые списки параметров
-любые две перегруженные функции могут иметь различные списки параметров
?Функция getch() содержится в библиотеке:
+conio.h
-stdlib.h
-iostream.h
?Что нужно добавить, чтобы в результате выполнения программы #include <iostream.h> int main() {cout<<"Hello, world!\n";} строка Hello, world! оставалась на экране?
+#include <conio.h>, getch()
-getch()
-return 0
?Инструкция return обеспечивает:
+механизм завершения работы функции
-завершение работы программы
-вывод результатов
?Операция % дает:
+остаток от деления
-целую часть от деления
-такой операции в С++ не существует
?Какое значение сохранится в переменную a в результате выполнения следующей операции int a = 21 / 6;?
+3
-4
-3,5
?Выберите правильное утверждение:
+имя переменной может состоять из латинских букв, цифр и символа подчекивания; прописные и строчные буквы в именах различаются
-имя переменной может состоять из латинских букв, цифр и символа подчекивания; прописные и строчные буквы в именах не различаются
-имя переменной может состоять только из латинских букв; прописные и строчные буквы в именах различаются
?Выберите неправильный вариант:
+3.14 % 3
-21 % 6
-21 % -5
?Результатом выражения true && false || true будет:
+true
-false
-ошибка
?Дано: a=2; b=5; c=3; Тогда значением выражения a!=b && a!=c && b!=c будет:
+1
-0
-ошибка, переменные могут принимать только значения 0 или 1
?Что произойдет в результате выполнения следующих операторов: int a, b; a=b=0;?
+присваивание 0 обеим переменным
-ошибка
-сравнение значений переменных с 0
?Какое значение будет возвращать функция int proc(int a, int b) { return (a < b)? a: b; }?
+минимальное между a и b
-максимальное между a и b
-в операторе return нельзя указывать выражение
?Чему будет равно значение переменной int a = 6 + 3 * 4 / 2 + 2;?
+14
-20
-36
?Какое значение возвращает функция int gcd(int vl, int v2){ while (v2) { int temp = v2; v2 = vl % v2; vl = temp; } return vl;}
+наибольший общий делитель
-остаток от деления двух целых чисел
-целую часть от деления двух целых чисел
?Какого типа не может быть возвращаемое значение функции?
+массив
-перечисление
-класс
?Выберите неправильный вариант:
+int manip(int vl, v2)
-int manip(int vl, int v2)
-int manip(void)
Тестовые вопросы по блоку Ассемблер
?Какая из ниже перечисленных групп регистров относится к 16-разрядным?
-al, bl, cl, dl
+ax, bx, cx, dx
-eax, ebx, ecx, edx
?Какие из ниже перечисленных команд относятся к логическим?
-and, or, add, xor
-not, or, neg, and, xor
+not, and, or, xor
?Что произойдёт в результате выполнения следующей команды mov al,345?
-al=345
+ошибка
-al=al+345
?Что произойдёт в результате выполнения следующей команды mov [a1],[a2]?
+ошибка
-а1=а2
-значение а1 и а2 не изменятся
?Выберите правильный вариант:
+mov [a],5
-mov a1,283
-mov [a],[b]
?В результате выполнения следующей команды mov al,7; add al,250 в регисте al сохранится значение:
-257
+1
-ошибка
?В каком из следующих операторов можно использовать 3 операнда?
-mul
+imul
-idiv
?Какая из ниже перечисленных команд копирует значение из источника в приёмник?
-copy
+mov
-mul
?При помощи какой команды можно перенести значение из одной переменной в другую?
-copy [a1],[a2]
-mov [a1],[a2]
+mov ax,[a1]; mov [a2],ax
?Чтобы поместить значение регистра bl в регистр ax следует выполнить команду:
-mov ax,bl
-mov bl,ax
+mov ax,bx; mov ah,0
?В результате выполнения следующих команд mov ax,8; mov cx,6; mov dx,cx; add dx,cx;
-dx=8
+dx=14
-ошибка
?Команда add o1,o2:
+Складывает o1 и o2 и результат заносится в o1
-складывает o1 и o2 и результат заносит в o2
-складывает o1 и o2 и результат сохраняет в ax
?Выберите пару команд, дающих одинаковый результат:
-inc ax; sub ax,1
-dec ax; add ax,1
+inc ax; add ax,1
?Какая из ниже перечисленных команд изменяет значение cf:
-add
-inc
+adc
?Дано двоичное число 00100110. В результате применения к этому числу команды neg будет:
-11011001
-10100110
+11011010
?Какая из команд меняет знак:
-not
+neg
-такой команды не существует
?Команда mul o1:
-умножает o1 на o1 и результат сохраняет в ax
+умножает o1 на al и результат сохраняет в ax
-выдаст ошибку
?Какие из ниже перечисленных команд возводят 25 в квадрат?
+mov ax,25; mul ax
-mov ax,25; mul 25
-mul 25,25
?Выберите команду, которая умножает целые числа со знаком и может использовать более одного операнда:
+imul
-mul
-такой команды не существует
?В результате выполнения следующих команд imul eax, ecx, ebx произойдёт
-eax=ecx*ebx
-eax=eax*ecx*ebx
+Ошибка
?Выберите фрагмент программы, которая разделит 19 на 3, частное сохранит в bl, а остаток в bh
+mov ax,19; mov cl,3; div cl; mov bx,ax
-div 19,3; mov bx,ax;
-mov ax,19; div 3; mov bx,ax
?Какая команда сохранит частное в al, остаток – в ah?
+div
-mul
-sub
?Найти результат: mov al,1; mov bl,al; dec bl; and al,bl:
+al=0
-al=1
-al=al*bl
?Найти результат: mov al,0; inc al; mov bl,al; or al,bl:
-al=al+bl
-al=0
+al=1
?Логическое исключающее «или» это:
-or
+xor
-не существует
?В языке ассемблера комментарии определяются:
-:
-//
+;
?Регистры обеспечивают:
+более высокую скорость доступа, чем обращение к внешней памяти
-скорость чтения данных с внешнего носителя
-запись данных
?Выберите группу регистров общего назначения:
+ax, bx, cx, dx
-cs, ds, ss, es
-bp, sp, si, di
?Выберите группу сегментных регистров
-ax, bx, cx, dx
+cs, ds, ss, es
-bp, sp, si, di
?Выберите регистры индексов
-ax, bx, cx, dx
-cs, ds, ss, es
+bp, sp, si, di
?Сколько существует типов флагов?
-управляющие флаги и индексные флаги
-флаги состояния и флаги общего назначения
+управляющие флаги и флаги состояния
?Директива – это:
+утверждение, которое выполняется ассемблером во время трансляции исходной программы и получения машинных кодов
- утверждение, которое выполняется ассемблером во время декодировании исходной программы и получения машинных кодов
- утверждение, которое выполняется ассемблером во время загрузки исходной программы и получения машинных кодов
?Какая из директив определяет режим памяти?
-.data
+.model
-.stack
?Какая из директив выделяет память для одного или нескольких 8-разрядных значений?
+db
-dd
-dw
?Какая команда обменивает содержимое двух регистров или содержимое регистра и памяти?
-mov
+xchg
-xch
?Выберите команды, которые обменивают содержимое двух переменных
-xchg value1, value 2
-mov value1, value2
+mov al,value 1; xchg value 2,al; mov value 1,al
?Какой символ определяет систему счисления для шестнадцатеричной константы?
-d
-o
+h
?Если используются команды безусловного перехода, то программа:
+начинает выполняться с новой ветви в любом случае
-начинает выполняться с новой ветви
-начинает выполняться с новой ветви только в том случае если определённое условие является истинным.
?При помощи какой команды можно организовать цикл в языке ассемблера?
+jmp
-loop
-в языке ассемблера не существует циклов
?в результате выполнения следующих команд: mov ax,0; mov cx,5; top:; inc ax; loop top; значение регистров ax и cx будут:
-ax=0, cx=5
-ax=5, cx=5
+ax=5, cx=0
?Что определяет директива.code?
+отмечает начало сегмента
- отмечает начало данных
- отмечает начало памяти
?Стек – это:
+специальный буфер в памяти, который используется для временного хранения адресов и данных
-специальный буфер в памяти, который используется для постоянного хранения адресов и данных
-специальный буфер в памяти
?Принцип работы стека:
-первым пришёл – первым вышел
+последним пришёл – первым вышел
-последним пришёл – последним вышел
?В результате команд:mov ax,57; push ax
-изменится значение ax и поместится в стек
+не изменится значение ax и поместится в стек
-ошибка
?Указателем стека является:
+sp
-bp
-ax
?После извлечения значения из стека:
+указатель инкрементируется
-указатель декрементируется
-указатель не изменяется
?Какая из команд декрементирует указатель стека SP?
-такой команды не существует
-pop
+push
?Подпрограмма для ввода/вывода, управления файлами управления памятью:
-int 10h
+int 21h
-int 10h
?Команды cmp o1,o2:
+операнд o2 вычисляется из o1, результат нигде не сохраняется, команда просто изменяет регистр признаков
-операнд o1 вычисляется из o2, результат нигде не сохраняется, команда просто изменяет регистр признаков
-операнд o1 вычисляется из o2, не изменяя регистр признаков
?Какая команда вычисляет поразрядное «и» операндов?
-cmp
+test
-call
?Команда безусловного перехода
+jmp
-jx
-loop
?Команда jmp аналог конструкции
+goto
-loop
-for
?Команде безусловного перехода нужно передавать:
+один параметр
-два параметра
-она не имеет параметр
?Тип перехода команды jmp является:
-обязательным
+необязательным
-устанавливается по умолчанию
?Переход типа far, кроме регистра IB ещё модифицирует
+cs
-es
-si
?Метка – это:
+идентификатор, который заканчивается двоеточием
-идентификатор, который начинается с @
-идентификатор, который начинается с @ и заканчивается двоеточием
?jz metka
+ переход к metka, если zf=1
- переход к metka, если zf=0
- переход к metka, в любом случае
?При помощи каких команд в ассемблере можно реализовать цикл с параметром
+команда условного перехода и метка
-команда безусловного перехода и метка
-команда условного и безусловного перехода
?Команда loop работает:
-с одним операндом
+с двумя операндами
-не имеет операндов
?Используя инструкцию loop метка уменьшается значение регистра
+ecx (cx)
-eax (bx)
-ebx (bx)
?Какая команда позволяет организовать цикл с проверкой дополнительного условия:
+loopz
-loop
-не существует такой команды
?Вершина стека представлена парой:
+ss:sp
-si:sp
-ss:si
?Данные в стек записываются:
+по меньшему адресу
-по старшему адресу
-в любое место
?Какие данные может поддерживать стек?
-любые
-8-битные
+16- и 32-битные
?Команда push позволяет:
-поместить в стек содержимое любого 16 битного регистра
+поместить в стек содержимое любого 16 битного регистра или ячейки памяти
-извлечь из стека содержимое любого 16 битного регистра
?Какая команда записывает в свой операнд значение вершины стека?
+pop
-push
-mov
?Что произойдёт в результате выполнения следующих команд push eax;push esi;…;pop eax; pop esi;
+поменяются местами значения
-в регистрах eax и esi будут одинаковые значения
-ничего не произойдёт
?С помощью каких команд можно реализовать команду pop?
+mov и add
-mov и sub
-mov и push
?Какие команды не имеют операндов?
-push и pop
+pusha и popa
-push и pusha
?Какие команды помещают в стек регистр признаков?
+pusht/popf
-push/pop
-pusha/popa
?Для вызова подпрограммы используется команды:
+call
-ret
-proc
?Какой параметр можно передать команде call
-значение регистра
-адрес переменной
+адрес начала подпрограммы
?Используя какую команду можно вызвать программное прерывание?
+int
-inc
-ink
?Файловой системой называется:
+часть операционной системы, предназначенной для управления данными, записанными на постоянных носителях
-группа архивных фалов
-основные команды для управления работы компьютера
?Файловая система включает в себя:
+механизмы записи, хранения и чтения данных;
-механизмы преобразования типов данных;
-механизмы чтения, обработки и удаления данных.
?Позиция в файле определяется указателем, значение которого определяется:
+количеством прочитанных или записанных байтов
-строго фиксированным количеством слов
-только количеством прочитанных символов
?Функция открытия файла:
+0x3D
-ОхЗЕ
-0x3F
?Функция 0х3Е предназначена для:
+закрытия файла
-открытия файла
-чтения данных из файла
?Для записи в файл используется функция:
+0x40
-0x3D
-0x3F
?Указатель на имя файла передается через пару регистров:
+DS:DX (DS — сегмент, а DX — смещение)
-АХ:DX (АХ — регистр, а DX — сегмент)
-DS:AL(DS — сегмент, а AL — регистр)
?Функция 0х6С предназначена:
+для открытия и создания нового файла, если при открытии файла обнаружится, что файла с таким именем не существует
-только для открытия нового файла
-только для создания нового файла
?Для поиска позиции в файле предназначен системный вызов:
+0x42
-0x41
-0x43.
?Функция 0x41 предназначена для:
+удаления файла на диске
-поиска позиции в файле
-изменения атрибутов
?Переименование файла осуществляется с помощью системного вызова
+0x56
-0x43;
-0x39.
?Для создания каталога используется функция:
+0x39
-0х3В
-0x47
?Функция 0х3А предназначена для:
+удаления каталога
-смены текущего каталога
-создания каталога
?Определить, что произошла ошибка во время системного вызова, можно по флагу переноса:
+если флаг переноса установлен (CF=1), то вызов завершился ошибочно
-если флаг переноса не установлен (CF=0), то вызов завершился ошибочно
-если флаг переноса установлен (CF=1), то вызов завершился корректно
?Если произошла ошибка во время системного вызова, то информацию о коде ошибки можно определить:
-в регистре АХ
-с помощью системного вызова АН=0x59
-в Ralf Brown Interrupt List
+возможен любой из вариантов
?Команда CLI (Clear Interrupt) позволяет:
+сбрасывать флаг прерывания IF, т.е. запрещать аппаратные прерывания
-устанавливать флаг прерывания IF, т.е. разрешать аппаратные прерывания
-сбрасывать флаг прерывания IF, т.е разрешать аппаратные прерывания
?Определите верный комментарий к данной строке xchg byte [variable],с1:
+меняем местами один байт памяти и CL
-загружаем один байт памяти в CL
-вычитаем один байт памяти из CL
?Команда LEA
+вычисляет эффективный адрес второго операнда и сохраняет его в первом операнде
-вычисляет эффективный адрес первого операнда и сохраняет его во втором операнд
-меняет местами адреса первого и второго операндов
?Правильный синтаксис команды LEA:
+LEA о 1, [о2]
-LEA о 1, о2
-LEA о 1, о2, о3
?Определите верный комментарий к данной строке le a e d i, [ebx*4+ecx]:
+загружает в регистр EDI адрес, вычисленный как EDI = ЕВХ'^4+ЕСХ
-меняет местами адрес EDI и адрес вычисленный как EDI = ЕВХ'^4+ЕСХ
-помещает регистр EDI по адресу ЕВХ'^4+ЕСХ
?Строкой в языке ассемблера называется:
+последовательность символов (байтов), заканчивающаяся нулевым байтом
-произвольная последовательность символов заканчивающаяся любым байтом, кроме нулевого
-строго упорядоченная по возрастанию или убыванию последовательность символов, начинающиеся нулевым и заканчивающиеся n-ым байтом.
?Команды STOSx предназначены для:
+записи строки в память
-чтения строки из памяти
-сравнения строк
?Для чтения строки из памяти предназначена группа команд:
+LODSx
-STOSx
-CMPSx
?Команда STOSB:
+копирует содержимое регистра AL в ячейку памяти, адрес которой находится в паре регистров ES:(E)DI, и уменьшает или увеличивает на единицу значение регистра (E)DI
-копирует содержимое регистра AL в ячейку памяти, данные берутся из регистра АХ, а (E)DI уменьшается/увеличивается на 2
-копирует содержимое ЕАХ, а E(DI) уменьшает/увеличивает на 4
?Команды CMPSx предназначены для:
+сравнения строк
-поиска символа в строке
-чтения строки из памяти
?Для «общения» с периферийным или другим устройством на аппаратном уровне используются команды:
+IN и OUT
-REP и REPZ
-CMPSx
?Для повторения следующей команды используются команды:
+REP и REPZ
-IN и OUT
-SCASx
?Для чего предназначена команда NOP?
+Когда программа работает с портами ввода/вывода, между операциями чтения и записи нужно делать паузы
-Для ускорения работы периферийных устройств
-Для замедления работы процессора, т.к. периферийные устройства работают медленнее и им нужно
время, чтобы обработать запрос
?Команды SHR и SHL используются для:
+для поразрядного сдвига беззнаковых целых числа вправо и влево соответственно
-для поразрядного сдвига целых чисел со знаком (арифметического сдвига)
-для циклического поразрядного сдвига (ротации)
?Укажите команды выполняющие циклический поразрядный сдвиг (ротацию):
+RCR и RCL
-SHR и SHL
-IN и OUT
?Для определения порции данных размера, кратного слову, служит директива:
+DW (define word)
-DB (define byte)
-DD (define double word)
?Директива DD (define double word):
+задает значение порции данных размера, кратного двойному слову
-позволяет определить числовые константы и строки
-определяет порции данных размера, кратного слову
?Для резервирования памяти служит три директива:
-RESB
-RESW
-RESD
+все вышеперечисленные
?Директива RESD служит для:
+резервирования двойного слова
-резервирования байта
-резервирования слова
?Какие из директив не используются в паре с другой командой?
-TIMES
-REP
+NOP
?Псевдокоманда TIMES предназначена для:
+повторения следующей псевдокоманды
-подключения двоичного файла
-вычисления константных выражений
?Для подключения двоичного файла (упаковки графических или звуковых данных вместе с исполняемым файлом) предназначена команда:
+INCBIN
-TIMES
-EQU
?Псевдокоманда EQU предназначена для:
-повторения следующей псевдокоманды
-подключения двоичного файла
+вычисления константных выражений
?Нужно добавить к значению константу. Какие из команд будут выполнены быстрее?
-add еах,4;
+inc еах; добавляем 1 к ЕАХ; inc еах; inc еах; inc еах
-add еах,3; добавляем 3 к ЕАХ; inc еах; добавляем 1 к ЕАХ
?В какой из строк указан верный комментарий?
+lea еbх [еах+еах*4-1]; ЕВХ = ЕАХ*5 - 1
-lea еbх [еах+еах*4-1]; ЕВХ = ЕАХ*4
-lea еbх [еах+еах*4-1]; ЕВХ = ЕАХ*5
Дата добавления: 2015-12-01; просмотров: 21 | Нарушение авторских прав