Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
B ) только две одинаковые цифры.Содержание книги Поиск на нашем сайте Пример №2. Ввести число и определить, оно больше нуля, меньше или равно. # include <conio.h> # include <stdio.h> Int main () { Int n; printf(“vvedite n\n”); scanf(“%d”,&n); if(n>0) printf(“n>0\n”); else if (n<0) printf(“n<0\n”); else printf(“n=0\n”); return 0; } Пример №3. Программа, которая запрашивает у пользователя № месяца и затем выводит соответ-ее название времени года. # include <conio.h> # include <stdio.h> Int main () { Int n; printf(“vvedite nomer mesyaca\n”); scanf(“%d”,&n); if (n==1 || n==2 || n==12) printf(“zima\n”); else if (n>=3 && n<=5) printf(“vesna\n”); else if (n>=6 && n<=8) printf(“leto\n”); else printf(“osen\n”); return 0; } Пример №4. Введите трехзначное число. Подсчитайте кол-во четных цифр в числе. # include <conio.h> # include <stdio.h> Int main () { Int a,b,c, n,z=0;//z-счётчик кол-ва printf(“vvedite 3-znachnoe chislo:\n”); scanf(“%d”,&n); a=n%10; b=n/10%10; c=n/100; if(a%2==0) z++; if(b%2==0) z++; if(c%2==0) z++; printf(“v chisel %d kol-vo chetnih cifr %d\n”, n,z); return 0; } Пример №5. Вычислить x, y, z. #include <conio.h> # include <stdio.h> int main () { int x,y,z,w; x=-1; y=2; z=3; w=1; printf("\n x=%d y=%d z=%d w=%d",x,y,z,w); w/=z+=y*=x-=1; printf("\n x=%d y=%d z=%d w=%d",x,y,z,w); getch(); } ответ: x=-1 y=2 z=3 w=1 x=-2 y=-4 z=-1 w=-1 Пример №6. Вычислить x,y,z. #include <conio.h> #include <stdio.h> int main () { int x,y,z; x=2; y=1; z=0; x=x&&!--y&&z++||y>x||(y=z); printf("\n x=%d y=%d z=%d",x,y,z); y=--z+2; printf("\n x=%d y=%d z=%d",x,y,z); z-=y!=++x||z&&++y*x; printf("\n x=%d y=%d z=%d",x,y,z); getch(); } ответ: x=1 y=1 z=1 x=1 y=2 z=0 x=1 y=2 z=0 Пример№7. Если остаток от деления Х на 5 равен 2, то присвоить Х значение 0, если остаток равен 3, то умножить Х на –1. # include <conio.h> # include <stdio.h> int main() { int x; scanf("%d",&x); if (x%5==2) x=0; if (x%5==3) x*=-1; printf("x=%d",x); getch(); } Пример №8. Если Х равно 5, то присвоить Y квадрат Х, если 7, то У присвоить остаток от деления Х на 2, в остальных случаях значение Y увеличить на 1. #include <conio.h> #include <stdio.h> int main() { int x,y; x=3;y=0; switch(x) { case 5:y=x*x;break; case 7:y=x%2;break; default:++y; } printf("%d",y); getch(); } Пример №9. Если Х больше 5, то увеличить его значение на 1, иначе вывести на печать У. Х и Y целые. #include <conio.h> #include <stdio.h> int main() { int x,y; x=6;y=1; if (x>5) x++; else printf("%d",y); getch(); }
Пример №10. Определить, имеется ли среди заданных целых чисел A, B, C хотя бы одно чётное. #include <conio.h> #include <stdio.h> int main() { int a,b,c; printf("vvedite 3 chisla:\n"); scanf("%d%d%d",&a,&b,&c); if (a%2==0 || b%2==0 || c%2==0) printf("imeetca\n"); else printf("neimeetca\n"); getch(); } Пример №11. Даны три числа. Вывести на экран те из них, которые принадлежат заданному отрезку [ e, f ]. #include <conio.h> #include <stdio.h> int main() { int a,b,c,e,f; a=2; b=7; c=8; e=1; f=5; if (a>=e && a<=f) printf("a\n"); if (b>=e && b<=f) printf("b\n"); if (c>=e && c<=f) printf("a\n"); getch(); } Пример №12. Определить, есть ли среди цифр заданного целого трёхзначного числа одинаковые. #include <conio.h> #include <stdio.h> int main () { int n,a,b,c,d; printf("Vvedite 3-znachnoe chislo\n"); scanf("%d",&n); a=n%10; b=n/10%10; c=n/100; if (a==b || a==c || b==c) printf("imeetcia\n"); else printf("ne imeetcia\n"); getch(); } Пример №13. Определить номер квадранта, в котором находится точка с заданными координатами (x, y). #include <conio.h> #include <stdio.h> int main() { int x,y,a; printf("vvedite x,y\n"); scanf("%d%d",&x,&y); if (x>=0 && y>=0) a=1; else if (x<0 && y>=0) a=2; else if (x<=0 && y<0) a=3; else a=4; printf("a= %d", a); getch(); }
Пример 14. Выбрать наибольшее из трёх заданных чисел #include <conio.h> #include <stdio.h> int main() { int a,b,c,max; printf("Vvedite 3 chisla:\n"); scanf("%d%d%d",&a,&b,&c); if(a>b && a>c) max=a; else if(b>c) max=b; else max=c; printf("max= %d",max); getch(); } Пример 15. Написать программу, которая запрашивает у пользователя номер дня недели и выводит одно из сообщений: «Увы – рабочий день!», «Ура! Суббота!», «Ура! Воскресенье!». #include <conio.h> #include <stdio.h> int main() { int n; printf("Vvedite nomer nedeli\n"); scanf("%d",&n); if (n==1 || n==2 || n==3 || n==4 || n==5) printf("Yvi-rabochii day!\n"); else if (n==6) printf("Yra!Saturday\n"); else if (n==7) printf("Yra!Sunday\n"); getch(); } Пример 16. Записать у переем х 5-ый и 7-ый разряды инвертировать, а 10-й разряд обнулить. #include <conio.h> #include <stdio.h> int main() { int x=11; x ^= 1 << 4; x ^= 1 << 6; x &= ~(1 << 9); printf("x=%d",x); getch(); } Пример 17. Подсчитать количество натуральных чисел n (111 £ n £ 999), в записи которых есть а) две одинаковые цифры; Пример 18. Записать переем х, которая принимает значение против-ое 6-му разряду переменной а. #include <conio.h> #include <stdio.h> int main() { int x,а=2; Х=!(а&(1<<5)); printf("x=%d",x); getch(); } Пример 19. Написать программу, вычисляющую стоимость междугороднего разговора в соответствии с таблицей:
Входными данными должны являться код города и число минут.На выходе мы должны иметь сообщение о стоимости минуты и сумме за разговор. #include <conio.h> #include <stdio.h> int main() { int kod, minut; float cena, stoimost; printf("Vvedite dannie:\n"); printf("Kod goroda: "); scanf("%i", &kod); printf("Dlitelnost razgovora: "); scanf("%i", &minut); switch(kod) { printf("Gorod: Vladivostok.\n"); printf("Stoimost minyt razgovora: 9.2 rub.\n"); stoimost = minut * 9.2; break; Case 95: printf("Gorod: Moscov.\n"); printf("Stoimost minyt razgovora: 4.1 rub.\n"); stoimost = minut * 4.1; break; case 861: printf("Gorod: Krasnodar.\n"); printf("Stoimost minyt razgovora: 2.05 rub.\n"); stoimost = minut * 2.05; break; Case 844: printf("Gorod: Volgograd.\n"); printf("Stoimost minyt razgovora: 2.5 rub.\n"); stoimost = minut * 2.5; break; default: printf("nevernii kod.\n"); stoimost = 0.0; break; } printf("Stoimost razgovora: %5.2f rub.", stoimost); } Пример 20. Подсчитать количество натуральных чисел n (102 £ n £ 987), в которых все три цифры различны. #include<stdio.h> #include<conio.h> main() { int a,b,c,x=0,y=0; for (int i=102; i<987; i++) { a=i/100; b=i%100/10; c=i%10; if (a!=b&&a!=c&&b!=c) x++; } printf("Kolichestvo chesel gde vse tri tsifri razlichi\n %d",x); getch(); } Пример 21. Подсчитать количество натуральных чисел n (11 £ n £ 999), являющихся палиндромами, и распечатать их. #include<stdio.h> #include<conio.h> main() { int x=0; for(int i=11; i<=999;i++) if(i<100) { if(i%10==i/10){ x++; printf("%d ",i); } } else if (i/100==i%10) { x++; printf("%d ",i); } printf("\n Kolichestvo chisel palindromov %d",x); getch(); } Пример 22. Подсчитать количество цифр в десятичной записи целого неотрицательного числа n. #include<stdio.h> #include<conio.h> main() { int i=0,n; printf ("vvedite lyboe chislo\n"); scanf("%d",&n); while (n>0) { n/=10; i++; } printf("kolichestvo chifr\n %d",i); getch(); } Пример 23 Определить, верно ли, что куб суммы цифр натурального числа n равен n2. #include<stdio.h> #include<conio.h> main() { int i=0,n,n1; printf ("vvedite luboe chislo\n"); scanf("%d",&n); n1=n*n; while (n>0) { i+=n%10; n/=10; } i=i*i*i; if (n1==i) printf("verno"); else printf("ne verno'"); getch(); } Пример 24. Определить, является ли натуральное число n степенью числа 3. #include<stdio.h> #include<conio.h> main() { int n; printf("Enter n: "); scanf("%d", &n); if (n%3 == 0) printf("Yes"); else printf("No"); getch(); } Пример 25. Для данного вещественного положительного числа a найти наименьшее натуральное положительное n такое, что 1 + 1/2 +1/3+... + 1/n > a. #include<stdio.h> #include<conio.h> main() { int n=0; float a,z=0,x=0; scanf("%f",&a); while (x<a) { n++; z++; x=x+1/z; } printf("%d",n); getch(); } Пример 26. Дано натуральное число n. Получить все его натуральные делители. #include<stdio.h> #include<conio.h> main() { int n, i; n = i = 0; printf("Enter n: "); scanf("%d", &n); printf("Dividers is: "); for(i = 1; i <= n; i++) { if (n % i == 0) printf("%d ", i); } Пример 27 Дано целое число m > 1. Получить наибольшее целое k, при котором 4k < m. #include<stdio.h> #include<conio.h> main() { int m,k=1,i=0; printf ("vvedite luboe chislo\n"); scanf("%d",&m); while(k<m) { i++; k*=4; } printf("naiboshee tseloe k=%d",i-1); getch(); } Пример 28. Распечатать первые n (n - задано) простых чисел (p - простое число, если p >= 2 и делится только на 1 и на себя). #include<stdio.h> #include<conio.h> main() { int n,p=0,k; printf ("vvedite luboe chislo\n"); scanf("%d",&n); for (int i=2; i<=n; i++) { k=1; for (int j=2; j<i-1; j++) if (i%j==0) { k=0; break; } if (k==1) printf("%d ",i); } getch(); } Пример 29. Вычислить значение å i! для i, изменяющихся от 1 до n. Воспользоваться соотношением å i! = 1 + 1 * 2 + 1 * 2 * 3 +...+ 1 * 2 * 3 *... * n = 1+2 * (1+3 * (1+ +n * (1)...)). #include<stdio.h> #include<conio.h> main() { int s=1,n; scanf("%d",&n); for (int i=1; i<=n; i++) s=1+((n+1-i)*s); s--; printf("%d",s); getch(); }
Пример 30. Для данного вещественного числа x и натурального n вычислить: a) sin x + sin2x +... + sinnx b) sin x + sinx2 +... + sinxn c) sin x + sin(sin x) +... + sin (sin (... sin(sin x)...)) #include <stdio.h> #include <conio.h> #include <math.h> main() {
int n,i; float a=1,b=0,bb=1,c=0,x; printf("Vvedite chislo x: "); scanf("%f",&x); printf("Vvedite chislo n: "); scanf("%d",&n); c=x; for (i=1; i<=n; i++) { a+=a*sin(x); bb*=x; b+=sin(bb); c+=sin(c); } printf("rezultat\nsin x + sinx2 +... + sinxn=%f",a-1,b,c-x); getch(); } Пример 31. Натуральное число называется совершенным, если оно равно сумме всех своих делителей, за исключением самого себя. Дано натуральное число n. Получить все совершенные числа, меньшие n. #include<stdio.h> #include<conio.h> main() { int x,r,kol=0; printf ("vvedite luboe natyral'noe chislo\n"); scanf("%d",&x); for(int i=2; i<x; i++) { r=0; for(int j=1; j<i/2+1; j++) if (i%j==0) r+=j;
if (i==r) {kol++; printf("\nsoveshennoe chislo:%d ",r); } } printf("\nkolichestvo:\n%d",kol); getch(); }
Пример 32. Если p и q - простые числа и q = p+2, то они называются простыми сдвоенными числами или “близнецами” (twin primes). Например, 3 и 5 - такие простые числа. Распечатать все простые сдвоенные числа, меньшие N. #include<stdio.h> #include<conio.h> main() { int prev=1,now,N,r; printf ("vvedite luboe chislo\n"); scanf("%d",&N); for (int i=1; i<N;i++) { r=0; for (int j=2; j<i; j++) if (i%j==0){r=1; break;} if (r==0)now=i; { if(now-prev==2) printf(" \nprostie sdvoennie chisla:\n %d %d ",prev,now); prev=now; } } getch(); } Пример 33. Пусть во входном потоке находится последовательность символов, заканчивающаяся точкой (кодировка ASCII). Вывести в выходной поток последовательность символов, измененную следующим образом: a) заменить все символы ‘?’ на’!’; #include <stdio.h> #include <conio.h> int regist (int ch) { if(ch == '?') return '!'; return ch; } int main() { int ch; while((ch=getchar())!=EOF) { if(ch == '-') continue; if(ch == '&') putchar(ch); putchar(ch); } getch(); } Пример 34. Пусть во входном потоке находится последовательность символов, заканчивающаяся точкой. Вывести в выходной поток последовательность символов, измененную следующим образом: b) удалить все символы ‘-‘ и удвоить все символы ‘&’; #include <stdio.h> #include <conio.h> int regist (int ch) { if(ch == '?') return '!'; return ch; } int main() { int ch; while((ch=getchar())!=EOF) { if(ch == '-') continue; if(ch == '&') putchar(ch); putchar(ch); } getch(); } Пример 35. Пусть во входном потоке находится последовательность символов, заканчивающаяся точкой (кодировка ASCII). Вывести в выходной поток последовательность символов, измененную следующим образом: заменить все прописные латинские буквы строчными (другие символы копировать в выходной поток без изменения); #include <stdio.h> #include <conio.h> int main() { int ch; while((ch = getch())!=EOF) { if (ch >= 'A' && ch <= 'Z') ch += 'a' - 'A'; putchar(ch); } getch(); } Пример 36. Пусть во входном потоке находится последовательность символов, заканчивающаяся точкой (кодировка ASCII). Вывести в выходной поток последовательность символов, измененную следующим образом: f) каждую группу рядом стоящих символов ‘+’ заменить одним таким символом; #include <stdio.h> #include <conio.h> int main() { int ch; while((ch = getchar())!=EOF) { if(ch == '+') { int ch2 = getchar(); if(ch2!= EOF) { if(ch2 == '+') putchar(ch2); else { putchar(ch); putchar(ch2); } } else putchar(ch); } } getch(); } Пример 37. Пусть во входном потоке находится последовательность с имволов, заканчивающаяся точкой. Вывести в выходной поток последовательность символов, измененную следующим образом: удалить все символы, не являющиеся строчными латинскими буквами; #include <stdio.h> #include <conio.h> int regist (int ch) { if(ch == '?') return '!'; return ch; } int main() { int ch; while(ch = getchar())!=EOF) { if(ch >= 'a' && ch <= 'z') putchar(ch); } getch(); }
Пример 38. Пусть во входном потоке находится последовательность символов, заканчивающаяся точкой (кодировка ASCII). Вывести в выходной поток последовательность символов, измененную следующим образом: заменить все строчные латинские буквы прописными #include <stdio.h> #include <conio.h> int main() { int ch; while(ch = getchar())!=EOF) { if (ch >= 'a' && ch <= 'z') ch -= 'a' - 'A'; putchar(ch); } getch(); } Пример 39. Длина не превысит 100 элементов. Пусть во входном потоке находится (Строка символов). Вывести в выходной поток последовательность литер, измененную следующим образом: a) заменить все символы ‘?’ на’!’; # include <stdio.h> # include <iostream.h> # include <conio.h> # include <string.h> char s[100]; char a, l, b; int i, j, k; int main() { puts("Vvedite stroku texta: \n"); gets(s); for (i=0; s[i]!='\0'; i++) if (s[i]=='?') s[i]='!'; for (i=0; s[i]!='\0'; i++) for (j=0; s[j]!='\0'; j++) if (s[j]=='-') for (k=j; s[k]!='\0'; k++) s[k]=s[k+1]; j=0; do { if (s[j]=='&') { for (k=strlen(s)+1; k>j; k--) s[k+1]=s[k]; s[j+1]=s[j]; j+=2; } elsej++; } while(s[j]!='\0'); puts(s); getch(); return 0; } Пример 40. Длина не превысит 100 элементов. Пусть во входном потоке находится (Строка символов). Вывести в выходной поток последовательность литер, измененную следующим образом: b) удалить все символы не явл-еся строчными латинскими буквами; # include <iostream.h> # include <stdio.h> # include <conio.h> char s[100]; int i, j, k; void main() puts("Vvedite stroku texta: \n"); gets(s); for (i=0; s[i]!='\0'; i++) for (j=0; s[j]!='\0'; j++) if ((s[j]<'a')||(s[j]>'z')) for (k=j; s[k]!='\0'; k++) s[k]=s[k+1]; puts(s); getch(); } Пример 41. Длина не превысит 100 элементов. Пусть во входном потоке находится (Строка символов). Вывести в выходной поток последовательность литер, измененную следующим образом: Пример 44. Вывести в выходной поток последовательность симв. g)каждую группу из n рядом стоящих символов ‘ * ’ заменить группой из n/2 рядом стоящих символов ‘+’ (n >= 2); одиночные ‘ * ’ копировать в выходной поток без изменения; # include <stdio.h> # include <iostream.h> # include <conio.h> # include <string.h> char s[100]; char a, b; int i, j, l, k; int main() { puts("Vvedite stroku texta: \n"); gets(s); for (l=0; s[l]!='\0'; l++) if (s[l]=='*')/*&&(s[l+1]=='*'))*/ { for (i=l; s[i]!='\0'; i++) s[i]=s[i+1]; s[l]='+';} puts(s); getch(); return 0; } Пример 45. Вывести в выходной поток последовательность симв. h) удалить из каждой группы подряд идущих цифр все начальные незначащие нули (если группа состоит только из нулей, то заменить эту группу одним нулем); # include <stdio.h> # include <iostream.h> # include <conio.h> # include <string.h> char s[100]; char a, b; int i, j, l, k, S, m, n; int main() { puts("Vvedite stroku texta: \n"); gets(s); for (j=0; s[j]!='\0'; j++) for (l=0; s[l]!='\0'; l++) if ((s[l]=='0')&&(s[l-1]==' ')) { S=0; n=0; for (k=l; s[k+1]!=' '; k++) { S+=int(s[k]); n++; } if (S==0) for (m=l; m<l+n-1; m++) s[m]=s[m+1]; else for (i=l; s[i]!='\0'; i++) s[i]=s[i+1]; } puts(s); getch(); return 0; }
Пример 46. Вывести в выходной поток последовательность симв. Пример 48. Вывести в выходной поток последовательность симв. k) заменить все комбинации символов child комбинациями символов children; # include <stdio.h> # include <iostream.h> # include <conio.h> # include <string.h> char s[100]; char a, b; int i, j, l, k; void main() { puts("Vvedite stroku texta: \n"); gets(s); for (l=0; s[l]!='\0'; l++) if ((s[l]=='c')&&(s[l+1]=='h')&&(s[l+2]=='i')&&(s[l+3]=='l')&&(s[l+4]=='d')) { k=l+4; for (i=strlen(s)+1; i>k; i--) s[i+1]=s[i]; s[k+1]='r'; k=l+5; for (i=strlen(s)+1; i>k; i--) s[i+1]=s[i]; s[k+1]='e'; k=l+6; for (i=strlen(s)+1; i>k; i--) s[i+1]=s[i]; s[k+1]='n'; } puts(s); getch(); } Пример 49. Вывести в выходной поток последовательность симв. l) удалить группы символов, расположенные между фигурными скобками { и }. Скобки тоже должны быть удалены. # include <stdio.h> # include <iostream.h> # include <conio.h> # include <string.h> char s[100]; char a, b; int i, j, l, m, k, n; void main() { puts("Vvedite stroku texta: \n"); gets(s); for (i=0; s[i]!='\0'; i++) if (s[i]=='{') { for (k=i; s[k-1]!='}'; k++) if (s[k]=='}') m=k; for (k=i; k!=m+1; k++) for (j=i; s[j]!='\0'; j++) s[j]=s[j+1]; } puts(s); getch(); } Пример 50. a) удалить из каждой группы подряд идущих цифр, в которой более двух цифр и которой предшествует точка, все цифры, начиная с третьей. # include <stdio.h> # include <iostream.h> # include <conio.h> # include <string.h> char s[100], z[100]; char a, b; int i, j, l, k=-1, x, m, n; int main() { puts("Vvedite stroku texta: \n"); gets(s); for (x=0; s[x]!='\0'; x++) { m=0; j=x; do { j++; if (s[j]=='.') m=j; //index tochki } while (s[j]!='.'); l=0; do { j++; if ((s[j]>='0')&&(s[j]<='9')) l++; //kol-vo cifr posle tochki } while((s[j]>='0')&&(s[j]<='9')); if (l>2) //esli cifr posle tochki bolshe 2, to { //sdvigat' cifri, poka oni cifri, nachinai s elementa s indexom (m+3) for (n=1; n<l-1; n++) for (i=m+3; s[i]!='\0'; i++) s[i]=s[i+1]; } } puts(s); getch(); return 0; Пример 51. b) удалить из каждой группы цифр, которой не предшествует точка, все начальные нули (кроме последнего, если за ним идет точка либо в этой группе нет других цифр, кроме нулей # include <stdio.h> # include <iostream.h> # include <conio.h> # include <string.h> char s[100], z[100]; char a, b; int i, j, l, k, x=-1, m, n; void main() { puts("Vvedite stroku texta: \n"); gets(s); for (l=0; s[l]!='\0'; l++) { do { x++; if (s[x]=='0') { m=0; n=0; for (i=x+1; ((s[i]>='0')&&(s[i]<='9')); i++) if (s[i]=='0') m++; //kol-vo nulevih el-tov posle naidennogo nulia else n++; //kol-vo nenulevih el-tov posle naidennogo nulia } } while (s[x]!='0'); if (s[x-1]!='.') { if (n==0) for (k=1; k<=m; k++) for (j=x; s[j]!='\0'; j++) s[j]=s[j+1]; else for (k=1; k<=m+1; k++) for (j=x; s[j]!='\0'; j++) s[j]=s[j+1]; } } puts(s); getch(); }
Пример 52. Исследование последствий выхода индекса элемента за границу массива. Организовать цикл, в котором парами (х [0], у [0], затем х [1], у [1] и т.д.) вводятся значения элементов массивов х и b. #include <stdio.h> #include <conio.h> int main() { int n=-1,x[3],y[3],i; for (i=0;i<3;i++) { printf("Vvedite x[%d]:",i); scanf("%d",&x[i]); printf("Vvedite y[%d]:",i); scanf("%d",&y[i]); } printf("Vvedite x[%d]:",i); scanf("%d",&x[3]); printf("Vvedite y[%d]:",i); scanf("%d",&y[i]); getch(); return 0; } Пример 53. Определение длины одномерного массива. В функции main описан (без указания количества элементов) и инициализирован массив arrDbl из значений типа double. Результатом применения операции sizeof к имени массива является размер массива в байтах. #include <stdio.h> #include <conio.h> void main() { double arrDbl[]={1.3,1.5,2.8,1.7,1.1,2.1,2.2}; int i,size; size=sizeof(arrDbl)/sizeof(arrDbl[i]); printf("Razmer dannogo massiva=%d\n",size); for (i=0;i<size;i++) printf("arrDbl[%d]=%.3f\t razmer=%f\n",i,*(arrDbl+i),sizeof(*(arrDbl+i))); getch(); } Пример 54. Использование указателей для доступа к элементам массива. Описать одномерный массив arr из 5 элементов типа int. Ответ:4.4,9,4,9,21,8,8 Пример56. Написать программу, которая в отдельных строках выводит информацию о размере каждого из базовых типов языка (char, short, int, long, float, double, long double). #include <stdio.h> #include <conio.h> int main() { char *p_char,*cd; short *p_short; int *p_int; long *p_long; float *p_float; double *p_double, *dc; long double *p_long_double; printf("sizeof:\n"); printf("-char=%u\n",sizeof(char)); printf("-short=%u\n",sizeof(short)); printf("-int=%u\n",sizeof(int)); printf("-long=%u\n",sizeof(long)); printf("-float=%u\n",sizeof(float)); printf("-double=%u\n",sizeof(double)); printf("-long double=%u\n\n\n",sizeof(long double)); Пример 57. Написать программу, в которой определяются переменные типов char, int, double. Для каждой переменной программа выводит (в строку) ее адрес и значения выражений " адрес + 2 " и " адрес – 1 " #include <stdio.h> #include <conio.h> int main() { char c; int i; double d; printf("tip peremennoi \t adres perem\t adres+2 \t adres-1\n"); printf("char \t\t %p \t\t %p \t\t %p\n",&c,&c+2,&c-1); printf("int \t\t %p \t\t %p \t\t %p\n",&i,&i+2,&i-1); printf("double \t\t %p \t\t %p \t\t %p\n",&d,&d+2,&d-1); getch(); return 0; } Пример 58. Какие результаты будут получены при выполнении следующего фрагмента программы и почему? int x=8, y=3; float z1, z2; z1=x/y; z2=(float)x/y; printf("x/y=%f\n",z1); printf("(float)x/y=%f\n",z2); Ответ:2, 2,666 Пример 59. Написать программу, которая поочередно выводит в шестнадцатеричной форме значения байтов представления переменной ul unsigned long ul=0x77BBCCDD. # include <stdio.h> #include <conio.h> #include <windows.h> int main() { unsigned long ul=0x77BBCCDD,*pUL=&ul,razm; unsigned char *pb;int i=1,j=0; razm=sizeof(ul); pb=(unsigned char*)pUL; printf("byte\t chislo\n\n"); while(j++!=razm) { printf("%i\t %x \n",i++,*pb); pb++; } getch(); } Пример 60. Написать функцию print_arr, которая предназначена для вывода на экран значений элементов типа int из одномерного массивов любой длины. # include <stdio.h> #include <conio.h> void print_arr(int arr[],int len); int main() { int x[7]={1,15,8,14,5,16,2},len; len=sizeof(x)/sizeof(x[0]); print_arr(x,len); getch(); } void print_arr(int *a,int len) { int i, COLUMS,cout; do { printf("Kolichestvo elementov v stroke="); scanf("%d",&COLUMS);} while (COLUMS<0); for(i=0,cout=0; i!=len; i++,cout++) { if (cout==COLUMS) {cout=0; printf("\n");} printf("arr[%d]=%d\t",i,*(a+i)); } return; } Пример 61. В функции print_arr использовать синтаксис с квадратными скобками. П рименяя операцию sizeof к аргументу- массиву. #include <stdio.h> #include <conio.h> void print_arr(int arr[],int len); int main() { int x[7]={1,15,8,14,5,16,2},len; len=sizeof(x)/sizeof(x[0]); print_arr(x,len); getch(); } void print_arr(int *a,int len) { int i, COLUMS,cout; do { printf("Kolichestvo elementov v stroke="); scanf("%d",&COLUMS);} while (COLUMS<0);
for(i=0,cout=0;i!=len;i++,cout++) { if (cout==COLUMS) {cout=0; printf("\n");} printf("arr[%d]=%d\t",i,*(a+i)); } printf("\n\n"); printf("sizeof(a)=%d",sizeof(a)/sizeof(int)); return; } Пример 62. Написать функцию get_arr, которая предназначена для заполнения значениями одномерных массивов произвольной длины. Функция имеет два аргумента а) arr — массив значений типа int; б) len — длина массива. #include <stdio.h> #include <conio.h> const int perem=7; void print_arr(int arr[],int len); void get_arr(int *arr,int len); void main() { int x[perem], len; get_arr(x,7); print_arr(x,7); getch(); } void print_arr(int *a,int len) { int i, COLUMS,cout; do { printf("\nKolichestvo elementov v stroke="); scanf("%d",&COLUMS);} while (COLUMS<0); for(i=0,cout=0;i!=len;i++,cout++) { if (cout==COLUMS) {cout=0; printf("\n");} printf("arr[%d]=%d\t",i,*(a+i)); } printf("\n\n"); printf("sizeof(a)=%d",sizeof(a)/sizeof(int)); return; } void get_arr(int *arr,int len) { int i; printf("Vvedite znacheniya elementov:\n"); for(i=0;i<=len-1;i++) { printf("arr[%d]=\t",i);scanf("%d",&arr[i]); } return; }
Пример 63. Размер массива в функции main определить с помощью именованной константы ARRAY_LENGTH, определяемой препроцессорной директивой: int a[ARRAY_LENGTH]; #include <stdio.h> #include <conio.h> const int ARRAY_LENGTH=7; void print_arr(int arr[],int len); void get_arr(int *arr,int len); void main() { int x[ARRAY_LENGTH],len; get_arr(x,ARRAY_LENGTH); print_arr(x,len); getch(); } void print_arr(int *a,int len) { int i, COLUMS,cout; do { printf("\nKolichestvo elementov v stroke="); scanf("%d",&COLUMS);} while (COLUMS<0); for(i=0,cout=0;i!=len;i++,cout++) { if (cout==COLUMS) {cout=0; printf("\n");} printf("arr[%d]=%d\t",i,*(a+i)); } printf("\n\n"); printf("sizeof(a)=%d",sizeof(a)/sizeof(int)); return; } void get_arr(int *arr,int len) { int i; printf("Vvedite znacheniya elementov:\n"); for(i=0;i<=len;i++) { printf("arr[%d]=\t",i);scanf("%d",&arr[i]); } return; }
Пример 64. Двумерные массивы, как аргументы функций. Передача двумерного массива в функцию. адресная арифметика, n - количество элементов, выводимых в строке таблицы (размерность задаётся по N2)) */ #include <stdio.h> #define N1 3 #define N2 3 //void get_arr(int (*ptr)[3], int); //тоже правильный вариант void get_arr(int arr[][3], int); void print_arr(int arr[][3], int); void print_arr_second(int*, int, int, int); int main(){ int a[N1][N2],r; get_arr(&a[0],N2); print_arr(&a[0],N2); printf("\nВведите количество элементов, выводимых в строке n = "); scanf("%d",&r); print_arr_second(&a[0][0],N1,N2,r); printf("\n"); return 0; } //void get_arr(int (*ptr)[3], int len) void get_arr(int arr[][3], int len){ printf("Введите значения элементов массива:\n"); for(int i=0;i<len;i++) for(int j=0;j<len;j++){ printf("arr[%d][%d] = ",i,j); scanf("%d",&arr[i][j]); } } void print_arr(int arr[][3], int len) { for(int i=0;i<len;i++) { for(int j=0;j<len;j++) printf("%d ",arr[i][j]); printf("\n"); } } void print_arr_second(int* arr, int len1, int len2, int n){ int k=1; for(int i=0;i<len1;i++) for(int j=0;j<len2;j++,k++){ printf("%d ",*(arr+i*len2+j)); if(!(k%n)) printf("\n"); } } Пример 65. Написать три функции, которые получают строку, подсчитывают и возвращают ее длину, но для работы со строкой используют разные циклы: while, for, do...while. #include <stdio.h> #include <stdlib.h> //#include <conio.h> const int M=50; int count_wh(char*); int count_for(char*); int count_dwh(char*); int main(){ char str[M]; printf("Введите строку:\n"); gets(str); printf("%s - %d знаков.\n",str,count_wh(str)); printf("%s - %d знаков.\n",str,count_for(str)); printf("%s - %d знаков.\n",str,count_dwh(str)); str[0]=getch; return 0; } int count_wh(char* s){ //на русском одна буква считается как две int i=0; while(s[i]!='\0') i++; return i; } int count_for(char* s){ int i; for(i=0;s[i]!='\0';i++){} return i; } int count_dwh(char* s){ int i=-1; do i++; while(s[i]!='\0'); if(i==-1) i=0; return i; } Пример 66. Написать три функции, которые получают строку и копируют ее в другую строку, используя разные циклы: while, for, do...while. #include <stdio.h> #include <stdlib.h> #include <conio.h> const int M=50; void copy_wh(char*, char*); void copy_for(char*, char*); void copy_dwh(char*, char*); int main(){ char str[M],str1[M]; printf("Введите строку:\n"); gets(str); copy_wh(str,str1); printf("%s\n%s\n",str,str1); copy_for(str,str1); printf("\n%s\n%s\n",str,str1); copy_dwh(str,str1); printf("\n%s\n%s\n",str,str1); str[0]=getch; return 0; } void copy_wh(char* s, char* s1){ int i=0; while(s[i]!='\0'){ s1[i]=s[i]; i++; } s1[i]='\0'; } void copy_for(char* s, char* s1){ int i; for(i=0;s[i]!='\0';i++) s1[i]=s[i]; s[i+1]='\0'; } void copy_dwh(char* s, char* s1){ int i=0; do{ s1[i]=s[i]; i++; } while(s[i]!=0); s[i]='\0'; }
Пример 67. Написать программу, в которой ввести строку, состоящую из латинских букв и цифр; подсчитать количество букв и цифр, входящих в эту строку, напечатать текст "В строке... букв и... цифр". Проверять, является ли символ буквой или цифрой, по коду символа #include <stdio.h> #include <stdlib.h> #include <conio.h> const int M=50; int main(){ char str[M]; int i=0,b=0,c=0; printf("Введите строку:\n"); gets(str); while(str[i]!='\0'){ if(str[i]>=48&&str[i]<=57) c++; else if((str[i]>=65&&str[i]<=90)||(str[i]>=97&&str[i]<=122)) b++; i++; } printf("В строке %d букв и %d цифр.\n",b,c); str[0]=getch; return 0; } Пример 68. Написать программу, в которой ввести строку, состоящую из латинских букв и цифр;разбить исходную строку на две. Создать новую строку. #include <stdio.h> #include <stdlib.h> //#include <conio.h> const int M=50; int main(){ char str[M],str1[M],str2[M]; int i=0,k=0,l=0; printf("Введите строку:\n"); gets(str); while(str[i]!='\0'){ if(str[i]>=48&&str[i]<=57){ str1[k]=str[i]; k++; } else if((str[i]>=65&&str[i]<=90)||(str[i]>=97&&str[i]<=122)){ str2[l]=str[i]; l++; } i++; } str1[k]='\0'; str2[l]='\0'; for(i=0;i<=k;i++) str[i]=str1[i]; for(i=0;i<=l;i++) str[i+k]=str2[i]; str[k+l]='\0'; printf("%s\n%s\n%s\n",str1,str2,str); str[0]=getch; return 0; }
Пример 69. Написать программу, в которой 1. Ввести две символьных строки и распечатать в виде "Первая строка:..." и "Вторая строка:...". 2. Проверить, сколько первых символов в строках совпадают. #include <stdio.h> #include <stdlib.h> //#include <conio.h> const int M=50; int main(){ char str1[M],str2[M],str[M*2],str3[M*2]; int i=0,k=0,l=0; bool flag1=true,flag2=true; printf("Введите строку 1:\n"); gets(str1); printf("Введите строку 2:\n"); gets(str2); system("clear"); //заменить на clrscr и раскоментить <stdio.h> while((str1[i]!='\0'||str2[i]!='\0')&&str1[i]==str2[i]) i++; printf("Совпало символов: %d\n",i); for(int j=i;(j<M)&&(flag1||flag2);j++){ if(str1[j]!='\0'&&flag1) k++; else flag1=false; if(str2[j]!='\0'&&flag2) l++; else flag2=false; } printf("В первой и второй строке осталось %d и %d символов соответственно.\n",k,l); for(int j=0;j<k;j++) str[j]=str1[j+i]; for(int j=k;j<(k+l);j++) str[j]=str2[j-k+i]; str[k+l]='\0'; printf("%s\n",str); int r=0,j=0; for(int f=0;f<(i+i+k+l);f++){ if(str1[j]!='\0'){ str3[r]=str1[j]; r++; } if(str2[j]!='\0'){ str3[r]=str2[j]; r++; } j++; } str3[r-2]='\0'; printf("%s\n",str3); str[0]=getch; return 0; } Пример 70. Ввести cтроку, содержащую десятичное число с дробной частью. Подсчитать и вывести число цифр в целой части числа в виде " Целая часть числа... содержит... цифр". Пример 76. Создать список фамилий в виде одной символьной строки. В цикле в режиме диалога вводить фамилию и выводить сообщение, есть ли такой человек в списке. #include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> int main(){ char ch,s[]="1. Иванов И.И. 2. Петров П.П. 3. Сидоров С.С. 4. Александров А.А.",*str; char* s1=(char*)malloc(10); do{ printf("Введите фамилию:\n"); str=NULL; gets(s1); str=strstr(s,s1); if(str) printf("Человек найден под номером %c\n",str[-3]); else printf("Человек остутствует.\n"); printf("Повторить поиск? (y/n): "); ch=getch(); printf("\n"); } while(ch=='y'); free(s1); return 0; } Пример 77. Написать программу, в которой описать строку s. Заменить символы с третьего по пятый на "минус", а с шестого и до конца строки - на "плюс". #include <stdio.h> #include <string.h> #include <stdlib.h> int main(){ char str[]="1234567890",*s; s=str; s+=3; s=strnset(s,'-',3); s+=3; s=strset(s,'+'); s-=6; printf("%s\n",s); return 0; } Пример 78. ввести строку; с помощью функций str _ dup () и strdup () создать две копии введенной строки; вывести на экран две копии строки. #include <stdio.h> #include <string.h> #include <stdlib.h> char* str_dup(const char*); int main(){ char *s,*s_,*str=(char*)malloc(10); gets(str); s=strdup(str); s_=str_dup(str); printf("%s\n",s); printf("%s\n",s_); free(s_); free(s); free(str); return 0; } char* str_dup(const char* s){ char *s1=(char*)malloc(strlen(s)); s1=strcpy(s1,s); return s1; } Пример №2. Ввести число и определить, оно больше нуля, меньше или равно. # include <conio.h> # include <stdio.h> Int main () { Int n; printf(“vvedite n\n”); scanf(“%d”,&n); if(n>0) printf(“n>0\n”); else if (n<0) printf(“n<0\n”); else printf(“n=0\n”); return 0; } Пример №3. Программа, которая запрашивает у пользователя № месяца и затем выводит соответ-ее название времени года. # include <conio.h>
|
|||||||||||||||||
|
Последнее изменение этой страницы: 2021-08-16; просмотров: 424; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.86 (0.009 с.) |