Ü B U N G S F R A G E N
 -----------------------

A. Datentypen:

1.Was ist eine Variable und wozu wird sie einem Programm gebraucht?
2.Aus welchen Bestandteilen setzt sich eine Variable zur Laufzeit eines Programmes
  zusammen und welche davon sind veränderbar?
3.Welche Einschränkungen gibt es bei der Benennung von Variablen?
4.Was unterscheidet eine Variable von einer Konstanten bei der Deklaration?
5.An welcher Stelle in einem Programm müssen Variablen deklariert werden?
6.Was ist der Unterschied zwischen dem Gültigkeitsbereich und dem
  Sichtbarkeitsbereich einer Variable?
7.In welchem Programmteil wird eine globale Variable angelegt?
8.In welchen Programmteilen ist eine lokale Variable sichtbar?
9.Welches sind die elementaren Grunddatentypen?

B. Operatoren:

1.Nennen Sie die grundlegenden Operationen ?
2.Welches sind die drei Ausführungsregeln bei allen Operationen?
3.Was ist bei der Zuweisung des Ergebnisses einer Operation an eine Variable
  zu beachten?
4.Wann kann die Zuweisung des Ergebnis an eine Variable unterbleiben?
5.Wie wird ein Wahrheitswert in C ausgedrückt?
6.Was versteht man unter einem Seiteneffekt?
7.Bei welcher arithm. Operation besteht besondere Gefahr von Informationsverlust
  (Ungenauigkeit) ?

C. Kontrollstrukturen

1.Welche zwei grundlegenden Arten von Kontrollstrukturen unterscheidet man?
2.Welche Arten von Verzweigungen gibt es?
3.Nach welchen Gesichtspunkten wird der Bedingungsausdruck (in runden Klammern)
  einer Kontrollstruktur ausgewertet?
4.Was ist der Unterschied zwischen der Anweisung break und continue?
5.Welche Arten von Wiederholungen gibt es und was ist ihr Unterschied?
6.Wie lautet die Reihenfolge bei der Auswertung einer for-Schleife?
7.Welche Bedeutung hat die Art der Inkrementierung bzw. Dekrementierung
  (Präfix / Postfix)?

D. Funktionen

1.Wozu braucht man Funktionen in einem Programm?
2.Wie erfolgt der Datenaustausch zwischen main() und einer Funktion?
3.Unter welchen Voraussetzungen braucht man keine Übergabeparameter?
4.Was ist der Prototyp einer Funktion und woraus besteht er?
5.Wieviele Übergabewerte sind erlaubt?
6.Wieviele Rückgabewerte sind erlaubt?
7.Wie nennt man die Übergabe von Variablenwerten beim Aufruf einer Funktion?

E. Vektoren

1.Was sind die Grundmerkmale eines Vektors?
2.Warum muss die Grösse eines Vektors bei der Definition angegeben werden?
3.In welchem Fall kann dies unterbleiben?
4.Wie spricht man ein Element eines Vektors an und was ist dabei zu beachten?
5.Welche Kontrollstruktur eignet sich besonders zum Durchlaufen eines Vektors?
6.Wie sind in C Zeichenketten aufgebaut?
7.Warum muss eine Zeichenkette in C mit einem besonderen Endezeichen markiert sein?
8.Wenn ein Vektor an eine Funktion übergeben wird, haben dann Veränderungen
  Auswirkungen auf das Original oder nicht?

F. Strukturen

1.Was ist der prinzipielle Unterschied zwischen einem Vektor und einer Struktur?
2.Mit welchem Operator greift man auf die Komponenten einer Struktur zu?
3.Wieviele Objekte einer Struktur dürfen angelegt werden?
4.Worin müssen sie sich unterscheiden ?
5.Dürfen Komponenten innerhalb einer Struktur initialisiert werden?

G. Pointer

1.Was ist der inhaltliche Unterschied zwischen einer normalen Variablen
  und einem Pointer?
2.Womit muss ein Pointer initialisiert werden, damit er dereferenziert werden kann?
3.Welches ist der alternative Zugriffsoperator bei Pointer-Variablen?
4.Warum muss ein Pointer einem bestimmten Datentyp angehören?
5.Was ist der Vorteil von Pointern beim Aufruf einer Funktion?

H. Dynamischer Speicher (Heap)

1.Wie heisst die C-Funktion, mit der dynamischer Speicher angefordert wird,
  welche Parameter übernimmt sie und was gibt sie zurück?
2.Beschreiben Sie, wie ein Heap-Vektor mit 100 Elementen vom Type double angelegt wird
3.Wie wird dieser Vektor auf 200 Elemente vergrössert, ohne dass die bisherigen
  Inhalte verloren gehen.
4.Was ist beim Zugriff auf den Vektor innerhalb einer Funktion zu beachten (Grösse) ?

I. File-Funktionen

1.Wozu wird die FILE-Struktur (Puffer) benötigt?
2.Welches sind die Übergabeparameter der fopen( )-Funktion und was gibt sie zurück?
3.Wie heissen die Funktionen zum binären Lesen und Schreieben, welche Parameter
  übernehmen sie und was geben sie zurück?
4.Warum muss beim Schreiben eines Vektors die Grösse eines einzelnen
  Elements angegeben werden?