Глиф Учебники

Итоговый тест по C

C · 20 вопросов

Двадцать вопросов по всем урокам курса: сборка программы, переменные и форматы, условия, циклы, массивы, функции, указатели, строки, структуры, память и файлы. После ответа на каждый вопрос появится пояснение.

1. Какая команда собирает программу из файла main.c в исполняемый файл main?
2. Что сообщает системе return 0; в конце main?
3. Что выведет программа?
C
#include <stdio.h>

int main(void) {
    printf("%d %d\n", 17 / 5, 17 % 5);
    return 0;
}
4. Что выведет программа?
C
#include <stdio.h>

int main(void) {
    double x = 7 / 2;
    printf("%.1f\n", x);
    return 0;
}
5. В какой тип поместится число 5 000 000 000?
6. Как прочитать через scanf число в переменную double d?
7. Чем опасна запись if (x = 5)?
8. Какие значения можно ставить после case в switch?
9. Что выведет программа?
C
#include <stdio.h>

int main(void) {
    int i = 0;
    while (i < 3) {
        printf("%d", i);
        i++;
    }
    printf("\n");
    return 0;
}
10. Что делает цикл while (scanf("%d", &x) == 1) { … }?
11. Как обратиться к последнему элементу массива int a[n]?
12. Как скопировать массив a в массив b того же размера?
13. Что выведет программа?
C
#include <stdio.h>

int f(int n) {
    if (n == 0) {
        return 0;
    }
    return n + f(n - 1);
}

int main(void) {
    printf("%d\n", f(4));
    return 0;
}
14. Зачем при сборке в Linux ключ -lm?
15. Что выведет программа?
C
#include <stdio.h>

int main(void) {
    int x = 3, y = 4;
    int *p = &x;
    p = &y;
    *p = 10;
    printf("%d %d\n", x, y);
    return 0;
}
16. Чему равны strlen("abc") и sizeof("abc")?
17. Как прочитать с клавиатуры строку вместе с пробелами, например имя и фамилию?
18. Как записать обращение к полю x структуры через указатель p?
19. Чем calloc(n, sizeof(int)) отличается от malloc(n * sizeof(int))?
20. Почему scanf("%c", &c) сразу после scanf("%d", &n) не ждёт ввода?