W wyniku wykonywania kodu języka C++ została wyświetlona wartość 0 (zamiast 50). Jaki jest tego powód?
W wyniku wykonywania kodu języka C++ została wyświetlona wartość 0 (zamiast 50). Jaki jest tego powód?
Wyjaśnienie i uzasadnienie dydaktyczne
Poprawna odpowiedź: B
Uzasadnienie i szersze wyjaśnienie:
W języku C++, domyślnym sposobem przekazywania argumentów do funkcji jest przekazywanie przez wartość (pass-by-value). Oznacza to, że funkcja oblicz nie otrzymuje oryginalnej zmiennej x z funkcji main, ale jej kopię.
- W funkcji
maintworzona jest zmiennaxo wartości0. - Podczas wywołania
oblicz(x), wartość0jest kopiowana do parametruxwewnątrz funkcjioblicz. - Operacja
x = x + i;(x = 0 + 50;) modyfikuje tylko lokalną kopięxwewnątrz funkcjioblicz. - Oryginalna zmienna
xw funkcjimainpozostaje nietknięta i przez cały czas ma wartość0. - Instrukcja
std::cout << x;w funkcjimainwyświetla wartość swojej lokalnej zmiennejx, czyli0.
Aby funkcja mogła modyfikować oryginalną zmienną, jej argument musiałby być przekazany przez referencję (int oblicz(int &x)) lub przez wskaźnik (int oblicz(int *x)).
Dlaczego pozostałe odpowiedzi są nieprawidłowe?
- A: Działanie wewnątrz funkcji jest zapisane poprawnie składniowo.
- C: Fakt, że funkcja zwraca wartość, nie ma wpływu na to, co dzieje się ze zmienną
xw funkcjimain. - D: Wartość początkowa
xnie ma znaczenia dla samego mechanizmu przekazywania przez wartość.
Chcesz poćwiczyć całą kwalifikację INF.04?
Egzamin próbny na czas, nauka działami, losowe pytanie albo przegląd całej bazy — wszystko w przeglądarce i bez zakładania konta.
Pojęcia z tego pytania
- Funkcje, Metody i Przekazywanie ParametrówWydzielone, nazwane bloki kodu realizujące określone zadanie, przyjmujące parametry wejściowe i opcjonalnie zwracające wartość wyniku za pomocą instrukcji return.
- Język programowania C++Wieloparadygmatowy, kompilowany bezpośrednio do kodu maszynowego język programowania ogólnego przeznaczenia, oferujący bezpośrednie zarządzanie pamięcią i najwyższą wydajność.
- Instrukcje w językach programowaniaPodstawowe elementy składniowe języka programowania nakazujące procesorowi wykonanie określonej czynności: deklaracji, przypisania, rozgałęzienia lub powtórzenia.
Podobne pytania z działu „Jezyk cpp skladnia i pamiec”
Ten sam obszar materiału z kwalifikacji INF.04. W całej bazie znajdziesz 25 pytań z tego działu.
- #183
Którą wartość zwróci funkcja zapisana językiem C++, jeżeli jej parametr wejściowym jest tablica utworzona w następujący sposób: int tablica[] = {3,4,2,4,10,0};?
- #193
Wywołanie funkcji zamien napisanej w języku C++ może wyglądać następująco
- #194
W programie napisanym w języku C++ należy utworzyć zmienną, która przechowa liczbę rzeczywistą. Określ typ tej zmiennej
- #196
Co stanie się po wykonaniu przedstawionego fragmentu kodu napisanego w języku C++?
- #203
W wyniku wykonania przedstawionego kodu napisanego w języku C++ w konsoli zostanie wyświetlony ciąg liczb