Probeklausur Flashcards

1
Q

char berechne (double p, double q [DIM][DIM]);

–> was bedeutet char?

A

char bezeichnet den Variablentyp des Rückgabewerts

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

char berechne (double p, double q [DIM][DIM]);

–> was bedeutet dieser teil: (double p, double q [DIM][DIM])

A

Parameterliste der Funkrion

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

Nenne 2 kontrollstrukturen

A

bedingte auswahl (if ohne else) und merhfachauswahl (switch)

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

welche logischen Opertoren stehen zur Verfügung?

A
|| logisches Oder
&& logisches Und
! logisches Nicht
> größer
< kleiner
>= größer gleich
<= kleiner gleich
== Gleichheit
!= Ungleichheit
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Wie sind diese logischen Operatoren zu programmieren?

logisches Oder
logisches Und
logisches Nicht
größer
kleiner
größer gleich
kleiner gleich
Gleichheit
Ungleichheit
A
|| logisches Oder
&amp;&amp; logisches Und
! logisches Nicht
> größer
< kleiner
>= größer gleich
<= kleiner gleich
== Gleichheit
!= Ungleichheit
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Welche Formen von Iterationen gibt es?

A
  • Wiederholung Kopfgesteuert [while]
  • Wiederholung Fußgesteuert [do while]
  • Wiederholung mit Zählvorschrift (Zählschleife) [for]
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wie spricht man alle Komponenten einer Matrix an?

A
for ( i=0; i<=(N-1); i++) {
      for ( j=0; j<=(N-1); j++) {
           ...
      }
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Nenne den Kompilierbefehl um aus den Quellcode Dateien “main.c” und “funcs.c” das Programm “hallo” zu erzeugen. es sollen alle Warnungen ausgegeben werden!

A

gcc -Wall -o hallo main.c funcs.c

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

Definiere eine Konstante mit dem Wert 3.141592654 .

A

define PI 3.141592654

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

Platzhalter für die formatierte Ausgabe mit printf

A

int %d, %i ganze Dezimale Zahl
long int %ld

float %f Fließpunktzahl
double %f
long double %Lf

char %c ein einzelnes Zeichen

char* %s eine Zeichenkette

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

Platzhalter für die formatierte Eingabe mit scanf

A

int %d ganze Dezimale Zahl
%i ganze, oktale der hexadezimale Zahl

long int %ld

float %f Fließpunktzahl mit optionalem Dezimalpunkt
( %e Fließpunktzahl mit optionalem Vorzeichen
%g Fließpunktzahl mit optionalem Exponenten)

double %lf Fließpunktzahl
long double %Lf Fließpunktzahl

char %c ein einzelnes Zeichen

char* %s eine Zeichenkette bei der ‘\0’ angehängt wird

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

Dateien Kopieren

A

cp datei kopie

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

In bestimmtes Verzeichnis gelangen

A

cd name

change directory

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

Verzeichnis einrichten

A

mkdir verzeichnisname

MaKe

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

Verzeichnis löschen

A

rmdir verzeichnisname

ReMove

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

Wieder ins “home directory” gelangen

A

cd

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

kompletten Pfad anzeigen lassen (wenn verlaufen z.B.)

A

pwd

Print working directory

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

Datei umbenennen

A

mv altername neuername

MoVe

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

Datei in ein anderes Verzeichnis verschieben

A

mv dateiname verzeichnisname

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

Alle Dateien im aktuellen Verzeichnis löschen

A

rm *

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

Beim löschen einer Datei einbauen, dass es eine Abfrage gibt die mit y oder n beatwortet werden muss

A

rm -i filename

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

(Nur) Ein Verzeichnis hoch wandern

A

cd . .

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

Ausführliche Beschreibung einzelner Linux-

Kommandos auf dem Bildschirm anzeigen lassen

A

man

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

Inhalt eines Files anschauen, ohne an der Datei etwas verändern zu können

A

more

25
Q

was macht der “more” Befehl?

A

Man kann sich den Inhalt des Files anschauen, ohne etwas an der Datei verändern zu können.

(Mit Leerzeichen-Taste weiterblättern
und mit q abbrechen)

26
Q

Datei aufrufen

A

gcc -Wall -o ProgrammName datei1.c datei2.c

27
Q

Was muss man bei scanf immer beachten?

A

Immer mit Adresse versehen!

scanf(“%f”, &variable)

28
Q

Wie wir der Zeiger verwendet?

Ich habe einen Wert1 in meiner main, will ihn innerhalb einer void-Funktion verwenden und ändern, und dann wieder in meiner main mit printf ausgeben?

A

In Funktions-Deklaration: function ( *a, b);

In main:                                double Wert1, Wert2;
                                             function( &amp;Wert1, Wert2);
                                             printf("%f", Wert1);

In void-Funktion: function( *a, b)

29
Q

Öffnen, lesen und schließen einer Datei

nicht Binärdatei

A

Öffnen: FILE* input = fopen(“Datei.dat”, “r”);

Lesen: fscanf(input, “%f %f”, &a, &b);
–> Hier also erste zwei Einträge, kann auch z.B. mit Matrixschleife gemacht werden)

