1CHEL FSST Test (Group A)

2024-05-28

Max. 100 points

Name:

Task Max. Achieved
1 10
2 25
3 35
4 30
Sum 100
Benotung: >87.5: 1, >75: 2, >62.5 : 3, >50: 4, <=50: 5
  1. Answer the following statements indicating whether they are True or False.
    0-2 correct: 0 points, 3 correct: 5 points, 4 correct: 10 points.
    Statement True False
    Ein Array in C kann Elemente mit unterschiedlichen Datentypen kombinieren.
    sizeof(.) gibt die Anzahl der Elemente eines Arrays zurück.
    Das erste Element eines C-Arrays hat den Index 0.
    Jedes for loop in C kann in ein entsprechendes while loop umgeschrieben werden.
  2. Welcher Text wird durch die folgenden Code Snippets in der C-Programmiersprache auf Standard Output (Terminal) geschrieben? Schreibe den genauen Output des Snippets. Die Snippets werden als Teil von int main(.) ausgeführt und alle notwendigen #includes sind vorhanden. Wenn das Snippet nicht kompilierbar ist, zu einem Absturz führen würde oder der Output nicht definiert ist, so ist das Wort "ERROR" als Antwort zu geben. Erzeugt das Snippet keinen Output (wenn beispielsweise kein printf oder dergleichen aufgerufen wird), so ist "-" als richtige Antwort zu verwenden.
    5 Punkte für jede richtige Antwort.
    1. unsigned int values[] = {4, 2, 1, 0};
      for (int i = 0; i < sizeof(values) / sizeof(unsigned int); i++) {
        printf("%d ", values[i]);
      }
      4 2 1 0
    2. int arr[] = {1, 2, 3};
      printf("%d\n", arr[3]);
      ERROR
    3. int condition = 1;
      while (condition == 1) {
        condition = 0;
        printf("Hello\n");
      }
      Hello
    4. for (int i = 3; i > 0; --i) {
        printf("%d\n", i);
      }
      3
      2
      1
    5. int num = 2;
      switch (num) {
      case 1:
        printf("One.\n");
      case 2:
        printf("Two.\n");
      case 3:
        printf("Three.\n");
      }
      Two.
      Three.
  3. Implementiere die Funktion
    size_t count_less_than(int array[], size_t dimension, int threshold);
    Die Funktion muss die Anzahl der Element in array zurückgeben, welche kleiner als threshold sind. (35 Punkte)
    6 points for correct signature and name
    6 points for declaring a variable for the count
    6 points for a proper loop
    6 points for a proper condition
    6 points for incrementing the counter
    5 points for returning the correct result
    size_t count_less_than(const int array[], size_t dimension, int threshold) {
      size_t count = 0;
      for (size_t i = 0; i < dimension; ++i) {
        if (array[i] < threshold) {
          ++count;
        }
      }
      return count;
    }
  4. Implementiere die Funktion
    long product(int array[], size_t dimension);
    Die Funktion muss das Produkt von allen Werten in array zurückgeben. (30 points)
    6 points for correct signature and name
    6 points for declaring a variable for the result
    6 points for a proper loop
    6 points for calculation each product
    6 points for returning the correct result
    long product(int array[], size_t dimension) {
      long result = 1;
      for (size_t i = 0; i < dimension; ++i) {
        result *= array[i];
      }
      return result;
    }