• 1. Выберите эквивалент следующего объявления:
    "var a:array[20] of byte;"
    а) var a:array[0..20] of byte;
    б) var a:array[1..20] of byte;
    в) синтаксическая ошибка - такое объявление недопустимо

    2. Что выведет следующий фрагмент кода:
    "n:= 2; p:=@n; p^:=1; Writeln('n=', n);?
    а) n=1
    б) n=2
    в) ничего не выйдет

Ответы 4

  • Спасибо!
    • Автор:

      maggie56
    • 5 лет назад
    • 0
  • Пожалуйста. А вообще, тут "спасибо" выражают простым кликом по красному сердечку.
    • Автор:

      lincoln49
    • 5 лет назад
    • 0
  • посмотрите мою задачку)
    • Автор:

      bart
    • 5 лет назад
    • 0
  • №1var a:array[20] of byte; - это объявление недопустимо.По синтаксису языка в [...] указывается тип данных элементов массива.20 - это не тип.ответ в)№2n:=2;p:=@n;p^:=1;Writeln('n=', n);Это тема, которую в Паскале понимают не очень многие - работа с указателями.n:=2 - тут все понятно. Константа 2 засылается в область памяти, которую называли n.P:=@n; - здесь применена операция @, называемая "взятие адреса". Т.е. @n - это не значение n (которое у нас равно 2) , а тот самый адрес области памяти, где это значение размещено. И этот адрес будет помещен в переменную с именем p.p^:=1; - если операция @ дает адрес, то операция ^ дает доступ к содержимому, находящемуся по указанному адресу. Мы записали в p адрес области памяти, в котором расположено содержимое n (оно равно 2), а теперь при помощи р^ получаем доступ к этому содержимому и меняем его на 1.Вся эта "кухня равнозначна тому, что мы записали в n единичку. Она и будет выведена. Точнее будет выведена строка n=1.Ответ a)
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years