Paradygmaty programowania/Test 4: Podprogramy

From Studia Informatyczne

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