Kontrollstrukturen Flashcards

(66 cards)

1
Q

Was ist die Syntax einer if-Bedingung?

A
if(Bedingung == wahr) {
   Anweisung1;
}
Anweisung2;
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wie sieht die Ausführungslogik der if-Verzweigung aus:
~~~
if(Bedingung == wahr) {
Anweisung1;
}
Anweisung2;
~~~

A

Wenn die Bedingung wahr ist wird zuert Anweisung1 ausgeführt und dann Anweisung2, sonst wird nur Anweisung2 ausgeführt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was kann bei einem Anweisungsblock weggelassen werden sollte nur eine Anweisung in diesem Anweisungsblock stehen?

A

Die geschweiften Klammern.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was gibt der Vergleichsoperator a < b zurück?

A

1(wahr) wenn a kleiner ist als b, sonst 0(falsch)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was gibt der Vergleichsoperator a <= b zurück?

A

1(wahr) wenn a kleiner oder gleich b ist, sonst 0(falsch)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was gibt der Vergleichsoperator a > b zurück?

A

1(wahr) wenn a größer b ist, sonst 0(falsch)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was gibt der Vergleichsoperator a >= b zurück?

A

1(wahr) wenn a größer oder gleich b ist, sonst 0(falsch)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was gibt der Vergleichsoperator a == b zurück?

A

1(wahr), wenn a gleich b ist, sonst 0(falsch)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was gibt der Vergleichsoperator a != b zurück?

A

1(wahr), wenn a nicht gleich b ist, sonst 0(falsch)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was ist der Fehler mit folgender if Bedingung wenn ich überprüfen möchte ob die Variable a gleich 18 ist:
~~~
if(a = 18) {

}
~~~

A

a wird der Wert 18 zugewiesen, aber es wird nicht überprüft ob a gleich 18 ist, da aus versehen der Zuweisungsoperator und nicht ein Vergleichsoperator verwendet wurde. Unterschied zwischen = und ==

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wie kann ich schreiben: Wenn Bedinung1 wahr ist führe Anweisung1aus, sonst wenn Bedingung2 wahr ist führe Anweisung 2 aus?

