Fiszki

EGZAMIN INŻYNIERSKI - sieci, elektronika, obrazy, programowanie

Test w formie fiszek
Ilość pytań: 84 Rozwiązywany: 2949 razy
Załadowanie biblioteki dynamicznej podczas wykonania programu wykonuje się funkcją ?
dllopen( "./libtest.so.1.0" )
dlsym("./libtest.so.1.0" );
dlload("./libtest.so.1.0" )
dlopen("./libtest.so.1.0" )
dlopen("./libtest.so.1.0" )
Aby nie wykonywać optymalizacji kodu kompilatorem gcc należy użyć opcji
-O0
-Os
-O3
-O
-O0
Poziom optymalizacji, w którym kompilator będzie próbował zwiększyć wydajność kodu za cenę jego rozmiaru oraz czasu kompilacji
domyślny
Poziom pierwszy (-O1)
Poziom trzeci (-O3)
Poziom 2 (-O2)
Poziom trzeci (-O3)
Kompilator GCC przeprowadza najpierw:?
optymalizację określoną przez użytkownika, optymalizację kodu pod konkretny procesor lub nawet model procesora a potem niezależną od architektury
optymalizację zależną, a następnie niezależną od architektury
optymalizację niezależną od architektury, a następnie,jeśli użytkownik sobie tego zażyczy, optymalizację kodu pod konkretny procesor lub nawet model procesora
optymalizację niezależną od architektury, a następnie zależną od architektury
optymalizację niezależną od architektury, a następnie,jeśli użytkownik sobie tego zażyczy, optymalizację kodu pod konkretny procesor lub nawet model procesora
Dany jest fragment kodu class K { double D; }; int main() { /*1*/ double K::* wd; /*2*/ wd = & K::D; } Jak zareaguje kompilator języka C++ przetwarzając kod z linii oznaczonych /*1*/ i /*2*/?
Kod jest całkowicie poprawny
Stwierdzi błąd w linii /*2*/: nie można znaleźć adresu pola, bez podania instancji klasy K
Stwierdzi błąd składni w linii /*1*/ (niepoprawna konstrukcja).
Uzna obie linie za poprawne składniowo, ale zgłosi błąd związany z naruszeniem reguł dostępu
Uzna obie linie za poprawne składniowo, ale zgłosi błąd związany z naruszeniem reguł dostępu
Dany jest fragment kodu class K { public: double D; }; int main ( ){ /*1*/ double K::* wd; /*2*/ wd = NULL; } Jak zareaguje kompilator języka C++ przetwarzając kod z linii oznaczonych /*1*/ i /*2*/?
Stwierdzi błąd składni w linii (niepoprawna konstrukcja)
Zaakceptuje linię /*1*/ ale w linii /*2*/ odmówi przypisania wskaźnikowi do składowej wartości NULL
Uzna obie linie za poprawne składniowo, ale zgłosi błąd związany z naruszeniem reguł dostępu
Kod jest całkowicie poprawny
Kod jest całkowicie poprawny
Dany jest fragment kodu class K { public : double D; }; int main() { K obj; /*1*/ double K::* wd = & K::D; /*2*/ obj-&rt;*wd = 3.1415; } Czy można wykonać operację z linii oznaczonej jako /*2*/? Jeżeli tak, to jaka jest jej semantyka?
Wartość pola D w obiekcie obj zostanie ustawiona na 3.1415.
Program da się skompilować, ale operacja z linii /*1*/ uniemożliwi przejście do linii /*2*/.
W linii /*1*/ jest błąd składni, uniemożliwiający kompilację
W linii /*2*/ jest błąd składni, uniemożliwiający kompilację
W linii /*2*/ jest błąd składni, uniemożliwiający kompilację
Zadaniem konstruktora jest
zintegrowanie obiektu z wywołaniami systemu operacyjnego
nadanie wartości polom obiektu
przydzielenie pamięci dla obiektu
logiczne powiązanie metod i pól
nadanie wartości polom obiektu
Z definicją... klasy _nie_ wiąże się
definiowanie rozmiarów i wewnętrznej struktury obiektów
określenie wartości pól statycznych
opis interakcji obiektów danej klasy z otoczeniem
zdefiniowanie nowego typu danych
opis interakcji obiektów danej klasy z otoczeniem
Uruchomienie destruktora na rzecz danego obiektu powoduje
zwolnienie pamięci zajmowanej przez ten obiekt
usunięcie informacji o obiekcie z globalnego rejestru obiektów
wyczyszczenie obszaru danych zajmowanych przez ten obiekt
wykonanie procedury zdefiniowanej pod stosowną nazwą
wyczyszczenie obszaru danych zajmowanych przez ten obiekt
Dane są następujące definicje klas i obiektu class B { protecetd : Complex val; }; class P : private B { public : double val; }; P Obj; W obiekcie Obj zmiana zawartości składowej val, odziedziczonego po klasie B (czyli będącej typu Complex) jest:
możliwa, jeżeli użyje się operatora zakresu (tj. '::')
niemożliwa, ze względu na zakres 'protected'
możliwa, jeżeli tylko użyje się wartości odpowiedniego typu (czyli Complex),
niemożliwa ze względu na dziedziczenie typu 'private'
niemożliwa, ze względu na zakres 'protected'
W języku C++ dziedzicznie _nie_ obejmuje
operatora przypisania
wszystkich wymienionych w punktach a-c
składowych o zakresie dostępności 'private'
składowych niestatycznych
operatora przypisania
Niech klasa K dziedziczy po klasie SuperK, a Obj jest obiektem typu K. Wywołanie destruktora obiektu Obj w pierwszej kolejnobci wykona:
zwolnienie pamięci
wywołanie destruktorów dla poszczególnych składowych odziedziczonych po klasie SuperK
wywołanie poszczególnych destruktorów dla statycznych składowych własnych (nieodziedziczonych)
wywołanie poszczególnych destruktorów dla niestatycznych składowych własnych (nieodziedziczonych)
wywołanie poszczególnych destruktorów dla niestatycznych składowych własnych (nieodziedziczonych)
Dane są deklaracje metod klasy K. Która z nich jest konstruktorem konwertującym?
K( int, float = 0);
K( );
float operator();
K( const K & );
K( int, float = 0);
Który z poniższych konstruktorów _nie_ jest konstruktorem konwertującym?
J( int, float = 0);
L( int = 0, int = 0 );
I( float );
K( );
K( );
Potrzebna jest konwersja z klasy K na klasę Complex. Która z poniższych deklaracji jest poprawną deklaracją operatora konwersji? (Deklaracje dotyczą metod klasy K).
Complex operator ();
Complex operator ( K & );
operator Complex ( K );
operator Complex ();
operator Complex ();
Czy kompilator C++ generuje automatycznie operatory dla nowych typów danych?
Tak, każdy operator posiada swoją wersję domyślną.
Nie, poza pięcioma operatorami, w tym: =, &, delete.
Nie, każdy potrzebny operator musi był zdefiniowany.
Tak, ale tylko operatory: =, (), [], -&rt;.
Nie, poza pięcioma operatorami, w tym: =, &, delete.
Które z wymienionych operatorów muszą być definiowane jako metody (funkcje wewnętrzne klasy)?
operator []
operator !
operator +
operator char *
operator []
Która z poniższych deklaracji jest niepoprawna. (Poniższe operatory są definiowane jako funkcje globalne.) class K;
K operator -- ( const K &, const K & );
K operator -- ( const K );
K operator - ( const K, const K );
K operator - ( const K & );
K operator -- ( const K &, const K & );
Klasą abstrakcyjną jest klasa, która
wszystkie metody wirtualne ma zadeklarowane jako czysto wirtualne
posiada przynajmniej jedną metodę czysto wirtualną
zawiera wyłącznie metody wirtualne
zawiera przynajmniej jedną metodę wirtualną
posiada przynajmniej jedną metodę czysto wirtualną

Powiązane tematy

Inne tryby