Test GR: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 4: | Linia 4: | ||
</quiz> | </quiz> | ||
<quiz type="exclusive"> | |||
Pojęcie typu w językach imperatywnych bliskie jest pojęciu: | |||
<wrongoption reply="Źle">całki Riemanna</wrongoption> | |||
<wrongoption reply="Źle">pary uporządkowanej</wrongoption> | |||
<wrongoption reply="Źle">zbioru nieskończonego</wrongoption> | |||
<rightoption reply="Dobrze">zbioru skończonego</rightoption> | |||
</quiz> | |||
<quiz type="exclusive"> | |||
Który z opisanych poniżej typów można uznać za typ abstrakcyjny? | |||
Rzecz dzieje się w języku C: | |||
<wrongoption reply="Źle">struktura wraz z kilkoma działającymi na niej funkcjami</wrongoption> | |||
<wrongoption reply="Źle">typ wskaźnikowy T *, gdzie T jest zdefiniowane następująco\: typedef int T[10];</wrongoption> | |||
<rightoption reply="Dobrze">wbudowany typ float</rightoption> | |||
<wrongoption reply="Źle">unia złożona z pól tego samego typu</wrongoption> | |||
</quiz> | |||
<quiz type="exclusive"> | |||
W której sytuacji tablica asocjacyjna byłaby istotnie wygodniejsza | |||
niż zwykła tablica? | |||
<wrongoption reply="Źle">mamy katalogi ponumerowane od 1 do 100 i zapisujemy ich rozmiar</wrongoption> | |||
<wrongoption reply="Źle">sortujemy obszerną tablicę liczb typu double</wrongoption> | |||
<wrongoption reply="Źle">wyszukujemy największą liczbę w tablicy</wrongoption> | |||
<rightoption reply="Dobrze">zapisujemy kolor przejeżdżających samochodów, identyfikując je numerami rejestracyjnymi</rightoption> | |||
</quiz> | |||
<quiz type="exclusive"> | |||
Ewentualne luki między przechowywanymi w pamięci polami rekordu biorą się z: | |||
<wrongoption reply="Źle">konieczności sprawdzenia zgodności typów</wrongoption> | |||
<rightoption reply="Dobrze">konieczności umieszczania pól pod adresami, których 1 lub 2 najmniej znaczące bity są zerami</rightoption> | |||
<wrongoption reply="Źle">niedoskonałości kompilatorów</wrongoption> | |||
<wrongoption reply="Źle">szybkich przesunięć cyklicznych w jednostce arytmetyczno-logicznej procesora</wrongoption> | |||
</quiz> | |||
<quiz type="exclusive"> | |||
Załóżmy, że w języku C sprawdzamy równość struktur (oczywiście tego samego typu). | |||
Dlaczego w ogólności nie można tego zrobić przez porównywanie bloków pamięci? | |||
<wrongoption reply="Źle">istnieje kilka rozmiarów liczb całkowitych</wrongoption> | |||
<rightoption reply="Dobrze">napisy mogą zawierać nieistotne znaki za znacznikiem końca</rightoption> | |||
<wrongoption reply="Źle">nie można z góry przewidzieć, czy napisy są zapisane w kodzie ASCII, czy Unicode</wrongoption> | |||
<wrongoption reply="Źle">reprezentacja liczb float i double nie jest jednoznaczna</wrongoption> | |||
</quiz> | |||
<quiz type="exclusive"> | |||
Który operator języka C jest potrzebny, gdy wykorzystujemy wskaźniki | |||
do adresowania pośredniego? | |||
<rightoption reply="Dobrze">&</rightoption> | |||
<wrongoption reply="Źle">++</wrongoption> | |||
<wrongoption reply="Źle">--</wrongoption> | |||
<wrongoption reply="Źle">nawiasy kwadratowe do indeksowania</wrongoption> | |||
</quiz> | |||
<quiz type="exclusive"> | |||
Załóżmy, że p jest zmienną wskaźnikową. W którym języku wyrażenie ++p | |||
jest poprawne? | |||
<rightoption reply="Dobrze">C++</rightoption> | |||
<wrongoption reply="Źle">C\#</wrongoption> | |||
<wrongoption reply="Źle">Java</wrongoption> | |||
<wrongoption reply="Źle">Pascal</wrongoption> | |||
</quiz> | |||
<quiz type="exclusive"> | |||
Które stwierdzenie jest fałszywe w odniesieniu do klas w języku C++? | |||
<wrongoption reply="Źle">definicja klasy nie musi zawierać destruktora</wrongoption> | |||
<wrongoption reply="Źle">funkcje z klasy mogą być kompilowane jako inline</wrongoption> | |||
<wrongoption reply="Źle">konstruktor ma taką samą nazwę jak klasa</wrongoption> | |||
<rightoption reply="Dobrze">konstruktor nie może być przeciążany</rightoption> | |||
</quiz> | |||
<quiz type="exclusive"> | |||
W Javie obiekty są alokowane: | |||
<rightoption reply="Dobrze">dynamicznie na stercie</rightoption> | |||
<wrongoption reply="Źle">dynamicznie na stosie</wrongoption> | |||
<wrongoption reply="Źle">statycznie na stercie</wrongoption> | |||
<wrongoption reply="Źle">statycznie na stosie</wrongoption> | |||
</quiz> | |||
<quiz type="exclusive"> | |||
Sparametryzowane typy abstrakcyjne uzyskuje się w C++ za pomocą | |||
deklaracji z użyciem słowa kluczowego: | |||
<wrongoption reply="Źle">args</wrongoption> | |||
<wrongoption reply="Źle">generic</wrongoption> | |||
<wrongoption reply="Źle">params</wrongoption> | |||
<rightoption reply="Dobrze">template</rightoption> | |||
</quiz> | |||
Test 2 | |||
<quiz type="exclusive"> | <quiz type="exclusive"> | ||
Program może zawierać dwie różne zmienne o tej samej nazwie, gdy są to zmienne: | Program może zawierać dwie różne zmienne o tej samej nazwie, gdy są to zmienne: |
Wersja z 20:23, 12 wrz 2006
Pojęcie typu w językach imperatywnych bliskie jest pojęciu:
całki Riemanna
pary uporządkowanej
zbioru nieskończonego
zbioru skończonego
Który z opisanych poniżej typów można uznać za typ abstrakcyjny? Rzecz dzieje się w języku C:
struktura wraz z kilkoma działającymi na niej funkcjami
typ wskaźnikowy T *, gdzie T jest zdefiniowane następująco\: typedef int T[10];
wbudowany typ float
unia złożona z pól tego samego typu
W której sytuacji tablica asocjacyjna byłaby istotnie wygodniejsza niż zwykła tablica?
mamy katalogi ponumerowane od 1 do 100 i zapisujemy ich rozmiar
sortujemy obszerną tablicę liczb typu double
wyszukujemy największą liczbę w tablicy
zapisujemy kolor przejeżdżających samochodów, identyfikując je numerami rejestracyjnymi
Ewentualne luki między przechowywanymi w pamięci polami rekordu biorą się z:
konieczności sprawdzenia zgodności typów
konieczności umieszczania pól pod adresami, których 1 lub 2 najmniej znaczące bity są zerami
niedoskonałości kompilatorów
szybkich przesunięć cyklicznych w jednostce arytmetyczno-logicznej procesora
Załóżmy, że w języku C sprawdzamy równość struktur (oczywiście tego samego typu). Dlaczego w ogólności nie można tego zrobić przez porównywanie bloków pamięci?
istnieje kilka rozmiarów liczb całkowitych
napisy mogą zawierać nieistotne znaki za znacznikiem końca
nie można z góry przewidzieć, czy napisy są zapisane w kodzie ASCII, czy Unicode
reprezentacja liczb float i double nie jest jednoznaczna
Który operator języka C jest potrzebny, gdy wykorzystujemy wskaźniki do adresowania pośredniego?
&
++
--
nawiasy kwadratowe do indeksowania
Załóżmy, że p jest zmienną wskaźnikową. W którym języku wyrażenie ++p jest poprawne?
C++
C\#
Java
Pascal
Które stwierdzenie jest fałszywe w odniesieniu do klas w języku C++?
definicja klasy nie musi zawierać destruktora
funkcje z klasy mogą być kompilowane jako inline
konstruktor ma taką samą nazwę jak klasa
konstruktor nie może być przeciążany
W Javie obiekty są alokowane:
dynamicznie na stercie
dynamicznie na stosie
statycznie na stercie
statycznie na stosie
Sparametryzowane typy abstrakcyjne uzyskuje się w C++ za pomocą deklaracji z użyciem słowa kluczowego:
args
generic
params
template
Test 2
Program może zawierać dwie różne zmienne o tej samej nazwie, gdy są to zmienne:
alokowane dynamicznie
globalne
lokalne w dwóch różnych blokach
lokalne w tym samym bloku
L-wartością nazywamy:
bieżący adres zmiennej
wynik wyrażenia arytmetycznego
indeks tablicy
wartość zmiennej po dokonaniu podstawienia
Wiązanie statyczne:
może zmienić się w trakcie wykonania programu
następuje w trakcie wykonania programu
następuje przed wykonaniem programu
odnosi się tylko do zmiennych globalnych
Wnioskowanie o typie zmiennej jest najczęstsze w językach:
funkcyjnych
logicznych
obiektowych
nie występuje w żadnym przyzwoitym języku
Okres życia zmiennej to:
czas pomiędzy alokacją zmiennej a jej dealokacją
czas od uruchomienia programu do chwili wykonania na tej zmiennej delete, free itp.
obszar kodu pomiędzy deklaracją zmiennej a końcem zawierającego ją bloku
czas od pierwszego podstawienia pod tę zmienną do ostatniego jej użycia w programie
Obiekty w Javie są alokowane:
dynamicznie, na stercie
dynamicznie, na stosie
dynamicznie, na stosie lub na stercie (decyzję podejmuje kompilator)
statycznie
Spośród wymienionych tu języków najbliższy silnemu typowaniu jest:
C
C++
C\#
PHP
Silne typowanie bywa ,,osłabiane przez:
jawne konwersje typów
niejawne konwersje typów
dynamiczne sprawdzanie zgodności typów
statyczne sprawdzanie zgodności typów
Podtyp to:
typ powstały przez ograniczenie zakresu istniejącego typu, zgodny z owym typem
nowy typ oparty na już istniejącym, niezgodny z dotychczasowym
typ tablicowy, w którym ograniczono zakres indeksów
jedno z pól unii
W języku C++ dostęp do przesłoniętej zmiennej nielokalnej można uzyskać za pomocą operatora:
\:\: (dwa dwukropki)
. (kropka)
* (gwiazdka)
-> (strzałka)