A
if(Bedingung1) {
   Anweisung1;
}
else if(Bedingung2) {
   Anweisung2;
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was muss vor einer ‘else if’ Verzweigung immer stehen?

A

eine if Verzweigung oder eine andere else if Verzweigung

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was macht der !-Operator

A

Er negiert Wahrheitswerte. Also alle Zahlen ungleich 0 werden zu 0 und die 0 wird zur 1.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Wie viele Operanden hat der !-Operator?

A

unär

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wie steht der !-Operator in bezug zu seinen Operanden?

A

Präfix

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wie viele Operanden haben Vergleichoperatoren?

A

binär

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Wie stehen Vergleichoperatoren in bezug auf ihre Operanden?

A

infix

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Auf welchen Datentypen sind Vergleichoperatoren anwendbar?

A

Ganzzahldatentypen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Auf welchen Datentypen ist der !-Operator anwendbar?

A

Ganzzahldatentypen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Wie kann ich folgende Bedingung vereinfachen:

if(a == 1 (wahr) ) 
A
if (a)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Wie kann ich folgende Bedingung vereinfachen:
~~~
if (a != 0)
~~~

A
if (a)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Wie kann ich folgende Bedingung vereinfachen:

if (a == 0)
A
if (!a)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Wie kann ich eine if-Verzweigung schreiben mit zwei Bedingungen: Bedingung1, Bedingung2 die durch ein und verbunden sind. Also die Bedingung wird wahr wenn sowohl Bedingung1 als auch Bedingung2 wahr sind?

A
if (Bedingung1 && Bedingung2)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Wenn bei einer &&-Verknüpfung die erste Bedingung bereits falsch ist, wird dann noch die zweite Bedingung überprüft?

A

Nein

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Wenn bei einer &&-Verknüpfung die erste Bedingung richtig ist, wird dann noch die zweite Bedingung überprüft?
Ja
26
Wenn bei einer ||-Verknüpfung die erste Bedingung richtig ist, wird dann noch die zweite Bedingung überprüft?
Nein
27
Wenn bei einer ||-Verknüpfung die erste Bedingung falsch ist, wird dann noch die zweite Bedigung überprüft?
Ja
28
Wie kann ich zwei Bedingung durch ein logisches Oder verknüpfen?
``` Bedingung1 || Bedingung2 ```
29
Wie ist die Syntax vom Bedingungsoperator ?
``` ? : ; ```
30
Wie viele Operanden hat der Bedinungsoperator?
ternär
31
Was ist die Ausführungslogik beim Bedinungsoperator?
Genau wie bei einer if else
32
Wie kann ich schreiben: Wenn Bedinung1 wahr ist führe Anweisung1 aus, sonst führe Anweisung2 aus mit einer if-else?
``` if(Bedingung1) { Anweisung1; } else { Anweisung2; } ```
33
Was muss immer vor einer else-Verzweigung stehen?
Eine if oder eine if-else Verzweigung
34
Wie kann ich die Operation: Var max kriegt den Wert a, wenn a größer ist, sonst b mit dem Bedingungsoperator darstellen?
``` max = (a > b) ? a : b; ```
35
Wie kann ich mehrere Anweisungen beim Bedinungsoperator realisieren?
* Auslagen in eine Funktion und im Bedingungsoperator die Funktion aufrufen (das ist die saubere Variante * mit Kommata und Klammern auflisten: ``` (a > b) ? (a = a * 2, a += 3, a) : b; ```
36
Was ist der Rückgabewert des Bedingungsoperators?
Der Rückgabewert der letzten ausgeführten Anweisung
37
Was ist die Syntax einer switch-Verzweigung?
``` switch(Ausdruck) { case Ausdruck1: anweisung1; break; case Ausdruck2: anweisung2; break; ... case AusdruckN: anweisungN; break; default: anweisung; } ```
38
Was gilt für die Ausdrücke bei einer Switch-Verzweigung bezüglich des Datentypes?
Muss ein Ganzzahldatentyp sein
39
Was gilt für die case Ausdrücke bei einer Switch-Verzweigung bezüglich der änderbarkeit ihrer Werte?
Die Werte müssen zur Laufzeit (oder auch Compilierzeit) fest und bekannt sein, dürfen also eine änderbaren Variablen sein (const vars sind erlaubt)
40
Was ist die Ausführungslogik der Switch-Anweisung: ``` switch(Ausdruck) { case Ausdruck1: anweisung1; ... ; case Ausdruck2: anweisung2; ... ; case AusdruckN: anweisungN; ... ; } ```
Es wird zum ersten case gesprungen bei dem Ausdruck == case-Ausdruck. Alle nachfolgenden Anweisungen, auch von den nachfolgenden cases werden dann abgearbeitet.
41
Wie kann man erreichen das bei der switch-Verzweigung nur der erste Case bei dem Ausdruck == case-Ausdruck gilt ausgeführt wird.
In dem man das Schlüsselwort break; als letzte Anweisung bei jedem case definiert.
42
Was ist der default case bei der switch-Verzweigung?
Der default fall trift immer ein. Wenn er also als letzter Fall steht wird er ausgeführt wenn kein anderer Fall eintritt.
43
Was ist die Syntax von einer while Schleife?
``` while (Bedingung == wahr) { // Anweisungen } ```
44
Was ist die Ablauflogik der folgenden Whileschleife: ``` while(Bedingung1) { Anweisung1; Anweisung2; } ```
1. Bedingung1 wird überprüft: wenn nein Beende, sonst setze fort: 2. Anweisung1 wird ausgeführt 3. Anweisung 2 wird ausgeführt 4. setzte bei 1. fort
45
Was ist der Zusammenhang zwischen Zahlen und Wahrheitswerten?
true: alle Ganzzahlen ungleich 0 false: 0
46
Was ist bei dieser While-Schleife falsch: ``` int x = 0; while (x > 10); { printf("Der Wert von x beträgt %d\n", x); x++; } ```
Das Komma hinter der While-Schleifen-Bedingung
47
Was ist bei dieser While-Schleife falsch: ``` int x = 2; while (x == 10) { printf("Der Wert von x beträgt %d\n", x); x *= x; } ```
Schleifenbedingung wird nie erfült. Wenn möglich sollte ein Test auf Gleichheit vermieden werden. Besser ist: `x <= 10`
48
Was ist bei dieser While-Schleife falsch wenn man beide zahlen gleichzeitig hochzählen möchte: ``` int zahl1 = 0, zahl2 = 0; while ((zahl1++ < 5) || zahl2++ < 5)) printf("Wert von zahl1: %d, Wert von zahl2: %d\n, zahl1, zahl2); ```
logischer Operator wertet nich unbeding alle Ausdrücke aus, daher wird zuwert zahl1 auf 5 hochgezählt und danch zahl2.
49
Was ist die Syntax einer do-while Schleife?
``` do { // Anweisungen } while (Bedingung == wahr); ```
50
Was ist der unterschied in der Ausführungslogik einer do-while Schleife gegenüber einer normalen Schleife?
Bei der do-while Schleife wird zuert der Schleifenkörper ausgeführt und danach wird die Bedingung überprüft.
51
Mit welcher Funktion kann ich mir eine pseudo-Randon Zufallszahl zurückgeben lassen?
`rand()`
52
In welcher headerdatei ist die Funktion `rand()` definiert?
`stdlib.h`
53
Was macht die Funktion `rand()` im genauen?
Basierend auf einer Anfangszahl, dem sogenanten Seed wird mit einer komplexen Mathematischen Funktion eine Zahl generiert.
54
Gibt die Funktion `rand()` für den gleichen seed die gleiche Zahl zurück?
Ja
55
Ist der startseed für die Funktion `rand()` bei jedem neuen Aufrufen eines Programmes gleich?
Ja
56
Wie kann man einen custom seed für die Funktion `rand()` setzten?
`srand (int: custom_seed)`
57
Mit welcher Funktion kann ich mir die aktuelle Systemzeit als Ganzzahl zurückgeben lassen?
`clock()`
58
In welcher Headerdatei ist die Funktion `clock()` definiert?
time.h
59
Wie kann ich mit Hilfe von `rand()`, `srand()` und `clock()` eine neuen seed bei jedem neuen Programmaufruf setzen und wirklich eine Zufallszahl mit rand zu erhalten?
``` #include #include int main(void) { srand(clock()); ... } ```
60
Wie ist die Syntax einer for-Schleife?
``` for (Initialisierung; Bedingung; Reinitialisierung) { // Anweisungen } ```
61
Was ist die Ablauflogik der for-Schleife: ``` for (Initialisierung; Bedingung; Reinitalisierung) { Anweisung1; } ```
1. die Initalisierung wird ausgeführt 2. die Bedingung wird überprüft: Wenn falsch wird die Schleife beendet, sonst setzte den Ablauf fort 3. Anweisungen1 wird ausgeführt 4. Reinitalisierung wird ausgeführt 5. Springe zu Schritt 2
62
Was ist der fehler bei folgender for Schleife: ``` for(i = 1 i <=5 i++) { printf("Schirtt\n"); } ```
Semikolon zwischen Initalisierung, Bedingung und Reinitialisierung vergessen
63
Was ist der Fehler bei folgender for-Schleife: ``` for(i = 1; i <=5; i++); { printf("Schritt\n"); } ```
Semikolo am Ende der Schleife
64
Was ist der Fehler bei folgender for-Schleife: ``` for(i = 2; i != 5; i += 2) { printf("Schirtt\n); } ```
Abbruchbedingung wird nicht ausgelößt -> Endlosschleife
65
Wie kann ich alle arten von Schleifen und die switch-Anweisung sofort beenden?
mit dem Schlüsselwort `break;`
66
Wie kann ich den aktuellen Schleifendurchlauf von allen Arten von Schleifen überspringen?
mit dem Schlüsselwort `continue;`