c

 0    190 schede    choroszcza17
Scarica mp3 Stampa Gioca Testa il tuo livello
 
Domanda język polski Risposta język polski
Która cecha najlepiej opisuje filozofię projektową języka C?
inizia ad imparare
Duża kontrola nad sprzętem i pamięcią, „C ufa programiście”
W jakich obszarach język C jest szczególnie istotny?
inizia ad imparare
Systemy operacyjne, sterowniki, embedded oraz HPC
Która wersja języka C była pierwszym oficjalnym standardem ISO/ANSI?
inizia ad imparare
ANSI C (C89)
Dlaczego Dennis Ritchie stworzył język C?
inizia ad imparare
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?
inizia ad imparare
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?
inizia ad imparare
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?
inizia ad imparare
Język maszynowy, Assembler, Język wysokiego poziomu
Co jest cechą języków wysokiego poziomu?
inizia ad imparare
Abstrakcja od szczegółów sprzętowych, Czytelność kodu, Przenośność między platformami
Które języki są zwykle interpretowane?
inizia ad imparare
Python, JavaScript
Jakie etapy obejmuje praca kompilatora i linkera?
inizia ad imparare
Analiza leksykalna, Parsowanie, Optymalizacja, Linkowanie
Co oznacza paradygmat programowania?
inizia ad imparare
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?
inizia ad imparare
Imperatywny, Deklaratywny, Obiektowy, Funkcyjny
Czym charakteryzuje się paradygmat deklaratywny?
inizia ad imparare
Opisuje co osiągnąć, a nie jak. Ukryta kontrola przepływu
Dlaczego warto znać wiele paradygmatów?
inizia ad imparare
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?
inizia ad imparare
Python. JavaScript. Scala
Które osoby są bezpośrednio związane z powstaniem języka C?
inizia ad imparare
Dennis Ritchie. Ken Thompson
Jakie były główne cele stworzenia języka C?
inizia ad imparare
Umożliwienie przenośnego tworzenia systemów operacyjnych. Zastąpienie asemblera językiem bardziej czytelnym
Które stwierdzenia opisują symbiozę C i UNIX-a?
inizia ad imparare
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?
inizia ad imparare
ANSI C (C89). C99. C11. C23
Jakie języki powstały lub były silnie inspirowane językiem C?
inizia ad imparare
C++. Java. Rust. Python
W jakich obszarach C jest szczególnie istotny?
inizia ad imparare
Systemy operacyjne. Mikrokontrolery i IoT. HPC i obliczenia naukowe
Które cechy należą do filozofii języka C?
inizia ad imparare
Prostota. Pełna kontrola nad pamięcią. Wysoka wydajność
Co oznacza niskopoziomowa kontrola w C?
inizia ad imparare
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?
inizia ad imparare
Brak garbage collectora. Statyczne typowanie. Przewidywalny czas wykonania
Co zwiększa przenośność kodu w C?
inizia ad imparare
Abstrakcyjna maszyna C. Biblioteka standardowa. Dostępność kompilatorów na wielu platformach
Które elementy należą do typowej struktury programu C?
inizia ad imparare
Dyrektywy preprocesora. Deklaracje globalne. Funkcja main()
Które typy należą do podstawowych w C?
inizia ad imparare
int. char. float
Jakie operatory służą do pracy ze wskaźnikami?
inizia ad imparare
& (operator adresu). * (operator dereferencji)
Jakie etapy obejmuje proces kompilacji programu w C?
inizia ad imparare
Preprocesor. Kompilator. Assembler. Linker
Dlaczego język C jest uznawany za fundament współczesnej informatyki?
inizia ad imparare
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++?
inizia ad imparare
ż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++?
inizia ad imparare
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?
inizia ad imparare
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?
inizia ad imparare
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?
inizia ad imparare
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++?
inizia ad imparare
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?
inizia ad imparare
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?
inizia ad imparare
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?
inizia ad imparare
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?
inizia ad imparare
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?
inizia ad imparare
Dyrektywy preprocesora. Funkcja main(). Wartość zwrotna programu (exit code)
Które z poniższych są tokenami według procesu tokenizacji?
inizia ad imparare
Identyfikatory. Słowa kluczowe. Literały.
Które stwierdzenia o komentarzach w C są prawdziwe?
inizia ad imparare
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?
inizia ad imparare
Instrukcja zakończona średnikiem - Blok w {} - Pusty średnik;
Które typy zmiennych zachowują wartość między wywołaniami funkcji?
inizia ad imparare
Zmienne statyczne - Zmienne globalne
Jakie znaczenie mają kwalifikatory const i volatile?
inizia ad imparare
const zabrania modyfikacji wartości - volatile informuje o możliwych zmianach spoza programu
Które typy zapewniają dokładną szerokość bitową?
inizia ad imparare
int32_t - uint64_t
Które stwierdzenia o Two’s Complement są prawdziwe?
inizia ad imparare
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?
inizia ad imparare
float ma 32 bity - double ma 52 bity mantysy - Porównywanie przez == jest niebezpieczne
Które stwierdzenia o wyrównaniu danych są prawdziwe?
inizia ad imparare
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?
inizia ad imparare
Typ _Bool - Makra true i false z <stdbool. h>
Które operatory są bitowe?
inizia ad imparare
& - | - ^ - ~
Które błędy są typowe w instrukcji if?
inizia ad imparare
Użycie = zamiast ==. Średnik po warunku. Brak klamer
Które stwierdzenia o pętlach są prawdziwe?
inizia ad imparare
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?
inizia ad imparare
Dostęp poza zakresem - Indeks ujemny
Które stwierdzenia o wskaźnikach są prawdziwe?
inizia ad imparare
Przechowują adres zmiennej - Dereferencja NULL to undefined behavior - Arytmetyka wskaźników jest skalowana przez sizeof
Które cechy dotyczą unii?
inizia ad imparare
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?
inizia ad imparare
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?
inizia ad imparare
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?
inizia ad imparare
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?
inizia ad imparare
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?
inizia ad imparare
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?
inizia ad imparare
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?
inizia ad imparare
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?
inizia ad imparare
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++?
inizia ad imparare
Proceduralny. Obiektowy. Generyczny. Funkcyjny
Co oznacza koncepcja zero-cost abstractions?
inizia ad imparare
Poprawnie użyte abstrakcje nie generują narzutu runtime. Kompilator może całkowicie je zoptymalizować
Które stwierdzenia opisują RAII?
inizia ad imparare
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?
inizia ad imparare
Konstruktor domyślny. Destruktor. Konstruktor kopiujący. Operator przypisania
Czym różni się inicjalizacja od przypisania?
inizia ad imparare
Inicjalizacja zachodzi przed wejściem do ciała konstruktora. Przypisanie działa na już istniejącym obiekcie
Które cechy posiadają referencje (T&)?
inizia ad imparare
Zawsze odnoszą się do istniejącego obiektu. Nie mogą być puste. Nie mogą być ponownie przypisane
Które stwierdzenia o destruktorach są prawdziwe?
inizia ad imparare
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ć
inizia ad imparare
Destruktor. Konstruktor kopiujący. Operator przypisania
Reguła zera promuje
inizia ad imparare
Używanie gotowych obiektów RAII (np. unique_ptr, vector). Brak własnych destruktorów
Co znajduje się fizycznie w pamięci obiektu?
inizia ad imparare
Pola danych - Subobiekty klas bazowych - Wskaźnik vptr (dla klas polimorficznych)
Czym jest vtable?
inizia ad imparare
Tablica adresów funkcji wirtualnych - Mechanizm obsługi polimorfizmu w runtime
Które koszty wiążą się z polimorfizmem dynamicznym?
inizia ad imparare
Dodatkowa pamięć na vptr - Pośredni skok przy wywołaniu funkcji - Dodatkowy odczyt pamięci
Czym jest object slicing?
inizia ad imparare
Utrata części obiektu przy kopiowaniu do typu bazowego
Które mechanizmy wprowadził C++11?
inizia ad imparare
Semantykę przenoszenia - Lambdy - auto - Range-based for
Które cechy posiada std: unique_ptr?
inizia ad imparare
Wyłączna własność zasobu - Brak kopiowania - Automatyczne zwalnianie w destruktorze
Kiedy NIE zaleca się używać std: shared_ptr?
inizia ad imparare
W systemach czasu rzeczywistego - Jako domyślnego wskaźnika
Co umożliwia semantyka przenoszenia?
inizia ad imparare
Eliminację kosztownego kopiowania - Transfer własności zasobu - Operacje O(1) zamiast O(n)
Na czym polega const-correctness?
inizia ad imparare
Oznaczaniu elementów niemodyfikujących stanu jako const - Lepszej czytelności kodu - Umożliwieniu lepszych optymalizacji
Które stwierdzenia o constexpr są prawdziwe?
inizia ad imparare
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++)
inizia ad imparare
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()?
inizia ad imparare
Ponieważ kończy odpowiedzialność obiektu i domyka jego kontrakt, zwalniając wszystkie zarządzane zasoby
Co oznacza stwierdzenie, że dziedziczenie wyraża relację „jest”?
inizia ad imparare
Ż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?
inizia ad imparare
C++ zapewnia deterministyczny cykl życia obiektów, a Python polega na niedeterministycznym GC
Jakie są konsekwencje nadużywania polimorfizmu?
inizia ad imparare
Przebudowane hierarchie, trudna nawigacja i skomplikowane debugowanie
Dlaczego kompozycja sprzyja testowalności?
inizia ad imparare
Ponieważ komponenty można testować osobno i łatwo je mockować
Dlaczego abstrakcja zwiększa testowalność systemu?
inizia ad imparare
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?
inizia ad imparare
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?
inizia ad imparare
Ponieważ kompozycja często zapewnia mniejsze sprzężenie i większą elastyczność
Czym według wykładu jest programowanie obiektowe?
inizia ad imparare
Sposobem myślenia o projektowaniu systemów - Narzędziem architektonicznym
Paradygmat a język programowania to
inizia ad imparare
Dwie różne rzeczy - Paradygmat można stosować w wielu językach
Dlaczego C++ jest dobrym językiem do nauki OOP?
inizia ad imparare
Nie ukrywa mechanizmów - Pokazuje koszty abstrakcji i polimorfizmu - Ma deterministyczny cykl życia obiektów
Obiekt w sensie paradygmatu to:
inizia ad imparare
Jednostka odpowiedzialności - Encapsulacja stanu, zachowania i niezmienników
Co musi być spełnione przez cały czas życia obiektu?
inizia ad imparare
Niezmienniki - Kontrakt obiektu
Konstruktor służy do:
inizia ad imparare
Zakończenie odpowiedzialności obiektu - Domknięcie kontraktu - Zwolnienie wszystkich zarządzanych zasobów
Enkapsulacja polega głównie na:
inizia ad imparare
Ochronie niezmienników - Kontroli zmian stanu
Masowe użycie getterów/setterów:
inizia ad imparare
Zwiększa liczbę możliwych stanów obiektu - Przenosi odpowiedzialność na użytkownika klasy
Abstrakcja odpowiada na pytanie:
inizia ad imparare
Co obiekt robi - Jakie zachowanie obiecuje
Dziedziczenie oznacza relację:
inizia ad imparare
„jest”
Kiedy dziedziczenie ma sens?
inizia ad imparare
Gdy istnieje stabilny kontrakt - Gdy potrzebny jest polimorfizm - Gdy hierarchia jest płytka
Object slicing jest:
inizia ad imparare
Sygnałem złego projektu - Utratą części obiektu przy kopiowaniu
Co zwykle zapewnia lepszy reuse niż dziedziczenie?
inizia ad imparare
Kompozycja - Wstrzykiwanie zależności
Polimorfizm
inizia ad imparare
Jest narzędziem architektonicznym - Umożliwia różne zachowania pod tym samym interfejsem
Polimorfizm dynamiczny oznacza
inizia ad imparare
Późne wiązanie - Koszt runtime - Decyzję o metodzie w czasie wykonania
OOP bez polimorfizmu:
inizia ad imparare
Jest możliwe - Może używać tylko kompozycji
Nadużywanie polimorfizmu prowadzi do:
inizia ad imparare
Przebudowanych hierarchii - Trudnej nawigacji - Problemów z debugowaniem
Kompozycja sprzyja testowalności, ponieważ:
inizia ad imparare
Komponenty można testować osobno - Zależności można mockować
Kluczowa różnica C++ vs Python w cyklu życia obiektów:
inizia ad imparare
C++ ma deterministyczny cykl życia - Python polega na GC
Wybierz dwa prawdziwe stwierdzenia o funkcjach wyższego rzędu (higher-order functions):
inizia ad imparare
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:
inizia ad imparare
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?
inizia ad imparare
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?
inizia ad imparare
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?
inizia ad imparare
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):
inizia ad imparare
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:
inizia ad imparare
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:
inizia ad imparare
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:
inizia ad imparare
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:
inizia ad imparare
Wynik zależy tylko od argumentów. - Nie modyfikują stanu zewnętrznego. - Sprzyjają testowalności i debugowaniu.
Wybierz prawdziwe stwierdzenia o niemutowalności danych:
inizia ad imparare
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:
inizia ad imparare
Mogą przyjmować inne funkcje jako argumenty. - Mogą zwracać funkcje jako wynik.
Wybierz prawdziwe stwierdzenia o map/filter/fold:
inizia ad imparare
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:
inizia ad imparare
Buduje potoki przetwarzania danych. - Wynik jednej funkcji jest argumentem kolejnej.
Wybierz prawdziwe stwierdzenia o Haskellu:
inizia ad imparare
Język czysto funkcyjny. - Silny statyczny system typów. - Leniwa ewaluacja.
Wybierz prawdziwe stwierdzenia o Pythonie jako języku wieloparadygmatowym:
inizia ad imparare
Obsługuje styl funkcyjny. - Obsługuje paradygmat obiektowy. - Posiada funkcje jako obiekty pierwszej klasy.
Wybierz prawdziwe stwierdzenia o paradygmacie deklaratywnym:
inizia ad imparare
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:
inizia ad imparare
Łączy dane i operacje w obiekty. - Wspiera dziedziczenie i polimorfizm. - Modeluje świat za pomocą klas i obiektów.
Wybierz prawdziwe stwierdzenia o programowaniu proceduralnym:
inizia ad imparare
Rozbija program na funkcje/procedury. - Ułatwia modularność. - Jest rozszerzeniem imperatywnego.
Wybierz prawdziwe stwierdzenia o referencyjnej przeźroczystości:
inizia ad imparare
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:
inizia ad imparare
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:
inizia ad imparare
Rachunek lambda. - Ewaluacja wyrażeń.
Wybierz prawdziwe stwierdzenia o strukturach danych w Haskellu:
inizia ad imparare
Listy są niemutowalne.- Drzewa są strukturami rekurencyjnymi. - Mapy oparte są na strukturach niemutowalnych.
Wybierz prawdziwe stwierdzenia o trendach językowych:
inizia ad imparare
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:
inizia ad imparare
C/C++ do systemów wbudowanych. - Python do analizy danych. - Kotlin/Swift do aplikacji mobilnych.
Wybierz prawdziwe stwierdzenia o wydajności i abstrakcji:
inizia ad imparare
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:
inizia ad imparare
Systemy hybrydowe. - Więcej programowania równoległego. - Większy nacisk na bezpieczeństwo.
Wybierz dwa poprawne stwierdzenia o typach prostych w Pythonie.
inizia ad imparare
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?
inizia ad imparare
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).
inizia ad imparare
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?
inizia ad imparare
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?
inizia ad imparare
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?
inizia ad imparare
Czytelna i zwięzła składnia - Szybkie prototypowanie i testowanie pomysłów
Które cechy najlepiej opisują Pythona jako język wysokiego poziomu?
inizia ad imparare
Abstrakcja od szczegółów sprzętowych - Nacisk na czytelność kodu - Bogaty ekosystem bibliotek
Które stwierdzenia dotyczą historii Pythona?
inizia ad imparare
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)?
inizia ad imparare
Koordynacja rozwoju języka - Organizacja konferencji i certyfikacji - Proces zatwierdzania zmian (PEP)
Które stwierdzenia o wersjach Pythona są prawdziwe?
inizia ad imparare
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?
inizia ad imparare
Proceduralny - Obiektowy - Funkcyjny
Które sposoby uruchamiania kodu Pythona są poprawne?
inizia ad imparare
Tryb interaktywny (REPL) - Uruchamianie skryptów. py
Które stwierdzenia o wcięciach w Pythonie są prawdziwe?
inizia ad imparare
Definiują bloki kodu - Są elementem składni języka
Które typy należą do prostych typów danych w Pythonie?
inizia ad imparare
int - float - bool - str
Które stwierdzenia o typie int są prawdziwe?
inizia ad imparare
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?
inizia ad imparare
0 - None - Puste kolekcje
Które stwierdzenia o float są prawdziwe?
inizia ad imparare
Mogą występować błędy zaokrągleń - Obsługują zapis naukowy - Precyzja jest ograniczona
Które stwierdzenia o napisach (str) są prawdziwe?
inizia ad imparare
Obsługują Unicode - Można stosować slicing - Indeksowane od zera
Które funkcje wbudowane działają na napisach?
inizia ad imparare
len() - str() - ord()
Które kolekcje są modyfikowalne?
inizia ad imparare
listy - słowniki - zbiory
Które cechy dotyczą list?
inizia ad imparare
Zachowują kolejność elementów - Mogą zawierać różne typy - Mają dynamiczny rozmiar
Które stwierdzenia o list comprehension są prawdziwe?
inizia ad imparare
Pozwalają mapować elementy - Pozwalają filtrować elementy - Są zwięzłym zapisem pętli
Które stwierdzenia o krotkach są prawdziwe?
inizia ad imparare
Są niemodyfikowalne - Mogą być używane jako klucze słownika - Obsługują indeksowanie i slicing
Które operacje można wykonać na słowniku?
inizia ad imparare
Dodawanie kluczy - Usuwanie kluczy - Iterowanie po parach klucz–wartość
Które elementy składają się na obsługę wyjątków w Pythonie?
inizia ad imparare
try / except - else - finally
Które stwierdzenia o OOP w Pythonie są prawdziwe?
inizia ad imparare
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”.
inizia ad imparare
Standard Library („batteries included”) - PyPI i pip
Wybierz poprawne stwierdzenia o plikach. pyc i katalogu __pycache__.
inizia ad imparare
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?
inizia ad imparare
Nazwy są etykietami (referencjami) wskazującymi na obiekty w pamięci
Wybierz poprawne pary (typ → kategoria).
inizia ad imparare
dict → mutowalny (mutable) - tuple → niemutowalny (immutable)
Który zestaw metod tworzy protokół iteracji używany m.in. przez pętlę for?
inizia ad imparare
__iter__() oraz __next__()
Wybierz wszystkie elementy wymienione jako powody popularności Pythona.
inizia ad imparare
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”.
inizia ad imparare
Interpreter CPython - Standard Library - PyPI i pip
Jak wygląda model wykonania programu w Pythonie?
inizia ad imparare
Kod źródłowy → Bytecode → Python Virtual Machine
Wybierz poprawne stwierdzenia o plikach. pyc.
inizia ad imparare
Zawierają skompilowany bytecode - Są generowane automatycznie przez CPython
Które cechy opisują Pythona jako język dynamiczny?
inizia ad imparare
Typy sprawdzane w czasie wykonania - Late binding nazw i atrybutów
Co w Pythonie jest obiektem?
inizia ad imparare
Liczby - Funkcje - Klasy - Moduły
Które elementy składają się na opis obiektu?
inizia ad imparare
Tożsamość (id) - Typ - Wartość
Jak prezentacja opisuje zmienne w Pythonie?
inizia ad imparare
Są etykietami wskazującymi na obiekty
Wybierz typy niemutowalne (immutable).
inizia ad imparare
int - str - tuple
Wybierz typy mutowalne (mutable).
inizia ad imparare
list - dict - set
Które z poniższych to typowe pułapki mutowalności?
inizia ad imparare
Domyślne argumenty funkcji - Współdzielenie tego samego obiektu przez wiele nazw
Jakie cechy mają funkcje pierwszej kategorii?
inizia ad imparare
Można je przypisywać do zmiennych - Mogą być argumentami innych funkcji - Mogą być zwracane z funkcji
Czym jest funkcja wyższego rzędu?
inizia ad imparare
Przyjmuje funkcję jako argument - Zwraca funkcję jako wynik
Które stwierdzenia o lambda expressions są prawdziwe?
inizia ad imparare
Są funkcjami anonimowymi - Zawierają tylko jedno wyrażenie - Często używane jako argumenty
Dopasuj ideę map / filter / reduce.
inizia ad imparare
map – transformuje elementy. filter – wybiera elementy spełniające warunek. reduce – redukuje sekwencję do jednej wartości
Co charakteryzuje generatory (yield)?
inizia ad imparare
Zachowują stan pomiędzy wywołaniami - Zwracają wartości leniwie - Są iteratorami
Które metody tworzą protokół iteracji?
inizia ad imparare
__iter__() - __next__()
Jakie są główne założenia PEP 484?
inizia ad imparare
Typowanie statyczne jest opcjonalne - Adnotacje nie wpływają na runtime
Czym jest Protocol (PEP 544)?
inizia ad imparare
Strukturalnym kontraktem opartym na metodach - Alternatywą dla dziedziczenia - Wsparciem dla duck typing
Do czego służy TypedDict?
inizia ad imparare
Definiowania schematów słowników - Opisu kontraktów danych (np. JSON, API)

Devi essere accedere per pubblicare un commento.