Zgodnie z zapowiedziami rozpoczynam publikowanie zadań z ostatniego quizu. Uwzględniając jednak propozycje innych nie będę robił tego w całości - tzn. udostępniając listę pytań i odpowiedzi. Co kilka dni opublikuję kilka pytań, na razie bez wskazywania poprawnych odpowiedzi (te pewnie będę dorzucał po kilku dniach). Ma to na celu zachęcenie do wspólnego rozwiązania tych zadań - nawet jeśli podczas quizu komuś się to nie udało można niezobowiązująco spróbować podejść do tego teraz, na spokojnie, a może i ze wskazówkami od innych - mam nadzieję, że sami autorzy pytań również w razie potrzeby pomogą :)
Dziś pytania z języka C i C++. Numery pytań są inne niż były w quizie - dodałem je tutaj dla ułatwienia. W przypadku problemów z danym zadaniem radzę po prostu dyskutować z innymi użytkownikami lub pytań samych autorów. Ja nie będę w stanie wyjaśnić każdego z pytań. W przypadku znalezienia jakiegoś błędu (mam nadzieję, że takowych jednak nie będzie) jak najbardziej warto go zgłosić, lecz nie będzie to już miało wpływu na wyniki quizu. Wszystkich pytań w bazie było nieco ponad 60.
Chciałbym też jeszcze raz podziękować wszystkim układającym pytania i pomagającym przy organizacji quizu oraz sponsorowi - No Fluff Jobs.
Pytania użytkownika shead:
1. [C++] Niech a, b, c - funkcje typu bool. W jakiej kolejności zostaną wykonane funkcje, przy założeniu, że:
a - zawsze zwraca true
b - zawsze zwraca false
c - zawsze zwraca true
Podaj kompletny łańcuch wywołań: [łatwe, 1 punkt]
A. a a c c b
B. a a c a c b
C. c b
D. Żaden z powyższych
2. [C++] Jaką wartość może zwrócić poniższy kod? (kompilujemy z maksymalną optymalizacją kodu) [trudne, 3 punkty]
A. 0
B. 1
C. Kod nie jest poprawny, nawet się nie skompiluje
D. Kod jest poprawny, ale zakończy się wyjątkiem
3. [C++] Jaką wartość może zwrócić poniższy kod? (kompilujemy z maksymalną optymalizacją kodu) [trudne, 3 punkty, wielokrotnego wyboru]
A. 0
B. 1
C. Kod nie jest poprawny, nawet się nie skompiluje
D. Kod jest poprawny, ale zakończy się wyjątkiem
4. [C++] Czy poniższy listing jest poprawnym kodem w sensie "czystego kodu" i dobrych praktyk? [łatwe, 1 punkt]
A. Tak
B. Nie
5. [C++] Dlaczego poniższy kod jest niepoprawny z punktu widzenia dobrych praktyk? [średnie, 2 punkty]
A. Ponieważ zmienna "a" nie ma przypisanej wartości i znajduje się w niej wartość "null"
B. Ponieważ zmienna "a" nie ma przypisanej wartości i znajduje się w niej wartość-śmieć
C. Ponieważ zmienna "a" nie ma przypisanej wartości i znajduje się w niej losowa wartość
D. Powyższy kod jest poprawny, domyślnie w zmiennej "a" znajduje się wartość "0"
Pytania użytkownika Gynvael Coldwind:
6. [C] Po ilu iteracjach poniższa pętla zakończy działanie? [średnie, 2 punkty]
A. Po 8 iteracjach.
B. Po 7 iteracjach.
C. Po 6 iteracjach.
D. Żadne z powyższych.
7. [C++] Jaka będzie wartość zmiennej "x" po wykonaniu poniższego kodu? [łatwe, 1 punkt]
int x = !!42;
A. 42
B. 0
C. 1
D. Powyższy kod nie skompiluje się
8. [C] Jaka będzie wartość zmiennej x po wykonaniu poniższego fragmentu kodu? [średnie, 2 punkty]
A. 262
B. 255
C. 6
D. 17
Pytanie użytkownika Patrycjerz:
9. [C++] Jaka dyrektywa preprocesora służy w językach C i C++ do tworzenia makra? [łatwe, 1 punkt]
A. #endif
B. #define
C. #include
D. #ifndef
Pytania użytkownika Criss:
10. [C++] Co należy podstawić za '/* ??? */' w kodzie, żeby program wypisał "yey"? [średnie, 2 punkty, wielokrotnego wyboru]
A. bez znaczenia
B. 7
C. wszystkie odpowiedzi są poprawne
D. 42
E. 15
F. można nic nie podstawić
11. [C++] Jak w C++ nazywa się mechanizm pozwalający na wykorzystywanie potencjalnych błędów kompilacji przy określaniu parametrów szablonu przez kompilator? (słowa kluczowe: metaprogramming, overload resolution) [średnie, 2 punkty]
A. SCRUM
B. SFINAE
C. AGILE
D. TDD
E. TPMD
12. [C] Do czego służy słowo kluczowe auto w języku C11? [trudne, 3 punkty]
A. Mówi kompilatorowi, żeby sam spróbował określić typ deklarowanej za pomocą auto zmiennej
B. Standard C nie definiuje takiego słowa kluczowego
C. Służy do ustanawiania sposobu przechowywania zmiennej
D. Automatycznie nadaje zadeklarowanej zmiennej wartość domyślną (brak konieczności definicji)
13. [C++] Jaką wartość będzie miała zmienna c - przyjmij, że wszystkie są zmiennymi lokalnymi? [łatwe, 1 punkt]
A. nieokreśloną
B. 1
C. 3
D. 2
14. [C] Co wypisuje poniższa funkcja: [łatwe, 1 punkt]
A. Reprezentacje binarną podanej liczby
B. Odwróconą reprezentacje binarną podanej liczby
C. Reprezentacje binarną liczby przeciwnej do podanej w kodzie U2
D. Parzyste dzielniki podanej liczby
15. [C++] Jakiego typu jest zmienna b i co wypisze program? [średnie, 2 punkty]
A. bool, 1
B. bool, 0
C. bool, false
D. bool, true
E. int, 1
F. int, 3
G. int, 0
H. int, 2
Pytania użytkownika Eryk Andrzejewski:
16. [C++] Poniższy program napisany w języku C++ skompilowano kompilatorem GCC w wersji 7.2.0 na 64 bitowej wersji systemu Linux działającej na procesorze x86.
Podaj zawartość dwóch kolejnych bajtów pamięci znajdujących się pod wypisanym przez program adresem (czyli bajt, który znajduje się bezpośrednio pod tym adresem i bajt następny): [średnie, 2 punkty]
A. 0x30 0x54
B. 0x12 0x34
C. 0x69 0x89
D. 0x96 0x98
E. 0x78 0x56
F. 0x87 0x65
17. [C] Na 64 bitowej wersji systemu NetBSD na procesorze x86 skompilowano bez optymalizacji kompilatora (za pomocą kompilatora GCC 7.2.0) i uruchomiono poniższy program napisany w języku C:
Jaki będzie wynik uruchomienia się powyższego programu, jeżeli na wejściu zostanie podany następujący ciąg znaków? thisisreallysimple [trudne, 3 punkty]
A. A
B. B
C. C
D. D
18. [C++] Od kiedy w języku C++ można stosować zapis, taki jak w warunku pętli while w poniższym kodzie? [średnie, 2 punkty]
A. Od zawsze
B. Od standardu C++98
C. Od standardu C++11
D. Będzie to możliwe od standardu C++20
19. [C++] Poniższy kod napisany w języku C++ skompilowano przy pomocy kompilatora GCC w wersji 7.2.0 z następującymi parametrami: -std=c++11 -O0
Co zostanie wypisane na wyjściu? [trudne, 3 punkty]
A. 0
B. 1
C. 2
D. 3
Zapraszam do wspólnego rozwiązywania, komentowania i dzielenia się uwagami :)
Poprawne odpowiedzi: 1. A, 2. A, 3. A,B, 4. B, 5. B, 6. D, 7. C, 8. C, 9. B, 10. D,F, 11. B, 12. C, 13. D, 14. B, 15. A, 16. E, 17. B, 18. A, 19. B.