c

 0    190 Datenblatt    choroszcza17
mp3 downloaden Drucken spielen überprüfen
 
Frage język polski Antworten język polski
Która cecha najlepiej opisuje filozofię projektową języka C?
Lernen beginnen
Duża kontrola nad sprzętem i pamięcią, „C ufa programiście”
W jakich obszarach język C jest szczególnie istotny?
Lernen beginnen
Systemy operacyjne, sterowniki, embedded oraz HPC
Która wersja języka C była pierwszym oficjalnym standardem ISO/ANSI?
Lernen beginnen
ANSI C (C89)
Dlaczego Dennis Ritchie stworzył język C?
Lernen beginnen
aby przepisać system UNIX z asemblera na język bardziej przenośny i czytelny
Które stwierdzenie najlepiej wyjaśnia, dlaczego C uznawany jest za język przenośny?
Lernen beginnen
ponieważ ten sam kod źródłowy można kompilować na wielu platformach dzięki abstrakcyjnej maszynie C
Co najlepiej opisuje język programowania według prezentacji?
Lernen beginnen
Formalny system zapisu algorytmów i struktur danych zrozumiały dla komputera, Most między myśleniem człowieka a wykonaniem przez maszynę
Które poziomy języków programowania zostały wyróżnione?
Lernen beginnen
Język maszynowy, Assembler, Język wysokiego poziomu
Co jest cechą języków wysokiego poziomu?
Lernen beginnen
Abstrakcja od szczegółów sprzętowych, Czytelność kodu, Przenośność między platformami
Które języki są zwykle interpretowane?
Lernen beginnen
Python, JavaScript
Jakie etapy obejmuje praca kompilatora i linkera?
Lernen beginnen
Analiza leksykalna, Parsowanie, Optymalizacja, Linkowanie
Co oznacza paradygmat programowania?
Lernen beginnen
Zbiór zasad i wzorców tworzenia programów, Sposób organizacji i dekompozycji problemów, Model myślenia o danych i przepływie sterowania
Które paradygmaty należą do głównych klasyfikacji?
Lernen beginnen
Imperatywny, Deklaratywny, Obiektowy, Funkcyjny
Czym charakteryzuje się paradygmat deklaratywny?
Lernen beginnen
Opisuje co osiągnąć, a nie jak. Ukryta kontrola przepływu
Dlaczego warto znać wiele paradygmatów?
Lernen beginnen
Lepsze dopasowanie narzędzia do problemu. Szersze spojrzenie na projektowanie rozwiązań. Łatwiejsza współpraca w zespołach
Które języki są przykładami języków wieloparadygmatowych?
Lernen beginnen
Python. JavaScript. Scala
Które osoby są bezpośrednio związane z powstaniem języka C?
Lernen beginnen
Dennis Ritchie. Ken Thompson
Jakie były główne cele stworzenia języka C?
Lernen beginnen
Umożliwienie przenośnego tworzenia systemów operacyjnych. Zastąpienie asemblera językiem bardziej czytelnym
Które stwierdzenia opisują symbiozę C i UNIX-a?
Lernen beginnen
UNIX wymagał przenośnego języka. C zapewnił abstrakcję i kontrolę nad sprzętem. UNIX został przepisany w C
Które standardy języka C są wymienione w historii standaryzacji?
Lernen beginnen
ANSI C (C89). C99. C11. C23
Jakie języki powstały lub były silnie inspirowane językiem C?
Lernen beginnen
C++. Java. Rust. Python
W jakich obszarach C jest szczególnie istotny?
Lernen beginnen
Systemy operacyjne. Mikrokontrolery i IoT. HPC i obliczenia naukowe
Które cechy należą do filozofii języka C?
Lernen beginnen
Prostota. Pełna kontrola nad pamięcią. Wysoka wydajność
Co oznacza niskopoziomowa kontrola w C?
Lernen beginnen
Możliwość operowania wskaźnikami. Bezpośredni dostęp do adresów pamięci. Możliwość manipulacji bajtami
Dlaczego C jest uznawany za język deterministyczny?
Lernen beginnen
Brak garbage collectora. Statyczne typowanie. Przewidywalny czas wykonania
Co zwiększa przenośność kodu w C?
Lernen beginnen
Abstrakcyjna maszyna C. Biblioteka standardowa. Dostępność kompilatorów na wielu platformach
Które elementy należą do typowej struktury programu C?
Lernen beginnen
Dyrektywy preprocesora. Deklaracje globalne. Funkcja main()
Które typy należą do podstawowych w C?
Lernen beginnen
int. char. float
Jakie operatory służą do pracy ze wskaźnikami?
Lernen beginnen
& (operator adresu). * (operator dereferencji)
Jakie etapy obejmuje proces kompilacji programu w C?
Lernen beginnen
Preprocesor. Kompilator. Assembler. Linker
Dlaczego język C jest uznawany za fundament współczesnej informatyki?
Lernen beginnen
Jądra systemów operacyjnych są w nim napisane. Stanowi podstawę wielu innych języków. Zapewnia wysoką wydajność i kontrolę
Co w praktyce oznacza zasada „zero-cost abstractions” w C++?
Lernen beginnen
że abstrakcje, jeśli są poprawnie użyte, mogą zostać całkowicie zoptymalizowane przez kompilator i nie generować dodatkowego kosztu względem kodu niskopoziomowego
Który zestaw kosztów jest bezpośrednio związany z użyciem funkcji wirtualnych w C++?
Lernen beginnen
dodatkowy wskaźnik vptr w obiekcie, pośredni skok przy wywołaniu oraz utrudnione optymalizacje (np. inline)
Dlaczego określenie C++ jako języka „wieloparadygmatowego” ma istotne znaczenie praktyczne, a nie wyłącznie teoretyczne?
Lernen beginnen
Ponieważ programista może świadomie dobierać paradygmat (proceduralny, obiektowy, generyczny, funkcyjny) do charakteru problemu, kontrolując jednocześnie koszty wykonania i model pamięci
Jaki jest kluczowy efekt wprowadzenia semantyki przenoszenia w C++11?
Lernen beginnen
Redukcja kosztu operacji na obiektach posiadających zasoby z O(n) do O(1) poprzez transfer własności zamiast kopiowania
Dlaczego przypisanie obiektu klasy pochodnej do obiektu klasy bazowej przez wartość jest uznawane za błąd projektowy?
Lernen beginnen
Ponieważ prowadzi do utraty części obiektu (slicing) i uniemożliwia poprawne działanie polimorfizmu
Jaki jest główny cel reguły zera (Rule of Zero) w nowoczesnym C++?
Lernen beginnen
Unikanie ręcznego zarządzania zasobami poprzez delegowanie odpowiedzialności do obiektów RAII, co eliminuje potrzebę implementacji destruktorów i konstruktorów kopiujących/przenoszących
Dlaczego referencje w C++ są uznawane za bezpieczniejszą abstrakcję niż wskaźniki, mimo że sprzętowo są realizowane podobnie?
Lernen beginnen
Ponieważ nie mogą być puste ani ponownie przypisane po inicjalizacji, co eliminuje całą klasę błędów logicznych bez dodatkowego kosztu wykonania
Co odróżnia RAII w C++ od manualnego zarządzania zasobami znanego z języka C w kontekście przewidywalności wykonania?
Lernen beginnen
powiązanie czasu życia zasobu z czasem życia obiektu gwarantuje deterministyczne zwalnianie zasobów przy opuszczaniu zakresu, także w obecności wyjątków
Które cechy zostały wprowadzone lub rozszerzone w standardzie C99?
Lernen beginnen
Możliwość deklarowania zmiennych w dowolnym miejscu bloku. Komentarze jednoliniowe //. Nagłówek <stdint. h> z typami o stałej szerokości
Które modele danych są poprawnie sparowane z rozmiarami typów?
Lernen beginnen
ILP32 → int, long, pointer = 32 bity. LP64 → long i pointer = 64 bity, int = 32 bity... LLP64 → long long i pointer = 64 bity, int i long = 32 bity
Które elementy wchodzą w skład minimalnej struktury programu w C?
Lernen beginnen
Dyrektywy preprocesora. Funkcja main(). Wartość zwrotna programu (exit code)
Które z poniższych są tokenami według procesu tokenizacji?
Lernen beginnen
Identyfikatory. Słowa kluczowe. Literały.
Które stwierdzenia o komentarzach w C są prawdziwe?
Lernen beginnen
Komentarze blokowe nie mogą być zagnieżdżane - Komentarze // wprowadzono w C99 - Komentarze wieloliniowe zaczynają się od /*
Które instrukcje są poprawnymi instrukcjami w C?
Lernen beginnen
Instrukcja zakończona średnikiem - Blok w {} - Pusty średnik;
Które typy zmiennych zachowują wartość między wywołaniami funkcji?
Lernen beginnen
Zmienne statyczne - Zmienne globalne
Jakie znaczenie mają kwalifikatory const i volatile?
Lernen beginnen
const zabrania modyfikacji wartości - volatile informuje o możliwych zmianach spoza programu
Które typy zapewniają dokładną szerokość bitową?
Lernen beginnen
int32_t - uint64_t
Które stwierdzenia o Two’s Complement są prawdziwe?
Lernen beginnen
Najstarszy bit jest bitem znaku - Negacja = inwersja bitów + 1 - Zakres: −2^(N−1) do 2^(N−1)−1
Które dotyczą liczb zmiennoprzecinkowych IEEE-754?
Lernen beginnen
float ma 32 bity - double ma 52 bity mantysy - Porównywanie przez == jest niebezpieczne
Które stwierdzenia o wyrównaniu danych są prawdziwe?
Lernen beginnen
Struktury są wyrównywane do największego elementu - Padding jest dodawany automatycznie - Operator sizeof zwraca rozmiar w bajtach
Jak realizowany jest typ logiczny w C99?
Lernen beginnen
Typ _Bool - Makra true i false z <stdbool. h>
Które operatory są bitowe?
Lernen beginnen
& - | - ^ - ~
Które błędy są typowe w instrukcji if?
Lernen beginnen
Użycie = zamiast ==. Średnik po warunku. Brak klamer
Które stwierdzenia o pętlach są prawdziwe?
Lernen beginnen
do-while wykona się co najmniej raz - while może wykonać się zero razy - for od C99 pozwala deklarować iterator w nagłówku
Które działania powodują undefined behavior w tablicach?
Lernen beginnen
Dostęp poza zakresem - Indeks ujemny
Które stwierdzenia o wskaźnikach są prawdziwe?
Lernen beginnen
Przechowują adres zmiennej - Dereferencja NULL to undefined behavior - Arytmetyka wskaźników jest skalowana przez sizeof
Które cechy dotyczą unii?
Lernen beginnen
Wszystkie pola współdzielą tę samą pamięć. Rozmiar = największe pole. Odczyt innego pola niż zapisane jest niezdefiniowany
Które stwierdzenia o przekazywaniu argumentów w C są prawdziwe?
Lernen beginnen
Argumenty przekazywane są przez wartość. Modyfikacja wymaga przekazania wskaźnika. Funkcja otrzymuje kopię argumentu
Które ograniczenie arytmetyki wskaźników jest kluczowe dla zachowania zdefiniowanego działania programu?
Lernen beginnen
Operacje porównań i odejmowania wskaźników są dozwolone wyłącznie w obrębie tej samej tablicy (oraz jeden element za końcem)
Dlaczego różnice pomiędzy modelami danych ILP32, LP64 i LLP64 mają kluczowe znaczenie dla przenośności kodu w języku C?
Lernen beginnen
Wpływają na rozmiary typów podstawowych, wskaźników, struktur, arytmetykę wskaźników, zgodność ABI pomiędzy modułami
Dlaczego nadmiernie szeroki zakres zmiennych (np. globalnych) utrudnia optymalizację kodu przez kompilator?
Lernen beginnen
Ponieważ kompilator musi zakładać dłuższy czas życia i potencjalne aliasowanie, co ogranicza możliwość optymalizacji rejestrów i eliminacji kodu
Które stwierdzenie najtrafniej opisuje różnicę pomiędzy deklaracją a definicją symbolu w języku C?
Lernen beginnen
Deklaracja informuje kompilator o istnieniu symbolu i jego typie, natomiast definicja rezerwuje pamięć i dostarcza implementację
Dlaczego stosowanie #pragma pack może prowadzić do problemów przenośności i wydajności?
Lernen beginnen
Ponieważ niewyrównany dostęp do danych może być wolniejszy lub niedozwolony na niektórych architekturach oraz łamać zgodność ABI
Jaki jest główny powód automatycznego dodawania paddingu w strukturach w języku C?
Lernen beginnen
Spełnienie wymagań wyrównania architektury procesora, co zapewnia poprawny i wydajny dostęp do pamięci
Dlaczego C++ jest często wybierany do systemów niskopoziomowych?
Lernen beginnen
Oferuje kompromis między wydajnością a możliwością budowania abstrakcji. Pozwala szacować koszty wykonania na poziomie sprzętu
Które paradygmaty są wspierane przez C++?
Lernen beginnen
Proceduralny. Obiektowy. Generyczny. Funkcyjny
Co oznacza koncepcja zero-cost abstractions?
Lernen beginnen
Poprawnie użyte abstrakcje nie generują narzutu runtime. Kompilator może całkowicie je zoptymalizować
Które stwierdzenia opisują RAII?
Lernen beginnen
Zasób nabywany w konstruktorze. zwalniany w destruktorze. Sprzątanie następuje deterministycznie przy wyjściu z zakresu
Które elementy kompilator może automatycznie wygenerować dla klasy?
Lernen beginnen
Konstruktor domyślny. Destruktor. Konstruktor kopiujący. Operator przypisania
Czym różni się inicjalizacja od przypisania?
Lernen beginnen
Inicjalizacja zachodzi przed wejściem do ciała konstruktora. Przypisanie działa na już istniejącym obiekcie
Które cechy posiadają referencje (T&)?
Lernen beginnen
Zawsze odnoszą się do istniejącego obiektu. Nie mogą być puste. Nie mogą być ponownie przypisane
Które stwierdzenia o destruktorach są prawdziwe?
Lernen beginnen
Są wywoływane automatycznie. Umożliwiają deterministyczne zwalnianie zasobów. Działają również podczas obsługi wyjątków
Reguła trzech oznacza, że klasa zarządzająca zasobem powinna zdefiniować
Lernen beginnen
Destruktor. Konstruktor kopiujący. Operator przypisania
Reguła zera promuje
Lernen beginnen
Używanie gotowych obiektów RAII (np. unique_ptr, vector). Brak własnych destruktorów
Co znajduje się fizycznie w pamięci obiektu?
Lernen beginnen
Pola danych - Subobiekty klas bazowych - Wskaźnik vptr (dla klas polimorficznych)
Czym jest vtable?
Lernen beginnen
Tablica adresów funkcji wirtualnych - Mechanizm obsługi polimorfizmu w runtime
Które koszty wiążą się z polimorfizmem dynamicznym?
Lernen beginnen
Dodatkowa pamięć na vptr - Pośredni skok przy wywołaniu funkcji - Dodatkowy odczyt pamięci
Czym jest object slicing?
Lernen beginnen
Utrata części obiektu przy kopiowaniu do typu bazowego
Które mechanizmy wprowadził C++11?
Lernen beginnen
Semantykę przenoszenia - Lambdy - auto - Range-based for
Które cechy posiada std: unique_ptr?
Lernen beginnen
Wyłączna własność zasobu - Brak kopiowania - Automatyczne zwalnianie w destruktorze
Kiedy NIE zaleca się używać std: shared_ptr?
Lernen beginnen
W systemach czasu rzeczywistego - Jako domyślnego wskaźnika
Co umożliwia semantyka przenoszenia?
Lernen beginnen
Eliminację kosztownego kopiowania - Transfer własności zasobu - Operacje O(1) zamiast O(n)
Na czym polega const-correctness?
Lernen beginnen
Oznaczaniu elementów niemodyfikujących stanu jako const - Lepszej czytelności kodu - Umożliwieniu lepszych optymalizacji
Które stwierdzenia o constexpr są prawdziwe?
Lernen beginnen
Umożliwia obliczenia w czasie kompilacji - Może zastępować makra
Dlaczego masowe stosowanie getterów/setterów dla pól domenowych bywa uznawane za antywzorzec w OOP (szczególnie w C++)
Lernen beginnen
Ponieważ przenosi logikę i kontrolę niezmienników na zewnątrz klasy, zwiększając liczbę dozwolonych stanów i uzależniając poprawność od kolejności wywołań
Dlaczego destruktor w C++ nie powinien być utożsamiany jedynie z wywołaniem free()?
Lernen beginnen
Ponieważ kończy odpowiedzialność obiektu i domyka jego kontrakt, zwalniając wszystkie zarządzane zasoby
Co oznacza stwierdzenie, że dziedziczenie wyraża relację „jest”?
Lernen beginnen
Że obiekt klasy pochodnej musi być logicznie poprawnym obiektem klasy bazowej
Jaka jest kluczowa różnica w zarządzaniu cyklem życia obiektów między C++ a Pythonem?
Lernen beginnen
C++ zapewnia deterministyczny cykl życia obiektów, a Python polega na niedeterministycznym GC
Jakie są konsekwencje nadużywania polimorfizmu?
Lernen beginnen
Przebudowane hierarchie, trudna nawigacja i skomplikowane debugowanie
Dlaczego kompozycja sprzyja testowalności?
Lernen beginnen
Ponieważ komponenty można testować osobno i łatwo je mockować
Dlaczego abstrakcja zwiększa testowalność systemu?
Lernen beginnen
Ponieważ umożliwia podmianę implementacji i mockowanie zależności
Dlaczego w wykładzie podkreślono, że obiekt powinien być poprawny „zawsze”, a nie dopiero po wywołaniu setterów?
Lernen beginnen
Ponieważ obiekt nie powinien nigdy istnieć w stanie przejściowo nielegalnym, który łamie niezmienniki
Dlaczego w wykładzie podkreślono, że ponowne użycie kodu nie wymaga dziedziczenia?
Lernen beginnen
Ponieważ kompozycja często zapewnia mniejsze sprzężenie i większą elastyczność
Czym według wykładu jest programowanie obiektowe?
Lernen beginnen
Sposobem myślenia o projektowaniu systemów - Narzędziem architektonicznym
Paradygmat a język programowania to
Lernen beginnen
Dwie różne rzeczy - Paradygmat można stosować w wielu językach
Dlaczego C++ jest dobrym językiem do nauki OOP?
Lernen beginnen
Nie ukrywa mechanizmów - Pokazuje koszty abstrakcji i polimorfizmu - Ma deterministyczny cykl życia obiektów
Obiekt w sensie paradygmatu to:
Lernen beginnen
Jednostka odpowiedzialności - Encapsulacja stanu, zachowania i niezmienników
Co musi być spełnione przez cały czas życia obiektu?
Lernen beginnen
Niezmienniki - Kontrakt obiektu
Konstruktor służy do:
Lernen beginnen
Zakończenie odpowiedzialności obiektu - Domknięcie kontraktu - Zwolnienie wszystkich zarządzanych zasobów
Enkapsulacja polega głównie na:
Lernen beginnen
Ochronie niezmienników - Kontroli zmian stanu
Masowe użycie getterów/setterów:
Lernen beginnen
Zwiększa liczbę możliwych stanów obiektu - Przenosi odpowiedzialność na użytkownika klasy
Abstrakcja odpowiada na pytanie:
Lernen beginnen
Co obiekt robi - Jakie zachowanie obiecuje
Dziedziczenie oznacza relację:
Lernen beginnen
„jest”
Kiedy dziedziczenie ma sens?
Lernen beginnen
Gdy istnieje stabilny kontrakt - Gdy potrzebny jest polimorfizm - Gdy hierarchia jest płytka
Object slicing jest:
Lernen beginnen
Sygnałem złego projektu - Utratą części obiektu przy kopiowaniu
Co zwykle zapewnia lepszy reuse niż dziedziczenie?
Lernen beginnen
Kompozycja - Wstrzykiwanie zależności
Polimorfizm
Lernen beginnen
Jest narzędziem architektonicznym - Umożliwia różne zachowania pod tym samym interfejsem
Polimorfizm dynamiczny oznacza
Lernen beginnen
Późne wiązanie - Koszt runtime - Decyzję o metodzie w czasie wykonania
OOP bez polimorfizmu:
Lernen beginnen
Jest możliwe - Może używać tylko kompozycji
Nadużywanie polimorfizmu prowadzi do:
Lernen beginnen
Przebudowanych hierarchii - Trudnej nawigacji - Problemów z debugowaniem
Kompozycja sprzyja testowalności, ponieważ:
Lernen beginnen
Komponenty można testować osobno - Zależności można mockować
Kluczowa różnica C++ vs Python w cyklu życia obiektów:
Lernen beginnen
C++ ma deterministyczny cykl życia - Python polega na GC
Wybierz dwa prawdziwe stwierdzenia o funkcjach wyższego rzędu (higher-order functions):
Lernen beginnen
Funkcja wyższego rzędu może zwracać funkcję jako wynik (np. fabryka funkcji). - Funkcja wyższego rzędu może przyjmować inną funkcję jako argument
Wybierz dwa prawdziwe stwierdzenia o elementach stylu funkcyjnego w Pythonie:
Lernen beginnen
Python oferuje konstrukcje wspierające styl funkcyjny, np. lambda, map/filter/reduce oraz (często) list comprehensions. - W Pythonie funkcje są obiektami pierwszej klasy: można je przypisywać do zmiennych i przekazywać jako argumenty.
Które stwierdzenia o kompozycji funkcji są prawdziwe?
Lernen beginnen
Kompozycja sprzyja budowie potoków przetwarzania danych z małych, wyspecjalizowanych funkcji. - Kompozycja funkcji polega na łączeniu funkcji tak, aby wynik jednej był argumentem kolejnej.
Które stwierdzenia poprawnie opisują różnicę między programowaniem funkcyjnym a imperatywnym?
Lernen beginnen
Programowanie imperatywne akcentuje sekwencję instrukcji oraz zmianę stanu programu. - Programowanie funkcyjne skupia się na opisie transformacji danych i wartości zwracanych przez funkcje.
Które stwierdzenia o Haskellu są prawdziwe w kontekście programowania funkcyjnego?
Lernen beginnen
Haskell jest językiem czysto funkcyjnym, który promuje funkcje czyste i ogranicza efekty uboczne. - Haskell ma silny statyczny system typów (w przeciwieństwie do dynamicznego typowania Pythona).
Wybierz dwa prawdziwe stwierdzenia o niemutowalności (immutability):
Lernen beginnen
Niemutowalność zmniejsza ryzyko błędów w programach współbieżnych, bo ogranicza współdzielony stan. - Niemutowalne struktury danych nie są modyfikowane w miejscu; zamiast tego tworzy się nowe wartości.
Wybierz dwa prawdziwe stwierdzenia o fold/reduce:
Lernen beginnen
W fold często występuje akumulator (wartość początkowa), który jest aktualizowany w kolejnych krokach redukcji. - reduce (fold) agreguje elementy kolekcji do jednej wartości, stosując funkcję łączącą.
Wybierz prawdziwe stwierdzenia o paradygmacie imperatywnym:
Lernen beginnen
Akcentuje sekwencję instrukcji oraz zmianę stanu programu. - Stan programu jest centralnym elementem obliczeń. - Pętle i instrukcje warunkowe są podstawowymi narzędziami.
Wybierz prawdziwe stwierdzenia o paradygmacie funkcyjnym:
Lernen beginnen
Program jest postrzegany jako ciąg transformacji danych. - Unika mutowalnego stanu i efektów ubocznych. - Opiera się na wyrażeniach, a nie sekwencji poleceń.
Wybierz prawdziwe stwierdzenia o funkcjach czystych:
Lernen beginnen
Wynik zależy tylko od argumentów. - Nie modyfikują stanu zewnętrznego. - Sprzyjają testowalności i debugowaniu.
Wybierz prawdziwe stwierdzenia o niemutowalności danych:
Lernen beginnen
Dane nie są modyfikowane w miejscu. - Zmiana oznacza utworzenie nowej wersji danych. - Ułatwia programowanie współbieżne.
Wybierz prawdziwe stwierdzenia o funkcjach wyższego rzędu:
Lernen beginnen
Mogą przyjmować inne funkcje jako argumenty. - Mogą zwracać funkcje jako wynik.
Wybierz prawdziwe stwierdzenia o map/filter/fold:
Lernen beginnen
map przekształca każdy element kolekcji. - filter wybiera elementy spełniające warunek. - fold/reduce agreguje kolekcję do jednej wartości.
Wybierz prawdziwe stwierdzenia o kompozycji funkcji:
Lernen beginnen
Buduje potoki przetwarzania danych. - Wynik jednej funkcji jest argumentem kolejnej.
Wybierz prawdziwe stwierdzenia o Haskellu:
Lernen beginnen
Język czysto funkcyjny. - Silny statyczny system typów. - Leniwa ewaluacja.
Wybierz prawdziwe stwierdzenia o Pythonie jako języku wieloparadygmatowym:
Lernen beginnen
Obsługuje styl funkcyjny. - Obsługuje paradygmat obiektowy. - Posiada funkcje jako obiekty pierwszej klasy.
Wybierz prawdziwe stwierdzenia o paradygmacie deklaratywnym:
Lernen beginnen
Opisuje co ma być zrobione, nie jak. - SQL jest przykładem języka deklaratywnego. - HTML/CSS mają charakter deklaratywny.
Wybierz prawdziwe stwierdzenia o paradygmacie obiektowym:
Lernen beginnen
Łączy dane i operacje w obiekty. - Wspiera dziedziczenie i polimorfizm. - Modeluje świat za pomocą klas i obiektów.
Wybierz prawdziwe stwierdzenia o programowaniu proceduralnym:
Lernen beginnen
Rozbija program na funkcje/procedury. - Ułatwia modularność. - Jest rozszerzeniem imperatywnego.
Wybierz prawdziwe stwierdzenia o referencyjnej przeźroczystości:
Lernen beginnen
Wyrażenie można zastąpić jego wartością. - Wynika z czystości funkcji. - Ułatwia optymalizację.
Wybierz prawdziwe stwierdzenia o stanie w paradygmacie funkcyjnym:
Lernen beginnen
Brak klasycznych zmiennych do modyfikacji.- Każda „zmiana” tworzy nową wartość. - Mniej błędów współbieżnych.
Wybierz prawdziwe stwierdzenia o matematycznych podstawach FP:
Lernen beginnen
Rachunek lambda. - Ewaluacja wyrażeń.
Wybierz prawdziwe stwierdzenia o strukturach danych w Haskellu:
Lernen beginnen
Listy są niemutowalne.- Drzewa są strukturami rekurencyjnymi. - Mapy oparte są na strukturach niemutowalnych.
Wybierz prawdziwe stwierdzenia o trendach językowych:
Lernen beginnen
Języki łączą wiele paradygmatów. - Rosnąca rola bezpieczeństwa pamięci. - Popularność języków jak Rust, Go, Kotlin.
Wybierz prawdziwe stwierdzenia o doborze języka do zadania:
Lernen beginnen
C/C++ do systemów wbudowanych. - Python do analizy danych. - Kotlin/Swift do aplikacji mobilnych.
Wybierz prawdziwe stwierdzenia o wydajności i abstrakcji:
Lernen beginnen
C daje wysoką kontrolę i wydajność. - Python daje wysoką produktywność. - Python może korzystać z bibliotek napisanych w C/C++.
Wybierz prawdziwe stwierdzenia o przyszłości paradygmatów:
Lernen beginnen
Systemy hybrydowe. - Więcej programowania równoległego. - Większy nacisk na bezpieczeństwo.
Wybierz dwa poprawne stwierdzenia o typach prostych w Pythonie.
Lernen beginnen
Liczby typu float mogą mieć błędy reprezentacji (wynikające z zapisu binarnego), więc nie wszystkie ułamki dziesiętne są reprezentowane dokładnie. - Liczby zespolone w Pythonie zapisuje się m.in. z użyciem litery j (np. 2+3j). -
Które stwierdzenia o napisach (str) w Pythonie są prawdziwe?
Lernen beginnen
Można używać slicing, np. s[1:4] zwraca fragment napisu (bez znaku o indeksie 4). - Napisy w Pythonie są indeksowane od zera, np. s[0] to pierwszy znak.
Wybierz dwa prawdziwe stwierdzenia o krotkach (tuple).
Lernen beginnen
Krotki są niemodyfikowalne (immutable), więc po utworzeniu nie można zmieniać ich elementów. - Krotka jednoelementowa wymaga przecinka, np. (50,).
Które stwierdzenia dotyczące Pythona są prawdziwe?
Lernen beginnen
Python jest językiem interpretowanym (wykonywanym przez interpreter/VM), a kod uruchamia się bez etapu kompilacji do pliku wykonywalnego jak w C. - Czytelność składni i wcięcia jako wyznacznik bloków kodu są elementem filozofii języka.
Które stwierdzenia o listach i list comprehension są prawdziwe?
Lernen beginnen
List comprehension pozwala tworzyć listę z mapowaniem i/lub filtrowaniem, np. [x for x in range(10) if x%2==0]. - Listy w Pythonie są modyfikowalne (mutable), więc można zmieniać ich elementy po utworzeniu.
Które stwierdzenia opisują, dlaczego Python bywa wybierany jako język dydaktyczny?
Lernen beginnen
Czytelna i zwięzła składnia - Szybkie prototypowanie i testowanie pomysłów
Które cechy najlepiej opisują Pythona jako język wysokiego poziomu?
Lernen beginnen
Abstrakcja od szczegółów sprzętowych - Nacisk na czytelność kodu - Bogaty ekosystem bibliotek
Które stwierdzenia dotyczą historii Pythona?
Lernen beginnen
Twórcą języka jest Guido van Rossum - Pierwsza implementacja powstała w instytucie CWI w Amsterdamie - Nazwa pochodzi od „Monty Python’s Flying Circus”
Które elementy wiążą się z rolą Python Software Foundation (PSF)?
Lernen beginnen
Koordynacja rozwoju języka - Organizacja konferencji i certyfikacji - Proces zatwierdzania zmian (PEP)
Które stwierdzenia o wersjach Pythona są prawdziwe?
Lernen beginnen
Python 2.7 nie jest już rozwijany - Python 3. x nie jest w pełni kompatybilny wstecz z Pythonem 2 - Migracja kodu może wymagać zmian
Jakie paradygmaty wspiera Python?
Lernen beginnen
Proceduralny - Obiektowy - Funkcyjny
Które sposoby uruchamiania kodu Pythona są poprawne?
Lernen beginnen
Tryb interaktywny (REPL) - Uruchamianie skryptów. py
Które stwierdzenia o wcięciach w Pythonie są prawdziwe?
Lernen beginnen
Definiują bloki kodu - Są elementem składni języka
Które typy należą do prostych typów danych w Pythonie?
Lernen beginnen
int - float - bool - str
Które stwierdzenia o typie int są prawdziwe?
Lernen beginnen
Brak przepełnienia typowego dla C/C++ - Możliwość zapisu binarnego, ósemkowego i szesnastkowego
Które wartości są traktowane jako fałszywe w kontekście logicznym?
Lernen beginnen
0 - None - Puste kolekcje
Które stwierdzenia o float są prawdziwe?
Lernen beginnen
Mogą występować błędy zaokrągleń - Obsługują zapis naukowy - Precyzja jest ograniczona
Które stwierdzenia o napisach (str) są prawdziwe?
Lernen beginnen
Obsługują Unicode - Można stosować slicing - Indeksowane od zera
Które funkcje wbudowane działają na napisach?
Lernen beginnen
len() - str() - ord()
Które kolekcje są modyfikowalne?
Lernen beginnen
listy - słowniki - zbiory
Które cechy dotyczą list?
Lernen beginnen
Zachowują kolejność elementów - Mogą zawierać różne typy - Mają dynamiczny rozmiar
Które stwierdzenia o list comprehension są prawdziwe?
Lernen beginnen
Pozwalają mapować elementy - Pozwalają filtrować elementy - Są zwięzłym zapisem pętli
Które stwierdzenia o krotkach są prawdziwe?
Lernen beginnen
Są niemodyfikowalne - Mogą być używane jako klucze słownika - Obsługują indeksowanie i slicing
Które operacje można wykonać na słowniku?
Lernen beginnen
Dodawanie kluczy - Usuwanie kluczy - Iterowanie po parach klucz–wartość
Które elementy składają się na obsługę wyjątków w Pythonie?
Lernen beginnen
try / except - else - finally
Które stwierdzenia o OOP w Pythonie są prawdziwe?
Lernen beginnen
W Pythonie wszystko jest obiektem - Klasy definiują stan i zachowanie - Obsługiwany jest polimorfizm
Wybierz wszystkie elementy wymienione jako składowe „Python: język vs ekosystem”.
Lernen beginnen
Standard Library („batteries included”) - PyPI i pip
Wybierz poprawne stwierdzenia o plikach. pyc i katalogu __pycache__.
Lernen beginnen
Pliki. pyc zawierają skompilowany bytecode gotowy do wykonania - Interpreter CPython może automatycznie generować. pyc w katalogu __pycache__
Jak prezentacja opisuje rolę nazw/zmiennych w Pythonie?
Lernen beginnen
Nazwy są etykietami (referencjami) wskazującymi na obiekty w pamięci
Wybierz poprawne pary (typ → kategoria).
Lernen beginnen
dict → mutowalny (mutable) - tuple → niemutowalny (immutable)
Który zestaw metod tworzy protokół iteracji używany m.in. przez pętlę for?
Lernen beginnen
__iter__() oraz __next__()
Wybierz wszystkie elementy wymienione jako powody popularności Pythona.
Lernen beginnen
Czytelność kodu i filozofia „Zen of Python” - Wieloparadygmatowość - Bogaty ekosystem bibliotek - Uniwersalność zastosowań
Wybierz elementy składające się na „Python: język vs ekosystem”.
Lernen beginnen
Interpreter CPython - Standard Library - PyPI i pip
Jak wygląda model wykonania programu w Pythonie?
Lernen beginnen
Kod źródłowy → Bytecode → Python Virtual Machine
Wybierz poprawne stwierdzenia o plikach. pyc.
Lernen beginnen
Zawierają skompilowany bytecode - Są generowane automatycznie przez CPython
Które cechy opisują Pythona jako język dynamiczny?
Lernen beginnen
Typy sprawdzane w czasie wykonania - Late binding nazw i atrybutów
Co w Pythonie jest obiektem?
Lernen beginnen
Liczby - Funkcje - Klasy - Moduły
Które elementy składają się na opis obiektu?
Lernen beginnen
Tożsamość (id) - Typ - Wartość
Jak prezentacja opisuje zmienne w Pythonie?
Lernen beginnen
Są etykietami wskazującymi na obiekty
Wybierz typy niemutowalne (immutable).
Lernen beginnen
int - str - tuple
Wybierz typy mutowalne (mutable).
Lernen beginnen
list - dict - set
Które z poniższych to typowe pułapki mutowalności?
Lernen beginnen
Domyślne argumenty funkcji - Współdzielenie tego samego obiektu przez wiele nazw
Jakie cechy mają funkcje pierwszej kategorii?
Lernen beginnen
Można je przypisywać do zmiennych - Mogą być argumentami innych funkcji - Mogą być zwracane z funkcji
Czym jest funkcja wyższego rzędu?
Lernen beginnen
Przyjmuje funkcję jako argument - Zwraca funkcję jako wynik
Które stwierdzenia o lambda expressions są prawdziwe?
Lernen beginnen
Są funkcjami anonimowymi - Zawierają tylko jedno wyrażenie - Często używane jako argumenty
Dopasuj ideę map / filter / reduce.
Lernen beginnen
map – transformuje elementy. filter – wybiera elementy spełniające warunek. reduce – redukuje sekwencję do jednej wartości
Co charakteryzuje generatory (yield)?
Lernen beginnen
Zachowują stan pomiędzy wywołaniami - Zwracają wartości leniwie - Są iteratorami
Które metody tworzą protokół iteracji?
Lernen beginnen
__iter__() - __next__()
Jakie są główne założenia PEP 484?
Lernen beginnen
Typowanie statyczne jest opcjonalne - Adnotacje nie wpływają na runtime
Czym jest Protocol (PEP 544)?
Lernen beginnen
Strukturalnym kontraktem opartym na metodach - Alternatywą dla dziedziczenia - Wsparciem dla duck typing
Do czego służy TypedDict?
Lernen beginnen
Definiowania schematów słowników - Opisu kontraktów danych (np. JSON, API)

Sie müssen eingeloggt sein, um einen Kommentar zu schreiben.