Schließen: fclose(input);

30
Q

Öffnen, beschriften und schließen einer Datei

nicht Binärdatei

A

Öffnen: FILE* speicher = fopen(“Liste.dat”, “w”);

Beschriften: fprintf(speicher, “%f %f”, a, b);
–> Hier also erste zwei Einträge, kann auch z.B. mit Matrixschleife gemacht werden)

Schließen: fclose(speicher);

31
Q

Vergleich Name Karteikarte 1 mit Karteikarte 2

–> also vergleich bei Zeichen

A

strcmp(familie [0].Name, familie [1].Name);

Rückgabe:

  1. 0, wenn str1 == str2
  2. <0, wenn str1 alphabetisch vor str2
  3. > 0, wenn str2 alphabetisch vor str1
32
Q

Vergleich Hausnummer Karteikarte 1 mit Karteikarte 2

–> Also vergleich bei Zahlen

A

if(familie [0].Hausnummer== familie [1].Hausnummer)

33
Q

Hausnummer Karteikarte 4 auf Hausnummer Karteikarte 3

A

familie [2].Hausnummer = familie [3].Hausnummer ;

34
Q

Name Karteikarte 5 auf Name Karteikarte 1

A

strcpy( familie [0].Name, familie [4].Name );

35
Q

Ganze Karteikarte 5 auf Karteikarte 1 kopieren

A

familie [0] = familie [4] ;

36
Q

Name der 4. Karteikarte ausfüllen

–> Also Zeichen

A

strcpy( familie [3].Name, ‘‘Fynn‘‘ );

37
Q

Hausnummer der 4. Karteikarte ausfüllen

–> Also Zahlen

A

familie [3].Hausnummer =10;

38
Q

Länge des strings

A

strlen(string) –> aber ist ohne die 0!

39
Q

Kopieren von string

A

strncpy(fuellen, source, n)

–> maximal n Zeichen

40
Q

einen String an einen anderen ranhängen

A

strncat(vorne, hinten, n)

–> maximal n Zeichen

41
Q

Überprüft strings str1 und str2 auf Gleichheit mit einer maximalen Anzahl an Buchstaben

A

strncmp(str1, str2, n)

Vergleicht maximal n Buchstaben

Rückgabe:

  1. 0, wenn str1 == str2
  2. <0, wenn str1 alphabetisch vor str2
  3. > 0, wenn str2 alphabetisch vor str1
42
Q

Eingabepuffer erstellen

A
char a;
do
{
...a = getchar();
}
while(a != 10); 

–> 10 entspricht im ASCII return!

43
Q

Präprozessoranweisung

A

#

Werden mit einem # eingeleitet

44
Q

Welche zwei Funtionsarten gibt es für Alternation

A

if-Anweisung

switch-Anweisung

45
Q

Wie leitet man eine While-Anweisung ein?

A
ergebnis=1;
zaehler=1;
while (zaehler <= 10)
{
......ergebnis*=2;
......zaehler++;
}
46
Q

Wie leitet man eine if-(else-)Anweisung ein?

A
if (x > 0)
{
....printf("x ist groesser als Null.\n");
}
else
{
....printf(" x ist kleiner oder gleich Null.\n");
}

2.Beispiel:

if ((x > 10) &amp;&amp; (x < 100))
{
....j = x*5;
....x = 0;
}
else
{
....x = 10;
}
47
Q

Wie leitet man eine switch-Anweisung ein?

A
switch (note)
{
...case 1:
........printf("Du oller Streber \n");
........break;
...case 2:
........printf("gut \n" );
........break;
...case 3:
........printf("befriedigend \n");
........break;
...case 4:
........printf("ausreichend \n");
........break;

…default:
……..printf(“Note unbekannt! \n”);
}

