KWALIFIKACJA INF2 + INF3 - STYCZEŃ 2010

PYTANIE NR 27.
Program w języku C/C++ składa się z kilkunastu różnych funkcji. Która z funkcji pełni rolę programu głównego?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Funkcją pełniącą rolę programu głównego w C/C++ jest "main", ponieważ stanowi standardowy punkt wejścia wykonywania programu.
Pozostałe cechy (pierwsza/ostatnia w pliku, typ void) nie decydują o tym, od której funkcji zaczyna się uruchomienie aplikacji.

Pełne wyjaśnienie:

W językach C i C++ wykonanie programu rozpoczyna się w funkcji o nazwie main. Jest to standardowy punkt wejścia (entry point) dla typowego programu uruchamianego jako aplikacja. System uruchamia program, a środowisko uruchomieniowe przekazuje sterowanie właśnie do tej funkcji.

Odpowiedź "Nosząca nazwę main." jest poprawna, bo to nazwa funkcji determinuje jej rolę jako startu programu, a nie jej położenie w pliku czy typ zwracany.

  • Odpowiedź "Znajdująca się jako ostatnia w programie." jest błędna: kolejność definicji funkcji w pliku źródłowym nie oznacza kolejności wykonywania. Funkcje mogą być definiowane w dowolnym miejscu, a o wywołaniach decyduje kod (np. wywołania z main).
  • Odpowiedź "Znajdująca się jako pierwsza w programie." jest błędna z tego samego powodu: to nie jest język interpretowany linia po linii od początku pliku; kompilacja i linkowanie tworzą program, którego start jest zdefiniowany przez punkt wejścia.
  • Odpowiedź "Typu void." jest błędna, bo typ zwracany nie przesądza o roli funkcji jako startowej. Co więcej, w praktyce funkcja main ma określone dopuszczalne postacie (najczęściej zwraca kod zakończenia), a "void" bywa mylone z "funkcją, która nic nie zwraca", co nie definiuje "główności".

Wskazówka egzaminacyjna: gdy pytanie dotyczy programu głównego w C/C++, szukaj odpowiedzi odnoszącej się do nazwy main lub do pojęcia punktu wejścia, a nie do kolejności w pliku czy do typu zwracanego.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Funkcja main to standardowy punkt wejścia programu w C/C++. To od niej zaczyna się wykonywanie aplikacji uruchamianej przez system. Zwykle zwraca kod zakończenia (np. 0 przy poprawnym zakończeniu), a jej argumenty mogą przenosić parametry uruchomienia.
Ponieważ plik źródłowy jest kompilowany i linkowany, a nie wykonywany linia po linii. Kolejność zapisu funkcji nie wyznacza kolejności uruchomienia. Środowisko uruchomieniowe przekazuje sterowanie do ustalonego punktu wejścia, którym jest funkcja main.
Najczęściej spotkasz postacie zwracające liczbę całkowitą, np. int main() oraz wersję z argumentami wiersza poleceń. W praktyce ważne jest, że main zwraca kod zakończenia programu, który może być odczytany przez system lub skrypty automatyzujące.
Nie. Funkcja main może znajdować się w dowolnym miejscu pliku źródłowego. Istotne jest to, aby była poprawnie zdefiniowana i widoczna na etapie linkowania. O kolejności wykonywania decydują wywołania funkcji, a nie ich pozycja w kodzie.
W typowych wymaganiach języka C/C++ funkcja main jest związana z kodem zakończenia programu, dlatego standardowo używa się typu całkowitego. Użycie void bywa uznawane za niepoprawne lub nieprzenośne. Na egzaminie najbezpieczniej przyjąć, że main zwraca kod zakończenia.
Taki komunikat zwykle oznacza, że w projekcie nie ma zdefiniowanej funkcji main (albo jest w pliku, który nie został dołączony do kompilacji/linkowania). Linker nie potrafi znaleźć punktu wejścia programu, więc nie może zbudować poprawnego pliku wykonywalnego.
Argumenty funkcji main mogą przenosić parametry uruchomienia programu, np. to, co wpiszesz po nazwie programu w terminalu. Dzięki temu aplikacja może zmieniać działanie zależnie od opcji i danych wejściowych bez modyfikowania kodu źródłowego.
W jednym programie (finalnym pliku wykonywalnym) powinna istnieć dokładnie jedna definicja funkcji main. Jeśli pojawi się więcej niż jedna, kompilacja/linkowanie zwykle zakończy się błędem wielokrotnej definicji. Możesz mieć wiele funkcji pomocniczych, ale start jest jeden.
Najprościej użyć wyszukiwania w IDE po tekście main lub skorzystać z funkcji "Go to symbol/definition". W większych projektach (wiele plików) main bywa w osobnym pliku, np. main.c albo main.cpp. Czasem warto też sprawdzić konfigurację targetu w systemie budowania.
Ćwicz tworzenie programów z wieloma funkcjami: osobno funkcje pomocnicze i osobno main, która je wywołuje. Naucz się rozpoznawać, co jest punktem wejścia, jak działa zwracanie kodu zakończenia i jak przekazywać argumenty uruchomienia. To częsty, podstawowy temat.
info

Około 77% zdających odpowiada poprawnie na to pytanie. średnio łatwe

Źródła:

  • cppreference.com: "main function" (C++) – https://en.cppreference.com/w/cpp/language/main_function (dostęp: 2026-03-02)
  • cppreference.com: "main function" (C) – https://en.cppreference.com/w/c/language/main_function (dostęp: 2026-03-02)

Materiały:

  • Dokumentacja języka C: opis funkcji main i punktu wejścia
  • Dokumentacja języka C++: opis funkcji main
  • Materiały dydaktyczne do podstaw programowania strukturalnego w C/C++

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego