Совместимость и преобразование типов
Какие из ниже перечисленных типов совместимы по присваиванию Т1:=Т2:
integer и real
char и string
char и byte
byte и char
real и longint
Какие из ниже перечисленных типов несовместимы по присваиванию Т1:=Т2:
longint и byte
shortint и integer
real и longint
char и byte
string[10] и string
Какие из ниже описанных переменных имеют эквивалентный тип:
type
t1=array [char] of byte;
t2=array [1..15] of byte;
t3=t2;
var
v1:t1; v2,v3:t2;
v4:t3;
a:byte;
b:char;
mas:array [1..15] of byte;
v3 и v2 и v4
v1['1'] и b
v1 и v2
a и b
mas[1] и b
Какие из ниже перечисленных типов несовместимы по присваиванию:
integer:=shortint;
integer:=word;
comp:=real;
longint:=char;
string:=char;
Какие из ниже описанных переменных неэквивалентны по типу:
type
t1=byte;
t2=1..100;
t3=t2;
var
a:byte;
b,c:char;
mas:array [1..15] of byte;
v1:t1;
v2:t2;
v3:t3;
v3 и v2
a и v1
b и mas[5]
c и b
v2 и v1
Какие типы называются эквивалентными?
совместимые типы
представляющие собой одно и то же имя типа,
или когда один из типов описан с использованием равенства вида type t1=t2;
только стандартные
только типы, описанные программистом
либо когда оба целые, либо когда оба вещественные
Нельзя сказать однозначно, что эти два типа совместимы, если:
оба вещественные
они эквивалентны
один интервальный, другой его базовый
оба целые
оба процедурные
Результат приведения типа переменной является:
- переменной
- значением
- выражением
- новым типом
- зависит от ситуации, т.е. неоднозначно для разных типов
Явное преобразование типа возможно
с помощью стандартных функций (CHR, ORD, TRUNC, ROUND) или
механизма приведения типа (например, CHAR(128), BYTE(BOOLEAN))
при выполнении оператора присваивания, например вещественный:=целый
при использовании нетипизированных файлов
при использовании вариантной части в записи
при совмещении переменных по абсолютному адресу в памяти
Укажите вариант, не подпадающий под понятие «Неявное преобразование типа»
с помощью стандартных функций (CHR, ORD, TRUNC, ROUND) или
механизма приведения типа (например, CHAR(128), BYTE(BOOLEAN))
при выполнении оператора присваивания, например вещественный:=целый
при использовании нетипизированных файлов
при использовании вариантной части в записи
при совмещении переменных по абсолютному адресу в памяти
Какие типы являются базовыми в системе типов
Составные
Ссылочные
Ограниченные
Простые
Нет правильного ответа
К скалярным стандартным типам относятся?
Только целые и вещественные типы
Только символьные и булевские типы
Целые, вещественные, символьные и булевские
Регулярные типы
Нет правильного ответа
Какой размер оперативной памяти занимает переменная типа Shortint?
1 байт;
2 байта;
3 байта;
4 байта;
Нет правильного ответа
Какой размер оперативной памяти занимает переменная типа Byte?
1 байт;
2 байта;
3 байта;
4 байта;
Нет правильного ответа
Какой диапазон значений принимает переменая типа WORD?
0...255;
0...65535;
-128..127;
-32768...32767;
Нет правильного ответа
Какой диапазон значений принимает переменная типа Integer?
-128...127;
-32768...32767;
0..255;
0...65535;
Нет правильного ответа
Какой объем оперативной памяти занимает переменная типа Real?
4 байта;
6 байт;
8 байт;
10 байт;
Нет правильного ответа
Какую директиву компилятора нужно задействовать, чтобы воспользоваться
такими вещественными типами, как Single, Double, Extended и Comp
$N
$L
$K
$S
Нет правильного ответа
Какой код используется для кодировки символов в диапазоне 0..255?
IBM
ASCII
ACCRI
ASSRI
Нет правильного ответа
Сколько символов содержит множество ASCII?
120
250
256
400
Нет правильного ответа
Какие операции возможны над значениями символьного типа?
+, -, *, /
Операции сравнения
or, and
or, xor, div, and
Нет правильного ответа
Допустимы ли математико-арифметические операции над значениями булевского типа?
Да, любые
Только операции сравнения
Да, +, -, *; /
Нет
Нет правильного ответа
Как организуются перечисляемые типы?
Служебным словом packed;
Служебным словом set;
Путем явного перечисления всех возможных значений в круглых скобках;
Таких типов в ТurboРascal не существует;
Нет правильного ответа.
Модули
Какие стандартные модули из библиотеки Turbo Pascal
автоматически подключаются к любой программе:
SYSTEM, PRINTER
SYSTEM, DOS, OVERLAY
DOS, PRINTER
crt
SYSTEM
Какая из составных частей модуля может быть пустой:
- implementation, begin ... end
- interface, implementation
- только инициирующая
- любая
- только implementation
В каком месте программы необходимо указать предложение uses <имя модуля>;?
- сразу за заголовком программы
- первым в теле программы за словом begin
- перед телом программы, но после объявления переменных
- в любом месте программы
- вообще не указывается, т.к. все модули подключаются к программе автоматически
Какие объекты описываются в интерфейсной части модуля:
- константы, типы, переменные, заголовки подпрограмм
- константы, типы, переменные, метки, тела подпрограмм
- типы, переменные, подпрограммы, метки, если они используются
в исполняемой части модуля
- только константы, типы, переменные
- только константы и переменные
Если инициирующая часть в модуле определена следующим образом
unit v;
interface
..........
implementation
...............
begin
end.
будет ли передано ей управление при запуске программы,
использующей этот модуль:
- да
- только в том случае, если инициирующая часть не является пустой
- нет, потому что инициирующая часть должна находиться перед частью реализации «implementation»
- нет, потому что инициирующая часть должна начинаться со служебного слова «initialization»
- нет, поскольку перед инициирующей частью не должно присутствовать слово «implementation»
Как обратиться к переменной модуля, имя которой совпадает с именем переменной, объявленной в программе, использующей модуль?
- используя составное имя: имя модуля.имя переменной
- по имени, т.к. переменная, объявленная в модуле считается глобальной и "закрывает" переменную, объявленную в программе.
- если переменная модуля объявлена в секции «interface», то она перекрывает переменную программы.
- переменная, объявленная в программе "закрывает" переменную модуля, поэтому рекомендуется изменить имя переменной.
- используя составное имя: имя программы.имя переменной.
Какая из частей модуля может отсутствовать?
- любая
- implementation, begin ... end
- interface, implementation
- только инициирующая вместе со словом begin
- только implementation
В каком стандартном модуле содержатся процедуры и функции, обеспечивающие
управление текстовым режимом работы монитора?
- DOS
- SYSTEM
- GRAPH
- CRT
- PRINTER
В какой части модуля помещены скрытые объекты?
INTERFACE;
IMPLEMENTATION;
В разделе инициализации;
В заголовке модуля;
Нет правильного ответа.
Какое служебное слово используется при подключении модуля к программе?
UNIT;
USES;
INTERFACE;
Такого слова не существует;
Нет правильного ответа.
В каком разделе модуля заголовок подпрограммы может иметь сокращенный вид?
В разделе инициализации;
INTERFACE;
IMPLEMENTATION;
В заголовке модуля;
Нет правильного ответа.
Какой тип имеет модуль?
Вещественный;
Строковый;
Файловый;
Модуль типа не имеет.
Указательный
Тип данных-запись
Каким может быть тип поля записи
- любым типом
- любым типом, кроме файлового
- только простым
- простой , строковый , указатель
- только стандартным
Какие из приведенных ниже утверждений верны:
- при использовании вариантной части в записи, каждому варианту в памяти предоставляется отдельное место
- тип поля записи не может быть массивом, указателем, файлом
- все поля записи должны быть различных типов
- при описании типа запись, поля записи могут перечисляться
в любом порядке
- вариантная часть записи указывается строго в начале описания типа
Как обратиться к полю записи?
- указать имя переменной типа запись, и в скобках имя поля записи
- указать имя переменной типа запись, и через точку имя поля записи
- указать имя переменной типа запись, и через двоеточие имя поля записи
- достаточно указать только имя поля записи, поскольку в каждой записи оно уникально
- указать служебное слово WITH, затем имя переменной типа запись, затем через точку имя поля записи
Могут ли имена полей записи совпадать с именами переменных,
констант и других элементов программы?
- да, если записи описаны в отдельном модуле
- с именами переменных - да, а с именами полей других записей - нет
- да, в любом случае
- нет
- могут только в том случае, если эти поля описаны в вариантной части записи
Если в программе объявлены следующие типы и переменные, то какие операторы правильны?
Type
Data=record
Day:1..31;
Month:1..12;
Year:1980..1988;
End;
Student=record
Name:string[15];
Spec:(AIS,SAPR,IIT,MMO,TOZ,IS);
Birthday:data;
End;
Var
S:student;
d:data;
group:array[1..25] of student;
i:byte;
- s.name:='Иванов'; s.data:=13.2.1985;
- d.day:='1';
- group[i].spec:=AIS; writeln(group[i]);
- s.birthday.year:=1985;
- readln(s);
Если в программе объявлены следующие типы и переменные, то какие операторы правильны?
Type
Data=record
Day:1..31;
Month:1..12;
Year:1980..1988;
End;
Student=record
Name:string[15];
Spec:(AIS,SAPR,IIT,MMO,TOZ,IS);
Birthday:data;
End;
Var
S:student;
d:data;
group:array[1..25] of student;
i:byte;
- with group do readln(name);
- for i:=1 to 25 do with group[i] do spec:=is;
- with s with birthday do readln( day, month, year);
- with data do day:=15;
- with student.data do writeln(year);
Какие данные объявлены неверно?
type
ff= record
d:real;
case byte of
1:(s:string);
2:(x:array[1..5] of byte);
end;
const
a:ff=(d:1.3; s:'abcdef');
b:ff=(d:4.5; s:'ais-02-2';x:(1,2,3,4,5));
e:ff=(d:4.5);
var
c:ff;
e
b
a
c
ff
Как определить размер переменной типа запись?
- используя стандартную функцию SizeRecord
- равен сумме размеров всех ее полей
( в вариантной части учитывается только одно, самое большое по размеру поле)
- равен размеру самого большого поля
- всегда 128 байт
- всегда 512 байт
Могут ли имена полей записи повторяться в пределах одной записи?
- да
- да, если эти поля разного типа
- да, если одно из полей объявлено в вариантной части
- да, если объявление полей сопровождать служебным словом virtual
- нет
Какой оператор используется для доступа к полям записи?
CASE..OF;
IF..THEN..ELSE;
WITH..DO;
FOR..TO..DO;
Нет правильного ответа.
Допустимо ли использование записей:
1)WITH V1, V2, V3 DO<оператор>;
2)WITH V1 DO
WITH V2 DO
WITH V3 DO<оператор>;
Используется только первая запись;
Используется только вторая запись;
Справедливы оба варианта;
Не используется ни одна из записей;
Таких операторов нет.
Какое служебное слово служит для описания записей?
packed;
record;
repcat;
external;
Нет правильного ответа.
Что произойдет, если переменной типа «запись» присвоить другую переменную типа «запись»?
Во время выполнения программы возникнет исключительная ситуация;
Поскольку такие переменные являются указателем на структуру записей,
то произойдет передача адреса, и две переменные будут ссылаться на одну и туже структуру в памяти;
Произойдет копирование содержимого полей одной записи в поля другой записи,
при условии, что описание типов этих переменных совершенно идентично
Произойдет копирование содержимого полей одной записи в поля другой записи,
при условии, что при объявлении этих переменных использовался один и тот же тип
Ничего не произойдет, во время выполнения программы данный оператор будет проигнорирован.
В каком ответе правильно изображен селектор записи:
где: R - переменная комбинированного типа,
F - идентификатор поля.
R,F;
F,R;
R.F;
F.R;
Нет правильного ответа.
Могут ли поля записи являться записями.
Да
Иногда
Нет
Да, если длина вложенных записей меньше внешних
Нет правильного ответа
Какой оператор создан для работы с полями записи?
Read;
With..do..;
While..do..;
Такого оператора нет
Нет правильного ответа
Каким служебным словом начинается вариантная часть записи?
if
case
with
var
Нет правильного ответа
Должны ли идентификаторы полей в вариантной части во всех вариантах отличаться от идентификаторов полей фиксированной части?
Да;
Нет;
Иногда;
Нет, если нет вложенной записи;
Нет правильного ответа
Какая процедура контролирует правильность работы с вариантами записей?
Cos
Delay
GetDir
Контроль отсутствует
Нет правильного ответа
Тип данных-файл
Каким может быть тип компонент типизированного файла?
- любым типом, кроме порядкового
- только простым скалярным
- любым типом Турбо Паскаля, кроме файлов
- любой простой или структурный
- любым типом
Текстовый файл процедурой RESET открывается...
- эта процедура не применяется к текстовым файлам
- для чтения и записи одновременно
- для записи
- для дозаписи данных
- для чтения
Используя данный фрагмент программы, укажите правильные операторы:
var
fi: file of byte;
i,j: integer;
a: array[1..25] of byte;
begin
assign(fi,'myfile.dat'); reset(fi);
- for i:=1 to 10 do write(fi,i);
- seek(fi,0);
- read(fi,a);
- write(fi, i/j,-15);
- readln(fi,i,j);
Используя данный фрагмент программы, укажите правильные операторы:
var
fs: file of char;
i,j: integer;
c,c1: char;
S:string;
begin
assign(fs,'myfile.dat');
rewrite(fs);
- write(fs, c+c1);
- write(fs,s[i],c); for i:=1 to 10 do write(fs,c,c1);
- write(fs,c); seek(fs);
- readln(fs,s);
- read(fs,j);
Используя данный фрагмент программы, укажите правильные операторы:
var
fs: file;
i,j:byte;
c,c1: char;
s:string;
begin
assign(fs,'myfile.dat');
rewrite(fs,1);
- blockread(fs,s[i],-8,j);
- readln(fs,s);
- blockwrite(fs, s,5,i);
- write(fs,c,1);
- blockwrite(fs,s,length(s));
Используя данный фрагмент программы, укажите правильные операторы:
var ft:text;
s,ss,s1:string;
c,x,z:real;
begin
assign(ft,'myfile.dat');
reset(ft);
- write(ft,s[i],c);
- for i:=1 to 10 do read(fs,c,x,z);
- write(ft,#125); while not seekeoln(ft) do read(z);
- seek(ft,25);
- readln(ft,c,ss); writeln(ft, c+c1,s1);
Как задается размер блока для записи в нетипизированный файл?
- при открытии файла, первым параметром, значение которого должно
быть кратно 512 байт
- при установке связи файловой переменной с физическим файлом,
указывая длину в байтах
- задается всегда 128 байт
- размер блока указывается в команде blockwrite
- при открытии файла, вторым параметром, тип которого word
Какая процедура устанавливает связь файловой переменной с
физическим файлом?
append
reset
assign
rewrite
read или write
Функции eoln, eof при перемещении по текстовому файлу
возвращают:
- true , если до конца строки или файла соответственно,
остались только пробелы
- true , если достигнут маркер EOLN или EOF, соответственно
- true , если достигнут значащий символ в строке или в файле
соответственно
- позицию первого значащего символа в строке или в файле соответственно
- эта процедура не применяется к текстовым файлам
В каких случаях в процедурах ввода-вывода blockread и blockwrite указывается четвертый параметр?
- задает явно размер буфера в байтах, тип word
- при наступлении ошибки ввода-вывода, в данном параметре возвращается код ошибки
- такого параметра не существует
- позволяет контролировать работу программы при возникновении ошибки ввода-
вывода, содержит количество фактически обработанных записей
- используется всегда, т.к. задает количество записей, которые обрабатываются за одно обращение к диску
Как в процедурах ввода-вывода blockread и blockwrite
указывается четвертый параметр?
- задается выражением типа word
- с помощью переменной типа word
- определяется автоматически
- задается по умолчанию
- такого параметра не существует
Процедура seek
- увеличивает размер файла на указанное вторым параметром количество байт.
- отсекает хвостовую часть файла от текущей позиции указателя.
- устанавливает текущий указатель файла типизированного/нетипизированного на компоненту/блок, номер которой задан вторым параметром.
- возвращает номер компоненты файла, на которой находится текущий указатель.
- удаляет лишние пробелы в начале и в конце файла.
процедура APPEND
- открывает файл для дозаписи данных в конец файла
- открывает текстовый файл для дозаписи данных в конец файла
- устанавливает текущий указатель текстового файла на конец файла и возвращает TRUE, если операция прошла успешно
- позволяет объединить два файла в один
- открывает типизированный файл для дозаписи данных в конец файла
Маркер конца файла - это символ с кодом:
#26
#27
#29
#13#10
#10#13
Укажите маркер конца строки:
#26
#27
#29
#13#10
#10#13
Какая процедура при открытии файла его создает, если файл не существует?
REWRITE
ASSIGN
RESET
BLOCKWRITE
APPEND
Какая функция возвращает код ошибок ввода-вывода?
HeapErrror
Error
GraphResult
IORESULT
Runtime_error
Что содержит текстовый файл?
- строки переменной длины
- строки одинаковой длины
- значения символьного, строкового, целого, вещественного и булевского типов
- символьные массивы
- любые сообщения
Укажите недопустимый базовый тип для типизированного файла
- множество
- логический тип
- файл
- массив
- запись
Какие файлы являются файлами прямого доступа?
- типизированные и нетипизированные
- типизированные и текстовые
- только текстовые
- нетипизированные и текстовые
- таких файлов нет
Почему можно обратиться к любому компоненту файла прямого доступа?
- в атрибутах файла сохраняются индексированные ссылки на компоненты
- все компоненты имеют номер
- все компоненты файла имеют одинаковый заранее известный размер
- все компоненты имеют признак начала и конца записи
- такое действие недопустимо
Какая директива компилятора отключает автоматический контроль ввода-вывода?
{$IO-}
{$I+}
{$E+}
{$I-}
{$X-}
Каким служебным словом обозначается файловый тип
RECORD
ARRAY
FILE OF
FORWARD
Нет правильного ответа
Какую максимальную длину можно задать при создании нового файла?
64 Кбайта
128 Кбайт
360 Кбайт
Не задается
Нет правильного ответа
Какая процедура служит для связи переменной файлового типа с физическим файлом на магнитном диске?
RESET
REWRITE
FLUSH
ASSIGN
Нет правильного ответа
Что является вторым параметром в процедуре ASSIGN?
Имя диска
Имя файловой переменной в программе
Полное, либо относительное, имя внешнего файла
Нет второго параметра
Нет правильного ответа
Какие процедуры служат для открытия файла?
ASSIGN, RESET
REWRITE, FLUSH
RESET, REWRITE
ASSIGN, FLUSH
Нет правильного ответа
Какой параметр имеют процедуры RESET, REWRITE?
Полное литературное имя внешнего файла
Файловая переменная, связанная с внешним файлом
Процедуры используются без параметров
Только имя файла
Нет правильного ответа
Какая процедура открывает внешний файл, а если его не существует, то создает новый?
ASSIGN
RESET
REWRITE
Такой процедуры не существует
Нет правильного ответа
Какая процедура используется для завершения обмена с файлом без его закрытия, и при этом очищает внутренний буфер файла?
CLOSE
FLUSH
RESET
ASSIGN
Нет правильного ответа
Какая процедура используется для завершения обмена с файлом с его закрытием?
CLOSE
FLUSH
RESET
ASSIGN
Нет правильного ответа
Что представляет собой первый параметр процедур READ, WRITE при работе с файлами?
Имя внешнего файла
Файловая переменная
Тип базового параметра
Процедуры используются без параметров
Нет правильного ответа
Какая процедура отсекает хвостовую часть файла от текущей позиции внутреннего указателя?
ЕОF
TRUNCATE
ERASE
FLUSH
Нет правильного ответа
Какой тип имеет функция EOF?
Целый
Строковый
Булевский
Базовый тип файла
Нет правильного ответа
Что означает запись SEEK (F,FILESIZE(F))?
Вывод размера файла
Установка текущего указателя за последний элемент файла
Вывод времени создания файла
Вывод текущего указателя
Нет правильного ответа
Какой параметр используется в процедуре ERASE?
Файловая переменная
Имя внешнего файла
Полное литературное имя внешнего файла
Процедура используется без параметра
Нет правильного ответа
Какая директива компилятора включает контроль операций ввода-вывода?
$L+;
$M;
$N+;
$I+;
Нет правильного ответа
Что выдает функция IORESULT?
Номер строки, на которой прервалась программа
Код ошибки
Код нажатой клавиши
Результат проверки условия
Нет правильного ответа
Что означает запись I:=IORESULT?
Сохраняет код нажатой клавиши
Запоминает код ошибки
Запоминает номер строки, на которой находится курсор
Запоминает номер символа над курсором
Нет правильного ответа
Какой код функция IORESULT возвращает в программу при нормальном завершении?
5
1
0
Никакого
Нет правильного ответа
Что означает второй параметр в процедурах RESET, REWRITE для нетипизированных файлов?
Размер файла
Размер буфера ввода-вывода (число байт, считываемых из файла, или записываемых в него, за одно обращение);
Размер среднего сектора диска
Этот параметр не используется
Нет правильного ответа
Какая запись неверна?
F:FILE OF INTEGER
F:FILE
F:TEXT
Все верно
Нет правильного ответа
Какой параметр имеет процедура APPEND?
Имя внешнего файла
Файловую переменную
Длину файла
Процедура используется без параметров
Нет правильного ответа
Какой тип имеет функция EOLN?
INTEGER
WORD
BOOLEAN
Такая функция отсутствует
Нет правильного ответа
Тип данных-указатель
Какой порядок добавления элемента в очередь?
- элемент в очередь не добавляется, а только извлекается
- произвольный порядок добавления и удаления
- элемент добавляется в голову очереди
- элемент добавляется в конец очереди
- элемент добавляется в очередь только в случае, если там есть свободное место
По какому правилу организуется работа с элементами списка-стека?
- первым пришел, первым ушел
- первым пришел, последним ушел
- произвольный порядок извлечения элемента из стека
- элемент в стек не добавляется, а только извлекается
- последний элемент добавляется в конец списка
Что является значением переменной типа указатель?
- ссылка на переменную, тип которой задается при описании
указателя
- индекс динамической переменной в куче
- адрес текущего указателя кучи, заданный сегментом и смещением
- значение переменной, на которую ссылается указатель
- адрес динамической переменной в куче
Какие из операторов правильные, если переменные описаны так:
var
p:pointer; p1,p2: ^real; i:byte; c,d:real;
- getmem(p1, sizeof(real)); new(p);
- p:=@i; p^:=p2;
- p1:=p2; p1^:=@i;
- p1:=c; p2^:=d;
- p2:=p;
На переменную какого типа может ссылаться указатель типа pointer?
- на скалярную переменную
- только на переменную структурного типа, размер которой больше 64 К
- на динамическую переменную
- на любую переменную
- на переменную типа pointer
Какие из операторов правильные, если переменные описаны так:
var
p:pointer; p1: ^integer; p2,p3:^char; a:array [1..10] of char;
- p1:=@a; new(p2);
- p:=p1; p1:=1234;
- dispose(p1,p2); p3^:=a[5];
- freemem(p,1024); p1:=p2;
- new(p);
Чем отличается статическая переменная от динамической
- динамические переменные всегда превышают размер стека данных
- статические переменные не изменяют свое значение
- динамическая переменная не имеет имени, хранится в куче, создается и удаляется в процессе выполнения программы
- динамические переменные хранятся в динамической памяти и не имеют типа
- статические переменные во время выполнения программы постоянно хранятся в сегменте данных, а динамические переменные постоянно хранятся в куче
Куча - это
- сегмент стека и сегмент данных
- область памяти, отводимая под хранение динамических переменных
- свободная область оперативной памяти
- список сегментов оперативной памяти
- служебная область менеджера памяти
В каком типе списков последний элемент ссылается на первый?
- последовательный список
- список-стек
- список-очередь
- циклический список
- цепной список
Какой размер у переменной типа указатель?
- 4 байта у типа POINTER, а у типизированного
определяется типом, на который ссылается указатель
- это зависит от версии ТурбоПаскаль
- указатель является ссылкой, а не переменной, поэтому размера не имеет
- 8 байт
- 4 байта
Как администратор кучи определяет размер памяти,
который требуется выделить, при работе
с нетипизированными указателями(POINTER)?
- всегда выделяется 64К
- определяется по размеру самого большого непрерывного свободного участка кучи
- определяется по размеру типа, на который ссылается указатель
- задается вторым параметром в процедуре GETMEM
- настраивается в меню ТурбоПаскаль: Options\Compiler
Как администратор кучи определяет размер памяти,
который требуется выделить, при работе с типизированными указателями?
- он задается вторым параметром в процедуре NEW
- всегда выделяется 64К
- определяется по размеру типа, на который ссылается указатель
- определяется по размеру самого большого непрерывного свободного участка кучи
- настраивается в меню ТурбоПаскаль: Options\Compiler
Укажите неверный ответ на вопрос: какие ссылочные типы совместимы по присваиванию?
- любой типизированный и тип POINTER
- тип POINTER и любой типизированный
- типизированные, если они ссылаются на один и тот же тип данных
- нетипизированные
- совместимы в любых комбинациях, т.к. их значением является адрес байта памяти
Какие значения содержит ссылочный тип?
Значения переменных
Адрес ячейки памяти, в которой содержится значение базового типа;
Значения переменных и адрес ячейки памяти
Ничего не содержит
Нет правильного ответа
Допустимо ли определение "указатель на указатель"?
Да
Нет
Только если указатели указывают на переменные целого типа
Только если указатели указывают на переменные вещественного типа
Правильного ответа нет
Выбрать правильное объявление ссылки
TYPE
P=^integer;
TYPE
P=^P1;
P1=record
...
end;
TYPE pp= string[30];
VAR P:^pp;
Все верно
Нет правильного ответа
Какая запись является разыменованием указателя Р?
&P;
P^;
$P;
#P;
Нет правильного ответа
В каком случае возможно многократное разыменование?
Если базовый тип является целым;
В случае "указатель на указатель";
В случае многократного обращения к динамическим переменным
Это не допустимо
Нет правильного ответа
Что означает запись: i^:=2?
В область памяти 2 помещено значение i
В область памяти i помещено значение 2
Запись не допустима в данном виде
Значение переменной i увеличиваем на 2
Нет правильного ответа
Если за указателем нет значка ^, то имеем ввиду...
Значение переменной, на которую указывает указатель
Адрес ячейки памяти
Адрес и значение переменной
Запись не верна
Нет правильного ответа
Какие переменные образуются в начале выполнения программы и существуют до завершения ее работы?
При этом распределение оперативной памяти осуществляется системой автоматически.
Статические
Динамические
Глобальные
Локальные
Нет правильного ответа
Какой максимальный объем памяти могут занимать статические переменные?
60 Кбайт
64 Кбайта
128 Кбайт
120 Кбайт
Нет правильного ответа
Что делает динамическую переменную доступной?
Указатель
Идентификатор
Идентификатор и указатель
Переменная недоступна
Нет правильного ответа
Какая процедура используется для создания динамических переменных?
DISPOSE
NEW
FREEMEM
MARK
Нет правильного ответа
Какая процедура создает динамическую переменную с заданным размером?
FREEMEM
GETMEM
NEW
MARK
Нет правильного ответа
Каким идентификатором обозначаются нетипизированные указатели?
BYTE
POINTER
BOOLEAN
Такого идентификатора не существует
Нет правильного ответа
На переменные какого типа может ссылаться нетипизированный указатель?
BOOLEAN
INTEGER
REAL
любого типа
Нет правильного ответа
Тип данных-объект(задачи)
В программе описан тип-объект, какое обращение к полям является
допустимым?
type
t=object
name:string[25];
data:string[10];
rate:real;
end;
var o:t;
- t.rate:=23;
- with t do data:='12-03-88';
- o.name:='Иванов Петр Васильевич';
- data:='10-12-77';
- with o do t.rate:=-2.45;
Какое описание не верно?
type
tt=object
a,b:real;
s:longint;
constructor cc;
procedure l; virtual;
end;
t=tt;
t1=object(tt)
constructor cc(f:byte);
procedure l;virtual;
end;
t2=object(t)
d:char;
procedure l(var t);virtual;
end;
t3=object(t)
end;
- tt
- t
- t1
- t2
- t3
При описании каких типов допущены ошибки?
type
t=object
a:real;
b:byte;
procedure d; end;
t1=object(t)
а:char;
procedure e(r:string); end;
t2=object(t)
с:array [1..10] of real;
s:string;
procedure f(t:real); end;
t3=object(t2) constructor ss; end;
- t2
- t
- t1
- t3
- нет ошибок
В программе описаны типы-объекты и экземпляры статические и
динамические, какие обращения к методам являются ошибочными?
type
dd=object
a:real;
d:byte;
constructor init;
destructor done;
end;
var o:dd; p,p1:^dd;
- p.init;
- new(p,init);
- dispose(p1, done);
- p^.done;
- o.init;
Какие поля и методы содержит тип tt ?
type
t=object
a:real;
f:string[25];
constructor init(r,j:real);
function t1(g:byte):longint;virtual;
procedure b;
end;
tt=object(t)
d:char;
procedure b(k:char);
function t1(g,h:byte):longint;virtual;
end;
- в описании допущена ошибка
- поля a,f,d и методы init,t1,b
- поле d и методы b,t1
- поле d и методы init,t1,b
- поля a,f,d,r,j,g,k,h и методы init,b и виртуальный t1
Тип данных-объект
В чем отличие традиционного процедурно-ориентированного
программирования от объектно-ориентированного программирования?
- ПОП большей частью работает со статическими переменными, а ООП оперирует только с динамическими переменными
- при ПОП программы обрабатывают данные определенного типа,
а при ООП - данные типа - речевые аннотации, видеоклипы и т.п.
- при традиционном программировании данные отделены от процедур
и функций, которые их используют, а в объектах те и другие
объединяются.
- в традиционных программах часто используются процедуры
и функции, а при ООП программы работают только с объектами.
- ПОП основывается на понятии алгоритма, а ООП формирует
программы из классов объектов, моделирующих предметную область.
Инкапсуляция-это
- область действия полей данных переменных типа объект.
- слияние данных и подпрограмм, работающих с этими данными.
- один из методов работы с объектами.
- процесс выделения памяти при создании объекта
- ограничение доступа к объекту.
Как описываются методы, инкапсулированные в объект?
- данные методы в обязательном порядке сопровождаются словом «virtual»
- инкапсуляция предполагает полное опережающее описание методов.
- при описании типа указываются заголовки методов, ниже по тексту программы
приводится полное описание.
- описываются в программе как обычные процедуры и функции.
- при описании типа, обязательно после описания элементов.
Как вызываются методы, инкапсулированные в объекте?
- с помощью специальных директив компилятора
- методы объекта не вызываются, они предназначены для внутреннего использования в объекте, и вызываются автоматически при обращении к полям объекта.
- через указание составного имени, или при помощи оператора WITH
- вызываются как обычные процедуры или функции в программе
- сначала вызывается конструктор этого объекта, и только после этого - метод.
Как указывается родительский тип?
- при выполнении оператора присваивания от типа родителя к потомку
- задается при выполнении операции наследования
- указывается явно при описании типа-потомка, при этом указывается
только предшествующий тип-родитель.
- при описании типа-потомка после слова «inherited»
- при описании типа-потомка в круглых скобках за словом object указывается
имя типа-родителя
Сколько потомков может иметь тип-объект?
- невозможно сказать однозначно, поскольку зависит от конкретной реализации объекта.
- только один на очередной ступени иерархии
- число определяет программист при описании типа(вторым необязательным
параметром)
- произвольное число, если операция наследования выполнена верно
- произвольное число
Могут ли переопределяться поля данных?
- нет
- да, если поля дочернего объекта перекрывают поля предка с использованием
служебного слова «override»
- да, если поля являются виртуальными (определены со словом «virtual»)
- да, без каких либо ограничений
- да, если поля принадлежат одному типу.
Как вызываются статические методы?
- компилятор ищет метод, внутри определения типа объекта,
вызывающего метод, если в типе метод не определен, то компилятор
обращается к непосредственному родительскому типу в поисках
метода, если метод не найден, то компилятор продолжает двигаться
от родителя к родителю вверх по иерархии
- компилятор ищет метод, внутри определения типа объекта,
вызывающего метод, если в типе метод не определен, то компилятор
обращается к любому родительскому типу в поисках метода
- компилятор ищет метод, внутри определения типа объекта,
вызывающего метод, если в типе метод не определен, то компилятор
обращается к родительскому типу на верхнем уровне иерархии
- компилятор ищет метод, внутри определения типа объекта,
вызывающего метод, если в типе метод не определен, то компилятор выдает
сообщение об ошибке
- компилятор ищет метод, внутри определения типа объекта,
вызывающего метод, если в типе метод не определен, то компилятор
сообщение об ошибке не выдает, но выполнение данного метода будет проигнорировано
Если в типе-родителе Arod определен статический метод Metod, и в
типе-потомке Bpot он переопределен, то при обращении к нему в программе
u.Metod, где «u» экземпляр типа Bpot {var u: Bpot} что произойдет?
- будет вызван метод родителя, т.к. он статично с ним связан.
- будет вызван метод потомка, т.к. он статично с ним связан.
- будет вызван метод потомка, т.к. было указано составное имя.
- будет вызван метод родителя, т.к. он находится выше по иерархии.
- будет вызван метод потомка, т.к. компилятор найдет его описание
в вызывающем его экземпляре объекта.
Раннее и позднее связывание:
- раннее - установление связи экземпляра с методами на этапе компиляции,
позднее - связывание экземпляра и метода во время выполнения программы.
- раннее - описание статистического метода, позднее - описание
виртуального метода.
- раннее - указание за заголовком метода директивы NEAR, позднее - указание
директивы FAR.
- раннее - указание компилятору, что метод является статическим,
позднее - указание компилятору, что метод является динамическим.
- раннее - порождение логической ошибки, путем вызова метода объекта еще до того, как объект создан, позднее - создание объекта, и после этого происходит правильный вызов метода.
Если в типе объекте описаны или унаследованы виртуальные методы,
то какой метод он должен содержать?
- метод-конструктор
- метод-деструктор
- метод, который определяет начальный адрес экземпляра в памяти
- метод, устанавливающий динамическую связь экземпляра с программой
- метод, который будет генерировать таблицу виртуальных методов
Сколько методов-конструкторов должно быть в типе объекте, содержащем
виртуальные методы?
- хотя бы один
- только один
- один, если сам конструктор тоже виртуальный
- в этом случае должен быть не конструктор, а метод-деструктор
- метод-конструктор предназначен совсем для других целей, и в данном случае он быть не обязан
Сколько ТВМ создает компилятор?
- по одной для каждого объектного типа, если сам тип, или его предки, содержат виртуальные методы
- по одной для каждого экземпляра объекта
- по одной для каждого объектного типа, если от самого типа, или его предков, создаются динамические объекты
- одну для всех виртуальных методов
- одну для каждого экземпляра, если экземпляр объекта размещается в динамической памяти
Что такое полиморфизм?
- свойство, позволяющее в процессе выполнения программы изменять
наполнение объектового типа.
- свойство, обеспечивающее работу программы в режиме перекрестных ссылок
- свойство, обеспечивающее корректное выполнение программы, содержащей
динамические экземпляры объектов
- свойство, обеспечивающее в процессе работы программы вызов именно
того виртуального метода, который определен для вызывающего экземпляра
объекта
- свойство, контролирующее правильность наследования
Какие методы в описании типа объекта могут быть виртуальными?
- все, кроме методов-конструкторов
- все наследуемые методы
- все методы
- все переопределяемые методы
- все, кроме метода-деструктора
В каких случаях для динамических объектов необходим метод-конструктор?
- если в типе описаны виртуальные методы
- для корректной работы процедуры NEW
- нет правильного ответа
- всегда
- определяется в зависимости от алгоритма
Какова область видимости скрытых полей и методов,
описанных в типе объекте?
- видимостью обладают все поля и методы объекта за исключением унаследованных
- внутри самого типа
- в пределах программы или модуля, в которых описан тип объекта
- внутри инициирующей части модуля или программы
- ограничивается программистом с помощью директив компилятора
Какие типы совместимы по присваиванию?
- объектные типы базируются на таких принципах, как инкапсуляция,
наследование и полиморфизм, а совместимость к ним не имеет ни какого отношения
- только эквивалентные типы
- эквивалентные и тип-родитель:= тип-потомок
- эквивалентные и тип-потомок:=тип-родитель
- типы, имеющие одинаковые поля данных и методы, т.е. аналогично описанные
Каким служебным словом обозначается объектный тип?
set
object
record
array
Нет правильного ответа
Что является методами объекта?
переменные
массивы
подпрограммы
множества
Нет правильного ответа
Отличие объекта от записей?
использование булевских переменных
использование вариантной части (явно)
использование подпрограмм в описании
использование констант
Нет правильного ответа
Каким служебным словом определяются виртуальные подпрограммы?
absolute
virtual
forward
double
Нет правильного ответа
Отличительная работа конструктора?
начальная инициализация переменных
создание ТВМ
удаление динамического объекта
очистка экрана
Нет правильного ответа
Дата добавления: 2019-02-12; просмотров: 174; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!
