Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1.Un obiect este :
- a. o instanţiere a unei clase;
- b. o abstractizare a unei clase;
- c. o structură a clasei.
- 2.O funcţie friend :
- a. poate fi declarată static;
- b. nu poate fi declarată static sau extern;
- c. poate fi declarată static dacă clasa prietenă nu are moştenitori.
- 3.Utilizarea funcţiilor inline este recomandată pentru :
- a. funcţii recursive;
- b. funcţii optimale;
- c. funcţii scurte.
- 4.În cadrul unei clase, declararea unei variabile static :
- a. alocă o singură dată memorie;
- b. alocă memorie la fiecare creeare a unui obiect de tipul clasei;
- c. nu alocă memorie pentru aceasta.
- 5.În fragmentul de mai jos este eronată linia-sursă nr.:
- ...
- class stiva{ //1
- int stiv[size]; //2
- public: //3
- int virf_stiva; //4
- void init(); //5
- void pune(int); //6
- int scoate(); //7
- }; //8
- ...
- main() //9
- { //10
- stiva st1,st2; //11
- st1.pune(44); //12
- st2.pune(122); //13
- st1.virf_stiva=11; //14
- cout<<st1.scoate()<<”\n”; //15
- cout<<st2.scoate()<<”\n”; //16
- return 0; //17
- } //18
- a) 6,13
- b) 14
- c) Nici o linie
- 6.Dacă se pasează un obiect către o funcţie, constructorul :
- a. va fi apelat întotdeaunaş
- b. va fi apelat pentru anumite tipuri de funcţii;
- c. nu este executat.
- 7.O variabilă membră a unei clase poate fi declarată astfel :
- a. de orice tip;
- b. nu poate fi declarată auto, extern sau register;
- c. poate fi doar char, integer sau float.
- 8.Ce se întâmplă la compilarea următorului program?
- ...
- class cl{
- int i;
- public:
- cl(int j) {i=j;}
- int ret_i() {return i;}
- };
- ...
- main ()
- { a. Se semnalează eroare de compilare la declararea matricii de obiecte;
- cl a[5]; b. Programul este corect;
- ... c. Se semnalează warning (atenţionare) la constructorul clasei.
- }
- 9.O clasă derivată are acces:
- a. la propriii membri şi la toţi membrii clasei de bază;
- b. la funcţiile sale membre şi la variabilele membre ale clasei de bază;
- c. la propriii membri şi la membrii publici ai clasei de bază.
- 10.Care este sintaxa corectă la iniţializare pentru clasa următoare?
- class cl{
- int i,j;
- public:
- cl(int k, int l) {i=k; j=l;}
- int ret_i() {return i;}
- int ret_j() {return j;}
- };
- a. cl ob[3]=(1,2),
- (3,4),
- (5,6);
- b. cl ob[3]={(1,2),(3,4),(5,6)};
- c. cl ob[3]= { cl(1,2),
- cl(3,4),
- cl(5,6)
- };
- 11.Care linie din programul de mai jos este eronată ?
- class baza{ //1
- int i; //2
- public: //3
- void set_i(int val) {i=val;} //4
- int ret_i() {return i;} //5
- }; //6
- class derivat::public baza { //7
- int j; //8
- public: //9
- void set_j(int val) {j=val;} //10
- int ret_j() {return j;} //11
- }; //12
- ...
- main() //13
- { //14
- baza *b; //15
- derivat d; //16
- b=&d; //17
- b->set_i(5); //18
- b->ret_i(); //19
- b->set_j(55); //20
- return 0; //21
- } //22
- a) 19
- b) 17
- c) 20
- 12.În programul următor, se va semnala eroare. De ce?
- class baza{
- protected: int i,j;
- public:
- void set_ij(int a, int b) {i=a;j=b;}
- void arata_ij() {cout<<i<<””<<j<<”\n”;}
- };
- class derivat: protected baza {
- int k;
- public:
- void set_k(int a, int b) {set_ij(a,b); k=i*j;}
- void arata_ijk() {cout<<k<<””;arata_ij();}
- };
- ...
- main(){
- derivat obd; a. În definirea funcţiei set_k nu poate apare apelul la set_ij().
- obd.set_ij(1,2); b. i şi j trebuie declarate public în clasa de bază;
- obd.set_k(3); c. set_ij nu poate fi apelat asociat obiectului obd deoarece
- obd.arata_ijk(); funcţia respectivă este membră protejată pentru clasa derivată
- return 0;
- }
- 13.Constructorul clasei derivate :
- a. trebuie în general să declare atât parametrii proprii de apel cât şi parametrii de apel ai clasei de bază;
- b. nu trebuie să declare parametrii constructorului clasei de bază;
- c. nu are voie să conţină declaraţii ale parametrilor de apel ai clasei de bază.
- 14.Funcţiilor friend :
- a. nu le sunt pasaţi pointeri this;
- b. le sunt pasaţi pointeri this;
- c. le sunt pasaţi pointeri this de tip special.
- 15.Instrucţia marcată cu „S” este :
- class clasa_ex{
- int i,j;
- public:
- clasa_ex(int v_init1, int v_init2) {i=v_init1; j=v_init2;}
- ...};
- ...
- main(){
- clasa_ex exemplu (5,55); //”S”
- ... a. incorectă;
- return 0; b. corectă;
- } c. incorectă în cele mai multe contexte;
- 16.Funcţiile virtuale:
- a. pot fi membri statici ai unei clase
- b. nu pot fi membri statici ai unei clase
- c. pot fi membri statici doar într-o clasă derivată şi dacă în clasa de bază nu există nici o definire a funcţiei.
- 17.Clasele abstracte sunt :
- a. clasele fără variabile membre;
- b. clasele care nu corespund necesităţilor de modelare ale unei entităţi fizice (reale)
- c. clasele care conţin cel puţin o functie virtuală pură.
- 18.Operatorul * din exemplul de mai jos este corect supraîncărcat?
- class exemplu { //1
- int a,b; //2
- public: //3
- exemplu() {} //4
- exemplu(int i,int j) {a=i; b=j;} //5
- void arata() {cout<<i<<””<<j<<”\n|;} //6
- exemplu operator* (exemplu ex); //7
- }; //8
- exemplu exemplu::operator* (exemplu ex) //9
- { //10
- exemplu tmp; //11 a. da
- tmp.a=ex.a*a; //12 b. Nu, greşeala e la linia 14, trebuie return tmp;
- temp.b=ex.b*b; //13 c. Nu, greşeala e la liniile 7 şi 9, funcţia trebuie să return ex; //14 fie de tipul void.
- } //15
- 19.Ce conţine variabila de stare (state) din clasa ios?
- a. un număr întreg care semnifică numărul de octeţi transmis prin stream la un moment dat;
- b. biţi individuali care specifică modul de desfăşurare a unei operaţii de intrare-ieşire, fiecare bit reprezentând câte o eroare posibilă;
- c. biţi individuali care specifică alinierea, formatul de reprezentare, afişare sau nu a bazei, a punctului zecimal, forma de afişare (punct fix/forma cu exponent) etc.
- 20.Un manipulator este :
- a. un operator care modelează un stream şi primeşte ca parametru şi întoarce ca rezultat adresa stream-ului asupra căruia acţionează;
- b. o instrucţiune de modificare şi conversie a unor valori de intrare sau de ieşire;
- c. un operator binar care specifică sensul fluxului şi dispozitivul cu care lucrează.
- 21. Care sunt funcţiile API care alcătuiesc o buclă de mesaje?
- a. SendMessage, GetMessage, DispatchMessage
- b. DispatchMessage, PutMessage, CallMessage
- c. GetMessage, TranslateMessage, DispatchMessage
- 22. O interfaţă MDI este :
- a. o interfaţă având posibilitatea lucrului cu fişiere baze de date
- b. o interfaţă ce permite lucrul cu mai multe dispozitive fizice (Multi-Device Interface)
- c. o interfaţă orientată-document ce permite afişarea şi prelucrarea simultană a mai multor fişiere, prin intermediul unor ferestre diferite.
- 23. Ce oferă clasa Cdocument?
- a. facilitatea de a deschide un fişier şi de a afişa datele conţinute
- b. funcţionalitatea de bază pentru colecţii de date pe care utilizatorul le poate accesa sau salva cu File Open sau File Save
- c. un editor de documente
- 24. Utilizatorul interacţionează cu un document prin intermediul:
- a. unui control Cedit
- b. unui obiect de tip Cview ascoiat cu acesta
- c. unei clase Cwind0
- 25. Incărcătorul de clase (class loader) serveşte pentru:
- a. verificarea corectitudinii sintaxei unei clase
- b. verificarea codului-octet
- c. incărcarea unei clase de către o subclasă a sa
- 26. Ce sunt variabilele instanţă?
- a. variabilele membre de tip public
- b. variabilele oarecare
- c. variabilele membre ale unei clase, care nu sunt de tip static
- 27. Ce inseamnă /** */?
- a. sintaxă eronată
- b. comentarii pe un rând
- c. comentarii pe mai multe linii, care sunt extrase automat din codul-sursă de către generatorul de documentaţie
- 28. Care este valoarea implicită a tipului referinţă?
- a. valoarea null care indică o referinţă încă neprecizată
- b. valoarea False
- c. valoarea 0(zero)
- 29. Instrucţiunea break produce:
- a. intreruperea execuţiei programului până când utilizatorul apasă Enter
- b. „scurtcircuitarea” unei bucle (for,do,while) – adică salt peste instrucţiunile de până la sfârşitul buclei
- c. intreruprea unei bucle (for,do,while) sau a unui bloc switch
- 30. Care va fi efectul secvenţei următoare_
- do{ a. se prelucrează toate caracterele tastate până
- car_citit=(char)System.in.read(); când se apasă T; acesta nu va fi prelucrat
- rel(car_citit); b. se ignoră toate caracterele diferite de T
- } c. se prelucrează toate caracterele testate până
- while (car_citit!=’T’); se apasă T; acesta va fi de asemenea prel.
- 31. Instanţierea unui obiect se face prin:
- a. declararea obiectului
- b. operatorul new
- c. declarare şi atribuire
- 32. În fragmentul următor de program sintaxa liniei marcate este:
- public class Biblio{
- private nr_carti;
- public Biblio(int nr_init) a. validă
- {nr_carti=nr_init;} b. nu este validă
- public int CiteCarti() c. ambiguă
- {return nr_carti;}
- …}
- …
- Int carti_in_biblio=new Biblio(100).CateCarti() ; //marcaj
- 33. Cum putem afişa ceva pe ecran în cadrul unei miniaplicaţii?
- a. scriem în metoda init() secvenţa
- public void init(Thread th){
- th.drawstring(“textul de afisat”);
- }
- b. scriem în metoda repaint() secvenţa System.out.println(”textul de afişat”);
- c. suprascriem metoda paint() astfel:
- public void paint(Graphics gr){
- gr.drawstring(“textul de afisat”);
- }
- 34. Activităţile aferente precizării structurii statice în cadrul metodei Civello şi Mitchell au ca scop:
- a. precizarea structurii programului(module, funcţii, fişiere, clase, obiecte)
- b. definirea claselor şi a relaţiilor dintre ele(comunicaţia între clase, clasificări, atribuiri)
- c. definirea ierarhiilor de clase(moştenirea, polimorfism, supraîncărcarea, constructori, destructori).
- 35. Pentru un produs-program, pot fi distinse următoarele nivele generale de abstractizare:
- a. variabile de instanţă, instanţierea claselor generice, moştenire, mesaje
- b. domeniul problemei,utilizator, gestiunea fişierelor, gestiunea proceselor, structuri de date fundamentale, interfaţa cu perifericele
- c. nivelul logic, nivelul comunicaţiei, nivelul driver, nivelul fizic, nivelul aplicaţiei, nivelul interfeţei utilizator
- 36.Java permite realizarea programarii concurente prin:
- a)...
- b)...
- c)folosirea firelor de executie si sincronizarea metodelor
- 37.principalele biblioteci de clase Java sunt orientate pe
- a)pe GUI, imagini si audio, lucrul in retea
- b)TCP/IP, FTP
- c)interfata cu utilizatorul, interfata de retea,interfata cu baza de date
- 38.secventa de program Java de mai jos
- public class Apartament { //1
- private: //2
- int nr_cam; //3
- int supraf; //4
- public : //5
- Apartament(int nrc, int sup) //6
- {nr_cam = nrc; supraf = sup;} //7
- ...
- }; //8
- a)este corecta
- b)este eronata, trebuie private in liniile 3 si 4, public in linia 6, toate fara ":" si in linia 8 nu trebuie ";"
- c)...
- 39.ce semnifica sintaxa de la linia marcata ?
- public class Biblioteca {
- public Biblioteca() {this(0);} //marcaj
- public Biblioteca(int nrc)
- {nr_crt = private nr_crt; //aici am observat ca lipseste tipul campului !?
- ...
- }
- a)este un constructor care pune pe zero obiectul curent
- b)este o metoda speciala care genereaza o referinta la obiectul curent
- c) este un constructor care initializeaza cu o valoare redefinita (aici , zero) variabila instanta, prin apelul celuilalt constructor, inlocuind astfel conventia cu argumente implicite, care nu este disponibila in Java.
- 40.* Ce sunt variabilele de tip instanta in Java?
- a)variabile membre de tip public
- b)variabile oarecare
- c)variabilele membre ale unei clase, care nu sunt de tip static
- 41.Graphics este in Java :
- a)o variabila membra a java.applet.Applet care permite apelarea operatiilor de intrare/iesire
- b)un tip predefinit care contine mai multe metode pentru desenarea imaginilor si scrierea textului pe ecran
- c)denumirea engleza a aspectelor grafice ale miniaplicatiilor Java
- 42.Prin mostenire intelegem:
- a) separarea aspectelor externe ale unui obiect,accesibile altor obiecte,de cele interne.
- b) ca aceeasi metoda poate avea comportament diferit in clase diferite.
- c) transmiterea atributelor si operatiilor de-a lungul claselor bazate pe o relatie ierarhica.
- 43.In lipsa specificatorilor „public” si „private” toti membrii unei clase vor fi implicit:
- a) privati
- b) compilatorul va semnala eroare
- c) publici
- 44.O functie virtuala:
- a) defineste o metoda care nu poate fi apelata din clasa derivata chiar daca este publica.
- b) defineste o clasa generala de actiuni iar redefinirea ei introduce o metoda specifica.
- c) defineste o metoda specifica iar redefinirea ei introduce o clasa generala de actiuni.
- 45. Fie urmatoarea secventa de program:
- Class A
- {
- ...
- Public: int adunare(int x,int y)
- {
- ...
- }
- };
- Class B:public A
- {
- ...
- Public: float adunare(float x,float y)
- {
- ...
- }
- };
- Daca avem un obiect: B ob(de tipul lui B) atunci B.adunare(3,4) va apela:
- a) Va genera eroare deoarece B este o clasa si nu un obiect
- b) Functia adunare din clasa B
- c) Functia adunare din clasa A
- 46. Programul urmator are ca efect:
- #include<iostream.h>
- Class exemplu_static{
- Static int a; //aici e o variabila membra de tip static
- Int b; // aceasta nu e de tip static
- Public:
- Void seteaza(int i,int j) {a=i; b=j; }
- Void arata();
- };
- Int exemplu_static::a; // iata si definirea globala
- // pentru variabila de tip static
- Void exemplu_static::arata()
- {
- Cout<<”acesta este a static: „<<a;
- Cout<<”\nacesta este b ne-static: „<<b;
- Cout<<”\n”;
- }
- Main()
- {
- Exemplu_static ob1,ob2; //doua obiecte de tipul clasei
- Ob1.seteaza(1,2);
- Ob1.arata();
- Ob2.seteaza(3,4);
- Ob2.arata();
- Ob1.arata();
- Return 0;
- }
- Afisarea urmatoarelor texte:
- a) Acesta este a static: 1 c) acesta este a static: 1
- Acesta este b ne-static: 2 acesta este b ne-static: 2
- Acesta este a static: 1 acesta este a static: 1
- Acesta este b ne-static: 4 acesta este b ne-static: 4
- Acesta este a static: 1 acesta este a static: 3
- Acesta este b ne-static: 2 acesta este b ne-static: 2
- b) Acesta este a static: 1
- Acesta este b ne-static: 2
- Acesta este a static: 3
- Acesta este b ne-static: 4
- Acesta este a static: 3
- Acesta este b ne-static: 2
- 47. Daca avem o clasa student si constructorul acesteia de forma student( char *x,int y); atunci un obiect initializat se va declara:
- a) student a();
- b) student a(„Ion”,4);
- c) student („Ion”,4);
- 48. Avand secventa de program:
- Class aaa
- {
- Int x;
- ...
- Public:
- ...
- };
- ...
- aaa ob;
- cout<<ob.x;
- a) Secventa este corecta
- b) Secventa de cod nu este corecta deoarece trebuia scris cout<<x;
- c) Secventa de cod nu este corecta,deoarece nu avem acces la membrii privati ai unei clase.
- 49. Secventa urmatoare de program:
- #include<iostream.h>
- Class ordine{
- Public:
- Int cine;
- Ordine(int);
- ~ordine();
- } glob_ob1(10),glob_ob2(20); // doua obiecte globale
- ordine::ordine(int valinit)
- {
- Cout<<”Initializare „<<valinit<<”\n”;
- Cine=valinit;
- }
- Ordine::~ordine()
- {
- Cout<<”distrugere „<<cine<<”\n”;
- }
- Main()
- {
- Ordine local_ob1(30); // obiect local
- Cout<<”Vedeti? Aceasta nu e prima linie afisata! \n”;
- Ordine local_ob2(40); //alt obiect local
- Return 0;
- }
- Va determina afisarea urmatoarelor texte:
- a) Initializare 10
- Initializare 20
- Initializare 30
- Initializare 40
- Vedeti? Aceasta nu e prima linie afisata!
- Distrugere 40
- Distrugere 30
- Distrugere 20
- Distrugere 10
- b) Initializare 10
- Initializare 20
- Initializare 30
- Vedeti? Aceasta nu e prima linie afisata!
- Initializare 40
- Distrugere 40
- Distrugere 30
- Distrugere 20
- Distrugere 10
- c) Initializare 10
- Initializare 20
- Initializare 30
- Vedeti? Aceasta nu e prima linie afisata!
- Initializare 40
- Distrugere 10
- Distrugere 20
- Distrugere 30
- Distrugere 40
- 50. Fie urmatoarea secventa de program:
- Class A
- {
- ...
- Public:
- Int functie(int x,int y)
- {
- ...
- }
- };
- Class B:public A
- {
- ...
- Public:
- ...
- };
- Daca avem un obiect: B ob(de tipul lui B) atunci ob.functie(5,8) :
- a) Va apela functia din clasa A deoarece clasa B mosteneste public clasa A
- b) Va genera eroare deoarece in clasa B nu exista functia adunare.
- c) Va genera eroare deoarece clasa B nu are acces la functiile membre ale clasei A
- 51. O clasa poate avea:
- a) un singur constructor si un singur destructor.
- b) mai multi constructori si un singur destructor.
- c) mai multi constructori si destructori.
- 52. Care din urmatoarele afirmatii este falsa?
- a) constructorul nu poate fi virtual,destructorul poate fi.
- b) functiile virtuale nu pot fi membri statici ai clasei.
- c) functiile virtuale pot fi membri friend ai clasei.
- 53. Un constructor poate returna:
- a) numai tipuri de date predefinite in C sau C++.
- b) nu poate returna o valoare.
- c) tipuri de date definite de programatori sau tipuri de date predefinite in C sau C++.
- 54. Daca o clasa de baza este mostenita private, toti membrii publici ai clasei devin in clasa derivata membri:
- a) publici
- b) privati
- c) protejati
- 55. Secventa urmatoare de program:
- #include<iostream.h> //1
- Class un_param{ //2
- Int a; //3
- Public: //4
- Un_param(int i); //5
- Int da_a(){return a;} //6
- }; //7
- Main() //8
- {
- Un_param obiect=55; //9 paseaza 55 lui i din constructor si
- Cout<<obiect.da_a(); //10 afiseaza ca sa ne convingem ca asa e
- Return 0; //11
- } //12
- Va da eroare de compilare deoarece:
- a) Linia 7 are „;” dupa acolada
- b) Linia 9 trebuie sa arate corect asa: un_param obiect(55)
- c) Constructorul nu e definit (trebuia: un_param(int i){a=i;})
- 56. O clasa care contine o functie virtuala se numeste:
- a) clasa polimorfica
- b) clasa incapsulata
- c) clasa virtuala
- 57. Precizati varianta corecta de creare a unui tablou de obiecte de tipul A. Fie:
- Class A
- {
- Public:
- ...
- };
- A obiect;
- Pentru a crea un tablou de obiecte trebuie facut:
- a) Tablou A(10);
- b) Tablou A[10];
- c) A tablou[10];
- 58. In cadrul unei clase se defineste o variabila membru statica.Atunci:
- a) pentru fiecare instantiere a clasei avem cate o variabila membru statica.
- b) pentru toate instantierile clasei avem o singura variabila membru statica.
- c) o clasa nu poate fi instantiata mai mult decat o data daca avem declarat in cadrul ei o variabila membru statica.
- 59. Care este avantajul folosirii clasei Carray?
- a) poate accesa liste foarte lungi
- b) permite verificarea domeniului la accesarea unui tablou
- c) permite ordonarea rapida a unei liste
- 60. Ce este biblioteca de tipare standard?
- a) un set de colectii,algoritmi si functii generale care utilizeaza masiv tiparele pentru functiile si clasele sale.
- b) un sistem grafic de preincarcare a unei imagini standardizate pentru fisiere bitmap.
- c) o biblioteca cu tipare de functii matematice standardizate.
- 61. Un container serveste pentru:
- a) stocarea mai multor tablouri de valori
- b) maparea evenimentelor la obiecte
- c) stocarea obiectelor
- 62. In ce ordine se vor afisa numerele de catre programul urmator?
- #include<stdafx.h>
- #include<iostream.h>
- #include<vector>
- #include<algorithm>
- Using namespace std;
- Typedef vector<int> vectsort;
- Int main(int argc,char *argv[])
- {
- Vectsort v;
- v.push_back(434);
- v.push_back(356);
- v.push_back(267);
- v.push_back(987);
- sort(v.begin(),v.end());
- vector<int>::reverse_iterator iter=v.rbegin();
- while(iter != v.rend())
- {
- Cout<<*iter<<endl;
- ++iter;
- }
- Return 0;
- }
- a) 434,356,267,987
- b) 267,356,434,987
- c) 987,434,356,267
- 62. Pentru o colectie de tip harta,mecanismul de regasire a informatiei este:
- a) fiecarui articol stocat intr-o harta ii este asociata o cheie unica,fiecare cheie este convertita mai intai intr-o valoare codificata (hash value), care este folosita apoi pentru a cauta articolul dorit dintr-o lista.
- b) fiecarui articol stocat intr-o harta ii este asociata o cheie unica,fiecare cheie este convertita mai intai intr-o valoare codificata (hash value), care este folosita apoi
- ca indice intr-o matrice unde sunt stocate articolele din colectie.
- d) exista o harta a memoriei (memory map) unde fiecarui articol ii corespunde un indice unic numit hash index, prin accesarea cu hash index se determina selectia automata a articolului dorit.
- 63. Iteratorii se folosesc pentru:
- a) indicarea evolutiei calculelor in cadrul unor iteratii din algoritmii recursivi
- b) numararea elementelor dintr-un container
- c) deplasarea printre articolele stocate intr-un container.
- 64. Cum e corect?
- a)
- template<class T>
- class CStack
- {
- Public:
- Cstack();
- Virtual ~Cstack();
- BOOL IsEmpty()const;
- T Pop();
- Void Push(const T&item);
- Private:
- CStack <T> (const CStack &T) {};
- ...
- b)
- template<int T>
- class CStack
- {
- Public:
- Cstack();
- Virtual ~Cstack();
- BOOL IsEmpty()const;
- T Pop();
- Void Push(const T&item);
- Private:
- CStack <T> (const CStack &T) {};
- ...
- c)
- typedef template<int T>
- class CStack
- {
- Public:
- Cstack();
- Virtual ~Cstack();
- BOOL IsEmpty()const;
- T Pop();
- Void Push(const T&item);
- Private:
- CStack <T> (const CStack &T) {};
- ...
- 65. Tiparele de programare au avantajul ca permit:
- a) definire de clase care pot fi usor reutilizate prin mostenire
- b) utilizarea de clase si functii care accepta parametri la folosire
- c) apeluri simple pentru transferul parametrilor actuali
- 66. In codul sursa de mai jos instructia marcata cu $ este:
- ...
- Class cladire{
- Int camere;
- Int etaje;
- Public:
- Void nr_camere(int);
- Int cate_camere();
- Void nr_etaje(int);
- Int cate_etaje();
- };
- Class apartament:public cladire{
- Int dormitoare;
- Public:
- Void nr_dormitoare(int);
- Int cate_dormitoare();
- };
- ...
- Main()
- {
- Apartament ap;
- Ap.nr_dormitoare(2);
- Ap.nr_camere(5); // $
- ...
- a) corecta daca cuvantul-cheie public de la clasa apartament e schimbat in private
- b) incorecta
- c) valida
- 67. Executabilul generat de un mediu de dezvoltare pentru sisteme incorporate ruleaza:
- a) pe microcontrollerul incorporat din sistemul gazda (host)
- b) pe calculatorul pe care ruleaza mediul de dezvoltare
- c) pe microcontrollerul din sistemul incorporat
- 68. Intr-o aplicatie dintr-un sisem incorporat care contine senzori,care sunt avantajele utilizarii unei clase abstracte senzor, care contine functii virtuale pure pentru citirea propriu-zisa a valorii de la senzor si metode de acces la valoarea citita?
- a) metodele care permit citirea valorii fiind in clasa derivata,se permite astfel programatorului sa citeasca valorile folosind obiecte de tip derivat,ceea ce simplifica modul de programare.
- b) metodele care permit accesarea valorii citite sunt deja prezente in clasa de baza,ceea ce permite programului sa utilizeze principiul de substitutie al lui Liskov si astfel sa acceseze valorile de la senzori folosind acelasi cod,indiferent de senzor,iar detaliile de implementare (citirea propriu-zisa) sunt in clasele derivate,programatorul nu trebuie astfel sa cunoasca modul concret de implementare.
- c) metodele care permit citirea propriu-zisa a valorii de la senzor sunt astfel protejate de accese neautorizate si programatorul se poate concentra asupra implementarii preluarii valorii.
- 69. Pentru a implementa arhitectura document-view intr-o aplicatie MFC,pentru partea de document:
- a) Se deriveaza o clasa din Cdocument pentru fiecare tip de document,se adauga variabile membre pentru a stoca fiecare data document,se implementeaza functii membre pentru citirea si modificarea datelor document si se suprascrie functia membra Cobject::On-Update pentru a actualiza datele de pe disc.
- b) Se deriveaza o clasa din Cdocument pentru fiecare tip de document,se adauga variabile membre pentru a stoca fiecare data document,se implementeaza functii membre pentru citirea si modificarea datelor document si se suprascrie functia membra Cobject::Serialize in clasa document pentru a scrie si citi date document pe si de pe disc.
- c) Se deriveaza o clasa din Cdocument pentru fiecare tip de document,se adauga variabile membre pentru a stoca fiecare data document,se implementeaza functia UpdateAllViews pentru actualizarea tuturor vizualizarilor si se suprascrie functia membra Cobject::Serialize in clasa document pentru a scrie si citi date document pe si de pe disc.
- 70. Mecanismul de actualizare a tuturor vizualizarilor in cadrul arhitecturii document-view presupune:
- a) Modificarea documentului prin accesul din cadrul vizualizarii la metoda de modificare a variabilei membre din clasa derivata din CDocument,apelul metodei UpdateAllViews din acea clasa,care trimite notificari catre toate vizualizarile active si suprascrierea metodelor OnDraw (de desenare) din clasele de vizualizare,pentru a implementa actualizarile dorite pe aceste vizualizari.
- b) Modificarea documentului prin accesul din cadrul vizualizarii la metoda de modificare a variabilei membre din clasa derivata din CDocument,apelul metodei UpdateAllViews din acea clasa,care trimite notificari catre toate vizualizarile active si suprascrierea metodelor OnUpdate din clasele de vizualizare,pentru a implementa actualizarile dorite pe aceste vizualizari.
- c) Modificarea documentului prin accesul din cadrul vizualizarii la metoda de serializare a variabilei membre din clasa derivata din CDocument,apelul metodei UpdateAllViews din acea clasa,care trimite notificari catre toate vizualizarile active si suprascrierea metodelor OnRedraw (de redesenare) din clasele de vizualizare,pentru a implementa actualizarile dorite pe aceste vizualizari.
- 71. Modelarea orientata pe obiecte parcurge urmatoarele etape:
- a) definirea claselor si a relatiilor dintre ele (comunicatia intre clase,clasificari, atribute)
- b) analiza a ceea ce face sistemul sa functioneze, examinarea domeniului problemei, utilizarea entitatilor si relatiilor dintre acestea pentru a concepe arhitectura aplicatiei.
- c) analiza a ceea ce face sistemul, determinarea functiunilor necesare prin descompunerea problemei in altele mai mici, determinarea claselor si a relatiior dintre acestea.
- 72. In cadrul modelarii orientate pe obiecte, avem urmtoarele avantaje fata de abordarea structurata:
- a) este mai bine deoarece programul este vazut ca un model al realitatii, fiind format din obiecte care interactioneaza actiunile intreprinse in program se fac de catre obiecte si cu ajutorul lor.
- b) entitatile sunt mai stabile decat functiile, intretinerea aplicatiei este mai usoara, componentele de program sunt mai usor reutilizabile si tranzitia de la analiza la proiectare si implementare este naturala.
- c) etapele de dezvoltare sunt mai coerente deoarece se incepe cu ceea ce face sistemul sa functioneze, apoi se examineaza domeniul problemei,pentru a gasi entitati care au limite( frontiere) fizice sau conceptuale care le separa de restul domeniului si se utilizeaza entitatile si relatiile dintre acestea pentru a concepe arhitectura aplicatiei.
- 73. Analiza orientata pe obiecte este:
- a) analiza solutiilor posibile prin inventarea (conceperea) sau alegerea claselor de obiecte pentru domeniul solutiilor si stabilirea relatiilor logice si interactiunilor dintre ele.
- b) descoperirea obiectelor esentiale (key objects) la nivelul curent de abstractizare si transferarea responsabilitatilor sistemului catre obiecte.
- c) procesul de identificare si definire a claselor (obiectelor) ce apartin domeniului problemei.
- 74. In UML mesajul este:
- a) abstractie a unei unitati de comunicare intre un obiect sursa si un obiect tinta( cel care receptioneaza mesajul)
- b) un apel CallAction
- c) trimiterea unui semnal de la un obiect sursa la un obiect tinta (cel care receptioneaza mesajul).
- 75. Relatiile dintre clase si obiecte sunt de tipul:
- a) colaborare, extensie, specializare, principiul de susbstitutie al lui Liskov
- b) asociere, agregare, compozitie, generalizare, dependenta
- c) parte/intreg, catalog, fizic,tip mesaj, compozitie, dependenta,generalizare.
- 76. Cerintele functionale in UML
- a) sunt codificate prin note text
- b) sunt reprezentate direct de cazurile de utilizare
- c) sunt reprezentate prin diagrame de secventa si prin diagrame de stare.
- 77. Un caz de utilizare este:
- a) o capabilitate nominalizata a unei entitati structurale in cadrul unui model.
- b) un obiect in afara scopului sistemului considerat dar care are interactiuni semnificative cu acesta prin cazul de utilizare respectiv.
- c) o entitate structurala (un subsistem) din cadrul sistemului respectiv care cuprinde o realizare a unei functiuni.
- 78. In UML conectarea modelului de obiecte cu modelul cazurilor de utilizare se realizeaza prin aceea ca:
- a) fiecare caz de utilizare corespunde cate unui obiect
- b) fiecare caz de utilizare va fi realizat de un set de obiecte care lucreaza impreuna.
- c) fiecare model de obiecte este realizat de un set de cazuri de utilizare care trimite secvente de mesaje.
- 79. O stare este:
- a) o descriere a comportamentului unui obiect in timpul intrarii,iesirii sau persistentei.
- b) o conditie de existenta a unui clasificator (clasa sau caz de utilizare) care persista o perioada semnificativa de timp si poate fi cumva distinsa fata de alte conditii similare de existenta.
- c) o descriere complet constructiva de descompunere a comportamentului complex in bucati mai mici, fiecare fiind valabila in anumite conditii specifice.
- 80. Pentru identificarea cazurilor de utilizare analistul sta de vorba cu clientul si ii adreseaza intrebari cheie precum:
- a) care este rolul actorilor si al sistemului in fiecare scenariu? Care sunt interactiunile (fluxurile)? Care sunt secventele de evenimente si date si posibile variatiuni?
- b) care sunt actorii? Care sunt mesajele pe care le trimit si receptioneaza? Care sunt grupele care alcatuiesc cazuri de utilizare?
- c) care sunt functiile primare ale sistemului? Care sunt functiile secundare ale sistemului? De ce a fost construit sistemul? Ce inlocuieste si de ce?
- 81. In UML comportamentul continual este modelat prin:
- a) un limbaj propriu de simulare (SimUML)
- b) nu exista posibilitati directe de simulare in UML
- c) comportament de stare
- 82. Agregarea este:
- a) un tip special de asociere care implica proprietatea logica sau fizica.
- b) o forma tare de compozitie in care partile sunt in intregime in responsabilitatea clasei compozite
- c) o relatie de tip clasa parinte/clasa descendent
- 83. Asocierile sunt:
- a) relatii care se manifesta la rulare pentru a permite schimb de mesaje intre obiecte
- b) relatii de colaborare definite prin existenta unui server si respectiv a unui pachet de metode
- c) codificate prin existenta unei clase asociative
- 84. In UML o operatie este:
- a) specificarea unui comportament
- b) specificarea unui mesaj
- c) descrierea unui secvente de apeluri de metode
- 85. Diagramele de secventa sunt:
- a) cea mai uzuala cale de reprezentare a scenariilor
- b) cea mai uzuala cale de reprezentare a cazurilor de utilizare
- c) diagrame care cuprind caile de realizare a asocierilor dintre obiecte si mesaje
- 86. Tipurile de operatii sunt:
- a) constructor, destructor, modificator, selector, iterator
- b) ortogonale, primitive, compozite, colectii, containere
- c) binare, constructor, destructor, primitive, ne-primitive
- 87. Un sablon (pattern)
- a) abstractizeaza si identifica aspectele cheie ale unei structuri comune de proiectare pe care o face utila pentru crearea unui design OO, reutilizabil.
- b) abstractizeaza si identifica aspectele cheie ale unei structuri comune de proiectare in care o singura sursa de informatie actioneaza ca un server pentru mai multi clienti.
- c) abstractizeaza si identifica aspectele cheie ale unei structuri comune de proiectare prin utilizarea claselor abstracte si a mostenirii si a functiilor virtuale.
- 88. Sablonul Container este o buna solutie pentru cazul:
- a) cand un obiect are asociere 1 la mai multi si dorim sa imbunatatim reuzabilitatea si atunci acea clasa de la capatul „1” va gestiona un set de obiecte stocate intr-un container.
- b) cand devine mai usoara adaugarea unui nou container –un vector extensibil-prin crearea unei interfete care asigura clientilor serviciile cerute de acestia dar folosesc operatiile primitive ale containerelor existente.
- c) cand un obiect are nevoie de o implementare comuna potrivita pentru o varietate de utilizari.
- 89. Cand, in cadrul sablonului Observer, serverul primeste un apel subscribe
- a) apeleaza periodic o metoda Gimme() de interogare direct a valorii urmarite
- b) creaza un obiect NotificationHandle care include adresa obiectului.
- c) creaza un obiect de tip ConcreteObserver care adauga stocarea locala in aributele dorite.
- 90. Un sablon (pattern) este:
- a) o structura de program orientat pe obiecte
- b) o regula care leaga printr-o ierarhie de clase o descriere de solutie de un set de specificatii.
- c) o regula care exprima o relatie dintre un context,o problema si o solutie.
- 91. Sablonul Observer rezolva problema
- a) in care un server trebuie sa furnizeze la cerere date citite din proces
- b) in care un obiect trebuie sa afiseze periodic (observe) schimbarile survenite in valorile citite de la un senzor
- c) in care o singura sursa de informatie actioneaza ca un server pentru mai multi clienti care trebuie sa isi actualizeze autonom datele cand acestea se schimba.
- 92. La un sablon Interface participa clasele:
- a) Stack, List, Interface
- b) Client, Server, List, Interface
- c) Client, Interface, Implementation
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement