Sunteți pe pagina 1din 10

4001.

Pentru functia:
int f(int x){
if(x>0)return f(x-1)+f(x-3);
else return 1; }
De cate ori este apelata functia f pentru a calcula f(f(3))?
R. De 18 ori.
4002. Fie secventa:
printf("%s",x<7-2*x?"DA":"NU");
Care este cea mai mare valoare pe care o poate lua variabiala intreaga x pentru a
se afisa textul DA?
R. 2.
4003. In urma executarii secventei:
int x=-45,p;
p=printf("%d",x);
Variabila p va avea valoarea:
R. 3.
4004. Aplicatia:
#include<iostream>
using namespace std;
int x=5;
void main(){
int x=3;
cout<<x<<::x; }
R. este corecta si afiseaza 3 5.
4005. Programul:
#include<stdio.h>
extern int x;
void main() {
printf("%d",x); }
int x=7;
R. Este corect si afiseaza valoarea 7.
4006. Aplicatia:
#include<iostream>
using namespace std;
int main() {
enum zi {dum, luni=2, marti};
zi z1=dum, z2=luni, z3=marti;
cout<<z1<<z2<<z3;
return 0; }
R. Este corecta si afiseaza 0 2 3.
4007. Fie declaratia:
int For=1.;
Ea este:
R. Corecta.
4008. Care este valoarea intoarsa de functia urmatoare pentru apelul f(4)?
int f(int x){
if(!x)return 0;
else return f(x-1)+x*x; }

R. 3.
4009. Daca avem declaratia:
char* s[]={"ab","cd","ef"};
atunci s ocupa:
R. 3*4=12 octeti.
4010. Programul urmator:
#include<iostream>
using namespace std;
int a=5;
int f(int b){
a-=b;
return b++;}
void main(){
cout<<f(a);
cout<<a;}
Afiseaza:
R. 5 0.
4011. Fie declaratia:
int * const p;
Aceasta este:
R. Eronata, p fiind un pointer constant care nu a fost initializat.
4012. Consideram sirurile:
char *x="unu", *y="doi";
Ce va returna apelul strcmp(x,y)?
R. O valoare pozitiva, "unu" fiind mai mare ca "doi".
4013. Secventa:
int x; cin>>x;
for(int i=0;i<32;x<<=1;i++)cout<<x;
R. Este corecta si afiseaza valoarea 0.
4014. Functia:
int min_max(int v[],int n){
int min=v[0],max=v[0];
for(int i=1;i<n;i++){
if(min>v[i])min=v[i];
if(max<v[i])max=v[i];}
return min,max;}
R. Este corecta si returneaza maximul unui vector.
4015. Functia:
int min(int v[],int n){
int m=v[0];
for(int i=1;i<n;i++)
if(m<v[i])m=v[i];
return m;}
R. este corecta si returneaza maximul unui vector.
4016. In scopul ridicarii la patrat a unui numar real definim macrodefinitia:
#define SQR(x) x*x
Apelul cout<<SQR(3+5);
R. Va afisa valoarea 23.

4017. In urma executiei instructiunii:


