Arrays Flashcards

(77 cards)

1
Q

Wie sieht die Synatx zur Deklaration eines Arrays aus?

A
Datentyp Bezeichner[Anzahl der Elemente];
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wann ich nach deklaration eines Arrays dessen größe noch ändern?

A

Nein

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

Wie kann ich auf das i-te element des Arrays arr zugreifen?

A
var = arr[i];
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Welchen Index hat das erste Element in einem Array?

A

0

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

Welchen Index hat das letzte Element in einem Array mit n Element?

A

n-1

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

Wie kann ich ein Array vom Typ int der Größe i mit nur Nullen direkt bei der Deklaration initialisieren?

A
int arr[i] = {0};
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wie kann ich ein Array bei der Deklaration initialisieren?

A

Die Initialwerte müssen zwischen geschweiften Klammern stehen?

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

Was kann ich bei der Deklaration von einem Array weglassen, wenn ich diesen bei der Deklaration initialisiere?

A

Die Anzahl der Elemente in den eckigen Klammern.

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

Wenn ich ein Array mit direkt bei der Deklaration initialisere, ich aber weniger Initalwerte angeben als Elemente im Array, was passiert mit den nicht initalisierten werten? Z.b.:

int number[5] = {1, 2, 3};
A

Die restlichen Elemente werden mit 0 initialisiert.

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

Was macht die Funktion memset?

void *memset(void *adres, int zeichen, size_t n)
A

Der Wert von Zeichen wird in jedes der ersten n Zeichen des Speicherbereichs mit der Adrese adres geschreiben

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

Was ist die Funktionssignatur von der Funktion memset?

A
void *memset(void *adres, int zeichen, size_t n)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

In welcher Headerdatei ist die Funktion memset definiert?

A

string.h

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

Wie kann ich mit der Funktion memset das folgende Array mit 0en belegen?

int bigarray[1000];
A
memset(bigarray, 0, sizeof(bigarray));
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Welche Initialwerte hat ein globales Array?

A

Alle Initialwerte sind 0.

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

Welche Initalwerte hat ein static Array?

A

Alle Initalwerte sind 0.

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

Welche Initalwerte hat ein local Array?

A

Alle Initalwerte sind zufällig.

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

Wie kann ich zwei komplette Arrays vergleichen?

int arr1[100];
int arr2[100];
A

Mit der Funktion memcmp:

!memcmp(arr1, arr2, sizeof(arr1));
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

In welcher Headerdatei ist die Funktion memcmp definiert?

A

string.h

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

Was ist die Funktionssignatur von memcmp?

A
int memcmp(const void *adr1, const void *adr2, size_t n)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Was macht die Funktion memcmp?

A

Sie nimmt zwei Speicheradressen und eine Anzahl n von Bytes und schaut ob die n Bytes nach den Speicheradressen den gleichen Inhalt haben. Wenn ja wird 0 zurückgegeben.

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

Wie kann ich die Anzahl der Elemente in einem in einem Array bestimmen?

A
sizeof(array)/sizeof(datentyp)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Wie kann ich bei einer Funktion ein Parameter als Array deklarieren?

