Documente Academic
Documente Profesional
Documente Cultură
Grile subprograme
1. Precizaţi care dintre următoarele linii de program b) o viteză mai mare în execuţia programului
reprezintă corect,dpdv sintactic, lista de parametri şi c) posibilitatea de a executa de mai multe ori
valoarea returnată de o funcţie cu numele test, dacă cerem instrucţiunile cuprinse într-o funcţie
ca parametrii formali să fie două variabile de tip întreg, x şi d) un program care conţine funcţii poate fi urmărit şi
y, şi o variabilă de tip real z, şi să returneze un rezultat corectat mai uşor
întreg. e) nici unul dintre avantajele de mai sus
a) int test(int x,y,float z) 8. Deduceţi şirul de valori care se afişează în urma
b) int test(int x,y;float z) execuţiei programului de mai jos:
c) int test(int x,int y,float z) #include<iostream.h>
d) test(int x;int y;float z) int int i,j,k;
e) test(int x,int y,float z) int int test(int x,int y)
2. Care dintre afirmaţiile de mai jos sunt adevărate? {
a) la apelul unei funcţii, se produce înlocuirea return x-y;
parametrilor formali cu parametrii actuali }
b) tipul parametrilor daţi la apelul unei funcţii trebuie void calcul(int p,int q)
să coincidă sau să fie compatibil cu tipul celor {
definiţi în antetul funcţiei int u,v;
c) orice funcţie trebuie să aibă întotdeauna cel puţin u=p-i; v=q+j;
un parametru i=test(u,q);
d) nici una dintre afirmaţiile de mai sus j=test(v,p);
3. Se consideră un vector v care poate memora maxim 25 }
de numere întregi, din care folosim efectiv numai primele n void main()
elemente. Scrieţi antetul unei funcţii numită calcul, care {
primeşte drept parametri vectorul v împreună cu numărul i=2; j=3;
său de elemente şi nu returnează nimic. calcul(i,,j);
a) void calcul(int v[n],25) cout<<i<<” “<<j;
b) void calcul(int v[25],int n) calcul(j,i);
c) void calcul(int v[],int n) cout<<i<<” “<<j;
d) void calcul(int v[],n) }
e) void calcul(int v,int n) a) 2 3 2 3 b) 3 2 3 2
4. Considerăm o funcţie demo, de tip void pentru care se c) 2 3 –3 4 d) –3 4 4 –3
definesc ca parametri trei variabile întregi. Cum realizăm e) –3 4 10 –3
apelul funcţiei, astfel încât la apel să dăm ca parametri 9. Considerăm programul următor:
variabilele întregi a,b şi c? #include<iostream>
a) demo(int a,int b,int c); using namespace std;
b) demo(int a;int b;int c); int m;
c) demo(a,b,c); int p(int& c)
d) demo(a;b;c); {
e) demo(int a,b,c); int b;
5. Scrieţi o funcţie D care primeşte ca parametru un număr b=3*m; c=b+2; m+=3;
întreg a şi returnează valoarea lui a+2. cout<<m; // (5)
a) int D(int a);{D=(a+2);} cout<<b<<” “<<c; //(6)
b) int D(int a){D=a+2;} }
c) int D(int a);{return(a+2);} int main()
d) int D(int a){return a+2;} {
e) nici una dintre variantele anteriare m=3; p(m); // (1)
6. Care dintre afirmaţiile de mai jos sunt adevărate? p(3); // (2)
a) parametrii definiţi în antetul unei funcţii se numesc cout<<m; // (3)
actuali, iar cei care apar la apelul funcţiei se cout<<b<<” ”<<c; // (4)
numesc formali }
b) valoarea returnată de către o funcţie poate fi Care dintre următoarele afirmaţii sunt adevărate?
transmisă ca parametru altei funcţii a) în cursul execuţiei primului apel al funcţiei p, cel
c) variabilele de tip tablou nu se pot transmite ca din linia (1), se vor afişa, în ordine, valorile 14,9,14
parametri funcţiilor (liniile (5) şi (6))
d) variabilele globale sunt cunoscute pe tot parcursul b) cele două apeluri ale funcţiei p, din liniile (1) şi (2),
programului în care au fost declarate în toate sunt corecte şi echivalente (produc acelaşi rezultat
modulele care urmează declaraţiei în orice situaţie)
e) corpul unei funcţii trebuie cuprins între “{“ şi “}”, c) linia (3) afişează valoarea 14
numai dacă este alcătuit din cel puţin două d) linia (4) afişează valorile 9 şi 14
instrucţiuni distincte e) la fiecare execuţie a funcţiei p, se salvează pe
7. Avantajele utilizării funcţiilor într-un program sunt: stivă valoarea lui c
a) se poate obţine o economisire a spaţiului de
memorie rezervat variabilelor folosite în cadrul
programului
1
Clasa a XI-a Subprograme 2
2
Clasa a XI-a Subprograme 3
3
Clasa a XI-a Subprograme 4
} #include<iostream.h>
Valoarea afişată de funcţie este : void incr(int x,int y,int z)
a) 0 b) 1 c) 32737 { x=x+1;
d) nu se poate preciza valoarea afişată y=y+1;
25. Se consideră subprogramul : z=z+1;
int f(int a,int b) }
{ int r=a%b; void main()
while (r>0) { int a=10, b=20, c=30;
{a=b;b=r;r=a%b;} cout<<a<<” ”<<b<<” ”<<c;
return b; incr(a,b,c)
} cout<<a<<” ”<<b<<” ”<<c;
Pentru a=45 si b=27 , valoarea lui f este: }
a) 3 b) 9 c) 72 d) 135 vor afişa următoarele rezultate:
26. Să se precizeze care sunt valorile care vor fi tipărite de a) a=10 b=20 c=30
programul de mai jos : a=11 b=21 c=31
int i,j; b) a=10 b=20 c=30
void p(int j) a=10 b=20 c=30
{ j++; c) a=11 b=21 c=31
i=j+1; a=10 b=20 c=30
} d) nici una din variantele 1-3
void main() 31. Următoarele linii de cod :
{ i=2; j=4; #include<iostream.h>
p(i); void incr(int &x,int &y,int &z)
cout<<i<<” “<j; { x=x+1;
} y=y+1;
a) 1 6 b) 1 4 c) 4 6 d) 4 4 z=z+1;
27. Se consideră următoarea funcţie : }
float x[10]; void main()
int f(int n) { int a=10, b=20, c=30;
{ int i,k=0; cout<<a<<” ”<<b<<” ”<<c;
for(i=1;i<n;i++) incr(a,b,c)
if(x[i]==x[i-1]) k++; cout<<a<<” ”<<b<<” ”<<c;
return k; }
} vor afişa următoarele rezultate:
Dacă x=(5, 6, 6, 6, 3, 4, 4, 9) valoarea returnată pentru f a) a=10 b=20 c=30
este : a=11 b=21 c=31
a) 3 b) 2 c) 7 d) 5 b) a=10 b=20 c=30
28. Ce face următorul program ? a=10 b=20 c=30
int function p3(int x) c) a=11 b=21 c=31
{ return x*x*x; a=10 b=20 c=30
} d) nici una din variantele 1-3
void main()
32. Parametrii folosiţi la definiţia unui subprogram se
{ int x,y;
cin>>x>>y); numesc:
cout<<p3(x+y); a) globali b) formali c) locali d) actuali
} 33. Care dintre următoarele afirmaţii este adevărată?
a) este eronată a) O funcţie se defineşte şi apelează doar atunci
b) calculează x3 când există o secvenţă de instrucţiuni care se
c) calculează (x+y)3 repetă de mai multe ori
d) calculează y3
b) O funcţie întoarce obligatoriu o valoare
29. Funcţia C :
int functie(double x,int n,int a[]) c) La apelul unei funcţii compilatorul efectuează
{ int k,i; înlocuirea parametrilor formali cu cei actuali
k=0; d) O funcţie trebuie să conţină obligatoriu parametri
for(i=0;i<n;i++) 34. Ce verifică următoarea funcţie?
if(a[i]<x) k++; int f(int n)
return k; {
} int d=2,k=l;
returnează : while(d<=n/2&&k)
a) cele k elemente mai mici ca x dintr-un vector a {
b) cele k-1 elemente mai mici ca x dintr-un vector a k=k &&(n%d); d+=l;
c) cele k elemente mai mici egale ca x dintr-un }
vector a return(k && n>=2);
d) cele k elemente mai mari ca x dintr-un vector a }
30. Următoarele linii de cod : a) dacă n este par
4
Clasa a XI-a Subprograme 5
a) variabila globală are prioritate în faţa celei ştiind că funcţia f() este definită astfel?
locale pe parcursul întregului program void f(char s120],char s2[20])
b) variabila locală are prioritate numai în linia { int ll=strlen(sl),l2=strlen(s2) ;
int i=0;
de program în care a fost declarată
while (i<ll && i<l2)
c) variabila locală are prioritate în faţa celei globale în
{
corpul de program în care este declarată
if(*(sl+i)==*(s2+i)&&
d) nu se poate ca 2 variabile să aibă acelaşi
sl[i]>='0'&& sl[i]<='9')
nume, chiar dacă una este globală şi cealaltă
s1[i]=’a’+s1[i]-‘0’;
locală
i++;
}
45. Care sunt valorile afişate de programul următor?
}
int a=l,b=2,c=3;
a)„B2D4F" b) „b2d4f c) „a2c4e"
void f()
d)„1c3e5"
{
int a=100; int b=a+c;
c+=a+b; 49. Ce verifică funcţia test?
cout <<a<<” “<<b<<” “<<c<<”\n”; int test (char s[])
} {
void main ( ) strlwr (s) ;
{ int i=0, j=strlen (s)-l, t=l;
f(); while (i<j && t)
cout <<a<<” “<<b<<” “<<c<<”\n”; {
} if(s[i]>='a' && s[i]<='z'
a)100 103 206 1 2 206 && s[i]!=s[j]) t=0;
b) 100 103 206 100 103 206 i++; j--;
c) 1 4 7 1 2 7 d) 1 4 7 1 2 3 }
return t;
}
46. Cum se va modifica valoarea variabilei nume
a) verifică dacă şirul s de caractere conţine şi
în urma apelului funcţiei modif (nume, 'm'),
caractere nealfabetice
ştiind că înainte de apel variabilei i s-a atribuit
b) verifică dacă şirul s de caractere este
cuvântul „informatica"?
void modif(char *s,char c) palindromic
{ c) verifică dacă şirul s de caractere este
6
Clasa a XI-a Subprograme 7
palindromic fără a testa şi caracterele nealfabetice aşezate simetric faţă de capetele sale, identic
d) verifică dacă şirul s are caracterele nealfabetice