Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe Algorytmy i podstawy informatyki

Wskaż stwierdzenie, które nie jest prawdziwe dla następującej definicji funkcji w języku C++.

void zamien( float &x, float &y){
    float tmp;
    tmp = x;
    x = y;
    y = tmp;
}
A. Funkcja zwraca wartość.
Dobrze. To zdanie jest fałszywe: funkcja typu void niczego nie zwraca, zamiana działa przez referencje.
B. Funkcja nie zwraca wartości.
Źle. To zdanie jest prawdziwe - typ void oznacza brak zwracanej wartości, a szukasz zdania fałszywego.
C. Funkcja posiada dwa parametry.
Źle. Zdanie jest prawdziwe - funkcja ma dwa parametry, x i y, oba typu float.
D. Funkcja odwołuje się do parametrów przez referencję.
Źle. Zdanie jest prawdziwe - znak & oznacza przekazanie parametrów przez referencję.

Pytanie z egzaminu CKE, wrzesień 2014 (arkusz E.14-X-14.08).

Nieprawdziwe jest zdanie, że funkcja zwraca wartość. Słowo void przed nazwą oznacza, że funkcja nie zwraca niczego i nie ma w niej instrukcji return z wartością. Mimo to funkcja działa: parametry float &x i float &y są przekazane przez referencję, więc zmiana x i y wewnątrz funkcji zmienia zmienne podane przy wywołaniu. Zmienna pomocnicza tmp przechowuje pierwszą wartość, dzięki czemu zamiana nie gubi danych. Do zapamiętania: znak & w liście parametrów to referencja, a void to brak wyniku. Taką zamianę wykorzystuje na przykład sortowanie bąbelkowe; w bibliotece standardowej robi to gotowa funkcja std::swap.
To pytanie z przeczeniem - szukasz zdania fałszywego, a trzy pozostałe opisy funkcji są prawdziwe. Zdanie „Funkcja nie zwraca wartości” jest zgodne z kodem, bo typem funkcji jest void. Zdanie o dwóch parametrach także się zgadza - w nawiasie stoją x i y, oba typu float. Opis przekazania parametrów przez referencję również jest trafny, wskazuje na to znak & przy każdym z nich. Jeżeli wybrałeś któreś z tych zdań, najpewniej przeoczyłeś słowa „nie jest prawdziwe” w poleceniu. Fałszywe pozostaje tylko stwierdzenie, że funkcja zwraca wartość: wynik zamiany trafia do zmiennych wywołującego przez referencje, a nie przez return. Przy pytaniach z przeczeniem warto najpierw ocenić każde zdanie osobno jako prawdę albo fałsz. Gdyby funkcja miała zwracać wynik, jej nagłówek zaczynałby się od typu, na przykład float, a w ciele stałaby instrukcja return tmp;.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.