ࡱ> oqnq` <bjbjqPqP .R::c|)|)|)|)4)La2********```````bh0e`u*****`**PaH?H?H?*@**`H?*`H?H?R]y`*) S|)H<J^`fa0a^e>e<y`ey``**H?*****``>? ***a****xx Intrebari functii recursive Stabilici valoarea de adevr a urmtoarelor propozici. (A-pentru adevrat si F  pentru fals) ntotdeauna o solucie recursiv de rezolvare a unei probleme este mai avantajoas dect o solucie iterativa. FALS (exemplul _irul Fibonacci) O funccie se nume_te recursiv dac si numai dac in corpul su intervine un apel al su. FALS (exist recursivitate indirect) Numai n cazul n care o funccie este apelat recursiv la apel se aloc pe stiv parametrii, variabilele locale _i adresa de revenire din funccie. FALS (acest mechanism este valabil pentru orice subprogram) Reducerea numrului de parametri ai unei funccii recursive reprezint o optimizare a acesteia. ADEVARAT (reducerea numrului de parametric mic_oreaz dimensiunile spaciului de memorie necesar pe stiv pentru un apel _i reduce timpul necesar pentru alocarea parametrilor pe stiv) Care este efectul urmtorului program pentru n=4? #include <iostream> int n; void Test (int i) { cout<< * ; if(i<n) Test(i+1); cout<< + ; } int main() { cout<< n=  ; cin>>n; Test(1); return 0; } raspuns ****++++ Se consider urmtoarea funccie recursiv. Ce se afi_eaza pe ecran la apelul scrie(21)? void scrie(int x) { if(x>1) scrie (x/2); cout<<x%2; } 10101;11111;01010;00000; Ce va afi_a pe ecran urmatorul program? #include <iostream> using namespace std; char x[]= abbbabaaab ; int test(int i) { if(!x[i]) return 0; return (x[i]==x[i+1])+test(i+1); } int main() { cout<<test(0); return 0; }0; nimic, se obcine eroare la compilare ;3; 4 Ce va afi_a urmtorul program? #include <iostream> using namespace std; void p(int n) { if (n) {cout<<n%5; p(n/5); cout<<n%5; } else cout<<  ; } int main() { int n=1234; p(n); cout<<n; return 0; } 1234 43211234; 41441 144140; 41441 144141234; 41441 144140 Cu ce expresie trebuie completat secvenca lips (marcat prin & ) din funccia urmtoare pentru ca f(x, 2) s aib ca rezultat suma exponencilor factorilor primi ce intr n descompunerea lui x? int f(int x, int d) { if(& ) return 1; if(x%d==0) return (1+f(x/d, d)); return (f(x, d+1)); } x==1; x<d; x<=d; x>=d Funccia recursiv suma trebuie definit astfel nct apelul suma(n) s returneze suma ptratelor perfecte mai mici sau egale cu n. Care este expresia cu care trebuie completat definicia funcciei? long suma (long i) { if(i == 0) return 0; long j=sqrt(i); return & ; } j*j+suma(j*j-1); j*j+suma(j); j*j+suma(j-1); j+suma(j*j-1) Pentru definicia urmtoare a funcciei sk(), stabilici cte asteriscuri se afi_eaz la apelul sk(6). void sk(unsigned int x) { unsigned int i; for(i=1; i<=x/2; i++) sk(i); cout<< * ; } un numr impar de asteriscuri; 2; 4; 6 Se considera urmtoarea funccie definit recursiv: int mk(int i) { if(i==0) return 0; return mk(i-1)+i; } Ce v^8 0<VŶūyyj_PEhyRh7CJaJhyRhxqB*CJaJphhyRhxqCJaJhyRhPXB*CJaJphhyRhPX6CJaJhyRhPXCJaJhyRhB*CJaJphhyRh6CJaJhyRhCJaJhyRhNVB*CJaJphhyRhNVCJaJhyRh+zB*CJaJphhyRh+zCJaJhyRh\OCJaJhyRh@ICJaJ8  DlzBVl$^`a$gd\O $^a$gd\O $ & Fa$gd\O $ & Fa$gd@I $ & Fa$gd@I $a$gd@I<Bfj6^LRjpDn $h^ha$gdNV $ & Fa$gdNV$hh^h`ha$gd+z $h^ha$gd+z $ & Fa$gd+zn:@X^z8XB $ & Fa$gdPX$a$gd $ & Fa$gd $h^ha$gdNV$hh^h`ha$gdNVBjpVNTvX**$ & F-DM a$gd7 $h^ha$gd7 $ & Fa$gd7 $h^ha$gdxq $ & Fa$gdxq $h^ha$gdPXaloare va returna pentru mk(8)? Raspuns: 36 Ce valoare returneaz funccia la apelul schimba(2324,1, 2)? long schimba(long n, int c1, int c2) { if(n==0) return 0; else if(n%10==c1) return schimba(n/10,c1,c2)*10+c2; else return schimba(n/10,c1,c2)*10+n%10; } 5354 Ce valoare returneaz funccia la apelul sterge(23562)? long sterge(long n) { if(n==0) return 0; else if(n%2==1) return sterge(n/10)*10+n%10; else return sterge(n/10); } 35 Ce valoare returneaz funccia la apelul sum(3458756)? int sum (long n) { if(n==0) return 0; else return sumacif(n/10)+n%10; } 38 Ce valoare returneaz funccia la apelul max(23614)? int max(int n) { if ( n <= 9 ) return n; else { int m = max(n/10); if ( m > n%10 ) return m; else return n%10; } } 6 Ce valoare returneaz funccia la apelul rast(23456, 0)? int rast(int n, int r) { if ( n == 0 ) return r; else return rast(n/10,r*10+n%10); } 65432 Ce valoare returneaz funccia la apelul NC(2405)? int NC(int n) { if ( n <= 9 ) return 1; else return NC(n/10)+1; } 4 Ce valoare returneaz funccia la apelul PC(2405)? int PC(int n) { if ( n <= 9 ) return n; else return PC(n/10); } 2 Ce valoare returneaz funccia la apelul vocale( anamaria )? int vocale(char s[20]) { if(strlen(s)==0) return 0; else if(strchr("aeiou",s[0])) return 1 + vocale(s+1); else return vocale(s+1); } 5 Valorile memorate de componentele tabloului v, cu indicii de la 0 la 5, sunt, n aceast ordine: 973, 51, 75, 350, 350, 15. Se consider subprogramul t cu definicia alturat. Care dintre urmtoarele expresii are valoarea 2 ? int t (int i, int v[]) { if(i==0) return 0; if(v[i]!=v[i-1]) return t(i-1,v); return 1; } a. t(0,v)+t(3,v) b. t(1,v)+t(4,v) c. t(4,v)+t(5,v) d. t(3,v)+t(4,v) Se consider subprogramul f, definit alturat. Pentru ce valori ale lui n aparcinnd intervalului [10, 20] se obcine la apel f(n)= 0? int f(unsigned int n) { if (n==0) return 0; else if(n%2==0) return n%10+f(n/10); else return f(n/10); } 10, 11, 13, 15, 17, 19 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 afi_eze 3 caractere * ? void S(int x) { cout<<'*'; if (...) { cout<<'*'; S(x-1); } } x>1 b. x>2 c. x>=3 d. x>0 *@*X******J+L+,,, ,p,,,Ҭm\G2)hyRhNB*CJOJQJ^JaJph)hyRhozB*CJOJQJ^JaJph hyRhNCJOJQJ^JaJ)hyRhB*CJOJQJ^JaJph)hyRh:B*CJOJQJ^JaJph)hyRh:B*CJOJQJ^JaJph)hyRh7B*CJOJQJ^JaJph hyRh:CJOJQJ^JaJ hyRh7CJOJQJ^JaJhyRh7B*CJaJphhyRh7CJaJU*+$+N++, ,,,,F---.&.R.$-DM a$gd' $ & Fa$gd'$-DM a$gdoz$-DM a$gdN$h-DM ^ha$gdN$ & F-DM a$gdN$h-DM ^ha$gd7,,------..... /l0n0p0t00Ƕؖr]rrH3r)hyRh]B*CJOJQJ^JaJph)hyRh]B*CJOJQJ^JaJph)hyRh'B*CJOJQJ^JaJph)hyRh'B*CJOJQJ^JaJphhyRh'B*CJaJphhyRh'CJaJ)hyRhozB*CJOJQJ^JaJph hyRhozCJOJQJ^JaJ hyRhNCJOJQJ^JaJ)hyRhNB*CJOJQJ^JaJph$hyRhN0JCJOJQJ^JaJR... /,/d/v////0*0\0h0r0t001H1X1112 $ & Fa$gd]$-DM a$gd] $ & Fa$gdN$-DM a$gd'0001111220222230323333384b4įդկդudOuDhyRhEWCJaJ)hyRhNSB*CJOJQJ^JaJph hyRhNSCJOJQJ^JaJ)hyRhNSB*CJOJQJ^JaJphhyRhNSCJaJhyRh]B*CJaJphhyRh'CJaJ)hyRh]B*CJOJQJ^JaJph hyRh]CJOJQJ^JaJ)hyRh]B*CJOJQJ^JaJphhyRhNCJaJhyRh]CJaJ20262r222223P3V33333b4444>5|55$-DM a$gdEW $ & Fa$gdEW$-DM a$gdNS $ & Fa$gdN$-DM a$gd] $h^ha$gd]b4555556 666J6P6T6X6\6`6d6j6n6t6x6|666D7H7N7F8f888899P9T9X9\9999b:j:::::ʾʾʾʾʾʾʾʾʾʾʾʾʾʾʾʾʾʾvhyRhyRCJaJhyRh'B*CJaJph hyRhyRB*CJ\aJphhyRhyRCJ\aJ hyRhdBB*CJ\aJphhyRhdBCJ\aJhyRhdBCJaJ)hyRhEWB*CJOJQJ^JaJph)hyRhEWB*CJOJQJ^JaJph.55N7|777778F889999:::d::<,< h7$8$H$^hgdyR & F7$8$H$gdyR 7$8$H$gddB h7$8$H$^hgddB & F7$8$H$gddB$-DM a$gdEW:;;;;< <<<<<<<<<³hyRh@IB*CJaJphhyRh+zCJaJhyRh'CJaJ hyRhyRB*CJ\aJphhyRhyRCJ\aJhyRhyRCJaJ,<F<\<r<<<<<<<<<$-DM [$\$a$gd@I $^a$gd@I$a$gd+z $h^ha$gd+z h7$8$H$^hgdyR ,1h/ =!"#$% @@@ NormalCJ_HaJmH sH tH DA@D Default Paragraph FontRi@R  Table Normal4 l4a (k@(No ListB^@B @I Normal (Web)dd[$\$(O( @Iparagrafe@ 7HTML Preformatted7 2( Px 4 #\'*.25@9CJOJQJ^JaJBO!B Napple-converted-spacecRzWp  !+6I/D[kn"7L[^g ,B\! 5 8 O a m  ' * ; Y e , h   H ] s   ) L R .49:r 9Dbg1ILh#E2L#.9ACE_`abe0 0 0 0 0 0 000000000000000 000000 00000000000000 000000000000000 0000000 0000000 0000000 000000 0 000000 0 00000 0 0000 0 000000000000 0 00000 0000000 0000000 00000000 000000000 00000000 0000000000000zWp  !+6I/D[kn"7L[^g ,B\! 5 8 O a m  ' * ; Y e , h   H ] s   ) L R #ELACE_`abe0 0 0 0 0 0 000000000000000 000000 00000000000000 000000000000000 0000000 0000000 0000000 000000 0 000000 0 00000 0 0000 0  0K00K0h0 iK0h0 K0h0 0K0l0 mK0l0 K0l0 0K0p0qԄyK0p0K0p0@ 0@ 0@ 0@0 00,0b4:<!#%'nB*R.25,<< "$&(< %&.28;GHQV\]efhmstxz %&*+-.348<BCFGPTX\_gmn{|  %045<=CDIW`ajnwxz{ &*./19?@GHNOWXdeghmuyz 8?LUV`ahirtvz%-NX[^dghiuv -5TWjn~!"*+23=>FGLNUVZbijstz\cdmnrsz{     ' + 2 3 = > X \ ] ^ r x      # 4 7 8 9 @ A E F M N R T U V Z ^ j o p u y        ' , . / 6 7 A B I M S T [ n u ~      % & - 1 7 8 > N T   8 ? R T U \ ] g h o s y :<=DEOPW[abfruvz{~  gijqr|}  #%-256<PVqwy #CLMY_hiryHQR^bijrtz{}~OXYefnow{.2e9:QSuy "',2/4IK[^k$25MPim!27 #%.2e33333333333333333333333333333333333333333333333ij1KL_bee a)DT"P|(@ݘ<F7fМ,98Tm_G&(PfRhU[[L%_J)aF5TpVzw {nxh ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.88^8`o() ^`hH.  L ^ `LhH.   ^ `hH. xx^x`hH. HLH^H`LhH. ^`hH. ^`hH. L^`LhH.  ^`B*o(ph) ^`hH. pLp^p`LhH. @ @ ^@ `hH. ^`hH. L^`LhH. ^`hH. ^`hH. PLP^P`LhH.h^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@ @ ^@ `OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hH ^`o() ^`hH. pLp^p`LhH. @ @ ^@ `hH. ^`hH. L^`LhH. ^`hH. ^`hH. PLP^P`LhH. ^`o() ^`hH. pLp^p`LhH. @ @ ^@ `hH. ^`hH. L^`LhH. ^`hH. ^`hH. PLP^P`LhH.h^`OJQJo(hHh ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH. 88^8`o(hH) ^`hH. pLp^p`LhH. @ @ ^@ `hH. ^`hH. L^`LhH. ^`hH. ^`hH. PLP^P`LhH. ^`o() ^`hH. pLp^p`LhH. @ @ ^@ `hH. ^`hH. L^`LhH. ^`hH. ^`hH. PLP^P`LhH.h hh^h`hH.h 88^8`hH.h L^`LhH.h   ^ `hH.h   ^ `hH.h xLx^x`LhH.h HH^H`hH.h ^`hH.h L^`LhH.h 88^8`hH.h ^`hH.h  L ^ `LhH.h   ^ `hH.h xx^x`hH.h HLH^H`LhH.h ^`hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH. a))aF75Tpw {P,9|(Dm_GU[L%_          $                                   V                 $        E7                                   dB@INSyREWxq+zPXNV7'Noz:\O]J@p cPP PPPPPPP*UnknownGz Times New Roman5Symbol3& z Arial?5 z Courier New;Wingdings"qh3C$GC$G> Y % Y %!4dYY 2QKP)?@I2Intrebari functii recursiveWindows XPower EditionWindows XPower Edition<         Oh+'0 0< \ h tIntrebari functii recursiveWindows XPower EditionNormalWindows XPower Edition16Microsoft Office Word@J@ S@˩S Y՜.+,0 hp  January Edition 2008% Y Intrebari functii recursive Title  !"#$%&'()+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]_`abcdeghijklmpRoot Entry FpOSr1Table*$fWordDocument.RSummaryInformation(^DocumentSummaryInformation8fCompObjq  FMicrosoft Office Word Document MSWordDocWord.Document.89q