1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float *a, **b = a; c) float a, **b = *a; d) float a, **b *=&a; 3. Instrukcja wielowariantowego wyboru to a) instrukcja switch b) instrukcja if c) instrukcja case d) instrukcja select 4. extern int (&i)[10]; Obok zadeklarowano: a) referencję do tablicy 10 liczb całkowitych b) tablice 10 wskaźnikó do liczb całkowitych c) wskaźnik do tablicy 10 liczb całkowitych d) wskaźnik do tablicy 10 wskaźników do liczb całkowitych 5. Która z podanych definicji jest poprawna: a) double alfa = 12.0 b) float break = 2; c) double Double = 3.14; d) double *2_wsk; 6. Jeżeli zadeklarowano obiekt char a; int b; a następnie użyto ich jako parametry aktualne fun(a, b); to, która z wersji tej funkcji przeciążonej zostanie wywołana: a) void fun(long double, int); b) void fun(double, int); c) void fun(int, long); d) void fun(int, int);
7. Korzystając z poniższych struktur opisujących ogród zoologiczny struct Data { int d, m, rok; }; struct Zwierze {char gatunek[30]; char imie[30]; int klatka; Data urodz; }; struct OgrodZool { int l_zwierząt; Zwierze zwierzeta[50]; }; OgrodZool* zoo = new OgrodZool; Jak można odwołać się do roku urodzenia pierwszego zwierzęcia? a) zoo zwierzeta[0] urodz. rok b) zoo. zwierzeta[0] urodz. rok c) zoo zwierzeta[0]. urodz. rok d) zoo. zwierzeta[0]. urodz rok 8. Jakie wartośći będzie zawierać tablica a po wykonaniu instrukcji float a[5] = {1, 2, 3, 4, 5}; float* p = a; p = p + 4; *p = 11; a) 1 11 3 4 5 b) 1 2 3 4 11 c) 5 2 3 4 5 d) 11 2 3 4 5 9. Rozmiar zmiennej typu int wynosi: a) dwa lub trzy słowa b) pół słowa c) jedno słowo d) jedno lub dwa słowa 10. Która z definicji jest błędna: a) char c = z ; b) char c = \\ ; c) char c = ab ; d) char c = \n ; 11. Instrukcja void nnu(double, *int); to a) błąd składniowy b) definicja funkcji pobierającej dwa argumenty (pierwszy typu double, drugi typu int) c) deklaracja funkcji pobierającej dwa argumenty (pierwszy typu double, drugi typu int) oraz zwracająca wskaźnik do wartości void d) deklaracja wskaźnika do funkcji pobierającej dwa argumenty 9pierwszy typu double, drugi typu int) oraz zwracająca wartość woid
12. Jaka będzie wartość zwrócona przez funkcję w wywołaniu wiekszy( bcde, azds ) dla funkcji zdefiniowane poniżej: bool wiekszy(char c1, char c2) { return c1 > c2; } int wiekszy(const char* s1, const char* s2) { for (int i = 0; i < strlen(s1) && i < strlen(s2); i++) if (wiekszy(s1[i], s2[i])) return 1; return 0; } a) 1 b) 3 c) -1 d) 0 13. Poniżej zdefiniowano struct { double a, b;} T; a) obiekt nieznanego typu strukturalnego b) strukturę o nazwie T c) nic nie zdefiniowano błąd składni d) zdefiniowano funkcję pobierającą dwa argumenty typu double 14. Jeżeli zadeklarowano obiekt char a; bool b; a następnie użyto ich jako parametry aktualne fun(a, b); to, która z wersji tej funkcji przeciążonej zostanie wywołana: a) void fun(int, long); b) void fun(int, int); c) void fun(double, int); d) void fun(long, int); 15. Pamięć dla dynamicznej tablicy 10 liczb całkowitych można przydzielić za pomocą: a) int *t = new 10; b) int *t = new int; c) int *t = new int(10); d) int *t = new int[10]; 16. Słowem kluczowym w języku c++ nie jest: a) goto b) For c) while d) case 17. Ochorna obiektu przed zbyt intensywną optymalizacją kodu operującego na tym obiekcie wymaga użycia modyfikatora: a) volatile b) static c) const d) register
18. Poprawna definicja wskaźnika to: a) const char *a = kota, *b = a + 1; b) float a, **b = *a; c) double *a, b = a; d) int a, &b = *a; 19. extern int* (&i)[10]; Obok zadeklarowano: a) wskaźnik do tablicy 10 liczb całkowitych b) referencję do tablicy 10 wskaźników do liczb całkowitych c) tablice 10 wskaźnikó do liczb całkowitych d) wskaźnik do tablicy 10 wskaźników do liczb całkowitych 20. Rozmiar zmiennej typu logicznego bool wynosi: a) jeden bajt b) jeden lub dwa bajty c) jeden lub dwa bity d) słowo 21. Instrukcja double *nun(double, long); to a) błąd składniowy b) deklaracja funkcji pobierającej dwa argumenty (pierwszy typu double, drugi typu long) oraz zwracająca wskaźnik do wartości double c) deklaracja wskaźnika do funkcji pobierającej dwa argumenty (pierwszy typu double, drugi typu long) oraz zwracająca wartości double d) definicja funkcji pobierającej dwa argumenty (pierwszy typu double, drugi typu long) oraz zwracająca wskaźnik do wartości double 22. Poinformowanie kompilatora, że typ i identyfikator obiektu są znane, ale bez przydzielenia obiektow związanego z nim obszaru pamięci to: a) indetyfikacja obiektu b) deklaracja obiektu c) typ obiektu d) definicja obiektu 23. Który fragment zawiera błędy: a) float x; float* r = &x; b) float x; float* r; r = &x; c) float x; float& r=x d) float x; float& r; r=x; 24. extern double& const eps; Obok zadeklarowano: a) stały wskaźnik do liczby zmiennopozycyjnej podwójnej precyzji b) stały wskaźnik do stałej liczby zmiennopozycyjnej podwójnej precyzji c) deklaracja jest niedopuszczalna d) referencje do stałej liczby zmiennopozycyjnej podwójnej precyzji
25. Poprawna definicja wskaźnika to: a) double a, *b = a; b) float *a, **b = &a; c) int a, *b = a; d) const char *a = psa, &b = a[1]; 26. Który fragment zawiera błędy: a) double x = 5; int* i = &x *i = 3; b) double x = 5; int i = (int)x; c) double x = 5; int* i = new int; *i = (int)x; d) double x = 5; int i; i = (int)x; 27. Co wyświetli poniższy fragment programu: int i = 0; do { cout << i << ; i++ } while (i < 5); a) 0 1 2 3 4 5 b) 0 1 2 3 4 c) nic d) 1 2 3 4 5 28. Jeżeli zadeklarowano obiekt float a; int b; a następnie użyto ich jako parametry aktualne fun(a, b); to, która z wersji tej funkcji przeciążonej zostanie wywołana: a) void fun(int, int); b) void fun(int, long ); c) void fun(double, int); d) void fun(long double, int ); 29. Jaki będzie wynik wywołania lit( B ) i lit( b ) dla poniższej funkcji: char lit(char c) { return A <= c && c <= Z? c : A + c a ; } a) b i B b) B i B c) B i b d) b i b 30. Literał całkowity domyślnie jest typu: a) signed int b) unsigned char c) signed long d) unsigned int
31. Ustawienie obiektu jako niemodyfikowalnego tak, aby mógł być używany jedynie jako p- wartość wymaga użycia modyfikatora: a) static b) register c) const d) volatile 32. Poprawna definicja wskaźnika to: a) double *a = 0, b = 0; b) float *a = 0, **b = &a; c) char *a = 0, *b = 1; d) int a = 1, &b = a; 33. double* const eps; Obok zadeklarowoano: a) wskaźnik do stałej liczby zmiennopozycyjnej podwójnej precycji b) stały wskaźnik do stałej liczby zmiennopozycyjnej podwójnej precyzji c) taka deklaracja nie jest dopuszczalna d) stały wskaźnik do liczby zmiennopozycyjnej podwójnej precyzji 34. Literał zmiennopozycyjny domyślnie jest typu: a) float b) double c) long double d) long float 35. Jaki będzie wynik wywołania lit( B ) i lit ( b ) dla poniższej funkcji: char lit(char c) { return a <= c && c <= z? c : a + c A ; } } a) b i b b) b i B c) B i B d) B i b 36. Która z linii poniżej to definicja: A: exterin int n; B: double sinus(double); C: int licznik; D: double tangens (double x) { return sin(x) / cos(x); } a) A, B b) A, C c) wszystkie d) C, D
37. W lini char* wsk = new char[100]; a) przydzielono pamięć dla jednego elementu typu char i zainiconowano go wartością 100 b) przydzielono pamięć dla tablicy stu elementów typu char i zainiconowano je wartością 100 c) przydzielono pamięć dla tablicy 100 elementów typu char d) przydzielono pamięć dla 100 wskaźników typu char* 38. Jeżeli zadeklarowano obiekty int a[2]; short b; a następnie użyto je jako parametry aktualne funkcji fun(a, b); to, która z wersji tej funkcji przeciążonej zostanie wywołana: a) void fun(int, short); b) void fun(long*, short); c) void fun(int*, int); d) void fun(int*, long); 39. W wyniku posłużenia się derektywą preprocesora #include <iostream> a) dołączono do pliku z tekstem programu plik nagłówkowy iostream b) dołączono do pliku z tekstem programu bibliotekę iostream c) derektywa ta spowodowała żadnych działań d) cała derektywa jest niepoprawna kompilator zgłosił błąd składniowy 40. Co wyświetli poniższy fragment programu int nr = 2; switch (nr) { case 0; cout << a ; case 1; cout << b ; case 2; cout << c ; case 3; cout << d ; default: cout << e ; } a) c b) abed c) cde d) abcde 41. Instrukcja int * unn(int, int); to a) deklaracja wskaźnika do funkcji pobierającej dwa argumenty int oraz zwracającej wartość int b) definicja dwuelementowej tablicy liczb typu int c) deklaracja funkcji pobierającej dwa argumenty int oraz zwracającej wskaźnik do wartości int d) błąd składniowy
42. Jakie wartości będzie zawierać tablica t po wykonaniu instrukcji: int t[5] = {1, 2, 3, 4, 5}; int* p = t; p = p + 2; *p = 10; a) 10 2 3 4 5 b) 1 2 10 4 5 c) 3 2 3 4 5 d) 1 10 3 4 5 43. Która z podanych definicji jest niepoprawna: a) float Float; b) int struct; c) double*** wsk; d) long double alfa; 44. Jeżeli zadeklarowano obiekt int[a]; int b; a następnie użyto ich jako parametry aktualne fun(a, b); to, która z wersji tej funkcji przeciążonej zostanie wywołana: a) nie można wybrać najżywotniejszej b) void fun(double, int ); c) void fun(long*, int); d) void fun(int*, long ); 45. Jeśli wsk wskazuje na tablicę dynamiczną to zwolnienie pamięci dla tej tablicy realizuje się za pomocą: a) delete &wsk; b) delete *wsk; c) delete wsk; d) delete[] wsk; 46. Tablice w języku C++ są indeksowane od: a) 0 b) wartości żądanej od programisty c) 1 d) -1 47. Określenie rozmiaru i rozmieszczenie danych w pamięci, określenie zakresu dopuszczalnych danych oraz określenie operacji, jakie można wykonać na tych danych to: a) deklaracja obiektu b) definicja obiektu c) identyfikator obiektu d) typ obiektu 48. Poprawna definicja wskaźnika b to: a) int *a, *b = a; b) const char *a = ma, &b = a +1; c) double a, b* = a; d) float a, **b *= { a };
49. const double* eps; Obok zadeklarowano: a) stały wskaźnik do stałej liczby zmiennopozycyjnej podwójnej precyzji b) wskaźnik do stałej liczby zmiennopozycyjnej podwójnej precyzji c) taka deklaracja jest niedopuszczalna d) stały wskaźnik do liczby zmiennopozycyjnej podwójnej precyzji 50. Rozmiar zmiennej typu short wynosi: a) jedno lub dwa słowa b) pół słowa c) dwa lub trzy słowa d) jedno słowo 51. Ustawienie obiektu lokalnego tak, by pozostawał w pamięci przez cały czas wykonania programu wymaga użycia modyfikatora: a) const b) register c) static d) volatile 52. Poprawna definicja wskaźnika b to: a) double *a = 0, *b = 0; b) char 8a = 0, *b = 1; c) int a= 1, b = 0; d) float *a = 0, **b = *a; 53. extern const double& eps; Obok zadeklarowano: a) referencje do stałej liczby zmiennopozycyjnej podwójnej precyzji b) stały wskaźnik do stałej liczby zmiennopozycyjnej podwójnej precyzji c) stały wskaźnik do liczby zmiennopozycyjnej podwójnej precyzji d) taka deklaracja jest niedopuszczalna 54. Zmienna typu signed char może przyjmować wartości: a) od -127 do 128 b) od -128 do 127 c) od -128 do 128 d) od -127 do 127
55. Jaka będzie wartość zwrócona przez funkcję w wywołaniu mniejszy( bcde, azds ) dla funkcji zdefiniowane poniżej: bool mniejszy(char c1, char c2) { return c1 < c2; } int mniejszy(const char* s1, const char* s2) { for (int i = 0; i < strlen(s1) && i < strlen(s2); i++) if (wiekszy(s1[i], s2[i])) return 1; return 0; } a) 0 b) 2 c) 1 d) nic 56. Który fragment zawiera błędy: a) float x = 5; double y = x; b) float x = 5; double* y = new double; *y = x; c) float x = 5; double y; y = x; d) float x = 5; double* y = &x; *y = 3; 57. Jeżeli zadeklarowano obiekt float a; bool b; a następnie użyto ich jako parametry aktualne fun(a, b); to, która z wersji tej funkcji przeciążonej zostanie wywołana: a) void fun(double, int); b) void fun(long double, int); c) void fun(int, int); d) void fun(int, long); 58. Który fragment programu zawiera błędy: a) int* wsk = new int; int i = 2; *wsk = 10; delete wsk; b) int* wsk; int i = 2; wsk = &i; c) int** wsk; int i = 2; wsk = &i; d) int** wsk; int i = 2; *wsk=&i; 59. Poniżej zefiniowano struct { double a, b; } T; a) strukturę o nazwie T b) obiekt nienazwanego typu strukturalnego c) nic nie zdefioniowano błąd składni d) zdefiniowano funkcję pobierającą dwa argumenty typu double
60. Instrukcja double *nnu(doube, int); to a) deklaracja wskaźnika do funkcji pobierającej dwa argumenty (pierwszy typu double, drugi typu int) oraz zwracająca wartość double b) błąd składniowy c) definicja funkcji pobierającej dwa argumenty (pierwszy typu double, drugi typu int) oraz zwracająca wskaźnik do wartości double d) deklaracja funkcji pobierającej dwa argumenty (pierwszy typu double, drugi typu int) oraz zwracającej wskażnik do wartości double 61. Kolejność wywoływania konstruktorów klas zależy od: a) dobierana jest automatycznie podczas wykonania programu b) kolejności deklaracji w definicji klasy c) kolejności instrukcji przypisania w treści konstruktora klasy d) kolejności umieszczenia na liści inicjowania składowych konstruktora klasy 62. Dla obiektu p klasy class Punkt { public: float x, y, z; static float x0, y0, z0; }; które przypisanie zmiennej statycznej do niestatycznej jest prawidłowe: a) p r = Punkt. x0; b) p. x = ::x0; c) p. x = Punkt::x0; d) p. x = Punkt:x0; 63. Poniższa definicja zmiennych p i r typu Punkt class Punkt { public: Punkt(float x = 0, float y = 0); Punkt(); }; Punkt p, r(1, 4); a) jest błędna, ponieważ 1 i 4 są typu int, a powinny być typu float b) jest błędna, ponieważ w jednej linii nie można deklarować kilku zmiennych c) jest błędna z powodu braku konstruktora domyślnego d) jest prawidłowa