Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Algorytmy i podstawy informatyki

int liczby[3] = {4, 8, 15, 16}; printf("%d", liczby[0]); Wskaż, na czym polega błąd w kodzie zapisanym w języku C++.

int liczby[3] = {4, 8, 15, 16};
printf("%d", liczby[0]);
Wskaż, na czym polega błąd w kodzie zapisanym w języku C++.
A. Tablicy typu int nie można inicjalizować podczas deklaracji.
Źle. Inicjalizacja tablicy przy deklaracji jest w C++ dozwolona.
B. Indeksy tablicy muszą zaczynać się od 1, więc liczby[0] nie istnieje.
Źle. W C++ indeksy zaczynają się od 0, więc liczby[0] to pierwszy element.
C. Do funkcji printf przekazano zbyt mało argumentów.
Źle. printf otrzymał jeden znacznik %d i jedną wartość, więc argumentów jest dość.
D. Lista inicjalizująca zawiera więcej wartości, niż wynosi rozmiar tablicy.
Dobrze. Tablica ma 3 miejsca, a podano 4 wartości - kompilator zgłosi błąd.

Poprawna jest odpowiedź o zbyt wielu wartościach w liście inicjalizującej. Tablica zadeklarowana jako int liczby[3] ma miejsce na trzy elementy, a w nawiasach klamrowych podano cztery wartości. Kompilator C++ zgłasza wtedy błąd (zbyt wiele inicjalizatorów) i program się nie skompiluje.

Do zapamiętania: wartości może być mniej niż rozmiar - int t[5] = {1, 2}; wypełni pozostałe elementy zerami. Można też pominąć rozmiar, a kompilator policzy go sam: int liczby[] = {4, 8, 15, 16}; utworzy tablicę czteroelementową. Indeksy zaczynają się od 0, więc ostatni element tablicy o rozmiarze n ma indeks n - 1.

Każda z błędnych odpowiedzi opisuje regułę, która w C++ nie obowiązuje. Inicjalizacja tablicy przy deklaracji jest dozwolona i bardzo częsta - zapis int t[3] = {4, 8, 15}; jest w pełni poprawny. Problemem jest tylko liczba wartości, a nie sam sposób zapisu.

Wywołanie printf("%d", liczby[0]) ma dokładnie tyle argumentów, ile potrzeba: jeden znacznik formatu %d i jedną wartość całkowitą. Twierdzenie, że indeksy zaczynają się od 1, to typowa pomyłka osób znających języki z numeracją od jedynki (np. Lua) albo arkusze kalkulacyjne. W C, C++, JavaScripcie, PHP i Javie pierwszy element ma indeks 0, więc liczby[0] to wartość 4. Szukając błędu w deklaracji tablicy, porównaj liczbę w nawiasach kwadratowych z liczbą wartości w klamrach. Gdy liczby się nie zgadzają, błąd leży właśnie tam.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.