Вопросы к зачету_ОПиБД_Кс_3семестр.pdf

Вопросы к зачету_ОПиБД_Кс_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);
}
4 лайка