Вы находитесь на странице: 1из 3

1. создать список из 20 целых 1. создать список из 20 целых 1. создать список из 20 1. Сумма 2-х и более чисел 1.

. Сумма 2-х и более чисел 1. a) Нахождение суммы элем-в по побоч 1. Код программы strrev (изменяет на обратную
случайных чисел в диапозоне от случайных чисел действительных чисел int a[n], i, j; #include<stdio.h> диаг-ли: последовательность символов в строке (за
-20 до 50 #include <stdio.h> #include <stdio.h> #include<conio.h> for(h=0, h<n,h++) исключением нулевого символа в конце строки) по
#include <stdio.h> #include <stdlib.h> #include <stdlib.h> sum =0; стандарту Си:
#include <stdlib.h> struct nod{ struct nod #include<math.h> for(i=h,i<h,i++) #include <stdio.h>
struct nod{ int value; { int main() { for(j=n-i-1+h;j>=h,j--) #include <string.h>
int value; nod *next; float value; { sum+=a[i][j] char s[] = "hello";
nod *next; nod(int n, nod* x){ nod* next; int a,b,c,d; i+j=n-1+h; main(void)
nod(int n, nod* x){ value=n; nod(float n, nod* x) { a=1;b=2;c=17; if(max<sum) {
value=n; next=x; }}; value=n; max=sum; } strrev(s);
next=x; }}; int main(){ next=x; } printf("Vvedite a:"); b) Нахождение суммы элем-в по printf(s);
int main() nod *sp; }; scanf("%d,&a"); главной диаг-ли: return 0;
{ nod *p; int main() printf("a=%d,b=%d,c= int sum[2*n-1]={0} }
nod *sp; for(int i=0;i<20;i++){ { %d",a,b,c); for(i=0;i<n:i++) Код программы функции atoi (преобразует
nod *p; int tmp=rand(); nod *sp; d=a+b+c; for(j=0;j<n:j++) строку, на которую указывает аргумент str, в число
for(int i=0;i<20;i++) { sp=new nod(tmp, p); p=sp; nod *p; sum[i+j]+=a[i][j] типа int.) в Си:
int tmp=rand()%31 +20; }while(p){ for(int i=0;i<20;i++){ printf("\nd=%d", d); sum[i-j+n-i] int my_atoi(char *p)
sp=new nod(tmp, p);p=sp;} printf("%d ", p->value); float tmp; return 0; Код программы функции strncpy { int k = 0;
while(p){ printf("%d ", p->value); p=p->next;} scanf("%f", &tmp); } (копирует первые num символов из
p=p->next;} return 0; sp=new nod(tmp, p);p=sp;} Код программы функции strncmp строки srcptr в строку destptr (указатель)) while (*p)
return 0; } while(p) (Функция побайтно сравнивает коды //пример использования функции strncpy { k = (k<<3)+(k<<1)+(*p)-'0'; p++; }
} { символов двух строк, на которые #include <iostream> return k; }
printf("%2.f ", p->value); указывают аргументы функции) #include <cstring> библиотека для atoi: #include < stdlib.h >
p=p->next; #include < stdio.h > // Для printf int main() Код программы функции itoa (преобразует
} #include < string.h > // Для { целое число value в строку string в формате radix)
return 0;   char str1[] = "Быть или не быть";  #include <iostream>
} strncmp   char str2[10];
int main (void)   strncpy(str2, str1, 8);                   // #include <cstdlib>
{ скопировать 8 байт строки str1 в строку int main(int argc, char ** argv)
// Сравниваемые строки str2 {   int value;
char str1[16]=”1234567890”;   str2[8] = '';                           // добавить в         char string[6] = "";
конец строки символ конца строки         setlocale(LC_ALL, "Russian");
char str2[16]=”1234507890”;   std::cout << str2 << std::endl;
// Сравниваем первые пять   return 0;         std::cout << "Введите число: ";
символов двух строк }         std::cin >> value;
if (strncmp (str1, str2,5)==0)         itoa(value, string, 10);
puts (“Первые пять         std::cout << "Введённое число при
символов строк идентичны”); radix = 10: " << string << std::endl;
else         std::cout << "Элементы строки: " <<
puts (“Первые пять std::endl;
символов строк отличаются”);         for( int i = 0; i < 6; i++ )
return 0; }              std::cout << string[i];
        std::cout << "." << endl;
        itoa(value, string, 16);
        std::cout << "Введённое число при
