Paradygmaty programowania/Test 4: Podprogramy: Różnice pomiędzy wersjami
Nie podano opisu zmian |
|||
Linia 35: | Linia 35: | ||
<quiz type="exclusive"> | <quiz type="exclusive"> | ||
Chcąc w języku C przekazać do funkcji tablicę przez wartość, trzeba: | Chcąc w języku C przekazać do funkcji tablicę przez wartość, trzeba: | ||
<rightoption reply="Dobrze"> | <rightoption reply="Dobrze">"obudować" ją strukturą i przekazać tę strukturę</rightoption> | ||
<wrongoption reply="Źle">użyć nawiasów kwadratowych po nazwie tablicy w wywołaniu funkcji</wrongoption> | <wrongoption reply="Źle">użyć nawiasów kwadratowych po nazwie tablicy w wywołaniu funkcji</wrongoption> | ||
<wrongoption reply="Źle">użyć nawiasów kwadratowych po nazwie parametru w nagłówku funkcji</wrongoption> | <wrongoption reply="Źle">użyć nawiasów kwadratowych po nazwie parametru w nagłówku funkcji</wrongoption> |
Wersja z 10:48, 13 wrz 2006
Test 4
Który język nie pozwala na użycie parametrów z wartością domyślną?
Ada
C
C++
PHP
Przekazanie funkcji jako parametru można w C\# osiągnąć za pomocą mechanizmu:
bezpośrednio, bez dodatkowych mechanizmów
delegatów
tablic wielowymiarowych
wskaźników do funkcji
Który język nie sprawdza zgodności typów parametrów?
Ada
C#
Java
PHP
Przy której deklaracji procedury f wywołanie f(2*x + 3) jest poprawne?
procedure f(n: in out Integer) w Adzie
procedure f(n: out Integer) w Adzie
void f(int n) w języku C
void f(int *n) w języku C
Chcąc w języku C przekazać do funkcji tablicę przez wartość, trzeba:
"obudować" ją strukturą i przekazać tę strukturę
użyć nawiasów kwadratowych po nazwie tablicy w wywołaniu funkcji
użyć nawiasów kwadratowych po nazwie parametru w nagłówku funkcji
nie trzeba robić niczego szczególnego
Jaką dodatkową cechę mają parametry stałe deklarowane w C++ z użyciem const w stosunku do parametrów w trybie wejściowym w ogóle?
nie mogą być zmieniane nawet w obrębie podprogramu
są zawsze alokowane statycznie
wymuszają statyczne sprawdzenie zgodności typu
nie mają żadnej dodatkowej cechy
Załóżmy, że x jest parametrem w trybie out w procedurze w Adzie.
Która instrukcja ma szansę być poprawna?
x \:\= x + 1
x \:\= y + 1
y \:\= x + 1
y \:\= T(x)
Jawne przekazywanie przez referencję jest w C\# możliwe, jeśli umieścimy słowo kluczowe ref:
przy parametrze aktualnym
przy parametrze formalnym
i przy parametrze formalnym, i przy aktualnym
to w ogóle nie jest możliwe
W językach z zakresem widoczności zmiennych wiązanym statycznie jako środowiska wykonywania przekazanego przez parametr podprogramu najczęściej używa się:
środowiska instrukcji (w podprogramie), wywołującej przekazany podprogram
środowiska definicji przekazanego podprogramu
środowiska instrukcji, która przekazała podprogram jako parametr
żadnego z wymienioinych środowisk
W implementacji podprogramów bez zagnieżdżeń, ale z rekurencją i z dynamicznymi zmiennymi lokalnymi na stosie potrzebne jest przechowywanie w rekordzie aktywacyjnym:
tylko łącza dynamicznego
tylko łącza statycznego
łącza dynamicznego i statycznego
żadnego z nich