Klausur C Flashcards
Bitte schreiben sie zwei verschiedene Schlüsselwörter und zwei verschiedene Datentypen. Beschreiben sie diese jeweils in wenigen Worten.
Schlüsselwörter (Auswahl):
char, do, double, else, float, for, goto, if, int, long, return, short, sizeof, struct, switch, unsigned, void, while
Datentypen (Auswahl):
Integer (int), Gleitkommazahlen (float), Character (char)
Wie beschreibt man ein Integer (int) mit Vorzeichen?
Wie beschreibt man ein Integer (int) ohne Vorzeichen?
Integer mit Vorzeichen: signed int
Integer mit Vorzeichen: unsigned int
Was ist ein Bitüberlauf? Erlären sie anhand eines Beispiels!
Bei der Darstellung von Zahlen im Binärsystem kann es aufgrund des endlichen Speicherplatzes bei der Addition von 2 Zahlen zu einem Bitüberlauf kommen. Dabei springt die Zahl von der größtmöglichen zur kleinstmöglichen Zahl im dargestellten Zahlenbereich.
000 1
+1 1 1 1
_____
0000
Sie wollen eine Modulo-Rechnung durchführen. Nennen sie einen Datentyp mit dem dies möglich ist. Begründen sie ihre Wahll.
int, (long int)
Teilen mit Rest geht nur mit ganzen Zahlen
Im Zusammenhang mit Zeigern werden diese beiden Zeichen verwendet:
&
*
Wofür benutzt man sie?
& ist der Adressoperator.
* ist der Inhaltsoperator.
Alternativ: Erklärung
Welcher der aufgelisteten Scanbefehle ist für den nachfolgenden Quellcode richtig, um auf q einzulesen?
float q, * a;
a=&q;
a) scanf(“%f”, &a);
b) scanf(“%f”, *a);
c) scanf(%f, a);
d) scanf(“%f”, a);
d)
Die ASCII-Tabelle beinhaltet 128 Zeichen. Wie viele Bit sind nötig, um jedem Zeichen eine Dualzahl zuzuweisen?
7 bit
Sie haben ein Programm geschrieben was sich einwandfrei kompilieren lässt. Wenn sie es jedoch ausführen , bricht das Programm ab (Laufzeitfehler). Nennen sie 2 mögliche Ursachen.
> beim Teilen durch 0 oder Wurzel aus negativer Zahl
> Lesezugriff auf nicht vorhandene Dateien (sofern nicht abgefangen)
> nicht kompatible Datentypen für einlesen (sofern nicht abgefangen)
> Zugriff auf nicht vorhandenes Felelement (?)
“lässt sich einwandfrei kompilieren” heißt was?
Programm wurde ordnungsgemäß geschrieben, Fehler rührt woanders her
Worauf lässt das int vor einem Funktionsprototypen schließen (z.B. int main(void))?
Auf den Datentyp des Ruckgabewertes. Hier integer, also eine ganzzahlige Variable
Nenne und beschreibe die beiden Operatoren, die in Verbindung mit Zeigern in
C auftauchen.
& ist der Adressoperator.
Er wird genutzt, um die Speicheradresse einer Variablen zu ermitteln.
- ist der Referenzierungsoperator.
Mit ihm wird auf den referenzierte Wert eines Zeigers zugegriffen, also den Wert der an der Adresse hinterlegt ist, auf die der Zeiger verweist.
Welche Zahl lässt sich mit einer 9-Bit-Binärzahl maximal darstellen?
2^9 - 1
bzw 511
Schreibe einen exemplarischen Funktionsaufruf einer Funktion in der Main
test = ableich(feld);
Was wird der Funktion “abgleich” beim Funktionsaufruf in der main konkret übergeben?
test = ableich(vektor);
Ein Zeiger auf das erste Element des Feldes “vektor”
Was passiert wenn man aus einer nicht existierenden Datei lesen möchte? (also welchen Fehler zeigt es?)
segmentation fault