radix = 16: " << string << std::endl;
        system("pause");
        return 0;}

2. за один проход по списку 2. за один проход по списку 2. За один проход по списку найти 2. Код программы strcpy (копирует 2. Код программы strcmp(сравнение 2- 2 Код программы strlen (Считает кол-во элем-в в
найти max и min найти 2 max элемента max из отрицательных и min из строку,то есть строку str2 в str1) х строк str1 и str2 по элементам) строке и возвращ-т знач-е)
int max=-32768, min=32767; int max1=-32768, max2=-32768; положительных элементов (стандарт Си) int strсmp(char string1[], char string2[] ) //пример использования функции strlen
while(p) while(p) int max=-1, min=32767; #include <stdio.h> (стандарт Си) #include <iostream>
{ {if(p->value>max1) while(p) #include <string.h> { int i=0,flag=0; #include <cstring>                        // для strlen
if(p->value>max) { { int main () while(flag==0)  
max=p->value; max2=max1;max1=p->value; if(p->value<0 && p->value<max) { char s[6] = "Hello"; { if (string1[i]>string2[i]) int main()
if(p->value<min) } max=p->value; char a[20] = "world isnsadsdas"; { flag=1; } {
min=p->value; else if(p-value>=0 && p->value<min) strcpy(s,a); else if (string1[i]<string2[i])   char input[256];
p=p->next; if(p->value>max2) min=p->value; printf("%s\n",s); { flag=-1; }   std::cout << "Введите строку: ";
} max2=p->value; p=p->next; printf("%d\n", sizeof(s)); else { i++; } }   std::cin >> input;
p=p->next; } return 0; } return flag; }   std::cout << "Строка " << input << " содержит "
} << strlen(input) << " символов\n";
  return 0;
}

