игра брюс 2048
Главная / Программирование / Программирование на языке 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)

 (2)

 (3)

 (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)

 (2)

 (3)

 (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)

 (2)

 (3)

 (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) 




Главная / Программирование / Программирование на языке Pascal / Тест 8