Man kann auch machen:
case( ’a’ ): …

–> nur ein Buchstabe

48
Q

Wie leitet man eine do-While Anweisung ein?

A
ergebnis=1;
zaehler=1;
do
{
.....ergebnis*=2;
.....zaehler++;
}
while (zaehler <= 10);
49
Q

Was beachten bei scanf von strings?

A

Wenn der eingelesene String größer ist als die Variable, die ihn aufnehmen soll, gibt’s einen segmentation fault. Also sollte beim Einlesen mit scanf grundsätzlich die Anzahl der einzulesenden Zeichen mit angegeben werden:

char eingabe[10];
scanf(“%9s”, eingabe); /* Maximal 9 Zeichen sollen eingelesen werden (wegen des Nullbytes) /
printf(“%s”, eingabe); /
Ausgabe des Strings */

50
Q

Wie verwandelt man Strings in Zahlen?

Bsp:
char number[ ] = “123.123”;

A
#include < stdlib.h >  
...
char number[ ] = "123.123"; 
int i;
double d;
i = atoi( number ) /* => i = 123 */
d = atof( number ) /* => d = 123.123 */

–> Für diese Funktionen muss die Headerdatei stdlib.h eingebunden werden.

51
Q

Wie verwandelt man Zahlen in Strings?

A

int i=10;
char number[20];
sprintf( number, “%i”, i );

52
Q

Vor- und Nachteile beim Speichern und Einlesen im Binaerformat

A

Nachteile:
Sie sind für uns Menschen und für Computerprogramme, die nicht genau wissen, wie sie aufgebaut sind, nicht lesbar. Dementsprechend schwierig ist es, einen Fehler in einer Binärdatei zu suchen.

Vorteile:
Auf diesem Wege benötigen gespeicherte Daten weniger Speicherplatz weil hier als Parameter angegeben wird, wieviele Datenblöcke gelesen bzw. geschrieben werden sollen, und welche Größe in Byte diese Blöcke haben sollen.
Außerdem vereinfachen sie den Umgang mit strukturierten Feldern, (weil wir ein ganzen Feld auf einmal Speichern bzw. Einlesen.)

53
Q

Speichern und Einlesen im Binaerformat

mit Beispiel (oeffnen, lesen od. schreiben, schliessen)

A

Mit fwrite und fread:
fwrite(datenfeld, groesse, anzahl, dateizeiger)
fread(datenfeld, groesse, anzahl, dateizeiger)

Die übergebenen Parameter bedeuten:
• datenfeld: Das Feld, das die Daten enth”alt, die auf Datei geschrieben werden sollen, bzw in das die Daten aus einer Datei geschrieben werden.
• groesse: Die Grösse der einzelnen Datenblöcke, am besten mit sizeof().
• anzahl: Die Anzahl der Datenblöcke.
• dateizeiger: Ein Zeiger auf die gewünschte Datei vom Typ FILE.

Bsp:
...
FILE *zeiger;
zeiger=fopen("freunde.dat","w");
fwrite(freunde, sizeof(struct karteikarte), 20, zeiger);
fclose(zeiger);
...
54
Q

Kommentar

A

/* Kommentar */

55
Q

Deklariere einen Variablentyp in dem Name und Alter einer Person speicherbar sind.

A
struct karteikarte 
{
char name[50]; 
int alter; 
};
56
Q

Lege einen “Karteikasten” mit dem Variablentyp struct karteikarte an.

A

struct karteikarte freunde[20];

57
Q

Sicherheit einbauen beim Einlesen einer Datei (nicht Binaer) falls Datei nicht existiert damit Programm nicht abstuerzt.

A
. . . 
fp_in = fopen("input.dat","r"); 
if (fp_in == NULL)
{
...fprintf(stderr, "input.dat existiert nicht! \n"); /* Programmabbruch, wenn input.dat nicht existiert */
else
{
...fscanf(fp_in,"%d %d",&amp;i,&amp;j);
. . .
58
Q

Wann brauche ich eine zusaetzliche Headerdatei?

A

string-Funktionen –> < string.h >
atoi & atof –> < stdlib.h> (Zahlenumwandlungen)
sin/cos/exp –> (Trigonom.)

Nicht so wichtig:
sleep –> < unistd.h >
< time.h > (Datum & Uhrzeit)