KWALIFIKACJA ELM5 - TEST WIEDZY NR 7

PYTANIE NR 39.
Załóżmy, że otrzymałeś kod do programowania urządzenia elektronicznego. Poniżej przedstawiono fragment kodu:
int main() {
  int x = 10;
  int y = 20;
  int z = x + y;
  printf("Suma x i y wynosi: %d", z);
  return 0;
}
Co zostanie wyświetlone na ekranie po uruchomieniu tego kodu?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
W programie x ma wartość 10, y ma wartość 20, a następnie z otrzymuje wynik dodawania: z = x + y = 30.
printf wypisuje stały tekst oraz podstawia w miejsce %d wartość zmiennej z, więc na ekranie pojawi się komunikat z liczbą 30.

Pełne wyjaśnienie:

Program wykonuje się sekwencyjnie od góry do dołu w funkcji main().

  • Najpierw tworzona i inicjalizowana jest zmienna x wartością 10.
  • Następnie tworzona i inicjalizowana jest zmienna y wartością 20.
  • Kolejna linia oblicza sumę: z = x + y. Ponieważ 10 + 20 = 30, po tej instrukcji z ma wartość 30.

Instrukcja printf("Suma x i y wynosi: %d", z) wypisuje tekst oraz w miejsce specyfikatora %d podstawia liczbę całkowitą przekazaną jako kolejny argument, czyli aktualną wartość zmiennej z.

Dlatego poprawny wynik na ekranie to: Suma x i y wynosi: 30.

Dlaczego pozostałe odpowiedzi są błędne?

  • ...10 – to wartość x, ale program nie wypisuje x, tylko z po dodaniu.
  • ...20 – to wartość y; analogicznie nie jest ona podstawiana do %d.
  • ...0 – taka wartość nie występuje w kodzie. z nie jest zerowane, tylko obliczane jako suma x i y.

Wskazówka egzaminacyjna: przy pytaniach o "co wyświetli program" prześledź wartości zmiennych po każdej linijce i sprawdź, która zmienna jest faktycznie przekazana do funkcji wypisującej.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
%d to specyfikator formatu dla liczby całkowitej typu int w zapisie dziesiętnym. Oznacza, że printf ma w tym miejscu wstawić wartość kolejnego argumentu (np. zmiennej) jako liczbę całkowitą.
Najpierw ustalasz wartości zmiennych: x=10, y=20. Potem wykonujesz linię z = x + y, więc z=30. Na końcu sprawdzasz, co jest przekazane do printf: wypisywany jest tekst i wartość z podstawiona za %d.
Bo program nie wypisuje bezpośrednio x ani y. Najpierw liczy sumę i zapisuje ją do z, a dopiero potem przekazuje do printf zmienną z. Dlatego na ekran trafia wynik dodawania, a nie jedna z liczb składowych.
Brak \n zwykle nie zmienia treści komunikatu, tylko to, czy kursor przejdzie do następnej linii. W typowych zadaniach egzaminacyjnych liczy się głównie tekst i liczba, więc kluczowe pozostaje, że wypisana wartość to 30.
Najczęstsze błędy to: czytanie samego tekstu bez analizy argumentów, pomijanie linijek z obliczeniami, mylenie tego, co jest drukowane (np. x) z tym, co faktycznie przekazano do printf (tu: z), oraz ignorowanie znaczenia %d.
W praktyce poprawny program w C powinien zawierać #include <stdio.h>, bo tam deklarowana jest funkcja printf. Bez tego kompilator może zgłosić ostrzeżenia lub błędy (zależnie od ustawień). Sens zadania dotyczy jednak logiki: z=30 i to jest wypisywane.
Spójrz na argumenty printf po napisie w cudzysłowie. Po przecinku podajesz wartości, które mają zastąpić specyfikatory formatu (np. %d). W tym przykładzie po przecinku jest z, więc to ona będzie podstawiona w miejsce %d.
Bo pozwala szybko wypisać wartości zmiennych i stan programu (np. na UART lub konsolę debug). Dzięki temu łatwiej wykryć błędy w obliczeniach, warunkach i przepływie programu. Trzeba jednak uważać na narzut czasowy i pamięciowy w mikrokontrolerach.
%d wypisuje liczbę typu int jako ze znakiem (może być ujemna), a %u jako bez znaku (unsigned). Jeśli użyjesz złego specyfikatora, możesz dostać mylący wynik, mimo że program się skompiluje.
Ćwicz śledzenie programu linia po linii: zapisuj wartości zmiennych po każdej instrukcji. Utrwal operatory arytmetyczne i przypisania oraz podstawowe funkcje wejścia/wyjścia. Pomaga też nawyk sprawdzania: co jest obliczane, gdzie trafia wynik i co jest wypisywane.
info

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

Źródła:

  • cppreference.com: printf — formatowanie wyjścia w C (https://en.cppreference.com/w/c/io/fprintf) - accessed 2026-02-18
  • The GNU C Library Manual: Formatted Output (printf family) (https://www.gnu.org/software/libc/manual/html_node/Formatted-Output.html) - accessed 2026-02-18

Materiały:

  • Podręcznik do języka C (podstawy: typy, operatory, funkcje wejścia/wyjścia)
  • Dokumentacja printf i specyfikatorów formatowania (%d, %u, %x)
  • Ćwiczenia z czytania kodu: śledzenie wartości zmiennych krok po kroku

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego