Professional Documents
Culture Documents
46. Programul
#include <iostream>
using namespace std;
void f (int &x, int y) {
x=1; y=2;
}
void main() {
int z=0; f(z,z); cout<<z;
}
afiseaza
-1
47. Programul
#include <iostream>
using namespace std;
int x=5;
void f (int &y) {
y=2*x+3;
x+=2;
cout<<y;
}
void main() {
f(x);
cout<<’ ’<<x;
}
afiseaza
-15 15
48. Secventa
int x=0x1e3;
printd(”%d”,x);
afiseaza
- 483
49. Fie macrodefinitia
#define INC(x) x++
Apelul cout<<INC(3);
- va genera eroare – left-value incorect;
50. Declaratia
template <class T> void schimb (T &a, T &b) {
T aux; aux=a; a=b; b=aux;
}
- este corecta si interschimba doua valori de tipul generic T
51. In urma executarii secventei
unsigned char x;
cin>>x;
for (int i=0; i<8; i++) x>>=1;
cout<<(int)x;
- se afiseaza valoarea 0;
52. Daca n este un intreg initializat cu 15, atunci instructiunea
if (0<=n<=10)
cout<<”n intre 0 si 10”;
else
cout<<”n mai mic decat 0 sau mai mare decat 10”;
- afiseaza „n intre 0 si 10”
53. Considerand ca x este un numar real pozitiv
m=0;
while (++m<=x);m--;
cout<<m;
secventa este
- este corecta si se calculeaza partea intreaga a lui x
54. Ce valoare are expresia: sizeof(5-3.)
-8
55. Fie structura
struct Carte {
char *Titlu;
char *Autori[3];
double cod;
};
Cati octeti sunt necesari pentru memorarea unui obiect Carte
- 24
56. Ce rol are macrodefinitia
#define MACRODEF(x) (’A’<=(x) && (x)<=’Z’? (x)-’A’+’a’:(x))
- converteste o litera mare in litera mica
57. Fie functia
int suma (int a=0, int b, int c=0, int d=0) {
return a+b+c+d;
}
Apelul (3,5,1) este
- eronat, parametrii cu valori implicite trebuie sa se afle la sfarsitul listei de parametrii
58. Fie declaratiile
typedef int vector[10];
vector a[20];
masivul a putea fi declarat echivalent
- int a[20][10]
59. Secventa
int i=2;
switch (i) {
case 0||2||4: cout<<”par ”;
case 1||3||5: cout<<”impar ”;
}
- este eronata (alternativa multipla)
60. Fie clasa
class C {
int x;
public:
C(int_x=0): x(_x) {} //constructor clasa
int operator.() //supraincarcare punct (.)
{return c.x;}
};
Functia operator.
- este eronata, operatorul . nu poate fi supraincarcat
61. Fie clasa
class C {
int x;
public:
C(int_x=0): x(_x) {} //constructor clasa
int operator/() { return c.x; }
};
- este eronata, operatorul / este binar
62. Fie clasa
class C {
public: int x;
C(int_x=0):x(_x) {} //constructor clasa
C(const C&c):x(c.x) {} //constructor copiere
};
C f() { static C c; return c; }
void main() { f(); }
Apelul f( ) va determina utilizarea
- constructorului de clasa si a celui de copiere cate o data
63. Aplicatia
#include <iostream>
using namespace std;
int n=2;
int& F() {
return n=3;
}
int main() {
F()+=10;
cout<<n;
return 0;
}
- este corecta si afiseaza 13
64. Fie clasa
class C {
public:
int x;
void f(C c) { cout<<c.x; }
friend void f(C c) { cout<<c.x; }
};
Definirea functiilor f este
- corecta, prima functie fiind o metoda a clasei, iar cea de-a doua o functie independenta
65. Fie clasa
class C {
public: int x;
C(int_x=0): x(_x) {} //constructor clasa
int operator++(int) { return ++x; }
};
void main() { C c; cout<<c++; }
va determina
- afisarea valorii 1
66. Sa se precizeze care dintre afirmatii sunt adevarate
I. metodele nestatice ale unei clase primesc pointerul this
II. metodele nestatice ale unei clase nu primesc pointerul this
III. metodele statice ale unei clase primesc pointerul this
IV. metodele statice ale unei clase nu primesc pointerul this
- I, IV
67. Fie clasa
class C {
public:
int x;
C(int_x=0): x(_x) {} //constructor clasa
operator int() { return x; }
};
Functia operator int()
- este corecta, reprezinta supraincarcarea operatorului cast
68. Fie clasa
class C { int x; };
C* const px=new C;
Precizati afirmatia corecta
- pointerul pc este constant
69. Conversia unui obiect al unei clase inspre un tip primitiv, se poate face prin
- supraincarcarea operatorului cast in clasa respectiva
70. Pentru x=5, care este valoarea expresiei 3<<x>>2?
- 24