for(suma=0,i=10;i;i-=2)
suma+=i;
Variabila suma va contine:
R. Suma numerelor intregi pare de la 2 la 10.
4018. Aplicatia:
#include<iostream>
using namespace std;
void main(){
int a=5,b=3;
cout<<(double)a/b;}
Va afisa:
R. Raportul inpartirii lui a la b.
4019. Considerand ca x este un numar real pozitiv:
m=0;
while(++m<=x);m--;
cout<<m;
Secventa este:
R. Este corecta si calculeaza partea intreaga a lui x.
4020. Fie structura:
struct Carte{
char *Titlu;
char *Autori[3];
double cod;};
Cati octeti sunt necesari pentru a memorarea unui obiect Carte:
R. 24.
4021. 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:
R. 15 15.
4022. In urma executarii secventei de atribuiri:
y=x+1;
z=y-1;
x=z+1;
R. x si y sunt egale.
4023. Daca x si z sunt doua numere pozitive nenule:
do{
x++;
y--;

}while(y);
cout<<x;
Secventa:
R. Afiseaza suma valorilor x si y.
4024. Care este valoarea intoarsa de functia urmatoare pentru apelul f(3)?
int f(int x){
if(x<=0)return 1;
return f(x-1)+2;}
R. 7.
4025. Care va fi valoarea variabilei p in urma executarii secventei:
int p,x,y;
p=scanf("%d%d",&x,&y);
Daca se introduc de la tastatura datele: 25 abc 37
R. 1.
4026. Fie clasa:
class C{
public: int x;
C(int _x=0),x(_x){}
friend istream& operator>>(istream &in, C &c)
{in>>c.x; return in;}
};
Functia operator>> este:
R. Corecta, operatorul>> fiind folosit pentru operatii de intrare cu obiecte (cin>>c).
4027. Conversia unui obiect al unei clase inspre un tip primitiv, se poate face prin:
R. Supraincarcarea operatorului cast in clasa respectiva.
4028. Un atribut al clasei Student care are rolul de a contoriza toti studentii
instantiati trebuie declarat:
R. Static.
4029. Fie clasa:
class C{
public: int x;
C(int _x=0): x(_x){} //constructor clasa
C(const C&c): x(c.x){} //constructor copiere
};
void main(){ C v[3],*p=v; }
De cate ori se apeleaza cei doi constructori?
R. Constructorul de clasa este apelat de 3 ori si cel de copiere nicio data.
4030. Consideram clasa:
class C{
private:static int s;
public: int x;
static int f(){return s;}
};
int C::0;
Definirea clasei C este:
R. Corecta.
4031. Fie clasa:
class C{
public: int x;

C(int _x=0): x(_x){}


C& operator =(const C&c){x=c.x; return *this;}
};
void main(){ C c1, c2; c2=c1; }
Expresia c2=c1 determina apelul:
R. Supraincarcarii operatorului=
4032. Sa se precizeze care 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;
R. I, IV.
4033. Fie clasa:
class C{int x;};
C* const pc=new C;
Precizati afirmatia corecta:
R. Pointerul pc este constant.
4034. Fie clasa:
class C{
public: int x,y;
C(): x(0), y(0) {} //constructor 1
C(int _x, int _y): x(_x), y(_y) {} //constructor 2
C(int _x, double _y=0):x(_x), y(_y) {} //constructor 3
C(const C&c): x(c.x), y(c.y) {} //constructor 4
};
Instantierea C c(3); va apela:
R. Constructorul 3.
4035. Fie clasa:
class C{ public: int x; };
Fie declaratiile: C ob, *pob;
Care dintre expresiile de mai jos sunt corecte:
I. ob.x
II. ob->x
III. pob.x
IV. pob->x
R. I, IV.
4036. In urma executarii secventei:
x=x+y; y=x-y; x=x-y;
cout<<x<<' '<<y;
R. x si y se interschimba.
4037. Aplicatia:
#include<iostream>
using namespace std;
#define SWAP(x,y) { int temp=x; x=y; y=temp; }
int main() {
double d1=3.5, d2=5.5;
SWAP(d1,d2);
cout<<d1<<' '<<d2<<endl;

return(); }
R. Va afisa 5.5 3
4038. Fie declaratiile:
int a=5; double x;
In urma atribuirii: x=a/2; variabila x va avea valoarea:
R. 2
4039. Functia:
unsigned f(unsigned a, unsigned b) {
unsigned p;
for(p=1;a;a--) p*=b;
return p; }
Calculeaza:
R. b la puterea a.
4040. In urma executarii secventei:
unsigned char x;
cin>>x;
for(int i=0;i<8;i++) x>>=1;
cout<<x;
R. Se afiseaza valoarea 0.
4041. Pentru x=5, care este valoarea expresiei 3<<x>>2?
R. 24.
4042. In secventa:
int x;
int y=x&1;
Pentru ca variabila y sa fie nenula trebuie ca x sa fie:
R. impar.
4043. Fie declaratia:
int a=7, c;
Ce valoare va avea variabila c in urma atribuirii:
c=1<<a>>2;
R. 32.
4044. Pentru functia:
int suma (int n, ...) {
int s=0, i, x;
va_list l2;
va_start(l2,n);
for(i=1;i<=n;i++) {
x=va_arg(l2, int);
s+=x;
}
va_end(l2);
return s; }
Apelul suma(4,5,7,8,9) este:
R. Corect si returneaza valoarea 29.
4045. Considerand ca x este un numar intreg, secventa:
c=x<0?-x:x;
while(c>=10) c%=10;
cout<<c;

R. Afiseaza ultima cifra a lui x.


