  /**************************************************************/
  /*                                                            */
  /*      UNIX 1 / WS 92/93       Gruppe  ux803                 */
  /*      2. Uebung - Aufgabe 1                                 */
  /*                                                            */
  /*      Vorname     Name        Matrikelnr.                   */
  /*     ---------   -------     -------------                  */
  /*      Dietmar     Dierks        125761                      */
  /*      Roman       Czyborra      127221                      */
  /*      Torsten     Buller        118794                      */
  /*      Gerasimos   Paliatsaras   140956                      */
  /*                                                            */
  /**************************************************************/

Programm 1:
Rueckgabewert ist: 5
Begruendung: Das else ist Teil der zweiten if-Anweisung und in dem Ausdruck nur
             nicht richtig eingerueckt. Somit wird fuer i=10,9,8,7,6 die Anwei-
             sung k++ ausgefuehrt, also genau 5 mal.
             Fuer i<=5 wird dann lediglich noch i-- ausgefuehrt.

Programm 2:
Fehler 1: falsch:  char c;
          richtig: int c;
          Grund:   Wenn c als char definiert wird, so ist der Wert 'EOF' nicht
                   zugelassen.
Fehler 2: falsch:  while (c=getchar()!=EOF || c!='\n')
          richtig: while ((c=getchar())!=EOF || c!='\n')
          Grund:   Man moechte ja c mittels getchar() lesen und danach testen,
                   ob ein EOF erreicht ist. In der falschen Versionist c wegen
                   der Bindungsstaerken der Befehle fuer den Test c!='\n'
                   im ersten Durchlauf underfiniert.
Fehler 3: falsch:  while ((c=getchar())!=EOF || c!='\n')
          richtig: while ((c=getchar())!=EOF && c!='\n')
          Grund:   Bei der falschen Version wird die Schleife nur durchlaufen,
                   solange kein EOF _oder_ kein \n erreicht wird. D.h., wenn
                   ein EOF erreicht wird, so liefert c!='\n' ein TRUE und die
                   Schleife wuerde weiterlaufen.

Programm 3:
a=1
b=20
c=4711
Begruendung: Im ersten Teil des Programms wird nichts veraendert, denn es gilt
             nicht a>=b bei der angegebenen Initialisierung, das else gehoert
             zum direkt vorhergehenden if (a > b) und wird also auch nicht
             erreicht.
             Im zweiten Teil steht am Anfang eine 'leere' while-Schleife, d.h.
             eine while-Schleife ohne statements. Somit wird b immer erst in-
             krementiert, dann wird verglichen, ob der Wert kleiner 20 ist. Ab-
             bruch bei b=20.
             Als letztes folgt dann noch eine einmalige Inkrementierung von a,
             denn die Anweisung a+=1 ist wegen des Semikolons kein Teil der
             while-Schleife.

Programm 4:
Zur Laufzeit greift das Programm auf Speicher ausserhalb der Feldgrenzen von
buf[] zu, da buf[80] deklariert wurde, somit sind nur die Felder von buf[0] bis
buf[79] definiert. In der for-Schleife lautet die Abbruchbedingung jedoch auch
auf '=', somit hat der letzte Durchlauf folgendes Aussehen:
  for (;80<=80;)
    buf[80]=80;
und das ist undefiniert.
Das gibt wohl einen segmentation fault oder so was.
