7.12    Kontrollfragen und Aufgaben

  1. Was ist eine Vorausdeklaration?

  2. Versuchen Sie, den Begriff Call by Value etwas ausführlicher zu beschreiben.

  3. Was müssen Sie bei der Verwendung eines Rückgabewertes beachten, und mit welcher Anweisung können Sie einen Wert aus einer Funktion zurückgeben?

  4. Welcher Speicher verwaltet bei einem gewöhnlichen Funktionsaufruf (ohne spezielle Speicher-Spezifizierer) die Daten?

  5. Was sind Rekursionen?

  6. Beschreiben Sie den Unterschied zwischen einer globalen und lokalen Variablen.

  7. Was können Sie tun, wenn Sie eine globale Variable verwenden wollen, diese aber nur in der aktuellen Quelldatei und nicht in anderen Quelltexten oder Header-Dateien sichtbar sein soll?

  8. Wie erhalten Sie innerhalb einer Funktion den Wert einer Variablen, um bei einem erneuten Funktionsaufruf darauf zurückzugreifen?

  9. Warum lässt sich das folgende Programm nicht übersetzen?

    00  // Kapitel7/aufgabe001.c
    01 #include <stdio.h>
    02 #include <stdlib.h>

    03 int main(void) {
    04 float fval = multi(3.33);
    05 printf("%.2f\n", fval);
    06 return EXIT_SUCCESS;
    07 }

    08 float multi(float f) {
    09 return (f*f);
    10 }
  10. Was wurde bei diesem Beispiel falsch gemacht?

    00  // Kapitel7/aufgabe002.c
    01 #include <stdio.h>
    02 #include <stdlib.h>

    03 float volumen_Rect(float l, float b, float h) {
    04 float volumen = l*b*h;
    05 }

    06 int main(void) {
    07 float vol = volumen_Rect(10.0, 10.0, 12.5);
    08 printf("Volumen: %f\n", vol);
    09 return EXIT_SUCCESS;
    10 }
  11. Schreiben Sie das Programm bzw. die Funktion fakul(), in der Sie mit einer Rekursion die Fakultät von n berechnet haben (Kapitel7/fakultaet.c), um, damit die Fakultät ohne Rekursion berechnet wird.

Im nächsten Kapitel werden wir Ihnen zusätzlich zu #include noch weitere hilfreiche Präprozessor-Befehle vorstellen, mit denen Sie z. B. Teile Ihres Quellcodes nur unter bestimmten Bedingungen kompilieren können. So können Sie z. B. bestimmte Teile Ihres Codes in Abhängigkeit vom verwendeten Betriebssystem einfügen. Ferner können Sie mit den Präprozessor-Befehlen Konstanten definieren, die keinen Speicherplatz benötigen, bzw. erst, wenn diese im Programm vorkommen.