- •Т.Э. Шульга основы программирования на языке с
- •Введение
- •1. Структура программы на языке с
- •Void main()
- •Задание 1. Вывод строки на экран с использованием esp-последовательности
- •2. Переменные. Основные типы данных
- •Задание 2. Описание переменных и преобразование типов
- •3. Ввод – вывод значений переменных
- •Void main()
- •Void main()
- •Задание 3. Форматирование вывода
- •4. Основные операции языка с
- •Void main ()
- •Заданиe 4. Простейшие вычисления
- •5. Конструкции выбора
- •Void main()
- •Void main()
- •Void main()
- •Задание 5. Обработка введенного символа
- •Задание 6. Вычисление значения функции
- •Задание 7. Применение разветвляющихся алгоритмов при решении простейших задач
- •Задание 8. Mультиветвление
- •6. Конструкции цикла и передачи управления
- •Int *t; // неинициализированный указатель на объект типа int,
- •Void main()
- •Int a2[3][2]; // массив из 3 массивов, содержащих по 2 целых элемента.
- •Задание 9. Детерминированные циклы. Простейшие задачи
- •Void main()
- •Задание 10. Итерационные циклы. Простейшие задачи
- •Void main()
- •Int last;
- •Задание 11. Одномерные массивы
- •Void main()
- •Задание 12. Вложенные циклы
- •Void main ()
- •Задание 13. Двумерные массивы
- •Void main ()
- •Задание 14. Посимвольная обработка строк
- •Void main ()
- •Задание 15. Сортировка массива
- •Void main ()
- •7.Функции
- •Int max (int n, int m ) // определение функции нахождения максимума
- •Void main()
- •Int strcmp(const char *str1, const char* str2);
- •Void main()
- •Int fclose (file * stream);
- •Int feof(file *stream);
- •Int fseek ( file* stream, long offset, int origin);
- •Void main ()
- •Задание 16. Определение и вызов функций
- •Задание 17. Рекурсивные функции
- •Задание 18. Использование библиотечных функций string.H
- •Задание 19. Использование библиотечных функций stdio.H
Задание 10. Итерационные циклы. Простейшие задачи
Пример. Дано натуральное число N. Определить его первую и последнюю цифры.
#include <stdio.h>
#include <conio.h>
Void main()
{
long n,m;
Int last;
printf("Enter n: ");
scanf("%d",&n);
m=n; // Сохранили значение исходного числа
last=m%10;
while (m>9) m/=10;
printf("\n In number: %d%s%d",n," first digit: ",m);
printf(", last digit: %d",last);
getch();
}
Подсчитать количество цифр в записи заданного десятичного натурального числа и вывести их на экран в обратном порядке.
Дано натуральное число n. Подсчитать сумму цифр этого числа, находящихся на нечетных позициях (нумерация позиций идет слева направо).
Дано натуральное число n. Найти сумму цифр числа, находящихся на четных позициях (старшая цифра числа находится на первой позиции).
Даны натуральные числа n и k. Определить k–ю слева цифру числа n.
Дано натуральные числа n и k. Вычислить сумму k старших разрядов (находящихся слева) цифр числа.
Дано натуральные числа n и k. Вычислить произведение k старших разрядов (находящихся слева) цифр числа.
Дано натуральное число n. Вычислить сумму его цифр.
Дано натуральное число n. Вычислить произведение его цифр.
Дано натуральное число n. Найти разность между первой цифрой этого числа и суммой всех остальных.
Выбросить из записи введенного натурального числа n цифры 0 и 5, оставив прежним порядок остальных цифр. Распечатать это число.
Целое положительное десятичное число m записать в восьмеричной системе счисления и распечатать число, состоящие из разрядов этой записи, выписанных в обратном порядке. Например, m=477, результат n=537.
Целое положительное число m записать в двоичной системе счисления и распечатать число, состоящие из разрядов этой записи, выписанных в обратном порядке. Например, m=37, результат n=101001.
Задание 11. Одномерные массивы
Пример. Сформировать массив целых чисел X(N), элементами которого являются случайные числа в диапазоне [–20..20]. Найти максимальный элемент и его номер.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
Void main()
{
const int N=100;
int a[N],n;
do
{
printf("\nEnter n (1-%d%s",N,"): ");
scanf("%d",&n);
}
while (n<=0 || n>N);
const int k=20;// граница диапозона [-20,20]
int max=-21,imax=-1;
printf("\n");
for (int i=0;i<n;i++)
{
a[i]= rand()%(k*2+1)-k; //генерируем массив случайных чисел
//в диапазоне [-k..k]
printf("a[%d%s%d%s",i, "]=",a[i], "\n");//вывод элемента массива на экран
if (a[i]>max) {max=a[i]; imax=i;}// поиск максисума
}
printf("\nmax=a[%d%s%d",imax, "]= " , max);
getch();
}
В целочисленном массиве X(N), сгенерированном случайным образом, нечетные элементы увеличить в два раза, а у элементов с четными номерами заменить знаки на противоположные.
В целочисленном массиве, сгенерированном случайным образом, определить количество перемен знака.
В целочисленном массиве, сгенерированном случайным образом, найти наименьший из положительных элементов.
Для целочисленного массива, сгенерированного случайным образом, определить, образуют ли его элементы неубывающую последовательность.
Проведено измерение роста 70 студентов. Данные записаны в массиве ROST. Разместить в массиве NR номера тех студентов, чей рост меньше 180 см и подсчитать число таких студентов.
Результаты сдачи экзамена группой из N студентов находятся в массиве REZ. Подсчитать количество студентов, сдавших экзамен на «хорошо» и «отлично».
Из целочисленного массива X(N), сгенерированного случайным образом, переписать в массив Y элементы массива X c нечетными номерами, а в массив Z – элементы массива X, значения которых кратны 5.
Сформировать случайным образом массив X(N), элементами которого могут быть только 0 и 1. Проверить, существует ли строгое чередование 0 и 1.
Сформировать целочисленный массив X (N), элементами которого являются случайные числа из диапазона [–3..3]. Определить, сколько раз в нем встретилось два подряд идущих нулевых элемента.
Сформировать целочисленный массив X(N), элементами которого являются случайные числа из диапазона [–20..10]. Найти величину наибольшего среди отрицательных чисел этого массива.
Сформировать вещественный массив X1(N), элементами которого являются случайные числа из диапазона [0..50]. Переслать из него в массив X2 все элементы, значения которых больше 24 и меньше 34.
Сформировать целочисленный массив X(N), элементами которого являются случайные числа из диапазона [–40..40]. Подсчитать сумму элементов этого массива, значения которых кратны 8.