Type ref = ^integer; var p, q: ref; пусть p^=5 и q=p. что будет выдано на печать в результате выполнения следующих операторов? q^: =p^+1; if p< > q then p: =nil else q^: =10; if q^=10 then begin p: =q; q^: =20; end; writeln(p^);
169
325
Ответы на вопрос:
Если 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
1) Карим, Гузаль, Анвар
2) Карим, Анвар, Гузаль
3)Анвар, Гузаль, Карим
4) Анвар, Карим, Гузаль
5) Гузаль Анвар Карим
6) Гузаль Карим Анвар
Популярно: Информатика
-
Gvgvv04.01.2023 19:38
-
shittt665529.03.2023 19:21
-
mishinevav27.10.2022 21:17
-
xap229.03.2023 04:25
-
fur505.01.2023 14:41
-
hhhnnnvvv26.06.2023 13:28
-
Фари22804.10.2022 15:37
-
морпехРФ16.12.2020 02:10
-
Qwertyttt13.07.2021 17:34
-
КИСА01024.10.2020 22:43