Вопросы к зачету_ОПиБД_Кс_3семестр.pdf (206.5 КБ)
Задача 1
Найти длину окружности и площадь круга заданного радиуса R. В качестве значения Pi
использовать 3.14. Вывести полученные значения.
Результат округлить до двух знаков после запятой.
#include <stdio.h>
int main()
{
float a,r,s,pi=3.14;
scanf("%f",&a);
r=2*pi*a;//длина окружности
s=pi*a*a;//площадь окружности
printf("%.2f %.2f",r,s);
}

Задача 2
Из пункта А в пункт Б вышел пешеход. Написать программу, вычисляющую и выводящую
на экран Время, затраченное пешеходом на весь путь, если известны расстояние от пункта
А до пункта Б и скорость пешехода.
Результат округлить до двух знаков после запятой.
#include <stdio.h>
int main()
{
float distance,speed,time;
scanf("%f%f",&distance,&speed);
time=distance/speed;
printf("%.2f",time);
}

Задача 3
Найти площадь кольца, внутренний радиус которого равен R1, а внешний радиус равен R2
(R1 меньше R2). В качестве значения Pi использовать 3.14. Ввести радиусы R1 и R2.
Вывести полученное значение.
Результат округлить до двух знаков после запятой.
#include <stdio.h>
int main()
{
float pi=3.14,r1,r2,square;
scanf("%f%f",&r1,&r2);
square=pi*(r2*r2-r1*r1);
printf("%.2f",square);
}

Задача 4
Вычислить:

Вводятся значения a,b,c.
#include <stdio.h>
int main()
{
float a,b,c;
scanf("%f%f%f",&a,&b,&c);
a=((a*a+c)/b)*(4-(a+b)/c);
printf("%f",a);
}

Задача 5
Вычислить:
![]()
Вводятся значения a,b,c,d.
#include <stdio.h>
int main()
{
float a,b,c,d;
scanf("%f%f%f%f",&a,&b,&c,&d);
a=a/c*b/d-((a*b-c)/(c*d+1));
printf("%f",a);
}

Задача 6
Вычислить:

Вводятся значения a,b,c.
#include <stdio.h>
#include <math.h>
int main()
{
float a,b,c;
scanf("%f%f%f",&a,&b,&c);
a=(2*b+sqrt(cos(a)+b*c))/(b-log10(2*c));
printf("%f",a);
}

Задача 7
Вычислить:

Вводятся значения a,b,c.
#include <stdio.h>
#include <math.h>
int main()
{
float a,b,c;
scanf("%f%f%f",&a,&b,&c);
a=(pow(b,a)+tan(c))/(a*cos(c))-2*pow(a,3);
printf("%f",a);
}

Задача 8
Из трех введенных чисел выбрать наименьшее. Результат вывести на экран.
#include <stdio.h>
int main()
{
float a,b,c,min;
scanf("%f%f%f",&a,&b,&c);
min=a;
if(b<min) min=b;
if(c<min) min=c;
printf("%f",min);
}

Задача 9
Даны две точки A(x1,y1) и B(x2,y2). Написать программу, которая определяет, какая из
точек расположена ближе к началу координат.
Данные вводятся в следующей последовательности: x1,y1,x2,y2
#include <stdio.h>
#include <math.h>
int main()
{
float x1,y1,x2,y2;
scanf("%f%f%f%f",&x1,&y1,&x2,&y2);
if(sqrt(x1*x1+y1*y1)<sqrt(x2*x2+y2*y2)) printf("1");
else printf("2");
}

Задача 10
Даны два угла треугольника (в градусах). Определить существует ли такой треугольник, и
если да, то будет ли он прямоугольным. Результаты вывести на экран.
Углы задаются целыми числами.
/*WRONG ANSWER
#include <stdio.h>
int main()
{
int a,b;
scanf("%i%i",&a,&b);
if(a+b<=180)
{
printf("YES ");
if(a+b==90 || a==90 || b==90) printf("YES ");
else printf("NO ");
}
else printf("NO");
}*/
Задача 11
Дан номер некоторого года (положительное целое число). Вывести число дней в этом году,
учитывая, что обычный год насчитывает 365 дней, а високосный — 366 дней. Високосным
считается год, делящийся на 4, за исключением тех годов, которые делятся на 100 и не
делятся на 400 (например, годы 300, 1300 и 1900 не являются високосными, а 1200 и 2000
— являются). Результат вывести на экран.
#include <stdio.h>
int main()
{
int a=0;
scanf("%i",&a);
if(a%4!=0) printf("365");
else if(a%100!=0) printf("366");
else if(a%400!=0) printf("365");
else printf("366");
}

