Zkouska 27.1.2006

Uživatelský avatar
Almer
Site Admin
Příspěvky: 686
Registrován: 12. 10. 2004 10:58
Typ studia: Informatika Ph.D.
Bydliště: Mala Strana - 203
Kontaktovat uživatele:

Zkouska 27.1.2006

Příspěvek od Almer »

Takze obvykla sportka s permutaci otazek: spravne oznacene krizkem.

1.

Kód: Vybrat vše

class Base {
  public:
    vurtual Base operator+ (const Base &) const;
}

class Complex;

class Real:public Base {
  public:
    virtual Base operator+ (const Base &) const;
    virtual Real operator+ (const Real &) const;
    virtual Complex operator+ (const Complex &) const;
}

class Complex:public Base {
  public:
    virtual Base operator+ (const Base &) const;
    virtual Real operator+ (const Real &) const;
    virtual Complex operator+ (const Complex &) const;
}

Real r;
Complex c;
Base &b = r;

b = b + c
A jaky operator se zavola
A. Real::operator+ (const Base &) const [X]
B. Complex::operator+ (const Complex &) const
C. Complex::operator+ (const Base &) const
D. Complex::operator+ (const Real &) const

2.Kdy se zavola na globalni promenne konstrukor?
A. Pro globalni promenne neni povolen udelat konstruktor
B. Pri kompilaci
C. Pred vstupem do main [X]
D. Na globalni fce neni treba volat konstruktor.

3.

Kód: Vybrat vše

namespace T {
  double f(char x);
};

namespace U {
  char f(double d);
};

int f(int i);
using namespace T;
using namespace U;

char x = f('A');
A ktera fce se zavola?
A. T::f(char) [X]
B. U::f(int)
C. nelegalni volani
D. U::f(double)

4.

Kód: Vybrat vše

Class U {
    U() {a = 1}
    U(int i) {a= i + 2}
    int a
}

Class T: public U {
    T() : U(2) {}
    T(int i) {a = a + 3}
    T(T &p) {}
}

T x = U();

Jakou hodnotu bude mit x.a?
A.4
B.3[X] - teda myslim, ja dal 4 a bylo to spatne
C.5
D.1

5. Jaky by mel byt konstruktor abstraktni tridy?
A.private
B.public
C.protected[X]
D.zaden

6.

Kód: Vybrat vše

class A{
public: virtual f();}
class B{
public: virtual f();}

B b;
A a=b;
a.f(). 
A ktera fce se zavola:
A.A::f() [X]
B.B::f()
C.konstrukce vyvola vyjimku

7.

Kód: Vybrat vše


class Complex{
public:
double Re, Im;
complex(Re=0.0, Im=0.0):complex(Re, Im);
complex operator+(complex &);
}

complex complex::operator+(complex & b){
double r = Re + b.Re;
double i = Im + b.Im;
???;
}
A co se dosadi misto otazniku?
A. return complex(r,i); [X]
B. return (r,i);
C. return * new complex(r,i);
D. return new complex (r,i);

8. Ve kterych radcich to hodi chybu

Kód: Vybrat vše

f(std::vector<int> v){
1. std::vector<int>::iterator it;
2. std::find(v.begin(), v.end(), 0);
3. it = v.insert(it, -1);
4. v.insert(it+2, 1);} 
Odpoved jen ve 4, protoze muzu sahat za pole, a iterator je platny.

9. mame implementovany Stack, a metodu push

Kód: Vybrat vše

    class SStk {
    public:
    /* ... */
        void push(const std::string & s);
    private:
        std::string * p_;
        int allocated_, used_;
    };

    void SStk::push (const std::string & s) {
       if (used_ >= allocated) {
          int n2 = (allocated_ +1) * 2;
[X]     std::string * p2 = new string[n2];
          for(int i = 0; i < used_; ++i)
[X]            p_[i] = p2[i];
          delete[] p2;
          p_ = p2;
          allocated_ = n2;
       }
[X]   p_[used_] = s;
       ++used_;
    }
Kde lze vyhodit vyjimku? [radky oznacene krizkem]

10. pokud se vyskytne vyjimka co se s konzistentnim stackem stane?
A. Zanecha zasobnik v nezmenenem stavu
B. Muze zposobit ztratu (nedostupnost) alokovane pamete [X]
C. Muze zanechat zasobnik v nekonzistentnim stavu, ktery muze (pozdeji) zpusobit behovou chybu [X]

Takze asi tak...enjoy...to byla jen jedna varianta...chce to i dalsi varianty. Tak se cinte...jiank muj vysledek...nenechal jsme si to zapsat...zkopal jsme to.... :oops:
Zakládající člen klubu Ortodoxních Matfyzáků :-D

Jsem LAMER ale neumim se ani podepsat ]:-)
Uživatelský avatar
laliebijard
Matfyz(ák|ačka) level III
Příspěvky: 168
Registrován: 8. 6. 2005 10:26
Typ studia: Informatika Mgr.

