Что выведет следующая программа? Объясните результат. program test; var a,b: integer; procedure p (Var x:integer; y:integer); begin x:=x+1; y:=x+y; end; begin a:=1;b:=2; p(a,b); writeln(a,’ ‘,b); p(a,b); writeln(a,’ ...
Что выведет следующая программа? Объясните результат.
program test;
var a,b: integer;
procedure p (Var x:integer; y:integer);
begin
x:=x+1; y:=x+y;
end;
begin
a:=1;b:=2;
p(a,b); writeln(a,’ ‘,b);
p(a,b); writeln(a,’ ‘,b);
readln;
end.
⦁1 2
1 2
⦁2 4
3 7
⦁1 4
1 6
⦁2 2
3 2
⦁Нет правильного ответа
Ответ(ы) на вопрос:
Гость
выведет
⦁2 2
3 2
сначала переменная а=1 и b =2
вызов процедуры p(a,b) к а добавит 1 и а станет = 2, перед b в заголовке процедуры не стоит var, поэтому данная переменная является параметром-значением и передается по значению, т.е. значение у b всегда остается 2. После writeln(a,’ ‘,b); на экране выведется 2 2
повторный вызов процедуры p(a,b) к а добавит 1 и а станет = 3, а значение b при выводе вне процедуры по-прежнему останется 2
получим : 3 2
Не нашли ответ?
Похожие вопросы