Das Buch für Anfänger zur C Programmierung unter Linux und MS Windows, Einstieg in C Jürgen Wolf C C++ C/C++ Programmieren Linux ANSI C Standard C C99 Einstieg in C Buch Bücher Einstieg in C - C Kurs Programmieren C/C++ Tutorial Lösungen zu den Aufgaben von Kapitel 1 bis 10
  1. Es fehlt die Angabe der main()-Funktion.

    #include <stdio.h>
    
    int main()
    {
       printf("Hallo Welt?\n");
       return 0;
    }
  2. Ansatt geschweifter Klammern wurden im Anweisungsblock von main() runde Klammern verwendet und bei der Stringkonstante in printf() fehlen die doppelten Anführungszeichen.

    #include <stdio.h>
    
    int main()
    {
      printf("Kann ein Pinguin fliegen?");
      return 0;
    }
  3. Das Listing zur Ausgabe des Hallo Welt-Quellcodes:

    #include <stdio.h>
    
    int main()
    {
      printf("#include \n\n");
      printf("int main()\n{\n");
      printf("  printf(\"Hallo Welt\\n\");\n");
      printf("  return 0;\n}\n");
      return 0;
    }
  4. a) Der Datentyp short oder gar char würde sich dafür bestens eignen.
    b) Ein Gleitpunktdatentyp wie float oder double. Je nach Genauigkeit. Event. auch long double.
    c) Den Datentyp long.

  5. Beim Einlesen des Datentypen double, müssen Sie hier mit scanf() die Formatangabe %lf verwenden. Bei der Ausgabe von printf() ist dies nicht nötig.

    #include <stdio.h>
    
    int main()
    {
       double wert;
    
       printf("Eine Gleitpunktzahl bitte: ");
       scanf("%lf",&wert);
       printf("Die Zahl lautet %f\n",wert);
       return 0;
    }
  6. Hier fehlt der Adressoperator beim Einlesen mit scanf().

    #include <stdio.h>
    
    int main()
    {
       double wert;
    
       printf("Eine Gleitpunktzahl bitte: ");
       scanf("%lf",&wert);
       printf("Die Zahl lautet %f\n",wert);
       return 0;
    }
  7. Ein Trick, womit Sie zwei Zahlen vertauschen können. Ein wenig übersichtlicher sieht dieser Vorgang so aus:

    x = x ^ y; // x = 33 XOR 88  -> x = 121
    y = y ^ x; // y = 88 XOR 121 = 22  -> y = 33
    x = x ^ y; // x = 121 XOR 33 = 88  -> x = 88

    Hier das komplette Listing:

    #include <stdio.h>
    
    int main()
    {
       int x=33, y=88;
       printf("x=%d y=%d\n",x,y);
       x^=y^=x^=y;
       printf("x=%d y=%d\n",x,y);
    
       return 0;
    }

    Natürlich muss darauf hingewiesen werden, dass Bitmanipulationen nicht unbedingt portabel sind.

  8. a) 8
    b) 1

  9. a) 5
    b) 6
    c) 8
    d) 12