3. вывести двумерный массив с 3. Заполнить двумерный 3. Заполнить двумерный массив 3. Заполнить двумерный массив 3. Заполнить двумерный массив числами 3. Заполнить двумерный массив числами 0,1,-2,4,-
клавиатуры массив случайными числами в случайными числами в диапазоне числами 0,1,2,3,… 0,1,2,4,8,16,… 8,16,-32,…
#include<stdio.h> диапазоне -20..100 -200..10 с=0; c=0; #include<stdio.h>
int main() #include<stdio.h> for ( i = 0; i < M; i ++ ) for ( i = 0; i < M; i ++ ) for(i=0;i<n;i++){ #include<stdlib.h>
{ #include<stdlib.h for ( j = 0; j < N; j ++ ) for ( j = 0; j < N; j ++ ) for(j=0;j<m;j++){ int main()
const int n=2; int main() A[i][j] = random(-189) + 200; A[i][j] if(i==0&&j<1) {
const int m=3; { a[i][j]=c++; const int n=4;
int i,j,A[i][j]; const int n=8; Программа печати нечетных чисел else{ a[i][j]=c;c*=2;} const int m=5;
for (i=0;i<n;i++) const int m=10; Программа печати четных чисел Фибоначчи: printf("%d ",a[i][j]); } int i, j, c=0;
{ int i,j; Фибоначчи: #include<stdio.h> printf("\n"); } int A[n][m];
for (j=0;j<m;j++) int A[n][m]; #include<stdio.h> #include<conio.h> for (i=0;i<n;i++)
scanf("%d",&A[i][j]); for (i=0;i<n;i++) #include<conio.h> int main() Найти кол-во групп одинак.элем-в {
}} { int main() { #include<stdio.h> for (j=0;j<m;j++){
Найти произведение нечетных for (j=0;j<m;j++){ { #include<conio.h>
цифр произв.массива: int a,b,c,n=15,i; int a,b,c,n=15,i;; #include<iostream>
#include <stdio.h> a=b=1; a=b=1; using namespace std; if(i==0&&j<1)
#include <math.h> A[i][j]=rand() for (i=0;i<n;i++) for (i=0;i<n;i++) int main() { A[i][j]=c++;
#include <stdlib.h> %81+20; { { const int size=10; else {A [i][j] = c;
int main() c=a+b; c=a+b; int a=0;//a - ñ÷åò÷èê íàéäåíûõ ïàð c*=-2;
{ int p=1; a=b; a=b; int arr[]={1,-1,2,3,-5,4,-2,6,7,-1}; }
int arr[10]; b=c; b=c; for(int i=0;i<size;i++){ printf ("%d ", A [i][j]); }
for(int i=0;i<10;i++) { printf("%4d",A[i][j]);} if(c%2==0) if(c%3==0) if((arr[i]<0 && arr[i+1]<0 || arr[i]>0 &&
printf("\n"); printf("\n");
arr[i]=rand()%100%30+6; printf("%d ",c); } printf("%d ",c); } arr[i+1]>0) && i!=size-1){ }
printf(" %d ",arr[i]); } } a++;}
for(int i=0;i<10;i++) { return 0; } } if(a==2){
if (arr[i]>0 && arr[i]%2!=0) { } cout<<"Yes, there are."<<endl;
p=p*arr[i];} } break; }
printf("\nProizvedeie nechetnih }
polojitelnih cifr: %d",p); if(i==size-1){
return 0; cout<<"No, there are no two pairs with
} equal signs."<<endl;
}}
}
4. вывести 3 числа с клавиатуры и 4. вывести 3 числа с 4. Нарисовать прямоугольный 4. Ввести два числа и определить, 4. Вывести три числа с клавиатуры и 4. Найти максимальную цифру в трехзначном
определить, является ли клавиатуры и определить, треугольник из звездочек. делится ли одно из них нацело на определить, сколько одинаковых чисел числе
введенная последовательность сколько в них есть For (i=0; i<10; i++){ другое. Предусмотреть защиту от введено a=(n/100);
возрастающей, убывающей или положительных чисел For(j=10; j>I; j-- ) деления на ноль if(a==b&&b==c) printf("3"); b=((n%100)/10);
неупорядоченной #include<stdio.h> Printf(“_”); #include<stdio.h> else c=(n%10);
#include<stdio.h> int main() For(z=0; z<=I; z++) int main() if(a==b||b==c||a==c) printf("2"); max=a;
int main() { Printf(“*”); { else printf("net ravnih"); if(b>max) max=b;
{ int a,b,c; Printf(“\n”); int a,b; if(c>max) max=c;
int a,b,c; scanf("%d%d%d",&a,&b,&c); } scanf("%d%d",&a,&b); Найти кол-во ненулевых цифр произв. printf("%d",max);
scanf("%d%d printf("%d",(a>0)+(b>0)+ } if (b==0) числа:
%d",&a,&b,&c); (c>0)); Программа удал-я всех четных printf("no b=0"); int d = 6300890; Ф-ция, опред-ая,явл-ся ли число палиндромом
if(a>b && b>c) } цифр задан. числа: else if (a%b==0) int c = 0 #include <iostream>
printf("-"); #include <stdio.h> printf("a/b yes"); while (d != 0) { #include <string.h>
else if (a<b && #include <conio.h> else if (a==0)     if ((d % 10) > 0) c++; using namespace std;
b<c) void get_new_num(int num) printf("no a=0");     d /= 10; char text[256];
printf("+"); { int _num = num, temp = 0; else if (b%a==0) } int main()
else printf("Hui num = 0; printf("b/a yes"); std::cout << count << std::endl; {
ego znaet"); while(_num) else cout<<"Enter input text(less than 256 chars)\n";
}  { printf(“ne delimit”) cin.getline(text,256);
temp = _num % 10; int p=strlen(text)-1;
if(!(temp % 2)) bool t=true;
{ _num /= 10; for(int i=0,j=p;j>=0&&i<=p;i++,j--)
continue; } {
else if (text[i]==' ')
{ num += temp; i++;
num *= 10; if(text[j]==' ')
} j--;
_num /= 10; if (text[i]!=text[j]){
} t=false;
num /= 10; break;
while(num) }
{ temp = num % 10; }
printf("%d", temp); if(t)
num /= 10; }} cout<<"palindrome\n";
int main (void) else
{ int num = 0; cout<<"not palindrome\n";
printf("Input num: "); system("pause");
scanf("%d", &num); return 0;
printf("\n\t= ");
get_new_num(num);
return 0; }
5. Определить сумму квадратов 5. Определить сумму кубов 5. Определить сумму первой сотни 5. Определить сумму квадратов 5. Определить сумму кубов первой 5. Определить, делится ли введенное
первой сотни натуральных чисел первой сотни натуральных натуральных чисел первой сотни четных натуральных десятки четных натуральных чисел четырехзначное число на сумму своих цифр
int s,i;s=0; чисел int s,i; чисел =0; scanf("%d", &n);
for(i=1; i<=100;i++) =0; s=0; s=0; for(i=0;i<=10;i+=2) if (n%(((n/1000)+((n%1000)/100)+((n%100)/10)+(n
s+=i*I; for(i=0;i<=100;i+=1) for(i=1;i<=100;i++); for(i=0;i<=100; i+=2) s+=i*i*i; %10))==0)) printf("yes");
printf(“%d”,s); s+=i*i*i; s+=i; s+=i*i; else printf("no");
printf(“%d”,s); return 0;

6. int a[100][100]; 6. В двумерном массиве найти 6. int a[100][100]; 6. В двумерном массиве найти сумму 6. В двумерном массиве найти сумму 6. Нарисовать равнобедренный треугольник из
int i,j; минимальный элемент на int flag=1; элементов на побочной диагонали элементов на главной диагонали звездочек.
int flag=1; for(i=0;i<n;i++) главной диагонали for(itn i=0;i<n;i++) int s=0; int s=0; int i, j,t;
for(j=0;j<i;j++) if(a[i][j]!=a[j][i]) min=a[0][0]; for(int j=0;j<m;j++) for (i=0;i<n;i++) for (i=0;i<n;i++) for (i=1; i<=10; i++)
{ flag=0;break;} for (i=0;i<n;i++) if(a[i][j]!=0) {flag=0;break; s+=a[i][n-1-i]; for (j=0;j<m;j++) {
if(flag) for (j=0;j<m;j++) } s+=a[i][j]; for (j=1; j<=10-i; j++) printf(" ");
printf("YES"); else if (a[i][j]<min) if(flag) printf("YES"); else for (t=0; t<=2*i-1; t++) printf("*");
printf("NO"); min=a[i][j]; printf("NO"); printf("\n"); }
7. Найти, сколько 7. Найти, сколько 7. Определить, сколько трехзначных 7. Найти, сколько четырехзначных 7. Определить, сколько четырехзначных 7. Определить, является ли данное число
четырехзначных чисел делится на четырехзначных чисел делится чисел делится на 13 и при этом не чисел делится на 77 и при этом не числе делятся на 99 и при этом не палиндромом
13 и при этом не делится на 2, 3 и на 11 и при этом не делится на делится на 2 и 5 делится на 3 и 5 делятся на 55 scanf("%d",&x);
5 2, 3 и 7 int i,k=0; int i,k=0; int i,k=0; n=x;
int i, count=0; int i,k=0; for(i=1001;i<=10000;i+=13) for(i=1001;i<10000;i+=77) for(i=1001;i<10000;i+=99) while(x>0) {
for (i=1000; i<10000; i++) for(i=1001;i<=10000;i+=11) if((i%2&&(i%5)) if((i%3)&&(i%5)) if(i%5) p=p*10+x%10;
if i%13==0&&i%2!=0&&i%3! if((i%2)&&(i%3)&&(i%7)) k++; k++; k++; x/=10; }
=0&&i%5!=0) count++; k++; printf("%d",k); printf("%d",k); if(n==p) printf("palindrom");
printf(“%d”, count); else printf("ne palindrom");
8. Даны два массива. Массив А 8. Даны два массива. Массив А 8. Даны два массива. Массив А 8. Даны два массива. Массив А 8. Даны два массива. Массив А состоит 8. Даны два массива. Массив А состоит их N
состоит их N элементов и состоит их N элементов и состоит их N элементов и состоит их N элементов и их N элементов и отсортирован по элементов и отсортирован по возрастанию. Массив
отсортирован по возрастанию. отсортирован по возрастанию. отсортирован по убыванию. Массив отсортирован по убыванию. Массив возрастанию. Массив В состоит из В состоит из элементов М отсортирован по
Массив В состоит из элементов М Массив В состоит из В состоит из элементов М В состоит из элементов М элементов М отсортирован по убыванию. Разработать программу для слияния
отсортирован по убыванию. элементов М отсортирован по отсортирован по убыванию. отсортирован по убыванию. убыванию. Разработать программу для этих массивов в отсортированный по убыванию
Разработать программу для возрастанию. Разработать Разработать программу для слияния Разработать программу для слияния слияния этих массивов в массив С, не содержащий одинаковых элементов
слияния этих массивов в программу для слияния этих этих массивов в отсортированный по этих массивов в отсортированный по отсортированный по убыванию массив С i=0;j=m-1;k=n+m-1;
отсортированный по возрастанию массивов в отсортированный возрастанию массив С убыванию массив С i=0;j=m-1;k=n+m-1; while(i<n&&j>=0)
массив С по возрастанию массив С i=n-1;j=m-1;k=0; i=n-1;j=m-1;k=n+m-1; while(i<n&&j>=0) if(a[i]<b[j])
int i,j,z; z=0; i=n-1; j=0; i=j=k=0; while(i>=0&&j>=0) while(i>=0&&j>=0) if(a[i]<b[j]) c[k--]=a[i++];
while (j>=0 && i<m) while(i<n&&j<m) if(a[i]<b[j]) if(a[i]<b[j]) c[k--]=a[i++]; else c[k--]=b[j--];
if (b[i]<a[j]) c[z++]=b[j--] if(a[i]<b[j]) c[k++]=a[i--]; c[k--]=a[i--]; else while(i<n)
else [z++]=a[i++]; c[k++]=a[i++]; else else c[k--]=b[j--]; c[k--]=a[i++];
while(i>=0) else c[k++]=b[j--]; c[k--]=b[j--]; while(i<n) while(j>=0)
c[z++]=a[i--]; c[k++]=b[j++]; while(i>=0) while(i>=0) c[k--]=a[i++]; c[k--]=b[j--];
while(i<n) c[z++]=a[i++]; while(i<n) c[k++]=a[i--]; c[k--]=a[i--]; while(j>=0) for(k=0;k<n+m;k++){
printf("%d",c[z]); c[k++]=a[i++]; while(j>=0) while(j>=0) c[k--]=b[j--]; if(c[k]!=c[k-1])
while(j<m) c[k++]=b[j--]; c[k--]=b[j--]; printf("%d ",c[k]); }
c[k++]=b[j++];
9. Найдите длину самой длинной 9. Многочлен Р(ч) задан 9. Напишите функцию, которая 9. Дан массив A[n]. Каждый его 9. За один проход по одномерному 9. В двумерном массиве найти сумму элементов
цепочки из подряд идущих массивом своих увеличивает на единицу заданное n- элемент, кроме первого, заменить массивы найти 3 минимальных элемента выше главной диагонали
одинаковых элементов в массиве коэффициентов А(n+1). Найти значное двоичное число суммой всех предыдущих элементов if (a[i]<min1){
int i,n=10 ,lm=1,dl=0; массив коэффициентов I=n-1; (т.н. нарастающий итог) min3=min2; min2=min1; min1=a[i];
for(i=1;i<n;i++){ производной этого While (i>=0 && a[i]) }
if(A[i]==A[i-1])dl++; многочлена. A[i--]=0; else if (a[i]<min2){
else { If (i>=0) Min3=min2; min2=a[i];
if(lm<dl)lm=dl; for(int i=0;i<=n;i++) a[i]=1; printf(“1”); }
dl=1;} a[i]=a[i]*i; Else { else if (a[i]<min3)
} For (i=0; i<n; i++) min3=a[i];
if(lm<dl)lm=dl; Printf(“0”);
printf("dlina:%i",lm); }
getch(); }
10. Напишите рекурсивную 10. Напишите программу 10. За один проход по массиву найти 10. За один проход по массиву найти 10. Напишите программу находящую 10. Напишите рекурсивную функцию вычисления
функцию вычисления НОД решета Эратосфена 3 минимальных элемента 3 максимальных элемента сумму первых n чисел ряда Фиббоначи произвольного члена ряда Фиббоначи
Int gcd( int a, int b) #define N 1000 if (a[i]<min1){ If(a[i]>max3){
{ if (b==0) int primes[N]; min3=min2; min2=min1; min1=a[i]; Max1=max2; max2=max3; max3=a[i];
#include<stdio.h> int NOD ( int a, int b ){
return a; void gen-primes(void) } } int main()
else return gcd(b, a%b) { int i,j; else if (a[i]<min2){ else if (a[i]>max2){ if ( a == b ) return a;
} for(i=0;i<N;i++) Min3=min2; min2=a[i]; max1=max2; max2=a[i]; {
Функция проверки числа на primes[i]=1; } } if ( a < b )
простоту: for(i=2;i*i<=N;i++) else if (a[i]<min3) Else if (a[i]>max1)
#include <iostream> if(primes [i]) min3=a[i]; Max1=a[i]; int a,b,c,n=6,i; return NOD(a,b-a);
#include <stdio.h> for(j=i*i;j<N;j+=i) Найти миним. четн. цифру в
#include <conio.h> primes [j]=0; произв. числе:
a=b=1;
else return NOD(a-b,b);}
#include <math.h> #include <iostream> for (i=0;i<n;i++)
int main() #include <stdio.h>
{ #include <conio.h> {
using namespace std; #include <math.h> c=a+b;
int n; using namespace std;
bool pr=true; int main(void) { a=b;
cout << "Vvedite N: "; int min_number;
cin >> n; unsigned int n = 0;
b=c;
for (int i=2;i<=sqrt(n);i++) cout << "Input n: "; printf("%d ",c); }
{ cin >> n;
if (n%i==0) if(n%2!=0) }
pr=false; printf("Error");
} else{
if (pr==true) unsigned int min_number = 9;
cout << "PROSTOY."; while ( n > 0 )
else {
cout << "NE PROSTOY."; if ( ( n % 10 ) < min_number)
return 0; min_number = n % 10;
} n /= 10;
}
cout << "Min number : " <<
min_number << endl;
system (" pause"); }
return 0;
}
Равнобедр. треуг-к из +,* и высоты n Равнобедр-й треуг-к +,* и высоты n Прямоуг. треуг-к +,* и высоты n Прямоуг. треуг-к +,* и высоты n Прямоуг. треуг-к +,* и высоты n
* + *+*+*+ *+*+*+ *
*+* *+* *+*+* +*+*+ *+
*+*+* +*+*+ *+*+ *+*+ *+*
*+*+*+* *+*+*+* *+* +*+ *+*+
*+*+*+*+* +*+*+*+*+ *+ *+ *+*+*
*+*+*+*+*+* *+*+*+*+*+* * + *+*+*+
#include<stdio.h> #include<stdio.h> #include<stdio.h> #include<stdio.h> #include<stdio.h>
int main() int main() int main() int main() { int main()
{ { { int i, j, n=6; {
int i, j, n=6; int i, j, n=6; int i, j, n=6; for(i=0; i<n; i++) { int i, j, n=6;
for(i=0; i<n; i++) { for(i=0; i<n; i++) for(i=0; i<n; i++) for(j=n; j>i; j--) for(i=0; i<n; i++)
for(j=n-1; j>i; j--) { { if((j+i)%2) printf("+"); { for(j=0; j<=i; j++)
printf(" "); for(j=n-1; j>i; j--) for(j=n; j>i; j--) else if((j)%2) printf("+");
for(j=0; j<i*2+1; j++) printf(" "); if((j)%2) printf("+"); printf("*"); else
if(j%2) printf("+"); for(j=0; j<i*2+1; j++) else printf("\n"); } } printf("*");
else if((j+i+1)%2) printf("+"); printf("*"); printf("\n");
printf("*"); else printf("\n"); }
printf("\n"); }} printf("*"); } }
printf("\n"); }} }