DP Delphi / Pascal  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Лёгкий  · 

Типы, переменные и константы Pascal

Вопросы имитируют чтение и сопровождение рабочего Delphi/Pascal-кода. Нужно отделять факт от правдоподобного мифа, учитывать граничные случаи и явно формулировать договор. В тесте 20 вопросов и 12 примеров с кодом; рассматриваются «Простые типы», «Диапазоны», «Перечисления» и «Преобразования».

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: В каждом вопросе выберите один ответ из пяти. На весь тест отведено 55 минут. Код лучше сначала разобрать вручную: правильный вариант должен объяснять механизм, а не только совпадать с одним запуском.
Вопрос 1 из 20
Какой результат напечатает TypesDemo в Win32 и Win64 после присваиваний `Count := High(Integer)` и `AddressBits := NativeInt(@Count)`?
PascalDelphi / Pascal · Простые типы
// Определите реальную гарантию в TypesDemo.
program TypesDemo;
{$APPTYPE CONSOLE}
var
  Count: Integer;
  AddressBits: NativeInt;
begin
  Count := High(Integer);
  AddressBits := NativeInt(@Count);
  Writeln(SizeOf(Count), ' / ', SizeOf(AddressBits));
end.
Вопрос 2 из 20
Две реализации темы «Диапазоны» совпадают на обычном примере. Какое различие всё же меняет их договор?
Вопрос 3 из 20
В практическом сценарии по теме «Перечисления» меняются входные данные и порядок действий. Какой вывод остаётся корректным?
Вопрос 4 из 20
Какое свойство темы «Преобразования» становится решающим на граничном входе или при другом порядке действий? Рассмотрите вариант, где меняется состояние, но внешний интерфейс остаётся прежним.
Вопрос 5 из 20
Обычный пример по теме «Простые типы» проходит, но после изменения состояния возникает дефект. Какое условие объясняет его источник?
Вопрос 6 из 20
Реализацию темы «Диапазоны» заменяют без изменения интерфейса. Какое наблюдаемое свойство обязано сохраниться?
Вопрос 7 из 20
Обычный пример по теме «Перечисления» проходит, но после изменения состояния возникает дефект. Какое условие объясняет его источник?
Вопрос 8 из 20
В теме «Преобразования» есть две независимые границы поведения. Какой внешний договор не смешивает их в одно расплывчатое правило?
Вопрос 9 из 20
Правка по теме «Простые типы» должна сохранить полезное поведение и убрать риск на соседнем сценарии. Какое требование она обязана выполнить?
Вопрос 10 из 20
Какой сценарий по теме «Диапазоны» отличит исправную реализацию от версии со скрытым дефектом?
Вопрос 11 из 20
В теме «Перечисления» есть две независимые границы поведения. Какой внешний договор не смешивает их в одно расплывчатое правило?
Вопрос 12 из 20
Что выведет `ConversionDemo`, когда строка содержит `2147483648` при типе результата `Integer`?
PascalDelphi / Pascal · Преобразования
// Определите реальную гарантию в ConversionDemo.
program ConversionDemo;
{$APPTYPE CONSOLE}
uses System.SysUtils;
var
  Text: string;
  Value: Integer;
begin
  Text := '2147483648';
  if TryStrToInt(Text, Value) then
    Writeln(Value)
  else
    Writeln('invalid');
end.
Вопрос 13 из 20
Какое свойство темы «Простые типы» становится решающим на граничном входе или при другом порядке действий?
Вопрос 14 из 20
В теме «Диапазоны» есть две независимые границы поведения. Какой внешний договор не смешивает их в одно расплывчатое правило?
Вопрос 15 из 20
В `EnumDemo` сначала встречается `S := Succ(stNew);`, а затем `Writeln(Ord(S), ' ', Ord(High(TState)));`. Какое наблюдаемое следствие относится именно к сценарию EnumDemo?
PascalDelphi / Pascal · Перечисления
// Определите реальную гарантию в EnumDemo.
program EnumDemo;
{$APPTYPE CONSOLE}
type
  TState = (stNew, stQueued, stDone);
var
  S: TState;
begin
  S := Succ(stNew);
  Writeln(Ord(S), ' ', Ord(High(TState)));
end.
Вопрос 16 из 20
Правка по теме «Преобразования» должна сохранить полезное поведение и убрать риск на соседнем сценарии. Какое требование она обязана выполнить?
Вопрос 17 из 20
В теме «Простые типы» есть две независимые границы поведения. Какой внешний договор не смешивает их в одно расплывчатое правило?
Вопрос 18 из 20
Две версии `RangeDemo` сохраняют порядок `Raw := 135;` → `Writeln(P);`. Какое свойство останется общим для обеих?
PascalDelphi / Pascal · Диапазоны
// Определите реальную гарантию в RangeDemo.
program RangeDemo;
{$APPTYPE CONSOLE}
{$R+}
type
  TPercent = 0..100;
var
  P: TPercent;
  Raw: Integer;
begin
  Raw := 135;
  P := Raw;
  Writeln(P);
end.
Вопрос 19 из 20
Модуль, использующий тему «Перечисления», передают другой команде. Какую ответственность нужно закрепить во внешнем договоре?
Вопрос 20 из 20
Какое свойство темы «Преобразования» становится решающим на граничном входе или при другом порядке действий?

Ответьте на все 20 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу