c

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

You must sign in to write a comment