9.4    Kontrollfragen und Aufgaben

  1. Was sind Arrays?

  2. Wo liegt der Unterschied zwischen Strings und Arrays?

  3. Was ist die größte Gefahr bei der Verwendung von Arrays bzw. Strings?

  4. Welche Indexnummer hat das erste Element eines Arrays oder Strings?

  5. Im folgenden Listing wurden gleich zwei Fehler gemacht. Welche?

    00  // Kapitel9/aufgabe001.c
    01 #include <stdio.h>
    02 #include <stdlib.h>
    03 #define MAX 10

    04 int main(void) {
    05 int ival[MAX];
    06 for(int i = MAX; i > 0; i--) {
    07 ival[i] = i;
    08 }
    09 for(int i = 0; i < MAX; i++) {
    10 printf("%d\n", ival[i]);
    11 }
    12 return EXIT_SUCCESS;
    13 }
  6. Auch wenn das folgende Programm korrekt ausgeführt wird, ist ein Fehler enthalten. Welcher?

    00  // Kapitel9/aufgabe002.c
    01 #include <stdio.h>
    02 #include <stdlib.h>
    03 #define MAX 10

    04 int main(void) {
    05 char v[5] = { 'A', 'E', 'I', 'O', 'U' };
    06 printf("Die einzelnen Vokale: ");
    07 for(int i=0; i < 5; i++ ) {
    08 printf("%c (Dezimal: %d)\n", v[i], v[i]);
    09 }
    10 printf("Alle zusammen: %s\n", v);
    11 return EXIT_SUCCESS;
    12 }
  7. Schreiben Sie ein Programm, das die Größe in Bytes und die Anzahl der Elemente eines Arrays bzw. Strings ermittelt und ausgibt.

    Tipp: Verwenden Sie den sizeof-Operator. Bei den Strings können Sie auch die Funktion strlen() aus der Header-Datei string.h nutzen. Verwenden Sie folgende Arrays bzw. Strings:

    int iarr[]    = { 2, 4, 6, 4, 2, 4, 5, 6, 7 };
    double darr[] = { 3.3, 4.4, 2.3, 5.8, 7.7 };
    char str[] = { "Hallo Welt"};
  8. Schreiben Sie eine Funktion, die zwei int-Arrays auf Gleichheit überprüft. Die Funktion soll -1 zurückgeben, wenn beide Arrays gleich sind, oder die Position, an der ein Unterschied gefunden wurde. -2 soll zurückgegeben werden, wenn beide Arrays unterschiedlich lang sind.

    Hinweis: Verwenden Sie hierfür nicht die Funktion memcmp() aus der Headerdatei string.h, mit der Sie ebenfalls zwei Arrays auf Gleichheit überprüfen könnten.

  9. Schreiben Sie eine Funktion, die in einem String ein bestimmtes Zeichen durch ein anderes Zeichen ersetzt.

Im nächsten Kapitel wird ein sehr wichtiges Kapitel in C behandelt, nämlich die Verwendung von Zeigern. Wenn Sie sich das nächste Kapitel durchgelesen haben, werden Sie auch die Strings und Arrays noch besser verstehen.