Summary

Aceste întrebări sunt despre programarea orientată pe obiecte în C++. Subiectele abordate includ operații cu referințe, supraincarcarea operatorilor, mostenirea și polimorfismul.

Full Transcript

1. Cu ce secventa de operatori este echivalata urmatoarea instructiune: a1 = 10 += a2? a. a1.operator=(operator+=(a2,10)); b. a1.operator=(operator+=10,a2)) c. a1.operator=(a2.operator+=(10)); d. operator=(a1,a2.operator+=(10)); 2. O functie independenta declarata friend in domeniul public dintr-o...

1. Cu ce secventa de operatori este echivalata urmatoarea instructiune: a1 = 10 += a2? a. a1.operator=(operator+=(a2,10)); b. a1.operator=(operator+=10,a2)) c. a1.operator=(a2.operator+=(10)); d. operator=(a1,a2.operator+=(10)); 2. O functie independenta declarata friend in domeniul public dintr-o clasa si care primeste ca parametru o referinta la un obiect al clasei respective are acces a. la toti membrii, dar ii poate dar consulta, nu si modifica; b. la membrii public si protected; c. doar la membrii public; d. la toti membrii e. la membrii protected; 3. Ce se apeleaza in codul urmator? Student s; Student stud=s; a. constructor fara parametri + operator= b. constructor fara parametri + constructor de copier c. constructor fara parametri + constructor cu parametri d. constructor cu parametric + constructor de copiere 4. Daca avem o clasa derivate si instantiem un obiect din aceasta atunci: a. partea din obiect, ce este mostenita din clasa parinte trebuie sa fie create prima b. partea din obiect, ce este mostenita din clasa parinte nu trebuie sa fie construita c. niciun raspuns prezentat d. partea din obiect ce este specifica clasei derivate nu trebuie sa fie construita e. partea din obiect ce este specifica clasei derivate trebuie sa fie create prima 5. Care din urmatoarele nu se mostenesc? a. supraincarcarea operatorului + b. niciun raspuns prezentat c. constructorii si destructorii d. datele membre publice e. functiile care returneaza void 6. Constructorul de copiere se apeleaza atunci cand: a. se instantiaza un obiect cu valori predefinite b. se instantiaza un obiect cu valori constante c. se instantiaza un obiect nou pe baza unui obiect existent d. se modifica un obiect existent pe baza unu alt obiect existent e. se instantiaza un obiect cu valori date de catre utilizator 7. Clasele ce permit parametrizarea tipurilor de date asociate unor variabile membru sunt numite: a. friend b. derivate c. template d. complexe e. virtuale 8. Care dintre urmatoarele afirmatii despre destructor este adevarata? a. o clasa poate avea unul sau mai multi destructori b. poate avea, daca este cazul, unul sau mai multi parametric c. se apeleaza intotdeauna implicit d. se apeleaza explicit (prin delete) la pointeri la obiecte 9. Stream-urile standard sunt: a. cerr b. cout c. toare variantele d. cin 10. O metoda dintr-o clasa derivata care are acelasi nume cu o alta din clasa de baza: a. niciun raspuns prezentat b. va suprascrie metoda din clasa de baza c. va fi executata imediat doar dup ace metoda din clasa de baza isi va termina executia d. va genera un mesaj de eroare e. va fi suprascrisa de catre metoda din clasa de baza 11. Care este diferenta intre rolul operatorului = si cel al constructorului de copiere? a. constructorul de copiere creeaza un nou obiect, operatorul = lucreaza cu doua obiecte existente b. operatorul = creeaza un nou obiecr cu aceleasi valori, constructorul de copiere copiaza doua obiecte c. operatorul = dezaloca mai intai spatial de memorie afferent numelui d. nu exista nici o diferenta, ambele functii seteaza un obiect cu date din alt obiect 12. In ce consta problema mostenirii in romb (a diamantului)? a. derivarea unei clase din mai multe clase care au o baza comuna b. derivarea unei clase din doua alte clase c. derivarea unei clase din cel putin trei clase d. niciuna din variantele prezentate e. utilizarea de clase abstracte pentru a evita mostenirile multiple f. utilizarea de interfete pentru a evita mostenirile multiple 13. Manipulatorii sunt: a. alte functii special utilizate pentru formarea sirurilor de baiti b. functii ce contin obligatoriu un constructor fara parametrii c. atribute declarate in zona public d. siruri de caractere 14. Fie declaratia: Class c1 { }; Class c2 : public c1 { }; Clasa c2 fata de c1 este: a. friend; b. virtuala; c. de baza; d. declarata eronat, in loc de semnul : trebuia pus operatorul de rezolutie :: e. derivata; 15. Fie o clasa D care mosteneste clasa B, ambele clase avand cate un destructor. Sa se precizeze, in cazul dezalocarii unui obiect de tipul D, care destructor se va executa primul? a. depinde de instructiunile existente in destructori b. nu exista un criteriu precis, acest lucru facandu-se aleator c. al clasei care are definiti mai multi constructori d. al clasei D, pentru zona specifica e. al clasei B, pentru zona mostenita 16. Un instrument performat prin care se realizeaza polimorfismul il constituie: a. functiile virtuale b. constructorii c. functiile inline d. functiile friend e. destructorii 17. Posibilitatea definirii unui obiect ca fiind o extensie a altuia: a. este data de polimorfism b. este asigurata prin mostenire c. este data de existent claselor virtuale d. este nepermisa e. este data de încapsulare 18. Ce reprezinta this in interiorul constructorului unei clase C++? a. pointer ce gestioneaza adresa obiectului construit b. variabila optionala prin care se pot indica ce variabile sunt attribute si care nu c. pointer ce gestioneaza adresa obiectului distrus d. valoarea obiectului care apeleaza metoda constructor e. nu se poate folosi this in constructor 19. O functie declarata friend in clasa de baza: a. are acces pe zonele public si protected ale clasei derivate b. ramane friend si are acces pe toata clasa derivata c. nu are acces pe zona private mostenita in clasa derivata d. daca derivarea este public, functia are acces pe toata clasa derivata e. ramane friend in clasa derivata, pentru partea mostenita din baza 20. Care din urmatoarele afirmatii este adevarata privind supraincarcarea operatorilor? a. nu se supraincarca operatorii. si ziseof() b. cardinalitatea operatorilor se poate modifica in urma implementarii c. asociativitatea operatorilor se modifica in functie de implementarea aleasa d. precedent si directia de evaluare se poate modifica in urma supraincarcarii operatorilor 21. Daca o clasa derivata foloseste specificatorul public pentru mostenire, atunci: a. membrii private din clasa de baza devin protected in clasa derivata b. membrii publici din clasa de baza sunt inaccesibili in clasa derivata c. membrii protejati din clasa de baza devin publici in clasa derivata d. membrii publici din clasa de baza raman publici in clasa derivata e. niciun raspuns prezentat 22. Polimorfismul se poate realiza prin 1- incapsulare 2- functii virtuale 3- supraincarcarea functiilor 4- derivare Variantele corecte sunt: a. 1+2+3+4 b. 2+3+4 c. 2+3 d. 1+2+3 e. 3 23. Un operator C++ obisnuit care se comporta intr-un mod special pentru un tip de data definit de utilizator se numeste? a. supraspecializat b. incapsulat c. niciun raspuns prezentat d. clasificat e. supraincarcat 24. Se considera secventa de cod din imaginea alaturata. In programul principal main() se declara un obiect de tipul Magazin. Care din urmatoarele instructiuni este incorecta? a. float b = m; b. m = 3.4 c. int a = m ??? d. cout sizeof(o2) c. nu se poate declara obiecte de tip c1 si c2, deoarece f() nu are corp executabil d. sizeof(o1) = sizeof(o2) e. nu se poate declara obiecte de tip C2, deoarece f() este virtuala pura 26. Ce afiseaza la consola programul urmator? a. Cod 55-23 ani. si Cod 55-23 ani b. Programul este gresit deoarece nu este definit operatorul = pentru clasa Mucitor c. Cod 1-23 ani. si Cod 55-23 ani d. Cod 1-23 ani. si Cod 1-23 ani 27. Secventa urmatoare va afisa? a. 0 5 5 b. 5 5 5 c. 5 10 10 d. 10 10 10 e. 5 10 5 28. Care din urmatoarele afirmatii este corecta pentru definitia clasei din imaginea alaturata? a. apar erori de compilare deoarece este gresit modul in care se initializeaza valoare campului nrAutomobile b. apar erori de compilare deoarece este gresit modul in care se modifica valoarea campului nrAutomobile c. apar erori de compilare deoarece este gresit modul in care se modifica valoare campului serie d. apar erori de compilare deoarece este gresit modul in care se modifica valoare campului denumire e. instructiunile sunt corecte 29. Fie declaratia: a. prin derivare public, accesul la membrii mostenirii devine public b. programul afiseaza valoarea lui b, deoarece b este implicit public c. functia de acces are doar acces read-only asupra unui membru privat d. functia scrie_b() nu are drept de acces asupra unui membru privat e. programul afiseaza valoarea lui b, deoarece derivarea s-a facut public 30. Ce varianta de raspuns despre codul de mai jos este adevarata? a. operatorul = si constructorul de copiere se apeleaza de cate doua ori fiecare b. operator = se apeleaza o data, constructorul de copiere de doua ori c. operator = se apeleaza o fata, constructorul de copiere de trei ori d. operator = se apeleaza de doua ori, constructorul de copiere de trei ori e. operator = se apeleaza o data, constructorul de copiere de patru ori 31. Fie programul: Linia c b=a determina: a. o eroare, deoarece nu se permite combinarea atribuirii cu o declarative b. executia metodei prin care se supraincarca operator= c. apelul constuctorului implicit d. apelul constructorului de copiere e. executia atat a constructorului de copiere, cat si a metodei operator = 32. Ce va afisa urmatorul cod C++ in functia main? a. Adresa unde este salvat vectorul v b. O adresa oarecare de memorie c. 1 d. 5 e. eroare de compilare f. eroare de executie 33. Programul de mai jos: a. afiseaza 3 b. initializeaza incorect un vector de obiecte c. afiseaza 2 d. afiseaza 0 e. afiseaza 1 34. Clasa de mai jos are membrii: a. date private si metode publice b. publici c. protected d. descrisi eronat, deoarece nu declara tipul de acces e. privati 35.Apelul functiei indexare ( ) din imagine: a. genereaza eroare, neexistand o supraincarcare ce primeste obiect persoana in intrare b. se asimileaza cu indexare (int) c. pentru adaptare la prototip apeleaza cast-ul definit de programator d. genereaza eroare, prin folosirea recursive a obiectului p e. se asimileaza cu indexare (void) 36. In programul: Constructorul: a. nu se apeleaza niciodata, programul lucrand cu pointeri, nu cu obiecte b. se apeleaza de cinci ori c. se apeleaza de 6 ori d. se apeleaza o data, vectorul de obiecte fiind alocat de constructorul pus implicit de compilator e. nu se apeleaza niciodata, alocarea facandu-se cu operatorul new 37. Se considera programul Functia f() din clasa Muncitor are acces pe o zona private din clasa de baza? a. da, printr-o metoda public sau protected mostenita public, private sau protected b. da, doar daca getVarsta () ar fi mostenuta protected c. da, daor daca getVarsta () ar fi mostenita public d. nu, deoarece getVarsta () prin derivare private devine private e. nu, deoarece varsta este private si este mostenita private 38. Se considera programul Alegeti afirmatiile corecte: (1) Constructorul clasei derivate, pus implicit de compilator, apeleaza constructorul clasei de baza (2) Constructorul de copiere al clasei derivate, pus implicit de compilator, apeleaza constructorul de copiere al clasei de baza (3) Destructorul clasei derivate, pus implicit de compilator, apeleaza destructorul clasei de baza a. 1+2+3 b. niciuna din afirmatii nu se aplica in acest caz c. 1+3 d. 1 e. 1+2 39. Exista atat forma prefixata, cat si forma postfixata pentru operatorii: a. ++ si – b. > c. == si != d. new si delete 40. Pentru a expune un membru al unei clase programului principal, in care din urmatoarele sectiuni ale unei clase trebuie declarant membrul? a. user b. common c. public d. exposed e. unrestricted 41. Programul principal poate accesa membrii private ai unei clase? a. doar prin intermediul altor membrii publici ai clasei b. in mod direct c. doar prin intermediul altor membrii private ai clasei d. niciun raspuns prezentat 42. Obiectul este pentru clasa precum: a. factura este pentru chitanta b. parintele este pentru copil c. biblioteca este pentru carte d. presedintele este pentru Lincoin e. Platon este pentru filosofi 43. Operatorii de comparatie sunt operatori: a. unari b. binari c. temari d. prefixati e. postfixati 44. Un constructor implicit este: a. niciun raspuns prezentat b. un constructor cu valori prestabilite pentru toate argumentele c. ambele variante prezentate d. un constructor care nu are parametric 45. Ce reprezinta conceptul de memory leak in C++? a. alocarea unui spatiu in memoria HEAP care sa nu mai fie referit de nici un pointer b. initializarea incorecta a unui pointer c. definirea gresita a constructorului de copiere d. initializarea gresita a unui obiect e. acest concept nu exista in c++ f. dezalocarea unui spatiu de memorie in HEAP 46. Care din variantele de mai jos afiseaza corect numele unei persoane? a. 1+3 b. 1+2+3+4 c. 2+3 d. 1+2+3 e. 1+2 47. Indicati enuntul gresit despre functiile virtuale pure in C++ a. functii ce pot fi supradefinite in clasele derivate b. clasa ce le contine este abstracta c. functii care sunt definite fara a avea implementare (corp) d. functii ce trebuie sa fie supraincarcate in clasa in care sunt definite e. functii ce pot fi definite intr-o clasa 48. O metoda dintr-o clasa derivata care are acelasi nume cu o alta din clasa de baza a. niciun raspuns prezentat b. va fi executata imediat doar dupa ce metoda din clasa de baza isi va termina executia c. ba genera un mesaj de eronare d. va suprascrie metoda din clasa de baza e. va fi suprascrisa de catre metoda din clasa de baza 49. In ipoteza ca exista definite clasele de baza B1, B2, B3 si B4, declaratia este: a. incorecta, pentru ca la B4 nu se specifica tipul derivarii b. perfect valida c. incompleta, deoarece clasa D nu are constructori d. Incompleta, deoarece clasa D nu are metoda specifice e. incorecta, neexistand derivare de tip protected 50. a. o data, deoarece pentru vectori se foloseste varianta initiala a lui new b. de zero ori, caci operatorul new nu se supraincarca c. de doua ori, cate o data pentru fiecare pointer d. de sase ori, cate o data pentru fiecare obiect alocat ???? e. de zero iru, caci varianta supraincarcata nu se apeleaza niciodata pentru pointeri 51. Programul din imagine afiseaza: a. numerele de la 0 la 10 b. numerele de la 1 la 10 c. 10 d. numerele de la 0 la 9 e. 9 52. Ce afiseaza programul din imagine? a. 200 b. 800 ??? c. eroare de compilare deoarece nu exista niciun constructor cu doi parametri in clasa Taxa d. 1000 53. Care dintre variantele de mai jos este adevarata? a. variabila x poate fi folosita inainte de a defini un obiect din clasa b. variabila statica x este dublu definita, in clasa si in exterior c. exista doua variabile x, una interna si alta externa clasei d. nu pot exista clase fara membri nestatici e. variabila x nu poate fi calificata pornind de la un obiect al clasei 54. Fiind data clasa din imagine. Functia realizeaza supraincarcarea operatorului “. ” ? a. nu, deoarece nu exista o variabila de tip struct in obiect b. nu, deoarece operatorul “. “ nu poate fi supraincarcat c. nu, deoarece operatorul “. “ se supraincarca numai printr-o functie friend d. da, deoarece returneaza un int si exista o data de tip int in cadrul obiectului e. da, respecta regulile de supraincarcare a operatorilor 55. Ce afiseaza programul din imaginea alaturata? a. eroare de compilare pentru ca operatorul – nu este recunoscut b. eroare de compilare pentru ca nu a fost supraincarcat operatorul = in clasa Student c. varsta: -15 d. varsta: 15 56. Se considera programul Variantele care permit accesul la variabile, pentru afisare sunt: a. 1+2 b. 1+2+5 c.1 d. 1+2+4 e. 1+2+4+% 57. Ce va afisa urmatorul program C++? a. 24 b. 0 c. 42 d. adresa unei functii e. eroare de compilare f. eroare de executie 58. Se considera urmatorul program: Care din urmatoarele afirmatii este adevarata? a. programul afiseaza 10 b. variabila x nu este accesibila deoarece se mosteneste private in D c. transferul de sarcini intre constructori nu este permis, B() devine private d. apelul B::getX() din clasa D nu este accesibil deoarece derivarea lui D este private e. constructorul D() este apelat eronat 59. Care este cauza erorilor de compilare generate de secventa urmatoare de cod? a. constructorul din clasa de baza este apelat gresit prin : Vehicul (2000, 0): b. derivarea este definit gresita c. clasa Automobil acceseaza campuri mostenite din Vehicul care sunt protejate la acces d. constructorul cu parametri din Automobil incearca sa apeleze constructorul implicit din baza 60. Ce este gresit la urmatoarea secventa? a. constructorul creaza doar blocuri cu 4 etaje si cu id-ul 2 b. clasa are doar doua atribute c. atributul nr_etaje nu este declarat constant asemanator cu atributul id d. atributul constant este initializat in interiorul constructorului Seminarul 1 POO Minoiu Maria-Magdalena -- grupa 1055 1.Ce se va afisa pe ecran? a) Programul nu va rula; b) Valoarea variabilei “var” urmata de adresa sa; c) Adresa variabilei “var” urmata de valoarea sa; d) De doua ori valoarea variabilei “var”; 2.Ce se va afisa pe ecran? a) De doua ori valoarea variabilei “var”; b) De doua ori adresa variabilei “var”; c) Valoarea variabilei “var” urmata de adresa sa; d) Adresa variabilei “var” urmata de valoarea sa; 3.Ce se va afisa pe ecran? a) 7 Dupa apel: 4 b) 4 Dupa apel: 7 c) 4 Dupa apel: 4 d) 7 Dupa apel: 7 4.Ce se va afisa e ecran? a) 7 Dupa apel: 4 b) 4 Dupa apel: 7 c) 4 Dupa apel: 4 d) 7 Dupa apel: 7 5.Care varianta este corecta daca se doreste copierea sirului ION in prof.nume? a) strcpy(“ION”,prof.nume); b) strcpy(‘ION’,prof.nume); c) strcpy(prof.nume,”ION”); d) strcpy(prof.nume,’ION’); 6.Care este varianta corecta daca se doreste sa se afle lungimea sirului ION? a) strlen(“ION”); b) strlen(“ION”)+1; c) strlen(‘ION’); d) strlen(‘ION’)+1; 7.In cazul alocarii memoriei, care este operatorul echivalent cu malloc in C++? a) delete; b) free; c) new; d) add; 8.Cati octeti ocupa un pointer? a) 2 octeti; b) 4 octeti; c) 8 octeti; d) 16 octeti; 9.De ce s-au folosit parantezele drepte in urmatoarea linie de cod? a) Deoarece operatorul new impune acest lucru; b) Deoarece functia strlen impune acest lucru; c) Deoarece este vorba de un sir de caractere; d) Deoarece s-au folosit deja parantezele rotunde; 10.Alegeti varianta corecta de afisare care lipseste din functia afisare a programului urmator: a) cout

Use Quizgecko on...
Browser
Browser