Задача 12
Дано целое число, лежащее в диапазоне от –99 до 99. Вывести строку — словесное
описание данного числа вида “отрицательное двузначное число”, “нулевое число”,
“положительное однозначное число” и т.д.
#include <stdio.h>
int main()
{
int a;
scanf("%i",&a);
if(a>0 && a<10) printf("Pol Odn");
else if(a<0 && a>=-9) printf("Otr Odn");
else if(a>9 && a<100) printf("Pol Dvuz");
else if(a<-9 && a>-100) printf("Otr Dvuz");
else printf("Null");
}

Задача 13
Написать программу, которая по последней цифре числа позволяет определить последнюю
цифру его квадрата.
Использовать оператор выбора switch.
#include <stdio.h>
int main()
{
int a;
scanf("%i",&a);
a%=10;
switch(a)
{
case 0:printf("0");break;
case 1:printf("1");break;
case 2:printf("4");break;
case 3:printf("9");break;
case 4:printf("6");break;
case 5:printf("5");break;
case 6:printf("6");break;
case 7:printf("9");break;
case 8:printf("4");break;
case 9:printf("1");break;
}
}

Задача 14
Арифметические действия над числами пронумерованы следующим образом: 1 —
сложение, 2 — вычитание, 3 — умножение, 4 — деление. Дан номер действия и два числа
A и B (В не равно нулю). Выполнить над числами указанное действие и вывести результат.
Использовать оператор выбора switch.
#include <stdio.h>
int main()
{
int a;
float d,b,c;
scanf("%i%f%f",&a,&b,&c);
switch(a)
{
case 1:d=b+c;break;
case 2:d=b-c;break;
case 3:d=b*c;break;
case 4:d=b/c;break;
}
printf("%f",d);
}

Задача 15
Единицы длины пронумерованы следующим образом: 1 — дециметр, 2 — километр, 3 —
метр, 4 — миллиметр, 5 — сантиметр. Дан номер единицы длины и длина отрезка L в этих
единицах (вещественное число). Вывести длину данного отрезка в метрах.
#include <stdio.h>
int main()
{
int a;
float l,c;
scanf("%i%f",&a,&l);
switch(a)
{
case 1:c=l/10;break;//дециметр
case 2:c=l*1000;break;//км
case 3:c=l;break;//метр
case 4:c=l/1000;break;//мм
case 5:c=l/100;break;//см
}
printf("%f",c);
}

Задача 16
В старояпонском календаре был принят 12-летний цикл. Годы внутри цикла носили
названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны,
курицы, собаки и свиньи. Написать программу, которая вводит номер некоторого года и
печатает его название по старояпонскому календарю. 1996 г. — год Крысы — начало
очередного цикла.
(Названия выводить в следующем виде: “krisa”, “korova”, “tigr”, “zayac”, “drakon”, “zmeya”,
“loshad”, “ovca”, “obezyana”, “kurica”, “sobaka”, “svinya”)
#include <stdio.h>
int main()
{
int a;
scanf("%i",&a);
a=a%12;
switch(a)
{
case 0:printf("obezyana");break;
case 1:printf("kurica");break;
case 2:printf("sobaka");break;
case 3:printf("svinya");break;
case 4:printf("krisa");break;
case 5:printf("korova");break;
case 6:printf("tigr");break;
case 7:printf("zayac");break;
case 8:printf("drakon");break;
case 9:printf("zmeya");break;
case 10:printf("loshad");break;
case 11:printf("ovca");break;
}
}
Задача 17
Даны два целых числа A и B (A меньше B). Вывести все целые числа, расположенные
между данными числами (включая сами эти числа), в порядке их убывания. Использовать
цикл for.
#include <stdio.h>
int main()
{
int a,b,i;
scanf("%i%i",&a,&b);
for(i=b;i>=a;i--)
printf("%i ",i);
}
Задача 18
Дано вещественное число A и целое число N (N больше 0). Вывести A в степени N: AN
=A•A•…•A (числа A перемножаются N раз). Использовать цикл for. Не использовать
математические функции.
#include <stdio.h>
int main()
{
int n,i;
float a,b=1;
scanf("%f%i",&a,&n);
for(i=0;i<n;i++)
b=a*b;
printf("%f",b);
}
Задача 19
Составить программу, выводящую значения функции у=2х на отрезке от а до b с шагом c
Вводятся значения a, b (целые числа) и c (вещественное). Выводится список значений
#include <stdio.h>
int main()
{
int a,b;
float c,i;
scanf("%i%i%f",&a,&b,&c);
for(i=a;i<b;i+=0.4)
{
c=2*i;
printf("%f\t",c);
}
}
Задача 20
Даны два целых числа A и B (A меньше B). Вывести все целые числа, расположенные
между данными числами (включая сами эти числа), в порядке их возрастания.
Использовать цикл while.
#include <stdio.h>
int main()
{
int a,b,i;
scanf("%i%i",&a,&b);
for(i=a;i<=b;i++)
printf("%i ",i);
}
Задача 21
Дана последовательность:

