Multiple-Choice-Fragen (MC) und Lückentextfragen (LT)

1. Vom Quelltext zur ausführbaren Datei

MC1: Welche Schritte durchläuft der Quellcode, um eine ausführbare Datei in C zu werden?

  • A) Quellcode → Compiler → Interpreter → Ausführbare Datei
  • B) Quellcode → Präprozessor → Übersetzer → Assembler → Linker → Ausführbare Datei
  • C) Quellcode → Editor → Compiler → Ausführbare Datei
  • D) Quellcode → Präprozessor → Interpreter → Ausführbare Datei

2. GNU Compiler Collection

LT1: Die GNU Compiler Collection (gcc) umfasst die Phasen ______, ______, ______ und ______.

3. Typische Parameter

MC2: Welche der folgenden gcc-Optionen wird verwendet, um alle Warnungen anzuzeigen?

  • A) -o
  • B) -Wall
  • C) -g
  • D) -std=c99

4. Modularisierung

LT2: Bei der Modularisierung wird das System in ______ aufgeteilt, die durch ______ getrennt sind, um ______ und ______ zu erreichen.

5. Headerdateien I

MC3: Welche der folgenden ist eine Standard-Headerdatei in C?

  • A) stdio.h
  • B) mylib.h
  • C) custom.h
  • D) header.h

6. Headerdateien II

LT3: Headerdateien können Deklarationen, ______, ______ und ______ enthalten.

7. Eigene Headerdateien

MC4: Wozu dienen eigene Headerdateien in einem C-Projekt?

  • A) Zur Implementierung von Funktionen
  • B) Zur Definition von Strukturen und Deklarationen
  • C) Zur Speicherung von Daten
  • D) Zur Ausführung von Programmen

8. Include Guards

LT4: Include Guards schützen vor mehrfacher Inklusion durch die Verwendung von ______ oder ______.

9. Eigene Headerdateien (Fortsetzung)

MC5: Wie bindet man eine eigene Headerdatei namens myheader.h in ein C-Programm ein?

  • A) #include <myheader.h>
  • B) #import "myheader.h"
  • C) #include "myheader.h"
  • D) #define myheader.h

10. Übersicht Modularisierung

LT5: Beim Kompilieren eines modularisierten Programms werden die Module und Headerdateien mit dem ______ und ______ zusammengefügt.

11. Statische Bibliotheken

MC6: Welche gcc-Option wird verwendet, um eine statische Bibliothek mit ar zu erstellen?

  • A) -shared
  • B) -static
  • C) ar rcs
  • D) gcc -o

12. Dynamische Bibliotheken

LT6: Um eine dynamische Bibliothek mit gcc zu erstellen, verwendet man die Option ______.

13. Bibliotheken integrieren

MC7: Wie gibt man den Pfad zu einer Bibliothek beim Kompilieren mit gcc an?

  • A) -I
  • B) -L
  • C) -l
  • D) -D

14. Typische Linkerfehler I

LT7: Ein häufiger Linkerfehler ist das Fehlen der ______, die die Implementierung einer Funktion bereitstellt.

15. Typische Linkerfehler II

MC8: Welcher Linkerfehler tritt auf, wenn eine benötigte Bibliothek nicht gefunden wird?

  • A) Undefined reference
  • B) Duplicate symbol
  • C) Missing header
  • D) Syntax error

16. Makefiles

LT8: Makefiles dienen zur Automatisierung von ______ und ______.

17. Beispiel Makefile

MC9: Welche Anweisung im Makefile spezifiziert die zu kompilierende Quelldatei und das Ziel?

  • A) all: main.o
  • B) main.o: main.c
  • C) gcc main.c -o main
  • D) clean:

18. Prozesse

MC10: Welche Eigenschaft ist typisch für einen Prozess im Betriebssystem?

  • A) Er teilt sich den Speicher mit anderen Prozessen
  • B) Er hat eine eigene Prozess-ID (PID)
  • C) Er ist unveränderlich
  • D) Er existiert nur einmal pro System

19. Prozesshierarchie

LT9: In Unix-Systemen bildet der Prozessbaum mit ______ als Wurzelprozess die Prozesshierarchie.

20. Eigenschaften von Prozessen

MC11: Welche der folgenden Aussagen beschreibt korrekt die Eigenschaften von Prozessen?

  • A) Prozesse sind immer sequentiell
  • B) Prozesse können verschiedene Zustände wie laufend, wartend und beendet haben
  • C) Prozesse teilen sich immer den gleichen Adressraum
  • D) Prozesse können nicht gleichzeitig ausgeführt werden

21. Prozesskontrolle

LT10: Der Prozesskontrollblock (PCB) enthält Informationen wie ______ und ______.

22. Prozesskontrolle: Erzeugung

MC12: Welche Funktion wird in Unix verwendet, um einen neuen Prozess zu erzeugen?

  • A) exec
  • B) fork
  • C) spawn
  • D) create

23. Prozesskontrolle: fork

LT11: Die fork-Funktion erstellt einen neuen Prozess, der als ______ des aufrufenden Prozesses bezeichnet wird.

24. Beispiel I

MC13: Was gibt die fork-Funktion im Kindprozess zurück?

  • A) Die Prozess-ID des Kindprozesses
  • B) 0
  • C) Einen negativen Wert
  • D) Die Prozess-ID des Elternprozesses

25. Beispiel II

LT12: Im Elternprozess gibt fork die ______ des Kindprozesses zurück.

26. Prozesskontrolle: exec-Familie

MC14: Was bewirkt die exec-Familie von Funktionen in C?

  • A) Erstellt einen neuen Prozess
  • B) Ersetzt das aktuelle Prozessbild durch ein neues
  • C) Beendet einen Prozess
  • D) Synchronisiert Prozesse

27. Ersetzung von Kindprozessen

LT13: Nach dem Aufruf einer exec-Funktion im Kindprozess wird das neue Programm ______.

28. Ersetzung von Kindprozessen II

MC15: Welche Funktion wird verwendet, um auf die Beendigung eines Kindprozesses zu warten?

  • A) wait
  • B) sleep
  • C) pause
  • D) exit

29. Threads

LT14: Im Gegensatz zu Prozessen teilen Threads den ______ des Prozesses.

30. Posix Threads

MC16: Welche Funktion wird verwendet, um einen neuen Thread mit POSIX-Threads zu erstellen?

  • A) pthread_start
  • B) pthread_create
  • C) thread_new
  • D) create_thread

31. Weiterführende Informationen

LT15: Für weiterführende Informationen zu POSIX-Threads wird auf das ______ des Lawrence Livermore National Labs verwiesen.