Příspěvek od laliebijard »

Mna stve znamka dvojka... ale nechal som si zapisat.
jj0uDa
Matfyz(ák|ačka) level I
Příspěvky: 3
Registrován: 7. 6. 2005 11:35
Typ studia: Informatika Bc.
Kontaktovat uživatele:

Příspěvek od jj0uDa »

4.
kód:

Class U {
U() {a = 1}
U(int i) {a= i + 2}
int a
}

Class T: public U {
T() : U(2) {}
T(int i) {a = a + 3}
T(T &p) {}
}

T x = U();




Jakou hodnotu bude mit x.a?
A.4
B.3[X] - teda myslim, ja dal 4 a bylo to spatne
C.5
D.1
Takhle by to asi vubec nefungovalo (neexistuje implicitni konverze objektu predka na objekt potomka, na coz byla v moji variante jedna z otazek primo zamerena), bylo tam neco jako

Kód: Vybrat vše

Class U { 
    U() {a = 1} 
    U(int i) {a= i + 2} 
    int a;
} 

Class T: public U { 
    T() : U(2) {} 
    T(int i) {a = a + 3} 
    T(const U &p) : U(p.a) {} 
} 

T x = U(); 
Zduvodneni, aspon jak jsem to pochopil, je asi takove: zalozi se objekt tridy U uzitim bezparametrickyho konstruktoru (tj. a = 1), no a pak se zavola konverzni konstruktor tridy T z objektu tridy U, jeho volanim je tedy x.a = 3, coz je spravna odpoved.
Uživatelský avatar
Almer
Site Admin
Příspěvky: 686
Registrován: 12. 10. 2004 10:58
Typ studia: Informatika Ph.D.
Bydliště: Mala Strana - 203
Kontaktovat uživatele:

Příspěvek od Almer »

No asi tak nejak...a proto sem tam udelal tu chybu....v tom to bude...ja udelal, konstruktro U() a pak bezparamtricky konstruktor T() ktedy mi zavolal U(2) .... chyba lavky:)))))
Zakládající člen klubu Ortodoxních Matfyzáků :-D

Jsem LAMER ale neumim se ani podepsat ]:-)
qk_

Příspěvek od qk_ »

no kazdej ma trochu jiny zadani, ale v podstate porad ta stejna permutace ;)

jo a jeste perlicka, kdyz to mate bez chyby Bednarek na vas vyznamne koukne a rekne ze si vas bude pamatovat (no v ty chvili sem si rikal, jestli sem tam nemel aspon jednu chybu naschval udelat :roll: )

jinak jj0uDa ma pravdu, mel sem podobnej priklad. Ale Almer mel trochu jiny zadani, protoze stal ve fronte predemnou a kdyz sem videl ze neuznal jeho trojku, tak sem si rikal, kde sem udelal chybu, ale v moji verzi byla 3 spravne. takze mel asi jen trochu jinak dany fce.
Uživatelský avatar
matoman
Matfyz(ák|ačka) level III
Příspěvky: 105
Registrován: 8. 1. 2005 20:12
Typ studia: Informatika Bc.
Kontaktovat uživatele:

Příspěvek od matoman »

laliebijard píše:Mna stve znamka dvojka... ale nechal som si zapisat.
da sa nezapisat znamka, ale to mas potom jeden neuspesny pokus, ci sa da vyjednat tak aby sa to nikde nezapisalo?
gASK
Admin(ka) level I
Příspěvky: 635
Registrován: 9. 6. 2005 12:33
Typ studia: Informatika Mgr.
Bydliště: Konečně Vinohrady:)
Kontaktovat uživatele:

Příspěvek od gASK »

matoman píše:
laliebijard píše:Mna stve znamka dvojka... ale nechal som si zapisat.
da sa nezapisat znamka, ale to mas potom jeden neuspesny pokus, ci sa da vyjednat tak aby sa to nikde nezapisalo?
Záleží na konkrétním "zkoušejícím". Loni jsem viděl takové, co zapisujou vždy, takové, co pokud chceš, tak se budou tvářit, žes tam nebyl i takové, co nezapisovali ani čtyřky. :twisted:
Uživatelský avatar
Almer
Site Admin
Příspěvky: 686
Registrován: 12. 10. 2004 10:58
Typ studia: Informatika Ph.D.
Bydliště: Mala Strana - 203
Kontaktovat uživatele:

Příspěvek od Almer »

Mi znamku, prestoze sem ho zadal o 4 zapsal....ale psal jsem Bednarkovi a mam pocit, ze by nemel byt problem s tim, ze si ji necham dat..a prijdu si priste.
Zakládající člen klubu Ortodoxních Matfyzáků :-D

Jsem LAMER ale neumim se ani podepsat ]:-)
Odpovědět

Zpět na „2005“