2024-11-19
Max. 100 points
Name:
Task | Max. | Achieved |
---|---|---|
1 | 15 | |
2 | 5 | |
3 | 25 | |
4 | 25 | |
5 | 30 | |
Sum | 100 |
Statement | True | False |
---|---|---|
Elemente eines C-Arrays werden im Speicher konsekutiv (fortlaufend) abgelegt. | ||
Wird ein C-Array an eine Funktion übergeben, so kann
diese die Anzahl der Elemente mit sizeof ermitteln. | ||
Ein C-String basiert auf einem C-Array. | ||
Das letzte Element eines C-Strings ist das Terminator Zeichen (\t). | ||
Es ist ohne weiteres möglich, einen Array in einer Funktion anzulegen und diesen danach zurückzugeben. | ||
Seit C99 ist es möglich, die Größe eines Arrays ohne weiteres während der Laufzeit festzulegen. |
printf
oder dergleichen aufgerufen
wird), so ist "-" als richtige Antwort zu verwenden.
(je 5 Punkte)
#include <stdio.h>
int main() {
int numbers[] = {0, 1, 2, 3};
printf("numbers has %zu elements\n", sizeof(numbers) / sizeof(int));
return 0;
}
#include <stdio.h>
int main() {
char text[] = "Hello";
printf("text has %zu characters\n", sizeof(text));
return 0;
}
#include <stdio.h>
void f(char message[]) {
puts(message);
}
int main() {
char text[] = "Programming is fun!";
f(text);
return 0;
}
#include <stdio.h>
int main() {
char text1[] = "success";
char text2[] = "success";
if (text1 == text2) {
puts("success");
}
return 0;
}
#include <stdio.h>
int main() {
char string[] = "test";
char destination[] = string;
puts(destination);
return 0;
}
bool is_equal(const char first[], const char second[])
welche zurück gibt, ob first
und second
den
gleichen Text beinhalten. Zum Beispiel
char text1[] = "foo";
char text2[] = "foo";
char text3[] = "bar";
is_equal(text1, text2); // returns `true`
is_equal(text1, text3); // returns `false`
Die C Standard Bibliothek darf (außer <stdbool.h>
)
nicht verwendet werden. (25 Punkte)
bool is_equal((const char first[], const char second[]) {
size_t i = 0;
for (; first[i]; ++i) {
if (first[i] != second[i]) {
return false;
}
}
return first[i] == second[i]; // ensure `second` isn't longer than `first`
}
int calc_span(const int array[], size_t dimension)
welche die Differenz zwischen Maximum und Minimum in dem Array zurück gibt.
Zum Beispiel
int array[] = {1, -3, 2, 9, 7};
calc_span(array, 5); // returns max - min = 9 - (-3) = 12
Es darf angenommen werden, dass der Array immer mindestens ein Element
beinhaltet. (30 Punkte)
int calc_span(const int array[], size_t dimension) {
int min = array[0];
int max = array[0];
for (size_t i = 1; i < dimension; ++i) {
if (array[i] < min) min = array[i];
if (array[i] > max) max = array[i];
}
return max - min;
}