A
void func(int arr[], arr_size) {
......
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Ich habe ein Array int numbers[] und eine Funktion void func(int arr[]); Wie kann ich das Array numbers and die Funktion func übergeben?

A
func(arr);
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Wenn ich ein Array an eine Funktion übergebe, was wird tatsächlich an die Funktion übergeben?

A

Die Anfangsadresse des Arrays.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Wenn ich ein Array an eine Funktion übergebe und diesen Array in der Funktion verändere, wird der eigentliche Array dann auch verändert und wenn ja, warum?
Ja, der eigentliche Array wird auch verändert, da wir nicht auf einer Kopie vom Array arbeiten sondern auf dem gleichen Array da nur die Speicheraddresse des Arrays übergeben wird aber keine Kopie.
26
Wenn ich ein Array an eine Funktion übergeben möchte aber nicht den eigentlichen Array veränder möchte, welche zwei möglichkeiten habe ich?
* Eine Kopie vom Array selbst erzeugen und auf dieser arbeiten * Den Array in ein Struct verpacken
27
Wie kann ich ein Array in struct verpacken und dieses dann an eine Funktion weitergeben, damit ich nicht auf dem originalen Array arbeite?
``` typdef struct {int wert[3]; } array; void func(array z) { .... } int main(void) { array new_array; new_array.wert[0] = 10; .... func(new_array); } ```
28
Können Arrays als Rückgabetyp von Funktionen definiert werden?
Nein
29
Wie kann ich ein Array aus einer Funktion zurückgeben?
Als struct verpacken und das struct zurückgeben.
30
Warum sollte man ein Array nicht als Zeiger zurückgeben?
Weil das Array dann aus seinem Gültigkeitsbereich raus ist und die Werte an der Adresse von anderen Funktionen überschrieben werden können.
31
Wie kann ich ein mehrdimensionales Array deklarieren mit den Dimensionen: 4 Zeilen, 5 Spalten von Typ int?
``` int arr[4][5]; ```
32
Ich habe ein 3x3 Array welches ich mit den Werten 1 - 9 initialisieren möchte. Wie kann ich das Angeben?
``` int arr[][] = { {1, 2, 3} , {4, 5, 6}, {7, 8, 9} }; ```
33
Wie kann ich eine 3x3 Diagonalmatrix initalisieren ohne jeden einzelnen Wert aufzuschreiben?
``` int arr[][] = { {1}, {0, 1}, {0, 0, 1} }; ```
34
Wie kann ich auf das Element von einer n x m Matrix namens arr zugreifen welches sich in der i-ten Zeile und der j-ten Spalte befindet?
``` arr[i][j]; ```
35
Warum sollte man die größe eines Arrays schon vor der Implementierung festlegen wenn möglich?
Weil die vergrößerung/verkleinerung von Arrays während der Laufzeit sehr langsam ist.
36
Wenn ich ein mehrdimensionales Array als Parameter einer Funktion deklarieren möchte, was muss ich bezüglich der Dimensionen die ich angeben muss?
Alle Dimensionen außer der ersten müssen angeben werden.
37
Wie wird intern ein zweidimensionales Array an eine Funktion übergeben?
ein zweidimensionales Array zerfällt in ein Zeiger aus Arrays.
38
Wie kann ich das Array in folgender Funktionsdeklaration noch schreiben? ``` void function(int feld[][SPALTEN]); ```
``` void function(int (*ptr)[SPALTEN]); ```
39
Was ist das Problem, wenn man Strings mit scanf einlesen möchte? Z.B. "Programmieren macht Spass"
Es wird nur Programmieren eingelesen weil schon dem ersten Leerzeichen die Eingabe von scanf als beendet angesehen wird.
40
Welche Funktion sollte man zum einlesen eines Strings verwenden?
``` char *fgets(char *string, int anzahl_zeichen, FILE *stream); ```
41
In welcher Headerdatei ist die Funktion fgets definiert?
``` stdio.h ```
42
Wie kann ich mit fgets ein Satz in das Array `char str[100]` von der Standarteingabe einlesen?
``` fgets(str, 100, stdin); ```
43
Was macht die Funktion `strcat()`?
Sie concateniert zwei Strings (hängt sie aneinander).
44
In welcher headerdatei ist die Funktion `strcat()` definiert?
string.h
45
Ich habe zwei strings in arrays gespeichert. Wie kann ich diese mit der Funktion `strcat()` zusammenhängen: ``` int string1[]; int string2[]; ```
``` char *string_concat = strcat(string1, string2); ```
46
Gilt die Funktion `strcat()` als sichere Funktion? Wenn nein, warum nicht?
Sie gilt nicht als sichere Funktion da sie nicht die länge des Quellstrings überpruft und somit über den offiziellen Speicherbereich hinaus geschreiben werden kann.
47
Was macht die Funktion `strchr()`
Die Funktion nimmt ein String und ein Zeichen und gibt die Adresse des ersten auftreten des Zeichens im String zurück. Sollte das Zeichen nicht im String auftreten wird NULL zurückgegeben.
48
In welcher Headerdatei ist die Funktion `strchr()` definiert?
string.h
49
Wie kann ich nach dem zeichen in der Variable a in dem String str suchen?
``` char *first_position = strchr(str, a); ```
50
Was macht die Funktion `strcmp()`?
Sie überprüft ob zwei Strings gleich sind. Wenn ja wird 0 zurückgegeben. Wenn String 1 größer ist als String 2 ist der Rückgabewert größer als 0, sonst kleiner.
51
In welcher Headerdatei ist die Funktion `strcmp()` definiert?
string.h
52
Wie kann ich mit der Funktion `strcmp()` die beiden Strings `s1` & `s2` vergleichen?
``` int vergleich = strcmp(s1, s2); ```
53
Was macht die Funktion `strcpy()`
Sie kopiert einen String in ein anderes Array.
53
In welcher Headerdatei ist die Funktion `strcpy()` definiert?
string.h
54
Ist die Funktion `strcpy()` sicher? Wenn nein warum?
Die Funktion ist nicht sicher weil hier nicht auf zu kleine Arrays und mögliche Pufferüberlaufe geachtet wird.
54
Was ist die Funktionssignatur von `strcpy()`?
``` char *strcpy(char *s1, const char *s2); ```
55
Was macht die Funktion `strcspn()`?
Gibt die länge eines Teilstrings vom Anfang bis zum Auftreten eines Zeichens aus einem anderen String zurück.
56
Was ist die Funktionssignatur von `strcspn()`?
``` int strcspn(const char *s1, const char *s2); ```
57
Was macht die Funktion `strlen()`?
Sie gibt die Anzahl der Zeichen in einem String zurück (ohne \0).
58
In welcher Headerdatei ist die Funktion `strlen()` definiert?
string.h
59
Was ist die Funktionssignatur von `strlen()`?
``` size_t strlen(const char *s1); ```
60
Was macht die Funktion `strncat()`?
Genau wie `strcat()` nur das mit ihr max n Zeichen angehängt werden.
61
Was ist die Funktionssignatur von `strncat()`?
``` char *strncat(char *s1, const char *s2, size_t n); ```
62
Was macht die Funktion `strncmp()`?
Genau das gleiche wie `strcmp()` nur das hier max n Zeichen miteinander verglichen werden.
63
Was ist die Funktionssignatur von `strncmp()`?
``` int strncmp(const char *s1, const char *s2, size_t n); ```
63
Was macht die Funktion `strncpy()`?
Genau das gleiche wie `strcpy()` nur das max n zeichen copiert werden.
64
Was ist die Funktionssignatur von `strncpy()`?
``` char *strncpy(char *s1, const char *s2, size_t n); ```
65
Was macht die Funktion `strpbrk()`?
Sie gibt die erste Position eines Zeichen in einem String zurück welches im Suchstring enthalten ist.
66
Was ist die Funktionssignatur von `strpbrk()`?
``` char *strpbrk(const char *s1, const char *s2); ```
67
Was macht die Funtkion `strrchr()`?
Ermittelt das Speicheradresse des letzten auftreten eines Zeichens in einem String.
68
Was ist die Funktionsisgnatur von `strrchr()`?
``` char *strrchr(const char *s, int ch); ```
69
Was macht die Funktion `strspn()`?
Gibt den Index des ersten Auftreten eines Zeichens in einem String an, welches nicht in einer Suchmenge ist.
70
Was ist die Funktionssignatur von `strspn()`?
``` int strspn(const char *s1, const char *s2); ```
71
Was macht die Funktion `strstr()`?
Ein String wird durchsucht ob ein anderen String in diesem vorkommt.
72
Was ist die Funktionssignatur von `strstr()`?
``` char *strstr(const char *s1, const char *s2); ```
73
Was macht die Funktion `strtok()`?
Ein String wird anhand von Tokens in ein Teilstring zerlegt. Die Adresse des Teilstrings wird zurückgegeben.
74
Was ist die Funktionssignatur von `strtok()`?
``` char *strtok(char *s1, const char *s2); ```