Sunteți pe pagina 1din 4

Recursivitate 1 (v1-v22)

1. Pentru definiia de mai jos a subprogramului f, ce se afieaz ca urmare a apelului f(121,1);?


voidf(longn,inti)
{
if(n==0)cout<<i;
if(n%3>0)f(n/3,i+1);
}
2. Pentru definiia alturat a subprogramului f, ce se afieaz ca urmare a apelului f(125);?
voidf(intn)
{
cout<<n%10;
if(n!=0)
{
cout<<n%10;f(n/100);
}
}
3. Pentru definiia alturat a subprogramului f, ce se afieaz ca urmare a apelului f(26);?
voidf(intx)
{
if(x>0)
{
cout<<'x';f(x/3);cout<<'y';
}
}
4. Pentru subprogramul fdefinit alturat, ce se afieaz ca urmare a apelului f(15,2);?
voidf(intn,intx)
{
if(x>n)cout<<*;
else
{
f(n,x+4);
cout<<x%10;
}
}
5. Pentru definiia de mai jos a subprogramului f, ce se afieaz ca urmare a apelului f(10);?
voidf(intb)
{
if(3<=b)
{
f(b2);cout<<*;}
elsecout<<b;
}
6.Se consider subprogramul cu definiia alturat. Ce valoare se va afia n urma executrii
instruciunii :
cout<<f(12);
intf(intn)
{
intc;
if(n!=0)
{
if(n%2==1)c=1+f(n/2);
elsec=f(n/2);
cout<<n%2;
returnc;
}
elsereturn0;
}
a. 11002b. 20011c. 10102d. 00112
7.Se consider subprogramul cu definiia alturat. Ce se va afia n urma apelului
f(12345);?

voidf(longn)
{
if(n!=0)
{
if(n%2==0)cout<<n%10;
f(n/10);
if(n%2!=0)cout<<n%10;
}
elsecout<<endl;
}
8.Se consider subprogramul fcu definiia alturat. Ce se va afia n urma apelului f(12345);?
voidf(longn)
{
if(n!=0)
{
if(n%2!=0)cout<<n%10;
f(n/10);
if(n%2==0)cout<<n%10;
}
elsecout<<endl;
}
9.Se consider subprogramul cu definiia alturat. Ce valoare se va afia n urma executrii
instruciunii:
cout<<f(8);
intf(intn)
{
intc;
if(n!=0)
{
if(n%2==0)c=1+f(n/2);
elsec=f(n/2);
cout<<n%2;
returnc;
}
elsereturn0;
}
10.Se consider subprogramul cu definiia alturat. Ce valoare are f(3,1)?
intf(intn,inty)
{
if(n!=0)
{
y=y+1;
returny+f(n1,y);
}
elsereturn0;
}
a. 8b. 9c. 7d. 6
11.Pentru funcia f, definit alturat, care este valoarea f(1711)? Dar f(23169)?
intf(intn)
{
if(n==0)return0;
else
if(n%2==0)returnn%10+f(n/10);
elsereturnf(n/10);
}
12.Ce valoare are f(4063)pentru funcia f, definit alturat?
longf(longn)
{
if(n==0)return1;
else
if(n%10==0)returnf(n/10);

elsereturn(n%10)*f(n/10);
}
13.Care este valoarea lui f(34)pentru funcia fdefinit alturat? Dar valoarea f(f(4))?
longf(longx)
{
if(x==4)returnx;
else
{
if(x%10==4||x%10==0)returnx+f(x/10);
elsereturnx+f(x*2);
}
}
14.Funcia Fare definiia alturat. Ce valoare are F(3)?
intF(intn)
{
if(n==0||n==1)return1;
elsereturn2*F(n1)+2*F(n2);
}
a. 1b. 12c. 6d. 10
15.Subprogramul fare definiia alturat. Ce se va afia n urma apelului f(12345);?
voidf(longn)
{
if(n>9)
{
cout<<n/100;
f(n/10);
}
}
a. 1231210b. 123121c. 1234123121d. 123
16.Funcia f are definiia alturat. Ce se va afia n urma apelului f(12345,0);?
voidf(longn,inti)
{
if(i<n%10)
{
cout<<n%10;
f(n/10,i+1);
}
}
a. 54321b. 543c. 54d. 5432
17.Funcia Fare definiia alturat. Ce valoare are F(18)?
intF(intx)
{
if(x<=1)returnx;
elsereturnx+F(x2);
}
a. 90b. 171c. 91d. 18
18.Funcia Fare definiia alturat. Ce valoare are F(5)?
intF(intx)
{
if(x!=0)returnx+F(x1);
elsereturnx;
}
a. 5b. 10c. 15d. 6
19.Se consider subprogramul, f, definit alturat.
a) Ce valoare are f(20)?
b) Scriei o valoare pe care o poate avea xastfel nct f(x)=1.
intf(intn)
{
if(n==0)return0;
returnn%2+f(n/2);

}
20.Considerm subprogramul recursiv definit alturat. Ce se va afia n urma apelului:
voidf(charc)
{
if(c>A)f(c1);
cout<<c;
if(c>A)f(c1);}

f(B);

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