Что будет выведено на экран в результате выполнения фрагмента программы a:=5; b:=3; write( ‘a,=Z(‘, b, ‘)’ );
В языке программирования Pascal ABC вывод результатов решения задачи осуществляют операторы write или writeln. Выводить результаты можно разными способами. Если выводимая информация заключается в апострофы, то программа воспринимает ее как текст. И тогда все, что заключено в апострофы, появится на экране.
В нашем фрагменте программы обрабатываются числовые данные целого типа. В строке вывода видно, что эта часть выводимой информации ‘a,=Z(‘ и закрывающаяся скобка ‘)’ заключены в апострофы, а величина b выводится без апострофов, поэтому программа воспринимает ее как число. Тогда в результате указанного вывода write( ‘a,=Z(‘, b, ‘)’ ) на экране появится следующая информация: a,=Z(3). Это и будет ответом на поставленный вопрос.
Вывод на экран осуществляется оператором write(). Вывод начинается с текущей позиции курсора. Оператору write() передаются аргументы, значение которых и выводится на экран. В роли аргументов оператора write() могут выступать переменные различных типов, а также литералы различных типов. Переменные и литералы записываются через запятую. Строковые литералы записываются в одиночных кавычках.
Вывод на экран литералов
Например, если записать write(‘x=7’); оператор write() в качестве аргумента получает один строковый литерал ‘x=7’, и выводит на экран x=7.
Для вывода на экран целочисленного литерала нужно передать оператору write() требуемый литерал: write(2) выведет на экран 2.
Вывод на экран значений переменных
Чтобы вывести на экран значение переменной x, можно воспользоваться такой записью: write(‘x=’,x); При этом оператору write() передается строковый литерал ‘x=’ и значение переменной x (например, 98). На экране появится запись: x=98 .
В качестве аргумента оператору write() можно передавать целые выражения, например: write(x+x) выведет на экран значение суммы (при x=98 на экране будет выведено 196).
Для каждого передаваемого оператору write() аргумента, можно также передавать формат вывода значения на экран.
Например, для переменной r типа real: write(r:4:2); выведет значение переменной r в поле вывода размером 4 символа, причем после десятичной точки будет выведено 2 символа.
В представленном фрагменте a:=5; b:=3; write( ‘a,=z(‘, b, ‘)’ ); операции выполняются в порядке записи, сначала операторы присваивания, затем оператор write(). Аргументами оператора write() являются:
Что происходит при выполнении следующего фрагмента программного кода b 5


