Контрольная работа (попытка №1)
ВАЖНЫЕ замечания
Решение каждой задачи предполагает написание полной программы на Си. Эта программа должна читать входные данные из стандартного входного файла, а затем выдавать ответ в стандартный выходной файл. При запуске с терминала это будет означать ввод с клавиатуры и вывод на экран.
Для успешного решения задачи пока достаточно, чтобы программа правильно работала на правильных входных данных.
Обязательно сохраняйте файлы под именами, соответствующими задачам, например:
- 1.c
Задачи для решения в машинном зале
1. Написать функцию int prod( int n ), n > 0, вычисляющую произведение нечетных чисел в диапазоне от 1 до n включительно. Например, для n=8 она должна вернуть 105, т.е. 1*3*5*7. В реализации функции не использовать циклы и переходы (т.е., реализовать ее рекурсивно). Написать программу, которая читает с клавиатуры число n и печатает на экран результат вызова prod(n).
2. Написать функцию void sqr( int *x, int n), которая в массиве x прибавляет ко всем элементам массива его последний элемент. Написать программу, которая вводит массив длины N=5 с клавиатуры, вызывает для него функцию sqr и выводит его на экран.
3. Написать программу, которая вначале вводит с клавиатуры последовательность целых чисел, заканчивающуюся нулем (ноль в последовательность не входит), и записывает их в прямом порядке в линейный связанный список. Затем в списке должен быть найден последний по счету отрицательный элемент, и напечатаны на экране порядковый номер и значение этого элемента. Если отрицательных элементов в списке нет, то напечатать слово "NO". Элементы списка нумеруются с начала, первый элемент имееет номер 1.
4. В задаче 3 поиск элемента реализовать без использования циклов и переходов (рекурсивно).