Проверочная работа к курсу "Основы языка C"
1. Напишите программу, предназначенную для наглядной демонстрации различий между такими типами данных как char, short, int, unsigned.
2. Значение какого из ниже представленных массивов совпадает со строкой "Book"? Почему?
arrA[9] = {'B', 'o', 'o', 'k'}; arrB[] = {'B', 'o', 'o', 'k', '\0'};
3. Если массив arr содержит строку, то будут ли различаться значения, которые вернут функции sizeof() и strlen()?
4. Напишите код, в котором одной переменной присваивается введенное пользователем число, а второй переменной – модуль этого числа. После этого значение второй переменной выводится на экран. Используйте условное выражение, а не инструкцию if.
5. Переделайте условное выражение из 4-го задания в макрос.
6. Объявлены и определены целочисленные переменные: a = 10, b = 0, c = -3. Определите их значения после выполнения следующих двух выражений, а также значения самих выражений:
a-- + ++b; --c + b--;
7. Запрограммируйте вывод на экран символов так, как показано на рисунке. Используйте циклы for, а также если необходимо функцию strcat().
8. Напишите программу, которая определяет в процентном соотношении количество гласных и согласных букв в текстовом файле. Имя файла передается в программу через командную строку.
9. Может ли одна ячейка памяти иметь несколько имен переменных? Может ли адрес определенной ячейки памяти содержаться во множестве переменных? Ответ поясните.
10. Как изменить приведенную ниже программу так, чтобы среди параметров функции sum() не было указателя, а функция возвращала значение, оставляя тем самым возможность изменить значение любой внешней переменной?
#include <stdio.h> void sum (float *base, float add); main() { float a=100, b; scanf("%f", &b); sum(&a, b); printf("%.4f\n", a); } void sum (float *base, float add) { *base = *base + add/2; }
11. Напишите программу, в которой массив заполняется случайными буквами английского алфавита; значения элементов массива в символьном представлении выводятся на экран.
12. Напишите функцию, которая принимает указатели на два массива. Функция должна заполнять один массив 25-ю случайными четными числами, а другой — 25 нечетными. Продемонстрируйте ее работу.
13. Пользователь вводит две строки, каждая строка состоит из двух слов, разделенных пробелом. Требуется сравнить строки лексикографически, начиная со второго слова (т.е. после пробела). Напишите программу, выполняющую описанную задачу.
Курс с решением части задач:
pdf-версия