Составить программу c использованием цикла while, выводящую на экран номер первого
члена последовательности меньшего e, и его значение.
Использовать цикл while.
#include <stdio.h>
int main()
{
float a,b,i;
scanf("%f",&a);
i=1;
b=1/(i*i);
while(b>a)
{
i++;
b=1/(i*i);
}
printf("%f %f",i,b);
}
Задача 22
Дано число N (N больше 0). Вывести на экран N первых нечетных положительных чисел
(не используя логические операторы). Использовать цикл while.
#include <stdio.h>
int main()
{
int n,i=0,b=1;
scanf("%i",&n);
while(i<n)
{
printf("%i ",b);
b=b+2;
i++;
}
}
Задача 23
Вводить с клавиатуры целые числа (не равные 0) и выводить на экран квадраты этих чисел
до тех пор, пока не будет введено число 0. Использовать цикл do…while.
#include <stdio.h>
int main()
{
int a;
do
{
scanf("%i",&a);
printf("\n%i\n\n",a*a);
}
while(a!=0);
}
Задача 24
Дано вещественное число A и целое число N (больше 0). Вывести все целые степени числа
A от 1 до N. Использовать цикл do…while.
#include <stdio.h>
int main()
{
float a,b=1;
int n,i=0;
scanf("%f%i",&a,&n);
do
{
printf("%f ",b=b*a);
i++;
}
while(i<n);
}
Задача 25
Дано число N (N больше 0). Вывести на экран N первых нечетных положительных чисел
(не используя логические операторы). Использовать цикл do…while.
#include <stdio.h>
int main()
{
int n,i=0,b=1;
scanf("%i",&n);
do
{
printf("%i ",b);
b=b+2;
i++;
}
while(i<n);
}
Задача 26
Дано натуральное число N (больше 0). Вычислить:
![]()
#include <stdio.h>
int main()
{
int i, j, t = 1, n, a = 0, b;
scanf("%i", &n);
for (i = 1; i <= n; i++)
{
b = i;
for (j = 1; j <= t; j++)
{
b *= (i+j);
}
t++;
a += b;
}
printf("%i", a);
}
Задача 27
Дано натуральное число N (больше 0). Вычислить:

#include <stdio.h>
#include <math.h>
int main()
{
int n,i;
float s=0;
scanf("%i",&n);
for(i=1;i<=n;i++)
s=s+pow(-1,i)/pow(2,i);
printf("%f",s+1);
}
Задача 28
Составить программу вычисления суммы N первых целых положительных чисел.
Количество чисел N (больше 0) вводить с клавиатуры.
#include <stdio.h>
int main()
{
int a,su=0,i;
scanf("%i",&a);
for(i=1;i<=a;i++)
su=su+i;
printf("%i",su);
}
Задача 29
Найти количество первых целых положительных чисел, сумма которых не превышает S.
Значение S (больше 0) вводить с клавиатуры.
#include <stdio.h>
int main()
{
int s,a=1,b=0,i=0;
scanf("%i",&s);
while(b<s)
{
b=b+a;
a++;
i++;
}
printf("%i",i-1);
}
Задача 30
Ввести целое число N (больше 0) и набор из N вещественных чисел. Вывести сумму и
произведение чисел из данного набора.
#include <stdio.h>
int main()
{
int n,i;
float a,b=0,c=1;
scanf("%i",&n);
for(i=0;i<n;i++)
{
scanf("%f",&a);
b=b+a;
c=c*a;
}
printf("%f %f",b,c);
}