Sunteți pe pagina 1din 8
S.1.1. Fie variabilele x, y $i z de tipul int, cu valorile x=5, y=3, Care dintre instructiunile de mai jos afiseazd valoarea 4? @) cout << x--; — b) cout << Hy; ©) cout << (3+y)%2; d) cout << 3%y/2; @) cout << (z=2*(x-y)) 7 1.2. Fie doua variabile intregi a sib, cu a=b)"? 4) x € (a,b) 4) x < (ab) Ox € (-~ a) 0 (b,@) dx & (-~,a)U(b,m) e) x ¢ (-,a) U (b,&) a SL. adevarate. Pentru programul urméator, precizati care dintre afirmatiile date sunt #include #include void main() { cout << sqrt(9); } a) Este gresit, deoarece instructiunea cout afigeaza continutul unei variabile. 4) Este gresit, deoarece functia sqrt nu este recunoscuta in program. ©) Afigeaz& valoarea 3. d) Afigeaz& valoarea 81. e) Fiind o singura instructiune de afigare in program, nu mai era nevoie de "{" si"}". ee naan S.1.4. Ce valoare afigeaz urmatoarea secventa de program ? int n=10; while (n>0) do { n==7 } while (n!=-2); 249 Scanned with CamScanner 2)10-8)2 2g) -2_@) progremul confine un ciel nt instructuni atribule variabilel S.15, Core dine umatoarele seovente de insulin! atte Te Intregi x valoarea 10°, cu n numsr natural, variabila aux a) x=1; i=1; wel; anal °) Brinn 8907 xte10; xA=10) itt J while (i96) return 'a-32'; flse return 'a+32"; , 9 Q Char reciproc(char a) char reciproc(char a) { n 4£ (1a!>96) return 2-32; else return a+32; d ) { Af (a>96) return a-32; else return a+32; if (121296) lee return 32"; 2 char reciproc(char a) ( if (@>96) return 'a!-32; ‘return 'a'#32; meee S.L9. Precizatj ce valoare se va afiga in urma executiei programului vurmator. include void main() ‘ int a=17,b=(a/2) $a; int *astb; cout << "\n" << tx; ? @)® 6)17 0d) cadreside memorie ¢) secventa este eronata el 251 Scanned with CamScanner fe simp ‘§:110, Se considera urmatoarea declaralie @ Une! tite lniare simpiu tnldnuite do numere intregit typedef struct nod { int info; Aninformatja utd din nod itor Seruct nod * next; I! ponte cre nodW yRNOD; Funcfa test prezentatéimai jos pimeste 2 rod alist. In care caz ea va retuma valoarea 1? parametnuun pte Be iu int test (moo *a) int bel while(@) ‘ if (q>into=d) be0; eqonexts ? return bi 1 2) Dee toate numeral din rou iste sunt tert de 0. roe gn route ite so. 2) Dek ae ert in ae ine ent pun ne 0. d) Dac’ printre numerele din nodurile listel exist cel putin unul eg: )Inniciunul dintre cazurle de mai sus. 232 | Rezolvari x U ‘Analizim pe rénd instructunile date: 2) Mai inti se afigeazs valoarea curenté s hi x, ada 5, apoi se decrementeaz’ x. b) Mai intS se incrementeazs Yy, rezullind y=4, apoi se afigeaz nova valoare a li y. ¢) Se afigeaza restul itnpati i 34y la 2, care este 3. d) Se aigeaz’ cat impériiinteg\ alu 3¥y la 2, adicd 4. @) Se atrbuie variabilei = valoarea expresei 2* (x-y), ‘pol se afigeaza =. respect, In expresia "! (xema) 66 1 (x>=b)" din enunt, Se executé mai inti (negate logicd), apoi "ea" ('$ logic’). ~"H(xcea)" inseamna x>a = "i (s>=b)" inseamn’ xe, “soa §r xa" se traduce matematic prin x € (a,b). ‘spunscorect:b). éspuns corect:b), d) sie). Ga) Gu instructiunea cout se pot afiga: constante, valor ale unor variable, valor retumate de catre funcjl i valor ale unor expresi. Functia sqzt (9) Felurneaz’ radical din 9. Ea este recunoscuta In program, deoarece ish are ‘rototpu in header-l math. are a fost inclu in program cu drectiva #inciude. Programul afigeaza valoarea relumnaté de cate functia sqrt (8), adicd 3. Corpul functiei main trebule cuprinsIntre"("g1")", chiar dac& este aleatuit dintr- singura instruciune Intrucat, inital, n=10, se va intra In ciclul white, deoarece condita "a>0" ‘este indepiinta, In corpul iui white intainim un ciclu do-white: executd n-~ cat timp n este diferit de ~2. Drept urmare, se va ies! din ciclu do-whie cu valoarea rn=-2, In acest moment, se revine In linia white a primului ciclu, dar de aceast {dala condita "n>0" este fals8, deci nu se va mai produce 0 a dova executie a rimului cic Valoarea final a lun, pe care 0 afigeaza secventa, este -2. ‘Raspuns corect: c). éspuns corect: ¢). 283 Scanned with CamScanner oi0#243 oto Tn varianta a): d= > x=10, d=2 xe10t2, 193 7 n i Pr. ai, 24 00+ 1M. Initial, ae) face auibrea xox030 Pei ‘ ; 1, Aver urmatori pas ai citul: jo enotoi0=20) samd seen paeLei0=L0, 22 > x=20*20=205 93 spun ‘ge observ c& pentru sen se va obtine “Fen? et, dECi nu ge pent S=2 > 2° mmc yainfrits dup8 linia whi. vaio singue’ insucng,eiea on on geese" gi"1" cz In care cops! CT ill. Conse! a rai ous ait Instn, ie este n fla, acid 0, dec Conca cq tui ru se mal madi L este adevarat rttdeauna RBspuns corect: by, sepia © este un vector de Caractere Declaraa dat exe cored ee Sjrlul "abode" sunt necesare - wlan cl rey ble propriuzise plus una pentry icon n ean vertceera ac ae ‘Nor geupa in ordine element ele 10), et, net bein ANE CSCS cea pina. Ager, failed) $1) SU . Nhat ‘Réispuns corect: d) sie), Score emoreantn vero camertt mavime de Peseta parcirg| a oouce S92. «nel, i pent fiecae ine 3: oe ‘inia 3. Se initalizeara an varabla x maximul de pein ~ $8 memoreert Minul element o(3} (2-2) al thie 3- Apolo parcrg mail Ce de ao n-2. Latics un element a3) (4) coloanel® oat x, acel element a3} [devine noul maxim x), cane obtint i fnele parcurgri nil 3 este copiat In elementut a dspuns corect: d). Prima variants este cea corectt. Expresia "a>96" verifica daca codul ccaracterului memorat in varabila a este mai mare dec&t 96 (folosind conversia 288 implicit de ta caracter Ia Intreg) = In caz afirmatv, tunchia retumeaza a-32 Dac a este litera micd, atunci a-32 Va feprezenta codu tere! man pereche. In caz contrar, functia returneazé a+32. Analog, dacd a este liter’ mare, atunci a+32 reprezits itera mic pereche In doe arn oar cow ete Gry conan det 2 gi 1432" in variants c) este gregitd condia ‘a'>96 din linia 4. Varanta ) contine atat gregeata dela b) c&t gi cea de la In stargt In variantae)expresile felurnate au alta semnifcaie: valoarea expresiei 'a'~32 vafintotdeauna 65 (din codul caracteruul a, adicS 97, se scade 32), reprezentind codul caracterlui "At. Similard este. sf expresia ‘a'+32. Altfel pus, $2 facut confuzie inre variabila a de tipul chax gi constanta caracter ‘a. Se deciara varabilele a gb de tipul Ant gi se iniliaizea la declarare cu \alotile a=17 gi b= (a/2) ta, adicd b=6417=8. Variabila x este un pointer tre un rumarinreg. Secventaefigeazd valoarea adresata de cate pointer x, acica +x. Reamintim c& eb reprezina adresa de memarie a variatilei b, Aceasta adress se atibuie pointeruui x, prin intializarea "int *x=eb", Aste, pointerul x va refer valoarea variable, deci +x va fi chiar, adicd @ Rdspuns corect: a). ‘Réspuns coredt: a). Se inifaizeazd cu 1 o variabila b, Aceasta va avea un sens logic. Valorie sale “utile” sunt 1 gi 0, semnificind "adevdrar, respectiv, "fale. Pointendl ‘adreseaz& initial primul nod, Cat timp q nu a ajuns la sfargitul listel (‘white (q) !=aui); = dacd numarul din nodul adresat de q este 0, atunci b ia valoarea "Togiea 0; = _mutd pointerul q la nodul urmator. ‘Asadar, valoarea variabilei b rémane cea initiala, adica 1, numai dacd toate numerele din nodurle listei sunt diferite de 0 (la intainirea unei vaion de 0 Intr-un nod oarecare, valoarea lui b devine 0 si va rémane aga). ‘RAspuns corect: a). 285 Scanned with CamScanner Testul de sinteza nr. 2 Ni) Enunturi i! eae S.IL-1. Se d& programul urmator: void main() { ? te sot “ 3 Febang ea poems ar 3 Riese gent Fen c exit iio detaraie de varia 2 rma exe greg penvu cdi cone ric un Reader Ins tT as eee t TE A aa oor emer Feince raanarx,y)7 peinee("\a"); Peénee ("¥d\n", =) 7 prince (ved x) peinte("\a"); prante("edta\n",y 2); IY ‘SIL. Fie variabilele x, y, x, toate de tipul int, cu valorile x=2, y=3, eet. Expresia x-(y<3) int £(int 6a) For (i914 ;4<20;4++) if (dtam=0) return i Scanned with CamScanner return 07 ) void maia() ( int x2; cout << £(x) cout << "nt; cout < x7 , gisss 3082-40913 ine dovl lin, precizali rspungyy ‘S.IL9. Stind cd fisierul date-dat conti ccorect andlizand programele Ur Progremul P2 Grouse sedi. Gincluce fold ain () void main () FILE #4 int 1°07 fefopen| while (1008 (£)) at "a"; mitt. ncant (e,"N8"); Eecanf(£,"\n") ; ae } while (! £60 (£)) ee felose(£) 7 Eelose(f) printé("bd\n"n) ; printe("éd\a"/n) 4 , 2) Programul Pi este gresit uma ini, 1) Ambele programe afigeaza valoares 2. 2 Programul Pi afigearA valoerea 3, iar programul 2 afigeaza valoarea 2 3 ambels programe sunt grep, devarece conduc fa un cic inint, Th uma faptlu ¢inerucfunea de citi nu confine nici o variabilé «@) Amol programe sunt gregite, eoarece nu s-au foosit operator relational tn ‘conditjle cilurlor de etre din fisierl text. pentru of citeste din figer dupa ce sa trecut de S110. Pentru programul urmator, care dintre firmatile wane roar ate date sunt include Ant n=; u[]={8,3,1,7,5)7 258 enn Ant catoul (int 4, dnt 6h) ‘ 4g (ipen) return hy el { 4 (ali]>h) beuld] return calcul (442/b) ) ) void main () ( int he0; cout << calcul (0,b) ) 2) Programul afigeaza valoarea 1. ) Programul atigeaza valoarea 8. ©) Functia confine erori de sintaxd. @)Execuja programului va genera un lant infnit de autoapeluri ale funciiel @) Incazul incare in main am fi avut numai "cout << calcul (0,0)", In loc de Tat bed" eout <¢ calcul (0,h)", atunci functia ar fi avut acelagi fect. aS 259 Scanned with CamScanner (Resoive=t YX Programul este corect, el continand doar teen eters * ; at functiel main, eae te oe Sk oad dot red oe era nu confine Insure Ssemenea, dn moment ce nu sunt apelatefuncti Pres . ‘RESINS Corect: a) necesar sd se includ vreun header. i rn, 1 se afgean x pe primul rand, apoiy aeay AR Sp Sla epa sr pee ae Se pel rarest x pe peimul rnd, i petal een vars: 0 Pte 5 pd se afgeacd tt Inceputul randuui at does, inceputul celui de-altrellea rand. In vaianta find al dole sn fina er trea cursor la ncoputl cel deal dole, apo ge ): se sate x pe prima rénd iia Inceputulrandului al trellea, dup care utima executor te lal ela 5 MU cursor la Inceputl Cell de Seca r aee ae a cee rae oe gaa x pun rd, apol cursor este mata nceputl randy See Fe tna oe eigea valoarea lu x pe rand a doles, muténdv-se dn noy ces dona de ra Varta c) exe similrcusinguradeos2be dpe rim rand se afgeaza x, iar pe al dollea y $! = (sus. jel ye" Prezenta parantezelot acorda priottate maxim expresiel "y<3", care va avea valeara'9 (2c? fl). Prin inoue, expresia devine 2-0<1+2643, In inti operatorii aritmetici, apoi cei relationali gi Coninen, sa feces 08 i eet Tal Copa aver (2c) ces adica 1663 (expresia 2<3 are valoarea"logica” 1). Operatorul “és aplica intre doi ‘operanzi intregi difenti de 0, produce rezultatul 1. Agadar, valoarea finala a expresiei date este 1. Ca 0 observatie, precizdm c& daca expresia ar fi fost "x= (y<3) =n (unde n=5), atunci se intrerupe lantul de autoapeluri, functig retumand valoarea lui h; in caz contrar, "se viziteaz&" elementul u [i], dupa care se autoapeleazs calcul (i+1,h). Rezulté c4 lantul de apeluri este calcul(0,h), calcul(1,h), ..., calcul(n-1,h). Astfel sunt "vizitate" succesiv toate elementele vectorului, u(0],u[1],...,u[n-1]. V-ati putut da seama ca acest lant nu este infinit La fiecare apel calcul (i,h): dacd u[i] este mai mare decat h, atunci hia valoarea lui u[i],cui=0,1,...,n-1, Asadar, dupa incheierea lantului de autoapeluri, valoarea lui h va reprezenta maximul dintre elementele u [0] ,u[1],...,ul[n-1] ale Vectorului v. Pentru vectoru! dat prin initializare, acest maxim, afigat in main, este 8. Valoarea lui h va fi “vazuta” in programul principal, intrucat parametrul h a fost transmis prin referinta. Valoarea initiala a lui h este 0, stabilita prin primul ape! calcul (0,0). Algoritmul functioneazai deoarece toate elementele vectorului sunt mai mari decat h-u! initial (flind pozitive). Un apel direct calcul (1,0) este eronat, deoarece parametrul actual corespunzaitor unui parametru Prin referinta trebuie sa fie o variabila. Réspuns cored: b). 262 Scanned with CamScanner

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