(6p.)
void f(int x){
if(x){
if(x%3==0){
cout<<3; | printf("3");
f(x/3);}
else{
f(x/3);
cout<<x%3; | printf("%d",x%3);}}}
V58
Se consider subprogramul f, definit alturat. Ce valoare are f(3713,3)?
(6p.)
int f(int n,int c){
if(n==0)
return 0;
if(n%10==c)
return f(n/10,c)*10+c;
return f(n/10,c); }
V59
Se consider subprogramul f, definit alturat. Ce valoare are f(261,31)?
(6p.)
int f(int a,int b)
{
if(a<10)
return b;
return f(a/10,b)*10+b+1;}
V60
Se consider subprogramul f, definit alturat. Ce valoare are f(398,2008)?
(6p.)
int f(int a,int b){
if(2*a>=b)
return 0;
if(b%a==0)
return b-a;
return f(a+1,b-1);}
V61
V65
Se consider funcia f, definit alturat. Ce se afieaz ca urmare a executrii
secvenei de mai jos n care variabilele a i b sunt de tip unsigned int?
3
a=4; b=18;
printf(%d,f(a,b));/ cout<<f(a,b);
printf(%d %d,a,b);/ cout<<a<<b;
(6p.)
int f(unsigned int &a,
unsigned int &b)
{ while (a !=b)
if (a>b) a=a-b;
else b=b-a;
return a;}
V66
Se consider subprogramul recursiv definit alturat. Ce valoare are functie(4)?
(6p.)
int functie(int x)
{if (x<=0) return 3 ;
else return functie(x-3)*4 ;}
V67
Se consider subprogramul recursiv definit alturat. Pentru ce valoare a
parametrului u, alfa(u) are valoarea 25 ? Pentru u=6, ce valoarea returneaz
alfa(u)? (6p.)
int alfa(int u)
{if (u==0) return 3;
else return alfa(u-1)+3*u-2;}
V68
Se consider subprogramul recursiv definit alturat. Ce valori vor fi afiate pe
ecran n urma apelului gama(6)? (6p.)
void gama(int n)
{int i;
if(n>=3)
{for(i=3;i<=n;i++)
printf(%d ,n); | cout<<n<< ;
gama(n-3);}}
V69
Se consider subprogramul recursiv definit alturat. Ce valori vor fi afiate pe
ecran n urma apelului beta(15);?
void beta(int n)
{if (n!=1)
4
V73
Ce se va afia n urma executrii subprogramului alturat, la apelul
F(56);?
void F(int x)
{ if(x)
{ F(x/2);
5
b. 20
c. 12
d. 4
V76
Pentru definiia alturat a subprogramului sub, stabilii ce valoare are
sub(132764).
long sub(long n)
{if (n!=0)
if(n%2!=0) return n%10*sub(n/10);
else return sub(n/10);
else return 1;}
V77
Pentru definiia alturat a subprogramului sub, stabilii ce valoare are
sub(132764).
int sub(long n)
{if (n!=0)
if(n%2!=0) return n%10+sub(n/10);
else return sub(n/10); else return 0;}
V79
Pentru definiia alturat a subprogramului f, ce valoare are expresia
f(1209986)?
int f(long x)
{ int y,z;
if (x==0) return x;
else {y=x%10;
6
z=f(x/10);
if(y>z) return y ;
else return z;}}
V80
Pentru definiia alturat a subprogramului sub, ce valoare are sub(132764)?
int sub(long n)
{if (n!=0)
if(n%2!=0) return n%10+sub(n/10);
else return sub(n/10);
else return 0;}
V81
Pentru definiia alturat a subprogramului f, scriei ce valoare are f(5552,5).
int f(int x,int y)
{ if(x==0)return 0;
else
if(x%10==y) return f(x/10,y)+1;
else return f(x/10,y);}
V82
Pentru definiia alturat a subprogramului f, stabilii ce valoare are f(123)?
int f(int x)
{ if(x==0)return 0;
else
if(x%2==0)return 1+f(x/10);
else return 2+f(x/10);}
V83
Pentru definiia alturat a subprogramului f, stabilii ce valoare are f(123)?
int f(int x)
{ if(x==0)return 0;
else
if(x%2==0)return 3+f(x/10);
else return 4+f(x/10);}
V84
Pentru definiia alturat a subprogramului f, stabilii ce valoare are f(100)?
int f(int x)
{ if(x==0)return 1;
else
return 1+f(x-1);}
7
V85
Pentru definiia alturat a subprogramului f, scriei ce valoare are f(100).
int f(int x)
{ if(x==50)return 1;
else
return 2+f(x-1);}
V86
Se consider subprogramul f, definitalturat. Ce se afieaz la apelul f(4);?
void f(int n)
{cout<<"*"; | printf("*");
if(n>2)
{f(n-1);
cout<<"#"; | printf("#");}}
V87
Se consider subprogramul f, definit alturat. Ce se afieaz la apelul f(4);?
(6p.)
void f(int n)
{if(n>0)
{cout<<n; | printf(%d,n);
f(n-1);
cout<<n; | printf(%d,n);}}
V88
Se consider subprogramul f, definitalturat. Ce valoare are f(4)?
(6p.)
int f(int n)
{if (n==0) return 1;
else if (n==1) return 2;
else return f(n-1)-f(n-2);}
V89
Se consider subprogramul f, definitalturat. Ce valoare are f(4)?
(6p.)
long f(int n)
{if (n==0) return 0;
else return n*n+f(n-1);}
V90
Se consider subprogramul f, definit alturat. Ce se afieaz la apelulf('a');?
(6p.)
8
void f(char c)
{if (c != 'e')
{f(c+1);
cout<<c; | printf(%c,c);}}
V91
Subprogramul recursiv alturat este definit incomplet. Scriei expresia care poate
nlocui
punctele de suspensie astfel nct, n urma apelului, f(12) s se afieze irul de
valori:
12 6 3 1 1 3 6 12. (6p.)
void f(int i)
{ if (. . .)
{ printf(%d ,i); | cout<<i<< ;
f(i/2);
printf(%d ,i); | cout<<i<< ;}}
V92
Se consider definit subprogramul f.
a) Ce se va afia n urma apelului f(14);?
b) Scriei valorile pe care le poate avea x, astfel nct n urma apelului f(x);, s
se afieze pe ecran exact 10 numere.
(6p.)
void f(int x)
{ if (x<=10)
cout<<0<< ; | printf("%d ",0);
else
{ f(x-2);
cout<<x<< ; | printf("%d ",x);}}
V93
Subprogramul f este definit alturat. Ce se afieaz ca urmare a apelului de mai
jos?
f(1,4);
(6p.)
void f (int x,int y)
{ if (x<y){x=x+1;f(x,y);
y=y-1;f(x,y);}
else
cout<<x<<y; | printf(%d%d,x,y);}
V94
9
Funcia f este astfel definit nct f(1)=8, iar f(n+1)=2*f(n)-4 (n natural, n>1).
a) Ce valoare are f(5) ? (3p.)
b) Care este cea mai mare valoare pe care o poate lua x astfel nct f(x) < 1000 ?
(3p.)
V95
Funcia f are definiia alturat. Scriei cinci valori de apel pe care le poate avea
n astfel nct,
pentru cele 5 apeluri corespunztoare acestor valori, s se obin 5 valori ale
funciei, disticte
dou cte dou. (6p.)
int f(int n)
{if (n<=9) return 0;
if (n%5==0) return 0;
return 1+f(n-3);}
V96
Funcia f are definiia alturat. Scriei 4 valori de apel pe care le poate avea n
astfel nct, pentru cele 4 apeluri, corespunztoare acestor valori, s se obin 4
valori, disticte dou cte dou. (6p.)
int f(int n)
{if (n<=9) return 0;
if (n%4==0) return 0;
return 1+f(n-3);}
V97
Subprogramul recursiv alturat este definit incomplet. Care dintre urmtoarele
expresii poate nlocui punctele de suspensie astfel nct, n urma apelului,
subprogramul f s returneze suma primelor dou cifre ale numrului primit prin
intermediul parametrului x?
Exemplu: n urma apelului f(2318) valoarea returnat
este 5. (4p.)
int f(int x){
if (...)
return x%10 + x/10;
else
return f(x/10);}
a. x<=100
b. x<=99
c. x==99
d. x!=0
V98
10
b. 1
c. 9
d. 0
V99
Se consider subprogramul recursiv alturat, S, definit incomplet. Cu ce
expresie pot fi nlocuite punctele de suspensie astfel nct, n urma apelului S(2),
s se afieze 3 caractere * ? (4p.)
void S(int x)
{ cout<<'*';
if (...) {
cout<<'*';
S(x-1);}}
a. x>1
b. x>2
c. x>=3
d. x>0
V100
Ce afieaz subprogramul F, descris alturat, la apelul F(5);? (6p.)
void F(int x)
{ cout<<x; | printf(%d,x);
if(x>=3)
F(x-2);
cout<<x-1; | printf(%d,x-1);}
1.Se consider subprogramele f1 i f2, definite mai jos.
int f1 (int x, int y)
{return x*y;}
int f2 (int x, int y)
{ if (y==1) return x;
else return x*f2(x, y-1);}
11
12