KWALIFIKACJA INF2 + INF3 - CZERWIEC 2014

PYTANIE NR 17.
Deklaracja funkcji wyznaczającej wartość sumy ciągu arytmetycznego ma poniższą postać. Zapis ten oznacza, że funkcja
Ilustracja przedstawia deklarację funkcji w języku programowania C lub C++.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
W deklaracji/prototypie funkcji typ zapisany przed nazwą funkcji oznacza typ zwracany, a typy zapisane przy parametrach oznaczają typy argumentów wejściowych.
Jeżeli w zapisie widnieje typ całkowity jako wynik oraz oba parametry mają typ całkowity, to poprawny jest opis mówiący o zwracaniu liczby całkowitej i dwóch argumentach całkowitych.

Pełne wyjaśnienie:

Deklaracja (często nazywana prototypem) funkcji opisuje sygnaturę funkcji, czyli to, jaki typ zwraca oraz jakie typy mają jej parametry. W typowej składni wielu języków kompilowanych (np. rodziny C/C++) występują dwa kluczowe miejsca, które trzeba odczytać:

  • Typ przed nazwą funkcji – to informacja, jakiego typu wartość funkcja zwraca do miejsca wywołania. Jeśli jest to typ całkowity, funkcja zwraca liczbę całkowitą.
  • Typy przy parametrach (w nawiasach) – to informacja, jakie dane należy przekazać do funkcji. Jeśli przy obu parametrach występuje typ całkowity, to oba argumenty wejściowe muszą być całkowite.

Dlatego opis "zwraca wartość typu całkowitego przy czym oba argumenty wejściowe są typu całkowitego" odpowiada sytuacji, w której w deklaracji wskazano typ całkowity jako wynik oraz dwa parametry o typie całkowitym.

Pozostałe odpowiedzi są typowymi pułapkami:

  • Odpowiedzi mówiące o typie rzeczywistym przy którymś argumencie są błędne, jeśli w deklaracji oba parametry są oznaczone jako całkowite. To częsty błąd wynikający z pobieżnego skanowania zapisu.
  • Odpowiedzi "nie zwraca wartości" odpowiadają przypadkowi, gdy w deklaracji widnieje typ wskazujący brak wyniku (np. w wielu językach słowo-klucz oznaczające brak wartości zwracanej). Jeśli jednak w deklaracji podano typ całkowity jako wynik, to funkcja zwraca wartość.

Wskazówka egzaminacyjna: czytając prototyp, najpierw znajdź typ przed nazwą (wynik), a dopiero potem odczytaj listę parametrów (wejście). To ogranicza pomyłki między typem zwracanym a typami argumentów.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Deklaracja/prototyp funkcji to zapis informujący kompilator, jaki typ zwraca funkcja i jakie typy mają jej parametry. Dzięki temu kompilator może sprawdzić poprawność wywołań (liczbę i typ argumentów), zanim zobaczy pełną definicję funkcji.
W typowej składni (np. C/C++) typ zapisany przed nazwą funkcji jest typem zwracanym. Jeśli widzisz tam typ całkowity, funkcja zwraca liczbę całkowitą; jeśli widzisz typ oznaczający brak zwrotu, funkcja nie zwraca wartości.
Parametr to zmienna w nagłówku funkcji (w deklaracji/definicji), np. w nawiasach. Argument to konkretna wartość przekazywana przy wywołaniu. Na egzaminie często miesza się te pojęcia, ale typy w prototypie dotyczą parametrów.
Typy parametrów pozwalają kompilatorowi sprawdzić, czy wywołanie funkcji jest poprawne (np. czy nie przekazujesz wartości rzeczywistej tam, gdzie oczekiwany jest typ całkowity). To ogranicza błędy i ułatwia czytanie interfejsu funkcji w większym projekcie.
Nie. Funkcja zwraca wartość tylko wtedy, gdy jej typ zwracany to typ danych (np. całkowity). Jeśli typ zwracany oznacza brak wartości (w wielu językach słowo-klucz typu "void"), funkcja wykonuje operacje, ale nie przekazuje wyniku do miejsca wywołania.
Najczęstsze błędy to: pomylenie typu zwracanego z typem pierwszego parametru, przeoczenie typu jednego z parametrów oraz automatyczne założenie, że jeden z argumentów jest "rzeczywisty", bo tak bywa w innych zadaniach. Pomaga czytanie od lewej: wynik, nazwa, parametry.
Liczba argumentów odpowiada liczbie parametrów w nawiasach w deklaracji/prototypie. Jeśli w nawiasach są dwa parametry oddzielone przecinkiem, to funkcję wywołujesz z dwoma argumentami. Dodatkowo każdy parametr ma określony typ, który trzeba dopasować.
Typ całkowity i rzeczywisty różnią się zakresem i sposobem zapisu wartości (np. ułamki). Gdy prototyp wymaga typu całkowitego, przekazanie wartości rzeczywistej może powodować ostrzeżenia, utratę części ułamkowej lub błąd. Egzamin sprawdza, czy umiesz to odczytać z sygnatury.
Sygnatura opisuje interfejs funkcji/modułu: co przyjmuje i co zwraca. W aplikacjach internetowych ułatwia utrzymanie kodu (backend, skrypty, logika biznesowa), testowanie oraz integrację komponentów. Błędna sygnatura prowadzi do problemów z kompatybilnością wywołań.
Ćwicz szybkie rozpoznawanie: typ zwracany (przed nazwą) i typy parametrów (w nawiasach). Rozwiązuj krótkie zadania z prototypami i typami danych, a potem sprawdzaj, czy potrafisz opisać funkcję jednym zdaniem: "zwraca X, przyjmuje Y i Z".
info

Około 57% zdających odpowiada poprawnie na to pytanie. średnie

Źródła:

  • cppreference.com – Function declaration (C++), https://en.cppreference.com/w/cpp/language/function (dostęp: 2026-03-01)
  • Microsoft Learn – Function Declarations (C), https://learn.microsoft.com/en-us/cpp/c-language/function-declarations (dostęp: 2026-03-01)
  • GeeksforGeeks – Function Prototype in C, https://www.geeksforgeeks.org/function-prototype-in-c/ (dostęp: 2026-03-01)

Materiały:

  • Dokumentacja języka (sekcja: funkcje, prototypy, typy danych)
  • Materiały kursowe o typach danych i parametrach funkcji
  • Ćwiczenia z czytania sygnatur funkcji i dopasowywania typów

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego