1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość



Podobne dokumenty
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Podstawy programowania skrót z wykładów:

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Programowanie obiektowe w języku C++ dr inż. Jarosław Forenc

Język ludzki kod maszynowy

Programowanie strukturalne i obiektowe

PARADYGMATY PROGRAMOWANIA Wykład 4

ROZDZIAŁ 2. Operatory

Programowanie obiektowe - Przykładowe zadania egzaminacyjne (2005/2006)

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Programowanie obiektowe

EGZAMIN PROGRAMOWANIE II (10 czerwca 2010) pytania i odpowiedzi

Szablony klas, zastosowanie szablonów w programach

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów

Programowanie obiektowe Wykład 3. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21

DYNAMICZNE PRZYDZIELANIE PAMIECI

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU

Lab 9 Podstawy Programowania

Wstęp do programowania 1

Microsoft IT Academy kurs programowania

Wskaźniki. Informatyka

Część 4 życie programu

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Języki programowania - podstawy

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++

Tablice, funkcje - wprowadzenie

Funkcje przeciążone, konstruktory kopiujące, argumenty domyślne

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

Zmienne, stałe i operatory

Przeciążenie (przeładowanie nazw) funkcji

Język C - podstawowe informacje

Ćwiczenie 7 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

Wykład 8: klasy cz. 4

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

PROGRAMOWANIE w C prolog

1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia. Krzysztof Banaś Podstawy programowania 1

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU

ALGORYTMY I STRUKTURY DANYCH

Programowanie 2. Język C++. Wykład 3.

I - Microsoft Visual Studio C++

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji?

Na ekranie monitora zostaną wyświetlone w dwu liniach teksty Pierwsza linia Druga linia

Wykład nr 3. Temat: Wskaźniki i referencje. Edward Morgan Forster

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

KURS C/C++ WYKŁAD 7. struct Punkt { int x, y; int kolor; };

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Zaawansowane programowanie w języku C++ Klasy w C++

Pytania sprawdzające wiedzę z programowania C++

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje

Wstęp do programowania

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>

Co nie powinno być umieszczane w plikach nagłówkowych:

Techniki Programowania wskaźniki 2

Programowanie obiektowe, wykład nr 7. Przegląd typów strukturalnych - klasy i obiekty - c.d.

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Język C++ zajęcia nr 2

Programowanie w języku C++

1 Podstawy c++ w pigułce.

Podstawy programowania w języku C++

Programowanie, część I

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wprowadzenie w dziedziczenie. Klasa D dziedziczy klasę B: Klasa B klasa bazowa (base class), klasa D klasa pochodna (derived class).

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

MATERIAŁY DO ZAJĘĆ II

Podstawy Programowania Obiektowego

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Podstawowe części projektu w Javie

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

PARADYGMATY PROGRAMOWANIA Wykład 3

Słowa kluczowe i nazwy

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

Wstęp do programowania

Podstawy informatyki (3)

KURS C/C++ WYKŁAD 6. Wskaźniki

1 Podstawy c++ w pigułce.

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Automatyczne tworzenie operatora = Integer2& operator=(const Integer& prawy) { zdefiniuje. Integer::operator=(ri);

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Rzutowanie i konwersje

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

class Student Deklaracja klasy Osoba: Deklaracja klasy Student:

Automatyczne tworzenie operatora = Integer2& operator=(const Integer& prawy) {

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

Operator przypisania. Jest czym innym niż konstruktor kopiujący!

PARADYGMATY PROGRAMOWANIA Wykład 2

Transkrypt:

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