c

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

Vous devez vous connecter pour poster un commentaire.