Test GR: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Rogoda (dyskusja | edycje)
Nie podano opisu zmian
Rogoda (dyskusja | edycje)
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)