Главная / Программирование /
Программирование на языке Pascal / Тест 8
Программирование на языке Pascal - тест 8
Упражнение 1:
Номер 1
Какие вызовы процедуры
procedure p(var a: byte; const b: char; x: real);
являются неправильными с точки зрения компилятора языка Pascal?
Ответ:
 (1) p(10,'c',0.5)
 
 (2) p(z,inc('f',3),17); {var z:integer}
 
 (3) p(x+y, min('c',s),15/3); {var x,y:byte; const s = 'a'}
 
 (4) p(k,c,x); {var k:shortint; c:char; x:real}
 
 (5) p(j,'abc',0.001); {var j:byte}
 
Номер 2
Какие вызовы функции
function f(const a:byte; var s:real; t:boolean):real;
являются неправильными с точки зрения компилятора языка Pascal?
Ответ:
 (1) x:= f(c,0.175,true); {var c:byte; x:real}
 
 (2) x:= f(35*100,c,false); {var x:real; const c:real=10.0}
 
 (3) x:= f(k,s,a>b); {var k,a,b:shortint; s,x:real}
 
 (4) x:= f(10,s,odd(k)); {var s:double; k:integer; x:real}
 
 (5) x:= f(0,s1+s2,s3<s4); {var x,s1,s2,s3,s4:real}
 
Номер 3
Какие вызовы процедуры
procedure p(x:real; const c: byte; var d: integer);
являются неправильными с точки зрения компилятора языка Pascal?
Ответ:
 (1) p(100,t,s);
 
 (2) p(z*2.5,t,s); {const s:integer =0; t:shortint = -1; var z:longint}
 
 (3) p(i,j,k); {var i,j,k:byte}
 
 (4) p(z,a or b,0); {var z:double; a,b:longint}
 
 (5) p(0,0,round(k/2)); {var k: integer}
 
Упражнение 2:
Номер 1
После завершения работы подпрограммы значение переданной в нее переменной-аргумента не может измениться, если соответствующий параметр был:
Ответ:
 (1) параметром-значением (без предиката) 
 (2) параметром-константой (с предикатом const
) 
 (3) параметром-переменной (с предикатом var
) 
Номер 2
Какие переменные будут существовать во время выполнения подпрограммы f
?
program prog;
var a: byte;
procedure p1;
var a: byte;
begin
...
end;
procedure p2;
function f: boolean;
var a: byte;
begin
...
end;
var a: byte;
begin
...
end;
Ответ:
 (1) prog.a 
 (2) p1.a 
 (3) p2.a 
 (4) f.a 
Номер 3
Какие переменные будут существовать во время выполнения подпрограммы p1
?
program prog;
var a: byte;
procedure p1;
function f: boolean;
var a: byte;
begin
...
end;
var a: byte;
begin
...
end;
procedure p2;
var a: byte;
begin
...
end;
Ответ:
 (1) prog.a 
 (2) p1.a 
 (3) p2.a 
 (4) f.a 
Упражнение 3:
Номер 1
Какие переменные будут существовать во время выполнения подпрограммы p2
?
program prog;
var a: byte;
procedure p1;
var a: byte;
begin
...
end;
procedure p2;
function f: boolean;
var a: byte;
begin
...
end;
var a: byte;
begin
...
end;
Ответ:
 (1) prog.a 
 (2) p1.a 
 (3) p2.a 
 (4) f.a 
Номер 2
После завершения работы подпрограммы значение переданной в нее переменной-аргумента может измениться, если соответствующий параметр был:
Ответ:
 (1) параметром-значением (без предиката) 
 (2) параметром-константой (с предикатом const
) 
 (3) параметром-переменной (с предикатом var
) 
Номер 3
В качестве аргумента при вызове подпрограммы возможно использовать арифметическое выражение, если соответствующий параметр был
Ответ:
 (1) параметром-значением (без предиката) 
 (2) параметром-константой (с предикатом const
) 
 (3) параметром-переменной (с предикатом var
) 
Упражнение 4:
Номер 1
Какое значение получит переменная a после выполнения такой программы?
var a: byte;
proc p1(k: byte);
proc p2(var t: byte);
begin t:= t*2 end;
var a: byte;
begin a:= 1;
k:= 5;
p2(a);
end;
begin
a:= 10;
p1(a);
end.
Ответ:
 (1) 1 
 (2) 2 
 (3) 5 
 (4) 10 
 (5) 20 
Номер 2
Какое значение получит переменная a после выполнения такой программы?
var a: byte;
proc p1(var k: byte);
proc p2(t: byte);
begin t:= t*2 end;
var a: byte;
begin a:= 1;
k:= 5;
p2(k);
end;
begin
a:= 10;
p1(a);
end.
Ответ:
 (1) 1 
 (2) 2 
 (3) 5 
 (4) 10 
 (5) 20 
Номер 3
Какое значение получит переменная a после выполнения такой программы?
var a: byte;
proc p1(var t: byte);
begin t:= t*2 end;
proc p2(var k: byte);
var a: byte;
begin a:= 1;
k:= 5;
p1(k);
end;
begin
a:= 10;
p2(a);
end.
Ответ:
 (1) 1 
 (2) 2 
 (3) 5 
 (4) 10 
 (5) 20 
Упражнение 5:
Номер 1
Какое из объявлений открытого параметра-массива является правильным?
Ответ:
 (1) procedure p(a: array of real) 
 (2) procedure p(var a: array of real) 
 (3) procedure p(const a: array of real) 
Номер 2
Какое из объявлений нетипизированного параметра является правильным?
Ответ:
 (1) procedure p(a) 
 (2) procedure p(var a) 
 (3) procedure p(const a) 
Номер 3
Какое из объявлений открытого параметра-строки является правильным?
Ответ:
 (1) procedure p(s: string) 
 (2) procedure p(var s: string) 
 (3) procedure p(const s: string)