Sunteți pe pagina 1din 4

Numele si prenumele___________________________________________ Clasa ___________________

Test de verificare – Biletul nr. 1


Subprograme in Pascal
1. Pentru programul urmator, precizati care dintre variantele urmatoare de raspuns sunt corecte:
Program exemplu;
Var x:real; Begin x:=4;
Function f(x:real):real; Writeln( f(sqr(x)):5:2 );
Begin f:=x-1; End; end.
a. programul afiseaza valoarea 15;
b. programul afiseaza valoarea 3;
c. programul afiseaza valoarea 1;
d. apelul functiei nu este corect.

2. Determinati valorile pe care le afiseaza programul de mai jos.


Program exemplu; Begin y;=10; x:=12;
Var x,y:integer; Write(t(x,y),’ ‘);
Function t(m,n:integer):integer; Write(x,’ ‘,y); end.
Begin m:=n+x; n:=n+1; t:=n+y+m; end;
a. 43 22 10
b. 43 12 10
c. 47 10 12
d. 44 22 11
e. 44 12 11

3. Pentru programul urmator, precizati care dintre variantele urmatoare de raspuns sunt corecte:
Program exemplu; if (i>=a) and (i<=b) then test:=i;
Var x:integer; end;
Function test(a,b:integer):integer; Begin x:=2;
Var i,x:integer; Writeln(test(x,x+2)); {1}
Begin test:=0; Writeln(x); {2}
x:=a+b; End.
for i:=1 to 5 do
a. functia test returneaza valoarea 0, indiferent care ar fi parametrii actuali transmisi la apel;
b. corpul functiei test este eronat deoarece nu poate contine doua instructiuni de genul test:=…
c. programul este eronat deoarece variabila x a fost declarata de doua ori
d. instructiunea {1} afiseaza valoarea 4
e. instructiunea {2} afiseaza valoarea 6

4. Ce valori va afisa programul urmator?


Program exemplu; T(n,m); writeln(n,’,’,m);
Var n,m:integer; n:=10; m:=20;
Procedure T(n:integer; var m:integer); T(n,m); writeln(n,’,’,m);
Begin n:=n+2; m:=m-1; end; End.
Begin n:=2; m:=5;
a. 4,4,12,19
b. 2,5,10,20
c. 4,5,12,20
d. 7,2,22,10
e. 2,4,10,19

5. In programul urmator procedura P primeste ca parametri trei numere intregi a, b si c. Cum trebuie scris
antetul corect al procedurii, astfel incat programul sa afiseze, in ordine, valorile 4 4 7?
Program exemplu; end;
Var x,y,z:integer; begin
Procedure P(………); x:=2; y:=4; z:=1;
Begin P(x,y,z);
a:=a+2; b:=b-1; c:=a+b; Writeln(x,‘ ‘,y,’ ‘,z);
End.
a. Procedure P(a:integer;b:integer;c:integer);
b. Procedure P(a:integer;var b:integer;var c:integer);
c. Procedure P(var a:integer;b:integer; var c:integer);
d. Procedure P(a:integer;var b:integer;c:integer);
e. Procedure P(var a:integer;var b:integer;var c:integer);

6. Stabiliti care dintre urmatoarele variante reprezinta un subprogram corect care interschimba valorile a doua
variabile reale transmise prin parametrii de iesire x si y:
a. procedure p(x,y:integer);
var z:real;
begin z:=y; y:=x; x:=z; end;
b. procedure p(var x,y:integer);
var z:real;
begin z:=y; y:=x; x:=z; end;
c. procedure p(x,y:integer);
begin y:=x+y; x:=y-x; x:=y-x; end;
d. procedure p(var x,y:integer);
begin x:=y+x; y:=y-x; x:=x-y; end;
e. procedure p(var x,y:integer);
begin x:=y; y:=x; end;

7. Consideram urmatorul antet de procedura


Procedure p(a:integer; var b:integer);
Stiind ca s-a definit o variabila globala a de tip intreg, precizati care dintre apelurile de mai jos sunt corecte?
a. p(1,2);
b. p(a,2);
c. p(a,a)
d. p(2,a);
e. p(a+1,a);
f. p(a,a-2) ;

8. Stabiliti care dintre urmatoarele variante reprezinta un subprogram corect care calculeaza a la puterea b?
a. function putere (a,b:word):longint; c. function putere (a,b:word):longint;
var j:word; p:longint; var j:word; p:longint;
begin begin
p:=1; p:=1;
for j:=1 to b do p:=p*a; for j:=1 to a do p:=p*b;
putere:=p; putere:=p;
end; end;
d. function putere (a,b:word):longint;
b. function putere (a,b:word):longint; var j:word; p:longint;
var j:word; p:longint; begin
begin p:=1;
for j:=1 to b do putere:=a*a; for j:=1 to b div 2 do p:=p*a;
end; if b mod 2=0 then putere:=p*p
else putere:=p*a*p;
end;
9. Stabiliti care dintre urmatoarele variante reprezinta antetul corect al unei functii reale cu parametru de
intrare intreg?
a. function f(x:integer);
b. function f(var x:integer):real;
c. function f(x:integer):real;
d. function f(x:real):integer;
e. function f(var x:real):integer;
Obs. Fiecare intrebare valoreaza un punct (9+1(oficiu)=10).

S-ar putea să vă placă și