C-Programmierung: Übungen zu Arrays, Zeigern und Strukturen
1. Struktur für Autodaten definieren
Definieren Sie eine Struktur für die folgenden Angaben eines Autos: Marke, Kategorie (Kompakt/Familie), Modell, Hubraum und Baujahr.
Antwort:
struct Datos_auto {
char marke[30];
char modell[10];
char kategorie[30];
int jahr;
int hubraum;
};4. Array-Indexüberschreitung
Was passiert, wenn Sie einem Element eines Arrays einen Wert zuweisen, dessen Index die definierte Größe überschreitet?
Antwort: Daten werden überschrieben (Speicherzugriffsfehler oder undefiniertes Verhalten).
5. Bedeutung des Array-Namens
Wenn ein Array wie folgt deklariert ist: int liste[12];, was stellt liste dar?
Antwort: Der Name des Arrays (entspricht der Speicheradresse des ersten Elements).
6. Definition eines Strings in C
Was ist ein String in C?
Antwort: Ein String ist ein zusammengesetzter Datentyp, ein Array von Zeichen, das durch ein Null-Zeichen ('\0') abgeschlossen wird.
7. Zugriff auf Teilstrings
Gegeben sei: char str[] = "Montenegro";. Schreiben Sie den Code, um die letzten 5 Buchstaben auszugeben.
Antwort:
int i;
for (i = 5; i <= 9; i++) {
printf("%c", str[i]);
}8. Was ist ein Zeiger?
Antwort: Ein Zeiger ist eine Variable, die die Speicheradresse einer anderen Variablen enthält. Er ermöglicht den direkten Zugriff auf Speicherbereiche.
9. Gründe für die Verwendung von Zeigern
Nennen Sie zwei gute Gründe für die Verwendung von Zeigern.
Antwort:
- Einfachere Manipulation von Arrays und Datenstrukturen.
- Effizientere Speicherverwaltung und Performance.
10. Zugriff auf Array-Elemente
Deklarieren Sie ein Array mit 10 Elementen namens tabelle und geben Sie zwei Möglichkeiten an, auf das dritte Element zuzugreifen.
Antwort: tabelle[2] oder *(tabelle + 2).
11. Mehrdimensionale Arrays und Zeiger
Gegeben sei: int arr[2][3] = {{10, 11, 12}, {13, 14, 15}};. Geben Sie eine Referenz auf das Element 14 in Array- und Zeigerschreibweise an.
Antwort:
- Array-Schreibweise:
arr[1][1] - Zeigerschreibweise:
*(*(arr + 1) + 1)
12. Funktion zum Tauschen von Variablen
Schreiben Sie eine Funktion zum Tauschen (Swap) zweier Integer-Variablen.
Antwort:
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}13. Summe von Array-Elementen mit Zeigern
Berechnen Sie die Summe der Werte eines Arrays mittels Zeigern.
Antwort:
float list[] = {1.0, 2.0, 3.0, 4.0, 5.0};
float summe = 0;
for(int i = 0; i < 5; i++) {
summe += *(list + i);
}