Задать вопрос
14 марта, 05:33

Type ref = ^integer;

var p, q: ref;

Пусть p^=5 и q=p.

Что будет выдано на печать в результате выполнения следующих операторов?

q^:=p^+1;

if pq then p:=nil else q^:=10;

if q^=10 then begin p:=q; q^:=20; end;

writeln (p^) ;

+2
Ответы (1)
  1. 14 марта, 08:27
    0
    Если q=p, то оба указателя ссылаются на одно и то же место в памяти, т. е. значения p^ и q^ всегда будут одинаковы.

    После p^=5 оба указателя будут ссылаться на 5.

    q^:=p^+1 приведет к тому, что cсылка будет на 6, поэтому в первом if условие ложно и выполняется ветка else и оба указателя будут ссылаться на 10.

    Во втором if условие истинно, поэтому выполняется ветка then. В ней присваивание p:=q ничего не меняет, поскольку оба указателя и так уже указывают на одно и то же место в памяти. А после q^:=20 в это место будет записана константа 20, поэтому при выводе p^ мы получаем значение 20.

    Ответ: 20
Знаете ответ?
Сомневаетесь в ответе?
Найдите правильный ответ на вопрос ✅ «Type ref = ^integer; var p, q: ref; Пусть p^=5 и q=p. Что будет выдано на печать в результате выполнения следующих операторов? q^:=p^+1; if ...» по предмету 📘 Информатика, а если вы сомневаетесь в правильности ответов или ответ отсутствует, то попробуйте воспользоваться умным поиском на сайте и найти ответы на похожие вопросы.
Смотреть другие ответы
Похожие вопросы по информатике
Сделать так чтобы Writeln был заменен другим словом и повторялься не больше двух раз program choise; var N_M:integer; writeln (' введи номер месяца ') ; readln (N_M) ; case N_M of 1:writeln (' январь ') ; 2:writeln (' февраль ') ;
Ответы (1)
Как сделать теперь без массива (паскале) ? var nm:array of integer; j, l:integer; begin nm: = new integer[3] (random (20), random (20), random (20)) ; writeln ('nm[0] = ', nm[0]) ; writeln ('nm[1] = ', nm[1]) ; writeln ('nm[2] = ', nm[2]) ;
Ответы (1)
Какое число будет напечатано в результате выполнения программы: var i, k: integer; function f (x: integer) : integer; var m: integer; begin if x < 10 then f : = x else begin m : = f (x div 10) ; if m < x mod 10 then f : = x mod 10 else f : = m; end;
Ответы (1)
Укажите области видимости в программе: Program P; Var x: integer; Procedure P1; Var y: integer; Begin P2; End; Procedure P2; Var z: integer; Begin {Тело процедуры} End; Procedure P3; Var m: integer; Begin P1; End; Begin {Тело основной программы}P3;
Ответы (1)
Имеется условный оператор:if D10 then writeln ('ура!') else writeln ('плохо ...') ; Какими операторами его можно заменить? Выберите несколько из 4 вариантов ответа: 1) if D=10 then writeln ('ура!') else writeln ('плохо ...
Ответы (1)