Тесты МУ Витте (МИЭМП/МУИВ), письменные работы. запись закреплена
Тесты Витте :ПРЕДМЕТ
Алгоритмизация и программирование 
Консультации по сдаче тестов, задач, практик, курсовых, и др.
Кейс-задания. Отчеты НИР. Рефераты. Контрольные. Рейтинговые.
Анонимно и с гарантией! Специалисты онлайн! Все дисциплины!
Чувствителен ли PYTHON к регистру (большая или маленькая буквы)?
-: нет
+: да
Кто является автором языка PYTHON?
-: Джеймс Гослинг
-: Бьёрн Страуструп
-: Юст ван Россум
-: Гвидо ван Россум
Переменная int – это:
-: вещественная переменная
-: символьная строка
-: логическая переменная
-: целая переменная
Переменная str – это:
-: символьная строка
-: логическая переменная
-: целая переменная
-: нет правильного ответа
Переменная float – это:
-: символьная строка
-: логическая переменная
-: целая переменная
-: вещественная переменная
Каков будет результат выполнения print int("88")?
-: "88"
-: 88
-: 88.00
-: нет правильного ответа
Что будет в результате выполнения кода ?
-: 2500
-: 25000
-: 25
-: 1000
Что будет в результате следующего действия print(2**20)?
-: 104576
-: 1048576
-: 964
-: 2
Что будет в результате выполнения следующего действия print(23 % 2)?
-: 11
-: 1
-: 0
-: 1
Результатом вычисления print(24 // 3) будет число:
-: 4
-: 8
-: 12
-: 72
Исходные данные a=5, b=7. Что будет результатом выполнения кода:
Что будет в результате выполнения следующего оператора print
print("This is a <0>. It's <1>.".format("ball", "red"))
+: This is a ball. It's red.
-: ball, red
-: <0>,<1>, ball, red
-: нет правильного ответа
Входные данные: 900. Что будет в результате выполнения следующего кода
?
Входные данные: Иванов. Что будет в результате выполнения следующего кода ?
-: Как Ваша фамилия? Здравствуйте,Иванов!
-: Как Ваша фамилия? Здравствуйте, Иванов !
-: Как Ваша фамилия? Здравствуйте, Иванов!
-: нет правильного ответа
Как будет записано число 18 после выполнения следующего алгоритма
?
-: 18
-: "18"
-: 18.0
-: 18.00
PYTHON является:
-: машинно-ориентированным языком (низкого уровня)
-: языком высокого уровня
-: объектно-ориентированным языком
Области применения PYTHON:
-: робототехника и искусственный интеллект
-: обучение
-: интернет
-: нет правильного ответа
Какие существуют типы переменных в PYTHON?
-: float
-: list
-: num
-: int
-: bool
Имена переменных не могут включать:
-: русские буквы
-: латинские буквы
-: пробелы
-: скобки, знаки — = ! ?
Какие имена являются правильными в PYTHON?
-: N
-: ABC
-: sum_4
-: 41And
-: A-B
-: _mam
В каких каталогах PYTHON ищет модули?
-: в каталоге, в который установлены стандартные модули
-: в каталогах, указанных в списке sys.path
-: в текущем каталоге
-: в каталогах, указанных в переменной окружения PATH
Какие характеристики можно отнести к языку программирования Python?
-: многоплатформный
-: удобен для встраивания в проекты на C/C—
-: большая стандартная библиотека модулей
-: низкоуровневый
Какие из этих утверждений о Python верны?
-: язык Python применяется для быстрой разработки приложений
-: Python имеет обширную библиотеку стандартных модулей
-: Python использует промежуточный код
-: программы на Python транслируются в машинные коды, которые затем исполняются
Какие парадигмы и стили программирования поддерживает Python?
-: императивное программирование
-: структурный стиль
-: логистическое программирование
-: модульное программирование
С помощью какого регулярного выражения можно «прочитать» из строки дату в формате ГГГГ-ММ-ДД? (требуется не только сопоставить строку с регулярным выражением, но и получить данные: год, месяц, день).
-:
-:
-:
-:
Какие два способа из перечисленных позволяют избежать ошибок приведения типов на языке Python?
-: явное приведение типов в критических участках кода
-: тщательное проектирование
-: функциональный стиль программирования
-: использование встроенной функции "isinstance(obj, cls)" для явной проверки типов в критических участках кода
-: обеспечение покрытия юнит-тестами
В программе используется символьная строка s = "Привет от старых штиблет!"
Отметьте все правильные операторы, работающие с этой символьной строкой:
-: s = "12345"
-: "12345" = s
-: s[1] = "0"
-: s1 = s[ alt=»☺» />
-: s[ alt=»☺» />= 0
Функция str(x):
-: преобразовывает х в строку
-: возвращает символьное значение переменной х
-: возвращает ошибку err str
-: преобразовывает x в кортеж
Тип преобразования. Знаковое целое. Десятичный формат. Выберите правильные ответы:
-: d
-: /
-: i
-: f
Какой фрагмент программного кода будет выводить 'number 5'
-: print('%s %d' % ('number', 5))
-: print('number %d' % 5)
-: print(number %d % 5)
-: print('%s %d' % ('number', '5'))
Расширение файла Python — _______.
Символ в Python обозначает _________.
_______в Python — тип данных для вещественных чисел, встроенный в Python по умолчанию.
_______в Python — логический тип данных, встроенный в Python по умолчанию.
Какой результат даст выполнение программного кода ?
-: 5
-: 7
-: 1
-: 25
Какой результат даст выполнение программного кода ?
-: 5 is of type <сlass 'int'>
-: 5
-: 5 class 'int'
-: 5 is of type int
Какой результат даст выполнение программного кода
?
-: (1-2j) is complex number? True
-: 1-2j
-: True
-: 1
Какой результат даст выполнение программного кода ?
-: 3
-: 3.14159
-: .14159
-: "3.14159"
Какой результат даст выполнение программного кода
?
-: 5 — 3 = 8
-: 8
-: <2>
-: 5, 3, 8
Как обозначается список в PYTHON?
-: lst = ('spam', 'drums', 100, 1234)
-: lst = ['spam', 'drums', 100, 1234]
-: нет правильного ответа
Чем кортеж отличается от списка?
-: кортеж – это многоуровневый словарь, список – одноуровневый набор данных
-: кортеж – это изменяемая структура данных, предназначенная для хранения элементов вида ключ: значение, а список содержит неизменяемые элемента
-: кортеж содержит данные одинакового типа, а список может содержать данные разных типов
-: кортеж — это тоже список, только с неизменяемыми элементами
Задан список lst = ['spam', 'drums', 100, 1234].
Как удалить элемент списка 'drums'?
-: lst[1]=null
-: lst[1]=''
-: lst.del('drums')
-: lst.remove('drums')
Что вернет следующий программный код:
-: RuntimeError
-: KeyError
-: not equal
-: equal
Как обозначается кортеж в PYTHON?
Задан список lst = ['spam', 'drums', 100, 1234].
Что будет выдано в результате среза lst[1::]; print (lst[1::])
-: 'drums', 100, 1234
-: ['drums', 100, 1234]
-: ['spam', 'drums', 100]
-: 'spam', 'drums', 100
Что будет в результате выполнения кода ?
Что будет в результате выполнения кода ?
-: [10, 20, 30, 40, 1, 2, 3, 4]
-: [11, 22, 33, 44]
-: 10, 20, 30, 40, 1, 2, 3, 4
-: 110
Что будет в результате выполнения кода ?
-: содержимое указанного файла станет следующим: "hello world"
-: содержимое указанного файла станет следующим: "hello"
-: ошибки выполнения не будет, но в указанный файл ничего не будет записано
-: произойдёт ошибка выполнения
Какому префиксу открытия файла в функции open() соответствует режим открытия файла для чтения и записи?
-: r
+: r+
-: w
-: w-
Какой метод чтения файла соответствует считыванию содержимого файла в строку?
-: read()
-: readline()
-: readlines()
-: нет правильного ответа
Что возвращает метод "list.sort()"?
-: ничего
-: ссылку на новый отсортированный список
-: ссылку на исходный отсортированный список
-: функцию
Посредством какой структуры данных реализованы словари ("dict") в языке Python?
-: ассоциативный массив
-: связный список
-: массив изменяемого размера
-: B-дерево
Укажите допустимый вариант ключа, используемого для получения значения из словаря:
-: экземпляр list
-: экземпляр tuple
-: экземпляр dict
-: экземпляр bytearray
Выберите верные утверждения по словарям в PYTHON:
-: данные в словаре — пары: ключ и значение
-: доступ к значениям осуществляется по ключу
-: доступ к значениям осуществляется по номеру
-: так как словари неизменяемы, то элементы словаря нельзя менять, добавлять, удалять
Какие операторы могут создать словарь?
-: d1 = dict()
-: d1=<>
-: d1=[]
-: d1=()
Выберите верные утверждения по спискам в PYTHON:
-: время доступа к элементу есть величина постоянная и не зависит от размера списка
-: время, необходимое на сортировку, зависит логарифмически от размера списка
-: элементы списка должны быть одного типа
-: время, необходимое на сортировку, зависит логарифмически от размера списка
Что такое словарь в Python?
-: ассоциативный массив
-: неупорядоченное множество пар ключ: значение
-: неизменяемое неупорядоченное множество пар ключ: значение
-: упорядоченное множество пар ключ: значение
Словарь создается с помощью функции dict(). Выберите правильное выражение:
-:
-:
-:
-:
-: нет правильного выражения
Укажите наиболее простые и верные способы копирования последовательности "x" в "y":
-: y[
= x[ 
-: y = x
-: y = x[ 
-: for i in x: y.append(i)
-: y = x.copy()
Для каких наборов данных верно утверждение «Python поддерживает отрицательную индексацию»?
-: список
-: кортеж
-: словарь
-: переменная
Задан список z = [1, 2, 3, 4]. Необходимо получить список [1, 2, 4].
Каким фрагментом программного кода можно воспользоваться?
-: z = [1, 2, 3, 4]; del z[2]; print(z)
-: z = [1, 2, 3, 4]; del z[2:3]; print(z)
-: z = [1, 2, 3, 4]; del z[3]; print(z)
-: z = [1, 2, 3, 4]; z.remove(2); print(z)
Задан список, состоящий из целых чисел z = [3, 7, 4, 8, 2]. Необходимо получить список [3, 7, 4, 8, 4].
Выберите правильный набор операторов:
-: z[4] -= 2
-: z[4] = 4
-: z[2] = 4
-: z[5] = 4
Что произойдет при выполнении следующей программы на языке Python?
-: в файл test.txt будет записана фраза Test string
-: в консоль будет выведена цифра 11
-: в переменную f будет записано выражение Test string
-: выдаст ошибку
Вызов функции list(range(. )) с некоторыми параметрами даёт следующий результат: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10].
Определите правильные варианты использования параметров функции range:
+: range(0, 10)
-: range(11)
-: range(10)
+: range(0, 11)
-: range(0, 10, 1)
Какие методы применимы к спискам в Python?
-: Index
-: Select
-: Count
-: Pop
-: Sum
Для функции open() выберите второй аргумент, который позволяет открыть файл на запись:
-: 'w'
-: 'x'
-: 'b'
-: 't'
Дан список list1 = [11, 33].
Какой фрагмент программного кода будет выводить [11, 33, 11, 33]?
-: list1 = [11, 33]; list2 = list1; list3 = list1 *2; print(list3)
-: list1 = [11, 33]; list2 = list1; list3 = list1 — list2; print(list3)
-: list1 = [11, 33]; list1 -= list1; print(list1)
-: list1 = [11, 33]; list2 = list1; list3 = list1 * list2; print(list3)
Впишите функцию для удаления элемента списка.
Впишите функцию для добавления элемента списка.
Функция seek осуществляет __________________ доступ к файлу.
Посредством какой структуры данных реализованы словари ("dict") в языке Python?
Какой результат даст выполнение программного кода
test1 = 'This is a test of the emergency text system' outfile = open('file1.txt', 'wt')
outfile.write(test1) outfile.close()
with open('file1.txt', 'rt') as infile:
test2 = infile.read()
print (len(test2))
-: 43
-: null
-: This is a test of the emergency text system
-: 1
Дан программный код
phone_book = <
"Andrey": "643-733",
"Sergey": "754-844",
"Dmitriy": "837-784"
>
phone_number = <phone_numbers, "Sergey">
Укажите правильный вариант используемой операции для последней строки вместо выражения в угловых скобках <phone_numbers, " Sergey "> так, чтобы в случае, когда phone_numbers не содержит требуемого ключа, не генерировалось бы исключение KeyError.
-: phone_book["Sergey"] if "Sergey" in phone_book else None
-: phone_book["Sergey"] if phone_book.has_key("Sergey") else None
-: phone_book.get("Sergey")
-: phone_book["Sergey"]
-: phone_book["Sergey"] if phone_book.has("Sergey") else None
Какой результат даст выполнение программного кода
list_keys = ['hostname', 'location', 'vendor', 'model', 'IOS', 'IP']
tuple_keys = tuple(list_keys)
tuple_keys[1] = 'test'
print (tuple_keys[1])
Какую функцию можно использовать для определения типа переменной PYTHON
-: isinstance
-: str
-: ord
-: chr
Что выдаст следующая команда:
print (str(float('3.2') — int('2'))-'4')
Что выдаст следующая команда:
print ((str(int('3') — int('2'))-'4')*2)
Каков будет результат выполнения следующего выражения:
b"" == ""
-: Генерация исключения TypeError
-: True
-: None
-: пустая строка
Какое значение примет переменная "а" в результате выполнения следующего выражения: (*a, b, c) = range(3)
-: [0]
-: [0, 1, 2]
-: 1
-: Никакое, произойдёт ошибка исполнения
Какую операцию из предложенных не поддерживает структура данных типа "dict"?
-: Получение элемента по номеру позиции
-: Получение элемента по ключу
-: Проверка того, что элемент принадлежит структуре данных
-: Удаление элемента
Что будет в результате выполнения кода
float("<0:.1f>".format(17.212123445))
Что будет в результате выполнения кода
a=13.946
print("%.2f" % a)
Что происходит при выполнении следующего фрагмента программного кода b 5
Ответы на вопросы для самопроверки
Глава 1. Основы Java
Что такое байт-код и почему он так важен для интернет-программирования на языке Java? Байт-код — это высокооптимизированный набор инструкций, выполняемых под управлением интерпретатора Java. Байт-код позволяет добиться переносимости и безопасности программ, написанных на этом языке программирования.
Каковы три основных принципа объектно-ориентированного программирования? Инкапсуляция, полиморфизм и наследование.
С чего начинается выполнение программы на Java? Выполнение программы на Java начинается с метода main ().
Что такое переменная? Переменная — это именованная область памяти. Содержимое переменной может изменяться в процессе выполнения программы.
Какое из перечисленных ниже имен переменных недопустимо?
A. count B. $count C. count27 D. 67count
Недопустимо имя переменной 67count (пункт D). Имя переменной не может начинаться с цифры.
Как создать однострочный комментарий? И как создать многострочный комментарий? Однострочные комментарии должны начинаться с символов / /.В этом случае комментариями считаются эти и все последующие символы до конца строки. А многострочные комментарии должны начинаться символами / * и заканчиваться символами */.
Как выглядит общая форма условного оператора if? И как выглядит общая форма цикла for? Общая форма оператора if выглядит следующим образом:
А общая форма цикла for имеет следующий вид:
Как создать кодовый блок? Кодовый блок должен начинаться с символа < и завершаться символом >.
Сила тяжести на Луне составляет около 17% земной. Напишите программу, которая вычисляла бы ваш вес на Луне.
Видоизмените программу, созданную в примере для опробования 1.2, таким образом, чтобы она выводила таблицу преобразования дюймов в метры. Выводите значения длины до 12 футов через каждый дюйм. После каждых 12 дюймов выводите пустую строку. (Один метр приблизительно равен 39,37 дюйма.)
Если при вводе кода программы вы допустите опечатку, то какого рода сообщение об ошибке вы получите? Сообщение о синтаксической ошибке.
Имеет ли значение, в каком именно месте строки находится оператор? Не имеет. В Java допускается произвольное форматирование исходного кода.
Глава 2. Введение в типы данных и операторы
- Почему в Java строго определены диапазоны допустимых значений и области действия простых типов? Диапазоны допустимых значений и области действия простых типов строго определены в Java для того, чтобы обеспечить переносимость программ с одной платформы на другую.
- Что собой представляет символьный тип в Java и чем он отличается от символьного типа в ряде других языков программирования? Символьный тип задается ключевым словом char. В Java для представления символов применяется уникод (Unicode), в отличие от многих других языков программирования, в которых для этой цели применяется код ASCII.
- Переменная типа boolean может иметь любое значение, поскольку любое ненулевое значение интерпретируется как истинное. Верно или неверно? Неверно. Переменная типа boolean может принимать лишь одно из двух логических значений: true или false.
- Допустим, результат выполнения программы выглядит следующим образом:
Глава 3. Управляющие операторы
- Напишите программу, которая вводила бы символы с клавиатуры до тех пор, пока не встретится точка. Предусмотрите в программе счетчик числа пробелов. Сведения о количестве пробелов должны выводиться в конце программы.
Нет, не корректен. Переменная i недоступна за пределами цикла for, в котором она объявлена. 6. Какие действия выполняет оператор break? Опишите оба рарианта этого оператора. Оператор break без метки вызывает немедленное завершение текущего цикла или выражения switch. А оператор break с меткой передает управление в конец помеченного блока. 7. Какое сообщение будет выведено после выполнения оператора break в приведенном ниже фрагменте кода? for(i = 0; i < 10; i++) < while(running) < if(x<y) break; // . >System.out.println(«after while»); > System.out.println(«After for»); После выполнения оператора break будет выведено сообщение «after while» (после цикла while). 8. Что будет выведено на экран в результате выполнения следующего фрагмента кода? «« for (int i = 0; i<10; i++) < System.out.print(i + " "); if((i%2) == 0) continue; System.out.println(); >На экране появится следующий результат: о 1 2 3 4 5 6 7 8 9 9. Итерационное выражение для цикла for не обязательно должно изменять переменную цикла на фиксированную величину. Эта переменная может принимать произвольные значения. Напишите программу, использующую цикл for для вывода чисел в геометрической прогрессии 1, 2, 4, 8, 16, 32 и т.д. «` /* Применение цикла for для формирования геометрической прогрессии 1, 2, 4, 8, 16, 32 и т.д. */ class Progress < public static void main(String args[]) < for(int i = 1; i < 100; i += i) System.out.print(i + " "); >> «` 10. Код ASCII-символов нижнего регистра отличается от кода соответствующих символов верхнего регистра на величину 32. Следовательно, для преобразования строчной буквы в прописную нужно уменьшить ее код на 32. Используйте это обстоятельство для написания программы, осуществляющей ввод символов с клавиатуры. При выводе результатов данная программа должна преобразовывать строчные буквы в прописные, а прописные — в строчные. Остальные символы не должны изменяться. Работа программы должна завершаться после того, как пользователь введет с клавиатуры точку. И наконец, сделайте так, чтобы программа отображала число символов, для которых был изменен регистр. «` // Смена регистра символов, class CaseChg < public static void main(String args[]) throws java.io.IOException < char ch; int changes = 0; System.out.println("Enter period to stop."); do < ch = (char) System.in.read(); if(ch >= 'a' & ch <= 'z') < ch -= 32; changes++; System.out.println(ch); >else if(ch >= ‘A’ & ch <= ‘Z’) < ch += 32; changes++; System.out.println(ch); >> while(ch != ‘.’); System.out.println(«Case changes: » + changes); > > «` 11. Что такое бесконечный цикл? Бесконечным называется такой цикл, выполнение которого не оканчивается. 12. Должна ли метка, используемая вместе с оператором break, быть определена в кодовом блоке, содержащем этот оператор? Да, должна.
Глава 4. Введение в классы, объекты и методы
- В чем отличие класса от объекта? Класс — это абстрактное логическое описание формы и поведения объекта. А объект — это вещественный экземпляр класса.
- Как определяется класс? Класс определяется с помощью ключевого слова class. В операторе class указываются код и данные, составляющие класс.
- Чью собственную копию содержит каждый объект? Каждый объект класса содержит собственную копию переменных экземпляра этого класса.
- Покажите, как объявить объект counter класса MyCounter, используя два отдельных оператора.
Глава 5. Дополнительные сведения о типах данных и операторах
Покажите два способа объявления одномерного массива, состоящего из 12 элементов типа double.
Покажите, как инициализировать одномерный массив целочисленными значениями от 1 до 5.
Напишите программу, в которой массив используется для нахождения среднего арифметического десяти значений типа double. Используйте любые десять чисел.
Измените программу, созданную в примере для опробования 5.1, таким образрм, чтобы она сортировала массив символьных строк. Продемонстрируйте ее работоспособность.
В чем отличие методов indexOf () и lastIndexOf () из класса String? Метод indexOf () находит первое вхождение указанной подстроки, а метод lastlndexOf () — ее последнее вхождение в текущей символьной строке.
Все символьные строки являются объектами типа String. Покажите, как вызываются методы length () и charAt () для строкового литерала ”1 like Java» (Мне нравится Java). Как ни странно, приведенный ниже вызов метода length () вполне допустим.
В результате этого вызова на экран выводится значение 11. Аналогичным образом вызывается и метод charAt ().
Расширьте класс Encode таким образом, чтобы в качестве ключа шифрования использовалась строка из восьми символов.
Можно ли применять поразрядные операторы к значениям типа double? Нет, нельзя.
Перепишите приведенную ниже последовательность операторов, воспользовавшись оператором ?.
В приведенном ниже фрагменте кода содержится знак &. Какой оператор он обозначает: поразрядный или логический? Обоснуйте свой ответ.
Это логический оператор, поскольку оба его операнда относятся к типу boolean.
Является ли ошибкой превышение верхней границы массива? Да.
Является ли ошибкой использование отрицательных значений для доступа к элементам массива?
Да. Значения индексов массива начинаются с нуля.
Как обозначается оператор сдвига вправо без знака?
Перепишите рассмотренный ранее в этой главе класс MinMax таким образом, чтобы в нем использовалась разновидность for-each цикла for.
В примере для опробования 5.1 была реализована пузырьковая сортировка. Можно ли в программе из этого примера заменить обычный цикл for его разновидностью for-each? Если нельзя, то почему? Циклы for, выполняющие сортировку в классе Bubble, нельзя преобразовать в вариант for-each. Что касается внешнего цикла, то текущее значение его переменной используется во внутреннем цикле. А что касается внутреннего цикла, то для перестановки следующих не по порядку элементов требуются операции присваивания значений элементам массива, чего нельзя добиться в варианте for-each.
Можно ли управлять оператором switch с помощью объектов типа String? Можно, начиная с версии JDK 7.
Глава 6. Дополнительные сведения о методах и классах
- Допустим, имеется следующий фрагмент кода:
Глава 7. Наследование
Имеет ли суперкласс доступ к членам подкласса? Имеет ли подкласс доступ к членам суперкласса? Нет, не имеет. Суперклассу ничего не известно о существовании подклассов. Подклассы действительно могут обращаться ко всем членам суперкласса, кроме тех, которые объявлены как закрытые (private).
Создайте подкласс Circle, производный от класса TwoDShape. В нем должен быть определен метод area (), вычисляющий площадь круга, а также конструктор с ключевым словом super для инициализации членов, унаследованных от класса TwoDShape.
Как предотвратить обращение к членам суперкласса из подкласса? Для того чтобы предотвратить доступ к членам суперкласса из подкласса, эти члены следует объявить как закрытые (private).
Опишите назначение и два варианта использования ключевого слова super. Ключевое слово super используется в двух случаях. Во-первых, с его помощью вызывается конструктор суперкласса. В этом случае общая форма вызова имеет следующий вид:
И во-вторых, это ключевое слово обеспечивает доступ к членам суперкласса. Ниже приведена общая форма такого доступа.
Допустим, имеется следующая иерархия классов:
В каком порядке вызываются конструкторы этих классов при создании объекта класса Gamma?
Конструкторы всегда вызываются в порядке наследования. Таким образом, при создании экземпляра класса Gamma будет сначала вызван конструктор Alpha, затем Beta и, наконец, Gamma.
Переменная ссылки на суперкласс может указывать на объект подкласса. Объясните, почему это важно и как это связано с переопределением методов? Когда переопределяемый метод вызывается по ссылке на суперкласс, его вариант определяется по типу объекта, на который делается ссылка.
Что такое абстрактный класс? Абстрактным называется такой класс, который содержит хотя бы один абстрактный метод.
Как предотвратить переопределение метода? И как предотвратить наследование класса? Для того чтобы метод нельзя было переопределить, его нужно объявить как final. А для того чтобы предотвратить наследование от класса, его следует объявить как final.
Объясните, каким образом механизмы наследования, переопределения методов и абстрактные классы используются для поддержки полиморфизма. Наследование, переопределение методов и абстрактные классы поддерживают полиморфизм и позволяют создать обобщенную структуру, реализуемую различными классами. Так, абстрактный класс определяет согласованный интерфейс, общий для всех реализующих его классов. Такой подход соответствует принципу “один интерфейс — множество методов”.
Какой класс является суперклассом всех остальных классов? Класс Object.
Класс, который содержит хотя бы один абстрактный метод, должен быть объявлен абстрактным. Верно или не верно? Верно.
Какое ключевое слово следует использовать для создания именованной константы? Ключевое слово final.
Глава 8. Пакеты и интерфейсы
- Используя код, созданный в примере для опробования 8.1, поместите в пакет qpack интерфейс ICharQ и все три реализующие его класса. Класс IQDemo должен остаться в пакете, используемом по умолчанию. Покажите, как импортировать и использовать классы из пакета qpack. Для того чтобы включить интерфейс ICharQ и реализующие его классы в пакет qpack, следует поместить каждый из них в отдельный файл, объявить все классы, реализующие данный интерфейс, как public, а в начале каждого файла ввести следующий оператор:
Глава 9. Обработка исключений
- Какой класс находится на вершине иерархии исключений? На вершине иерархии исключений находится класс Throwable.
- Объясните вкратце, как пользоваться ключевыми словами try и catch? Ключевые слова try и catch используются совместно. Операторы программы для отслеживания исключений помещаются в блок try. А перехват и обработка исключений осуществляются в блоке catch.
- Какая ошибка допущена в приведенном ниже фрагменте кода?
В данном фрагменте кода оператор catch для суперкласса предшествует оператору catch для подкласса. А поскольку оператор catch для суперкласса может обработать также исключения, относящиеся к подклассу, то в программе окажется код, недоступный для выполнения. 6. Может ли внутренний блок catch повторно генерировать исключение, которое будет обработано во внешнем блоке catch? Да, исключения могут генерироваться повторно. 7. Блок finally — последний фрагмент кода, выполняемый перед завершением программы. Верно или неверно? Обоснуйте свой ответ. Неверно. Блок finally выполняется по завершении блока try. 8. Исключения какого типа необходимо явно объявлять с помощью оператора throws, включаемого в объявление метода? С помощью оператора throws объявляются все исключения, кроме RuntimeException и Error. 9. Какая ошибка допущена в приведенном ниже фрагменте кода? class MyClass < // . >// . throw new MyClass(); Класс MyClass не является производным от класса Throwable. С помощью оператора throw могут генерироваться лишь те исключения, которые являются подклассами, производными от класса Throwable. 10. Отвечая на вопрос 3 упражнения для самопроверки по материалу главы 6, вы создали класс Stack. Добавьте в него специальные исключения для реагирования на попытку поместить элемент в переполненный стек и извлечь элемент из пустого стека. «` // Исключение, возникающее при переполнении стека, class StackFullException extends Exception < int size;
- Какими тремя способами можно сгенерировать исключение? Исключение может быть сгенерировано в результате ошибки в виртуальной машине Java, ошибки в программе или явным образом с помощью оператора throw.
- Назовите два подкласса, производных непосредственно от класса Throwable. Классы Error и Exception
- Что такое многократный перехват? Многократным называется такой перехват, который позволяет перехватывать два и больше исключений одним оператором catch.
- Следует ли перехватывать в программе исключения типа Error? Нет, не следует.
Глава 10. Ввод-вывод данных
- Для чего в Java определены как байтовые, так и символьные потоки? Байтовые потоки с самого начала были определены в Java. Они особенно удобны для ввода-вывода двоичных данных и поддерживают произвольный доступ к ним в файлах. А символьные потоки оптимизированы для представления в уникоде.
- Как известно, ввод-вывод данных на консоль осуществляется в текстовом виде. Почему же в Java для этой цели используются байтовые потоки? Стандартные потоки ввода-вывода System, in, System.out и System.err были определены в Java прежде символьных потоков.
- Как открыть файл для чтения байтов? Ниже приведен один из способов открытия файла для ввода данных типа byte.
Глава 11. Многопоточное программирование
- Каким образом имеющиеся в Java средства многопоточного программирования позволяют писать более эффективные программы? Средства многопоточного программирования дают возможность использовать периоды простоя, наступающие практически в любой программе. Когда операции в одном потоке по каким-то причинам не выполняются, в действие вступают другие потоки. В многоядерных системах два и больше потоков могут исполняться одновременно.
- Для поддержки многопоточного программирования в Java предусмотрен класс и интерфейс . Для поддержки многопоточного программирования в Java предусмотрен класс Thread и интерфейс Runnable.
- В каких случаях следует отдать предпочтение расширению класса Thread над реализацией интерфейса Runnable? Подклассы, производные от класса Thread, целесообразно создавать в тех случаях, когда, помимо метода run (), требуется переопределить другие методы данного класса.
- Покажите, как с помощью метода j о in () можно организовать ожидание завершения потокового объекта MyThrd.
Глава 12. Перечисления, автоупаковка, статический импорт и аннотации