4046. Secventa:
int x;
printf("%x", &x);
R. Este corecta si afiseaza adresa variabilei x.
4047. Daca in urma executarii secventei:
for(a=1; a<10; a+=2) b-=3;
Variabilele a si b sunt egale, care este valoarea initiala a variabilei b?
R. 26.
4048. Daca t este o variabila double, atunci expresia:
t=3,5;
R. Initializeaza pe t cu 3.
4049. Fie functiile:
int suma(int a, int b) {
return a+b; }
int suma(int v[], int n) {
int i, s;
for(i=0, s=0; i<n; i++) s+=v[i];
return s; }
Daca variabila x este declarata astfel: int *x, apelul suma(x,5) este:
R. Corect si apeleaza a doua functie, calculand suma elementelor vectorului x.
4050. Fie functia:
int F(int n) {
if(n<=1) return 1;
else return F(n-1)+F(n-2); }
ce calculeaza termenul de rang n al sirului lui Fibonacci.
De cate ori este apelata functia F pentru a calcula F(4)?
R. de 9 ori.
4051. Care din prototipurile de mai jos declara corect o functie cu numar variabil de
parametrii?
R. void g(int n, ...);
4052. Functia:
void f(unsigned a, unsigned b) {
if(a && b)
if(a!=b)
if(a>b) f(a-b, b);
else f(a, b-a);
else cout<<a;
else cout<<(a?a:b); }
Calculeaza si afiseaza:
R. Cel mai mare divizor comun a doua numere.
4053. Fie clasa:
class C {
public: int x, y;
C(int _x=0, int _y=0): x(_x), y=(_y) {} //constr. clasa
~C() {} //destructor
};
void main() { C c1, c2=c1; }
Precizati afirmatia corecta:

R. Destructorul este apelat de doua ori.


4054. Secventa:
int p=1;
while(b)
if(b%2) p*=a, b--;
else b/=2, a*=a;
cout<<p;
Afiseaza:
R. a la puterea b.
4055. Secventa:
for(int suma=0, i=0; i<=10; i+=2);
suma+=i;
cout<<suma<<i;
R. Afiseaza 12 si 12.
4056. Secventa:
for(i=1; i<16; i+5) cout<<i;
R. Afiseaza 1 1 1 ... la infinit.
4057. Secventa:
int a=3, b=5;
int t=a<b?a++:b++;
cout<<a<<b<<t;
Determina afisarea valorilor:
R. 4 5 3
4058. Secventa:
int x=0x1e3;
printf("%d", x);
Afiseaza:
R. 483
4059. Secventa:
int i=-2;
if(i) {
if(i%2) cout<<"i impar";
}
else cout<<"i negativ";
R. Nu afiseaza nimic.
4060. In urma executarii secventei:
x=y=z=5; s=6; k=0;
if(x>=s) y++, z+=2; x+=z;
while(k<x) k++; s+=k+x;
cout<<s;
Valoarea variabilei s va fi:
R. 26
4061. Fie clasa:
class C {
public: int x;
C(int _x=0): x(_x) { }
int operator!() { return ~x; }
};

Functia operator! este:


R. Corecta, si calculeaza negarea pe biti a valorii obiectului.
4062. 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:
R. Afisarea valorii 1.
4063. Fie clasa:
class C {
int x;
public:
C(int _x=0): x(_x) { } //constructor clasa
int operator.() { return c.x; } //supraincarcare punct (.)
};
Functia operator. :
R. Este eronata, operatorul . nu poate fi supraincarcat.
4064. Fie clasa:
class C {
int x;
public:
C(int _x=0): x(_x) { } //constructor clasa
friend int operator~(C c) { return c.x; }
};
Functia operator~ :
R. Permite extragerea datei private x.
4065. Operatorul sageata (->):
R. Poate fi supraincarcat numai prin metoda nestatica.
4066. Fie clasa:
class C {
public: int x;
C(int _x=0): x(_x) { }
operator int() { return x; }
};
void main() { C c(5); c++; cout<<c; }
Expresia c++ este:
R. Eronata, valoarea intoarsa de operatorul cast nu este 1-value.
4067. Fie clasa:
class C {
public: char x; double y;
C(char _x=' ', double _y=0.): x(_x), y(_y) { }
};
void main() { C c('a'); c=65.; }
Expresia c=65. este:
R. Corecta si atribuie valoarea 65 atributului x al obiectului c.

4068. 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:
R. Constructorului de clasa si a celui de copiere o data.
4069. Fie clasa:
class C {
public: int x; };
Functia void C(int _x=0) { x=_x; } poate constitui un constructor al clasei:
R. Nu, pentru ca la definirea constructorului nu se specifica valoarea returnata.
4070. Fie clasa:
class C {
public: int x;
void f(C c) { cout<<c.x; }
void g(const C c) { cout<<c.x; }
void h(C c) const { cout<<c.x; }
void k(const C c) const { cout<<c.x; }
};
Daca c este un obiect constant de clasa C (const C c;), care din urmatoarele apeluri
sunt corecte?
R. c.h(c); c.k(c);

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