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

Строки и кодировки Delphi

Здесь мало узнать знакомое ключевое слово. Нужно проследить срок жизни данных, порядок вызовов, обработку ошибок и договор между модулями. Тест содержит 20 вопросов, включая 4 фрагментов кода, и разбирает темы: «Строки UnicodeString», «Короткие строки ShortString», «Индексация» и «Преобразование кодировок».

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: В каждом вопросе выберите один ответ из пяти. На весь тест отведено 55 минут. Код лучше сначала разобрать вручную: правильный вариант должен объяснять механизм, а не только совпадать с одним запуском.
Вопрос 1 из 20
В `UnicodeUnits` сначала встречается `S: UnicodeString;`, а затем `Writeln(Length(S));`. Какой вывод можно сделать только после чтения обеих строк?
PascalDelphi / Pascal · Строки UnicodeString
// Отделите правило языка от удачного запуска UnicodeUnits.
program UnicodeUnits;
{$APPTYPE CONSOLE}
uses System.SysUtils;
var
  S: UnicodeString;
begin
  S := 'A' + #$D83D + #$DE00 + 'B';
  Writeln(Length(S));
  Writeln(IntToHex(Ord(S[2]), 4));
end.
Вопрос 2 из 20
Две реализации темы «Короткие строки ShortString» совпадают на обычном примере. Какое различие всё же меняет их договор?
Вопрос 3 из 20
В практическом сценарии по теме «Индексация» меняются входные данные и порядок действий. Какой вывод остаётся корректным?
Вопрос 4 из 20
Две реализации темы «Преобразование кодировок» совпадают на обычном примере. Какое различие всё же меняет их договор?
Вопрос 5 из 20
Обычный пример по теме «Строки UnicodeString» проходит, но после изменения состояния возникает дефект. Какое условие объясняет его источник?
Вопрос 6 из 20
Реализацию темы «Короткие строки ShortString» заменяют без изменения интерфейса. Какое наблюдаемое свойство обязано сохраниться?
Вопрос 7 из 20
Обычный пример по теме «Индексация» проходит, но после изменения состояния возникает дефект. Какое условие объясняет его источник?
Вопрос 8 из 20
В теме «Преобразование кодировок» есть две независимые границы поведения. Какой внешний договор не смешивает их в одно расплывчатое правило?
Вопрос 9 из 20
Правка по теме «Строки UnicodeString» должна сохранить полезное поведение и убрать риск на соседнем сценарии. Какое требование она обязана выполнить?
Вопрос 10 из 20
Какой сценарий по теме «Короткие строки ShortString» отличит исправную реализацию от версии со скрытым дефектом?
Вопрос 11 из 20
В теме «Индексация» есть две независимые границы поведения. Какой внешний договор не смешивает их в одно расплывчатое правило?
Вопрос 12 из 20
Какой граничный результат следует ожидать в `EncodingBoundary`, когда после `Writeln(Length(Bytes));` выполняется `Writeln(TEncoding.UTF8.GetString(Bytes));`?
PascalDelphi / Pascal · Преобразование кодировок
// Проследите фактическое поведение EncodingBoundary.
program EncodingBoundary;
{$APPTYPE CONSOLE}
uses System.SysUtils, System.Classes;
var
  Text: string;
  Bytes: TBytes;
begin
  Text := 'Привет, €';
  Bytes := TEncoding.UTF8.GetBytes(Text);
  Writeln(Length(Bytes));
  Writeln(TEncoding.UTF8.GetString(Bytes));
end.
Вопрос 13 из 20
Какое свойство темы «Строки UnicodeString» становится решающим на граничном входе или при другом порядке действий?
Вопрос 14 из 20
В теме «Короткие строки ShortString» есть две независимые границы поведения. Какой внешний договор не смешивает их в одно расплывчатое правило?
Вопрос 15 из 20
Почему `Length(S)` равно двум и что именно читают выражения `S[1]` и `S[2]` в `StringIndex`?
PascalDelphi / Pascal · Индексация
// Отделите правило языка от удачного запуска StringIndex.
program StringIndex;
{$APPTYPE CONSOLE}
var
  S: string;
begin
  S := 'e' + #$0301;
  Writeln(Length(S));
  Writeln(Ord(S[1]), ' ', Ord(S[2]));
end.
Вопрос 16 из 20
Правка по теме «Преобразование кодировок» должна сохранить полезное поведение и убрать риск на соседнем сценарии. Какое требование она обязана выполнить?
Вопрос 17 из 20
В теме «Строки UnicodeString» есть две независимые границы поведения. Какой внешний договор не смешивает их в одно расплывчатое правило?
Вопрос 18 из 20
В `ShortStringLimit` строка `TCode = string[5];` создаёт условие для последующей `Writeln(Length(Code), ':', Code);`. Какой вывод подтверждает этот фрагмент?
PascalDelphi / Pascal · Короткие строки ShortString
// Определите реальную гарантию в ShortStringLimit.
program ShortStringLimit;
{$APPTYPE CONSOLE}
{$H-}
type
  TCode = string[5];
var
  Code: TCode;
begin
  Code := 'ABCDEFG';
  Writeln(Length(Code), ':', Code);
end.
Вопрос 19 из 20
Модуль, использующий тему «Индексация», передают другой команде. Какую ответственность нужно закрепить во внешнем договоре?
Вопрос 20 из 20
Какое свойство темы «Преобразование кодировок» становится решающим на граничном входе или при другом порядке действий?

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

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

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

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