Sunteți pe pagina 1din 9
Testul de sinteza nr. 3 S.ITI.1, Dacd m, n si p sunt variabile intregi, iar x, y si z sunt variabile reale, identificafi care dintre instructiunile de mai jos reprezinta atribuiri corecte. a) xt=2; b) 2txty; ©) m*n=p; q) n=mtztptx; ) pity: ST $.1I1.2. Daca x, y, z sunt trei variabile de tipul int, cu valorile initiale x=1, y=0 si z=1, precizati care dintre afirmatiile de mai jos sunt adevarate. a) Expresia x void main() 263 Scanned with CamScanner ‘ine, n04008 24167 cute (2!=8) Te (nce) aemin; else nents cout << ny , 2) programul este greg = ‘S.IILS. Fie secventa de prose” 820; for (i=3; icons 44=3) re fiecare astel doy : te do. numers, tle se dau mai jos iy varia de rie m Cat ce ac reprezennd un set de Wee Pate cole tel vaio ale in cn let se oon tnpete au propilatea scoeaivloare ai 87 » (6.7.8) 2) (3,56) 6,9,12) ) (40, 11,12) gs 2) (15,16,37) ied in care lite $1 coloancle sung RIS Fo te te Se peat mice ino; white (afi) (4]) 4447 cout << als (3) 4) Determind prima valoare nul de pe dagonala matrcei a, dacd exist o ast e valoare 0) Determind uma valoare nud de pe ck de valoare. ‘¢) Determina prima valoare nenula de pe diagonala matrcel a, daca exists 0 jagonala matricel a, dec’ exist’ o astte| astfel de valoare. i @) Determind uitima valoare nenulé de pe diagonala matricel a, daca exista o astfel de valoare. @) Secventa poate 8 genereze o eroare de executie. ed S.IIL7. Precizati care dintre funcfile de mai jos returneaza corect media geometricé a doua numere intregi pozitive, referite prin intermediul pointerilor a gi 264 », transmisi ca parame. , aoe wane eeane * Pe M(int *a,int ) { , @ float M(int *a,int *b) ° Soe meine *a,int Dd | ian’ ‘*(sqrt(atb)); S.IILS. Ce valoare va afiga programul urmator: include int c(int x) ‘ 4£ (00) e(x-1); return x: } void main() ( int x=10; cout << ole); d ao aa ge 10 —_e) programuleste gresit al S.IIL9. Pentru programul urmator, care dintre afirmatile date sunt adevarate 7 include int X(int a;int b) "void main() 4 265 Scanned with CamScanner Py .5,1.5)7 1A) ee He) cout << * cout BF , a) Liria (A) afigeazd valoarea 3, Dini (A) afigeazB valoarea 2 ul func in nia 4 Norea dn nia (2) est 2, oy go ma U8 In program exist si alte ero” Pe rn elemente num, sum, respectiv, Pe ere i a cea Vectorilor &-2 asiguray $.1I1.10. Se’ considers dous mult eer 7 re eae cgreeme mee seman Pes Btlacosserse” i Fiseassenrsee) 4, de (ald=v09)) gat se (tg) wikee}=ulal / , gene POH 8 yaGVre ajuuv Bunv 266 (pozoivari n=nbm, 2: nimm? 761=416 2 da = nem? 76<416 7 da => m=mbn, m=36 267 Scanned with CamScanner = _—Ss—s‘<'i;‘(iCi;itéf set 7 6a 2 ne? 16367714 2 BOERS 67 da =2 abn EP , 36 ? 3a ge vs proguce © IMPATHT lg tom 7 761236 ee ae * atom vedea c& la pasul umator al i care va genera mesajul de ercare Dirde OT” naan. Fee gna 7 41=0 ? da.= nem 7 4<0 7/00 [spans crect:e) «ew acuolzeazh dn 3193, analiza, Cera nc vacares Mi 4 £ y vipet de vlog anise #2 caaugate aS nt, 6, pero qn compe tee 8, en nc B32) Pa ante 2 Ge 618, A Pp ee oe Bee ‘nal5, n=16 $1=17, se saan tipiet In scrim Invariant &) pentru obtine sens incerca pe rand 25 valor ale iui n, Dar ere ni eS pant cmd vale cate ave in variate dS cal mpi Mm la 3. De exempiy, adaugat la Un cc £05, CO ug fa 8 cinci valor, ir 5 este 15/3, 16/3, peiry neA5, B16 # rT an cin triplet (15,2627) dav eee At pin veg rate ae re valr le 36.27) Geen can ; are se va objne 2 sien pen sper on a trit care rndepinest cra propria * 7,8) din varianta €) provlemel este (6,7/8) PY Sam6. vo matice pétraticd elementele de pe diagorala principala sunt cele ra 2a ioona: a(0} (01, af2) [2], ... In care au ndicele de linie egal cu indicele de cok Seovertseinialzeaz& cu 00 varibids, poi in ciclul whi.Le: c&t timp element Siar it este cfent de 0 incrementeaza 3. Asadar, la intdlnirea primulul element STL] nul se lese din cicul while gi se aigeaza ace! element. Agedor, un raspuns coret este 2), dar gi afimatia de la €) este adevarat: Seoventa va ‘genera un cicly infin in cazul In care In matrice nu existé nici un element fs] (4) rl R8spuns corect: a) $i @). Parametri formal, a gi b, sunt de tipul int *, Deci a si b reprezinta pointer cre dous variable de tipul int, numerele propriu-zise memorandu-se in variabilele pereche *a si *b. Functia trebuie 8 returneze media geometrica a 268 SIR ernre tren eee coor dout numer, acich {¥ a+. Variata coreta esto cea de a 0) Tipul crn trnate rebue s8ie un tip real (oat, double, Long double), Mu 4nfs va inca relumneazS valoare uni rica del vaiana ) ay corespunde ceoaece eo rez oat clr c8 Vain ¢) id) sir complet gree -Rdspuns corect:b) << o(x), Cu 2010, afigeazs valoarea retumatd de Instructiunea cout catre wnepa.6(20). Funcha find recursva, apelul (20) dectangeaza un ant de fun care incepe ast so: (10) “x->10; x>0 7 da => se autoapeleaza (9); in cemnuere: cin €(9) $2 apeleaz8 ¢(8) $2.m.4, Panda utimul auto- se apeeazd (0) ‘pel in care din e(2) inversa. Valorile pe care le-a avut n fiind parametru al functiei transmis prin valoare. La fiecare revenire: eesge restaureazé valoarea li x ivatd din varful stivel; = ge revine in autoapelul anterior la linia imediat urmatoare celei de Gutoapel, mai exact la instructiunea return x prin care functia retueaza valoarea lui x Lantul de revenin este urmatorul: din ¢(0) se revine in ¢(2) Ia linia return 1, din e(1) se revine In ¢(2) la linia return 2 §.a.m.d. Ultima revenire este din ¢(9) In ¢(20), la linia return 10. In consecin{é, ultima valoare inoars8, pe care o afiseaza programul, este 20. ‘Raspuns corect: d). De la Inceputtrebule observat c& antetul tunctei este eronet.Intre cei doi parametitrebuia folosit separatorul",” gi nu", deci, antetul corect arf fost "int X(nt a,int b)" Intrucat aceasta gregeald nu este specificata In variantele de ‘spuns, rezuité 8 afirmatia de la e) este adevarats. Pe de alté parte, si instuctunea din linia (8) va produce 0 eroare: Intrucat variabla m este locala {until e2 nu va fi vizibia in mas, ’ Daca n-ar exista erorile de mai sus, linia (A) ar afiga intr-adevar valoarea 1. In ciuda tuturor aparentelor,apelul functii x din linia (A) este corect, chiar dacd parametiformali a funtiei sunt de ipul Snt iar parametrii sunt numere reate | In ‘acest caz, parameti actual ar fi convert prin trunchiere cétre tipul int al Parametrior formal Astfel, a-»0, B-»2, functia ar retuma O+1, adcd 2, valoare gre sar tip in main, ‘Réspuns corect: €) 269 Scanned with CamScanner 20 Th primul cicly se parcurg pozitile i=0,4, fiecare past > Serealizeazd cutarea elemé > Dup& Incheierea céutari ‘Vali dat seama vectorului u care nu exist u dou muitimi, atunci vectorul w reprezi act In vector y A & entului w[4 In vectorul v: oe Gaiapla g va simula tesae logic, Valores $2 MAB vay aU 0, dupa cum elementu uf] se gaseste S20 Mi In Vectory Init se presupune od w{s] nu exstd In veciorl ¥, deci Intrun alt for, contorul 3 va parcurge pozitile elemento, vecorul v, $<0,1,--/272 ba fiecare pas. dacd v3) gel cu uta) insearnd c& am gst pe wf] Tr vectra v, ge, joarea variabilel g va deveri 3 valorea vaiblel 3 Vase gacd wl] mS g2seH0 [4] la sforgitul vectoruuiw, pn se adauga u! vector v ("19") une. Varabla , iniialzaté CU 0, va contng irea " w(k+#)=u(3)"- posta pe retard a fi adaugat un MOU el2Ment la stare Sat soara Je elemente 8 se copiaza In vectorul w acele ald) x Ta vector v. Astfel, dac& am privi vectori u gi vcs itd diferenta multimilor w gi v (w=u-v) corect: gy Testul de sintez& nr. 4 (Gnunturi 3< eornnmnnrnn AYN I S.IV.1. Ce afigeaz’ programul urmator? #include yoid main() int a2, b=3, x, m,n; x=((mea-b)>0,b++ n= (1a4b==4) ) 7 cout << "\n" cm ccm en Ke << xP y 000 001 Go1t G-t1t e-ri-t S.V.2. Fie variabilele a si b, de tipul float, cu valorile a=2.75 si b=3.25. Precizali care dintre instructiunile urmatoare afigeaza valoarea 3.25 in formatul dat mai jos: a) printé ("\nt-8. 42", x=acb7 6) printé("\nt8.4£",x=a>b2a ©) printé("\nt4..42" x=a>b2a: ) printe("\nt-4. 48", xnacb?: e) PEinte("\nt8.4£" ,x=a>b7D: S.1V.3. Care dintre secventele de program de mai jos afigeazi 4207 Uf Secventa $1 Gor anoriend ite) Ysecvena $3 cout << aisty Seay cout << a) numaiSi b) niciuna ) S1giS2_) StgiS3__@) toate a an Scanned with CamScanner S.IV.A. Ce afigeaz’ programul urmator? finclude void main() a #5[3]=("123", "456","789")7 her ss eon wont ce (9) ; ) ar ys gss pass @) otras de memoria AVS. Pentru secventa de program urmatoere, precizali care dintre atimatile de mal ust adv no, vISI=(2, 2/2 2A see eg ae vill ee WED wtteslsd: presi tic. Expresia din ila white este eronaté sintact 3) Datrerea gi riiizarea vector sunt corecte 2) Dupa execuia secventel tate elementele veciorull vor fit Dupi executa secvertel toate elementele vectorui vor f 0. @) Execuia secventel va produce un ccl infin SSS SAIV.6. Stind 8 a este 0 matrice cu 4 lini * 4 coloane, care dine urmatoarele secvente de program sunt echivalente? » n) fhe 4,3,h, 0807 Ie 4,308, 8001 for (ind ict sit4) for (3-054! for(3=3:3220/3--) atid steal] (317 cout << 8; cout << 3; m) int i,3,4,5=0; For (i80;464;i44) ( for (3=0;3<04;3+4) Somali) (317 for (k=O jkeni-1 ;k++) Steak] [4]; cout << 5: mm llr” aig ISM gill toate ) nici una _ S.IV.7. Ce valoare returmeazé funciia £ lo apelul £ (4)? int £(int x) t Af (x<=0) return 3; Ise return £(x-1) #2; a) 16 b) 26 ge a3 a es S.IV.8. Precizat spunsul corec, analizind programul urmator include int *£(int én) ‘ int xente: return Gn; , void main() ( int n=3; cout << *£(n) ; i 2) Instruciunea cout este eronati. 6) Deciaraja functiei este gresit ©) Program afigeaza valoarea 3. @) Programulafigeaza valoarea & ©) Programul afigeaza adresa variable n. es ‘SAV.9. Fi programul uate: Hinclude void main () q rn #¢,4 int a,x,5; fefopen("in. txt”, grfopen "out. txt, sane ("ta 6a) 223 Scanned with CamScanner reo white (1£008(E)) «Guide (sca 66 tfoo8 (e)) { fscang (£, "td", 6x) 7 S*=*F , sprinté(g, "4d "S)7 ) felose(f); fclose (a) , far continutul fisieruy introduce valoatea 20, 1 Dock ot at ce mare va ste romana i Sy van.tet! : tout. txt!? rel ©) patru 4) nici unl) unul ¢) doua a rIv.i0, Se consider o lit nar simpy Inantuté de numer Inte, efits astel: 1f struct nod ( cre eer airmail dn n08 fod sum; —_‘// pointer tre nodul urmator y7N00; NOD *P: acs ter cate primul nod al listei, lar numerele memorate in rye Fein ordine, de fa sténga la dreapta ympurile infe ale nodurlor sunt, ere.) deduce} ce va rena funcjia F In Uma speluy F(1,2,3,4,5,6,7) int Flint n, ...) ( int tastntl, *b=at2; for (i=1 ;icetb;i++) Pep->urn; return p->info; d v2 ys ge os a6 —EE————e 274 (woaaivint Es tn expresia compusé cu operator! "viguia’, se executs in erine, de la tanga la dreapta, expresile componente "(nea-b)>0", "bes" "ne (rates g jar valoarea utimel dinre ele este atribuitsvarabilei x. Prima expresie statue nse vrjoarea ab, apol m este comparat cu 0. Se va objine m=2-2=-1 iar condija > Yoo" are valoarea 0, Observm ins& cd aceasté testare nu este folosta nicdier iiterior, A dua expresie componenté incrementeaza valoatea variate, b, rezuitand b=4, In a treia expresie, valoarea de adevér @ conditie! "1arb=ea” este [pribuitd varabileln, Avem "!2+d==6 7%, "O+de=é 7" da, deci n=2. Valoarea lui n a reprezenta si valoarea acestel ullime expresii componente a expresiet ‘compuse, care mai departe se arbuie lui x Instruciunea cout tipéreste in ordine Valotile lim, n gix, separate prin spat, deci se va afiga -2 2 1. ‘Réspuns corect: d). Jn toate variantele, se atribuie variabilei x valoarea unei expresi conditionale, apoi se afigeazé x. Intrucat valoarea tipérita reprezinta cea mai mare dintre valorle variabilelor a i, rezuita ca expresia conditionala trebuie $8 Intoarea acest maxim. Drept urmare, variantele d) si €) ies din discutie. Expresia *xnacb?a:b" din varianta d) se traduce astfel: “dacd acb, atunciatribuie ul x valoerea a, In caz contrar atribuie lui x valoarea b. Similar, In varianta €) avem: “daca a>b atunci atrbuie lu x valoarea b, in cez contrar atribule lui x valoarea a”, Se ooserva cé ambele variante descriu minimul dintre a si. Variantele a), b) sic) memoreaza corect in x valoarea maximului dintre a sib, Expresia "xea>b?a:b" de la b) si c) inseamna: “decd a>b, func! atribuie lui x valoarea a, in caz contrar atribuie lui x valoarea b *. Expresia de la a) reprezinta acelagi lucru scris invers: "dacd ae". In linia ae de trecere la pasul urmator oe oout << 4” \"4--" Sunt Separate program "cout << 4,3-77") uth "i-->=2", unde, initial, sas exec ‘rin operatoru "vrgua’. La primal P9S 60 arat, deci Se rea ciclu, testarea "i>=1" (cu valoarea igeaz’ 4, Hass nae rome ot SORE & can Ce A ezutandS=3, Analog, a Past al Ses 8 vais 2, decrement iar util passe va afi 0 J (acvaae geet din inia whiLe Inseamnd *. eb se Nae, (condita de reluare a ciclului), apoi are 1 te a ‘aievarat se decrerenteaz4 4, in linia cout se mal dram — sasetea pin la uma a3, valoare core se afgeazé, Similar, 18 pas urmatr Teorte is tostate In linia waite vor fi 3,2,~2,-- -- Avesta este un cicu infin, intrudt condita "s1=0" este indepinita la nest&rst ‘Se declard' un vector de girui de caractere « Fiecare element al acestui vector va fi un sit. Conform initializani, s[0]="123", 3[11="456", s[2]="789", Prin declaratia "char **v', v va fi "un pointer cétre pointer c&tre tipul chaz” ‘Atbuirea v=Gs(1} este corect®. Valoarea lui v va fi adresa vectorului de caractere s[1]. Dar s{) este un sir, adica un vector de caractere, deci s [2] reprezinta la randul s8u 0 adresa, mai exact adresa primului caracter din sir. Prin umare, "(+v)" va fi chiar sirul de caractere s[1} (referiea efectiva se face cu operator "#). Ceea ce se afigeazd, adic’ (*v) [1], va fi caracterul de indice 1 (el ollea) in stul 321, 1 speté, caracterul +5" ‘Réspuns corect: b), jecare pas al cic Ré’spuns corect: ¢), 216 Ge doin vector vlc comers na 4. eclrarea #Iiiazarea Vetus sit sma eae at cuvalorea 2, oro eedh vs) ce way asa eee a Gum nu poate fi gasit un numa care, In acelap timp, safe i ater evo. cgal oe Si awit ae vonane opa at cteh 8 ga indiferent cat ar fi valoarea expresiei "iS", In consecinta, expresia dn nis anc int are dnl eld no ova oxo otis Eero ia “on vaerlitle 2 Incepem prin a analiza varianta cea mai smpla, gi anume varianta 1. Se inijiaizeaz cu 0 0 variabild 8. Se parcurg linile 4 gi coloanele 3 ale matrice in dou’ cicluri for, cu in0,1,2,3 gi 3=0,1,2,3, La fiecare pas, se oduna elementul a4] [3] la 8, Cu alte cuvinte, in varianta I valoarea lui 8 reprezints ‘suma tuturor elementelor matricei 8 analiza daca variantele II 5 II calculeaza aceeasi valoare. Varianta Il este foarte asemanatoare, doar c& se parcurg coloanele 4=0,1,2,3, $i linile 3=3,2,4,0 ale fiecérei coloane i (observa c& parcurgerea linilor flecarei ‘oloane are loc "de jos in sus"), La fiecare pas se adaugé elementul a3} [4] (atlat pe linia 3 si coloana 4), la suma s (initiaizaté cu 0 ca gi In varianta precedenta). In varianta III, n primul cilu, contorul parcurge valoile 0,2,2,3. Pentru fiecare 4, In alte doua cicluri fox, elementele matricel se adauga la $ In ‘urmatoarea ordine: = pentrd 4=0: a0] (0) (cu 3=0); ~ pentru 2: a{2) [0}, a2) (2) (6u 3=0,2) respectv, af01 [2] (cue=0) = pentru 4=2; a2) [0], af21 (21, af21 (2) (cu 3=0,1,2), respectiv, a[0] (2), af2] (2) (cu k=0,1) ~ pentru 4=3: af3) (0), af3] (2), af3] (21, al3,3] (cu 3=0,2,2,3), respectv, a{0} [3], a(1) (31, a[2) [3] (cu e=0,2,2) Privind cu atentie, observam faptul c& au fost adaugate pe rand ta s toate ‘elementele matricei (unde s s-aintializat cu 0 si In aceasta varianta) . In concluzie, toate cele trei secvenfe sunt echivalente si calculeaza suma tuturor elementelor matricel a ‘RéSspuns corect: d). Réspuns corect: b) $i ¢). Fold fap ck nutes ee comes, pute dese neta etl a ne ne oe caret Fi namech riot) In. urma apeluiui # (4), avern: 2 Scanned with CamScanner ES_—~—_S=s———s——=s wy: ee). In continuare £(3) £(4) retumneazd git £0) ego. 8 £0) ‘pol £(2)_retume lantul de aut ‘so intrerupe to. cast moment ge revenin din Buto-Apey Funciia F are un numér neprecizat de parameti, tapt semnalat prin Lg 4402 reusmeazd 24612). 2¥2(0). In at returneaz’ 245 ( te iar fapeluri, iar # (0) retumneazd enta celot tei puncte de dupa parametul fix m in we se ponerse att arn, Pee sateuttoa egies ald ccaneend ieze2se 2)" ‘spans covet: ona scams cu et eee pel s° baze ul c& parametii sunt memorati ta ad ‘ memore. Aste: reve consscutve de Gra) ; or en reprezinta adresa urmatorului parametru de d fei £ este transmis prin referin inmain a adi ‘up parametru fix Scope ca ramets tts £08 ST Zo louento nu 3 a, aed acrese mut parame vol 2. oso end se ce niaizeasd nv gs apeleazB FUNC} gui x valoarea curently ribuie pointeruiui a, deci ¥a va fi chiar primul parametru variab nize pects stl: a NS pci elueSZA acesa — a2 este adresa celui de-al dollea parametru de dupa cel refer de ‘Aor Japa ce neomenteazd 2 OZUN Ygog 4 (valoaea relumaty cate a, adica adresa parametrului variabl 4, Aceasta se atnbuie Varabilel n, adic’ adresa la care esl® METOLS (2 w afigeaza valoarea depusa ia pointerului b, deci *b va fi 4. esto de ipl sat #). Insractunen "eee Inciclul for, pent i=1,2,3,4, are loc atrbuires p=p->ure, care muta | fdresa relumnata de cate functia £, ‘RASpuns corect: d), interul p de la nodul pe care il adreseaza la nodul urmator. Dac8, inital, poiterul adreseaz’ primul nod, atunci in urma celor patru muta el va alunge la nodul al rela Fura retuneas del memo I ecest al cincilea nod (p->ingo), adic’ 5. ‘a dous fisiere cu descriptor £ sig. deschise corect: Oe nt datea pent sre®, D2 0 a ca anda pia Oe Hl geal peti i organ cu esto £ 82 vor Pe rd, in saree anabia x Cat tmp ru s-2 jus la start ler: a niializeazd variable 5 uO; | remorse gi nu este sari seri: citeste In = un numa din fisier s+! adauga a 5; = sere valoarea lui s In figierul cu pointer Daca de la tastatur’ se citeste ato, atunci pasil primulucicly sunt: Pas: #8=0; ¢ al dolla cilu: = 8a §I !£eof(£) 7a = cieste x=4, Face $x 1£0o8(e) 7.49 = citeste x=6. = Sea $I too!) 2m «serie valoarea lui 8 (20) In figierug. Unmasind analog ceilai pagi vom obtine urmatoarele valor ale lui $ care se scr In file g: Pas 2: se ctesc succesiv inal dollea ciclu x=3, x=2, x=6, $i S=3#2+6=12; as 3: so teste x=15 gi 5=15; Pas 4: se cteste x=1 51 81 ‘Asadar, se vor sere in igerl gpatru valor ale luis, gianume 20, 24, 25, 1. ‘Réspuns corect: €). m 279 Scanned with CamScanner

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