KWALIFIKACJA INF3 - WRZESIEŃ 2014

PYTANIE NR 23.
Wskaż słowo kluczowe w języku C++ dodawane przed wbudowanym typem danych, które przesuwa zakres na liczby wyłącznie nieujemne.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Słowo kluczowe unsigned użyte przed typem całkowitym w C++ (np. unsigned int) oznacza typ bez znaku, czyli przeznaczony do przechowywania wartości nieujemnych. Pozostałe opcje nie zmieniają znaku: const blokuje modyfikację, a short/long zmieniają rozmiar typu.

Pełne wyjaśnienie:

W C++ słowo kluczowe unsigned jest modyfikatorem typu całkowitego. Zastosowane przed wbudowanym typem całkowitym (np. unsigned int, unsigned long, unsigned short) oznacza, że typ jest bez znaku, czyli jego zakres wartości obejmuje liczby nieujemne (od 0 do pewnej wartości maksymalnej zależnej od rozmiaru typu).

Dlatego odpowiedź "unsigned" pasuje do opisu: to właśnie ten modyfikator powoduje, że typ całkowity nie jest przeznaczony do zapisu liczb ujemnych.

Dlaczego pozostałe odpowiedzi są niepoprawne?

  • "const" to kwalifikator stałości. Oznacza, że zmiennej nie można ponownie przypisać wartości po inicjalizacji. Nie zmienia to jednak tego, czy typ jest ze znakiem czy bez znaku.
  • "short" to modyfikator rozmiaru (krótszy typ całkowity). Zmienia typową szerokość (liczbę bitów), ale sam w sobie nie przełącza typu na bez znaku. Można mieć zarówno short, jak i unsigned short.
  • "long" również jest modyfikatorem rozmiaru (dłuższy typ całkowity). Tak jak wyżej: wpływa na rozmiar i zakres, ale nie wymusza nieujemności bez użycia unsigned. Można spotkać long oraz unsigned long.

Wskazówka egzaminacyjna: gdy w pytaniu pojawia się informacja o liczbach "wyłącznie nieujemnych" w kontekście typów całkowitych, szukaj pojęcia "bez znaku" (unsigned). Gdy mowa o "niezmienności" wartości, wtedy pasuje "const".

Dodatkowe pytania

Dodatkowe pytania (FAQ):
unsigned oznacza typ całkowity bez znaku, czyli przeznaczony do przechowywania wartości nieujemnych (zaczynających się od 0). Stosuje się je jako modyfikator, np. unsigned int lub unsigned long.
Typ bez znaku nie ma bitu znaku używanego do zapisu wartości ujemnych. Dzięki temu cała "pojemność" bitów może być wykorzystana na wartości od 0 do maksimum dla danego rozmiaru typu.
Nie. const oznacza, że zmiennej nie można zmienić po przypisaniu początkowej wartości. Nie zmienia to rodzaju typu (ze znakiem/bez znaku) ani jego zakresu; dotyczy tylko możliwości modyfikacji.
Najczęściej unsigned łączy się z typami całkowitymi, np. unsigned int, unsigned short, unsigned long. Nie stosuje się go do typów zmiennoprzecinkowych w standardowym użyciu.
short zmienia rozmiar typu całkowitego (zwykle "mniejszy" niż int), a unsigned zmienia sposób interpretacji bitów na bez znaku. Możesz mieć short lub unsigned short – to różne cechy.
long dotyczy rozmiaru (zwykle większy zakres niż int), a unsigned dotyczy braku znaku. Możliwe są kombinacje, np. unsigned long, gdy chcesz duży zakres tylko dla wartości nieujemnych.
Nie w sensie matematycznym. Zmienna unsigned nie przechowuje liczb ujemnych, ale wyniki operacji mogą "zawinąć się" (np. przy odejmowaniu 0 - 1). Na egzaminie ważne jest rozumienie, że typ jest bez znaku.
Najczęściej przy licznikach, indeksach, rozmiarach i ilościach, które z założenia nie powinny być ujemne (np. liczba elementów, długość danych). Trzeba jednak uważać na porównania i odejmowanie, by uniknąć nieintuicyjnych efektów.
Szukaj sformułowań: "typ bez znaku", "tylko wartości nieujemne", "od 0 do maksimum", "liczby naturalne (bez ujemnych)". To typowe wskazówki, że poprawnym wyborem jest modyfikator unsigned.
Częsty błąd to wybór const (bo kojarzy się z "ograniczeniem"), albo short/long (bo kojarzą się z "zakresem"). Warto zapamiętać: short/long = rozmiar, unsigned = brak znaku, const = niezmienność.
info

To pytanie poprawnie rozwiązuje 70% zdających egzamin. średnio łatwe

Specjaliści zwracają uwagę: "Słowo kluczowe unsigned użyte przed typem całkowitym w C++ (np. unsigned int) oznacza typ bez znaku, czyli przeznaczony do przechowywania wartości nieujemnych."

Źródła:

  • cppreference.com: "unsigned" (C++), https://en.cppreference.com/w/cpp/language/types - dostęp 2026-03-01
  • cppreference.com: "Fundamental types" (C++), https://en.cppreference.com/w/cpp/language/types - dostęp 2026-03-01
  • cplusplus.com: "Data types" (C++), https://www.cplusplus.com/doc/tutorial/variables/ - dostęp 2026-03-01

Materiały:

  • Dokumentacja referencyjna C++ (hasła o typach całkowitych i unsigned)
  • Podręcznik do podstaw C++: typy, deklaracje, zakresy wartości
  • Ćwiczenia: deklarowanie zmiennych różnych typów i obserwacja ostrzeżeń kompilatora

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego