Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Задания для самостоятельной работы.
1. Чему будет равно значение переменной b в результате выполнения конструкций: a. int b = 2, *p = &b; b*=*p; b. int a = 1, c=0, b = ++a + c++; c. int a = 123; int *const b = &a; *b=a++; d. char a[] = “1234”, *b=a+3; e. int a = 123; const int *b = &a; f. int a = 1, c=0, b = a++ + ++c; g. int a = 123; const int *const b = &a; h. int a = 1, *b=&a; 2. Для чего используется ключевое слово «return», в каких случаях его можно опустить? 3. К каким типам данных относятся литеры 5, 5.0, 5.0F, "5", '5', 5u, 5L, 5.0L? 4. Чем отличаются префиксное и постфиксное инкрементирование и декрементирование? 5. Какое общее назначение указателей в языке С? 6. Как организуются вложенные циклы в языке С? 7. Чем отличаются функции printf() и puts() при консольном выводе информации? 8. В чем сходство и различие между циклами с предусловием и с постусловием? 9. Как выводится на консоль последовательность различных типов данных с помощью одной функции printf()? 10. Для чего в программах на С используются заголовочные файлы? 11. Как следует определять и инициализировать константный указатель? 12. Как осуществляется считывание с консоли информация с помощью функции scanf_s()? 13. Как с консоли осуществляется считывание последовательности различных типов данных с помощью одной функции scanf_s()? 14. Какой смысл имеет значение указателя NULL? 15. Что произойдет, если применить к указателю со значением NULL операцию разыменования? 16. Как следует определять и инициализировать указателя на константу? 17. Какое отличие константного указателя от указателя на константу? 18. На какое место в памяти компьютера указывает имя массива? 19. Какая связь между указателями и массивами в языке С? 20. Для чего используется ключевое слово «break»? 21. Какие арифметические операции допускаются для указателей? 22. Как организуется индексирование числовых массивов в языке С? 23. На кого или на что возлагается контроль границ числовых массивов в языке программирования С? 24. Чем отличаются префиксное и постфиксное инкрементирование и декрементирование? 25. Сколько потребуется операторов цикла для вывода на консоль двухмерного числового массива (матрицы чисел)? 26. Какой размер одномерного символьного массива должен быть объявлен для записи в него строки из 5 символов? 27. Как организуются многомерные символьные массивы в языке С? 28. Для каких типов данных может быть использован указатель? 29. Какие унарные операторы используются с указателями? Как они называются? 30. Как организуется индексирование символьных массивов в языке С? 31. Как следует объявить символьный массив для записи в него трех строк различной длины? 32. Как следует организовать посимвольное заполнение одномерного массива? 33. Чем отличается сравнение строк при помощи оператора "==" (равно) и функции strcmp()? 34. Для чего используется ключевое слово «continue»? 35. Как числовые значения указателей изменяются при их инкрементировании в зависимости от типов данных? 36. Для чего используется ключевое слово «goto»? 37. Как осуществляется инициализация указателей? 38. Что делают следующие фрагменты кода: a. int cnt = 100; char *ptr; if ((ptr = (char *)malloc(cnt)) == NULL) { printf(“Error”); } else { printf(“Ok”); } b. int sum(int a, int b, int c) { int result; result = a + b + c; return result; } c. FILE *fi; int age; fi=fopen("File","r"); fscanf(fi,"%d",&age); fclose(fi); fi=fopen("Data", "a"); fprintf(fi,"Data is %d.\n",age); /*fi указывает на Data*/ fclose(fi);
39. Используя переменную «a», запишите объявления для: a. Целого b. Массива чисел 1, 3.4, 5.2, 7.5 c. Неизменяемого указателя на целое d. Массива чисел 1, 3, 2, 5, 6 e. Переменной, содержащей символ «U» f. Указателя на указатель на целое g. Массива из 20 символов, содержащего неизменяемую строку «Hello!» h. Переменной, содержащей число 99 i. Переменной, содержащей указатель на переменную, содержащую число 100 j. Указателя на неизменяемое целое k. Массива из десяти целых чисел l. Переменной, содержащей неизменяемое число 6.78 m. Массива символов «Hello!» n. Строки, содержащей Ваше имя и заканчивающейся переводом строки o. Массива из десяти указателей на целые p. Строки, содержащей Ваше имя, фамилию и группу, выстроенные по колонкам q. Переменную, хранящую указатель на три строки, содержащие: Ваше имя, фамилию и группу r. Указателя на массив из десяти целых 40. Как определить число элементов массива? 41. Приведите пример инициализации двухмерного массива 42. Как определить объем памяти, занимаемый переменой? 43. Приведите пример инициализации трехмерного массива 44. Как определить объем памяти, занимаемый типом переменой? 45. Как определить объем памяти, занимаемый массивом? 46. Что такое Lvalue, в каких случаях необходимо учитывать этот тип переменной? 47. Как получить адрес переменной? 48. Как присвоить значение переменной, используя указатель на нее? Приведите пример. 49. Приведите пример доступа к элементам одномерного массива с использованием указателей 50. Приведите пример доступа к элементам двухмерного массива с использованием указателей 51. Верны ли следующие конструкции и что объявляется в них: a. const int m; b. int u[]={’0’,‘1’,’2’,’3’}; c. const float x = 33.5F; x++; d. unsigned int * const h; e. int start = 077; f. int *newmem = (int *)malloc(256); g. const int abc = 3 + 5; h. unsigned int i = ~0; i. int ++numb; j. int numb=0UL; k. unsigned double ds[3][5]; l. int cluster =0X99; m. long int j = –100000000L; n. long int j = 123L; long int * const m = &j; o. int **d; p. float bigword=5.77e+34; q. char r[14]; r. const char* name = “double”; name[0]=’D’; s. char* const name = “float”; name[0]=’F’; t. char* const name = “float”; name = “Float”; u. long double z = 198765678.99L; v. int *f[10]; w. long *newmem = (long *) calloc(121,sizeof(long)); x. const int * k; y. int * const n; z. const char red = ‘W’; aa. unsigned char zx[5]; bb. double (*s)[3]; cc. unsigned int arr[3][4] = {{1, 2, 3, 4},{5, 6, 7, 8},{9, 10, 11, 12}}; dd. float arr[][5] = {1.3F, 2.3F, 3.3F, 4.3F, 5.3F, 6.3F, 7.3F, 8.3F, 9.3F, 10.3F}; ee. unsigned int a = 678U; 52. Что выведут на консоль следующие конструкции и почему (исправьте ошибки, если они встретятся): a. printf(“%d”,sizeof(int)); b. printf(“%d”,sizeof(double)); c. long double digital; printf(“%d”,sizeof(digital)); d. const char str[]=”Hello!\n”; printf(“%d”,sizeof(str)); e. long int str[]={1,3,5,7}; printf(“%d, %d”, str[2], sizeof(str)); f. char str[]=”Hello!\0”; printf(“%d”,sizeof(str)); g. long int dig[]={0,1,2,3}; printf(“%d, %d”,sizeof(dig) ,sizeof(dig)/ sizeof(long int)); h. char str[]=”Hello!\0”; printf(“%s”, str); i. char str[]=””; printf(“%d”,sizeof(str)); j. char str[ ] ; printf(“%d”,sizeof(str)); k. char str[10] ; printf(“%d”,sizeof(str)); l. printf(“%s”,”Hel”+”lo!”)); m. int dig[]={1,3,5,7}; printf(“%d”, *dig); n. char str[]=”D:\\DIR\\”; printf(“%d”,sizeof(str)); o. printf(“%c”, *(”Hello!”+2) ); p. printf(“%c”, ‘1’+3 ); q. int m = 3, t=5.3F, a; a = m + t; printf(“%d”, sizeof(a) ); r. char str[]=”\tHello!”; printf(“%d”,sizeof(str)); s. char str[]=”\tHello!\n”; printf(“%p”, str); 53. Что будет выведено на консоль в результате выполнения фрагмента и почему: char* str1 = "hello, world"; char str2[] = "hello, world"; printf("%d - %d", sizeof(str1), sizeof(str2)); 54. Верны ли следующие конструкции, прокомментируйте их: a. int a = 10; printf("Hello!", a); b. printf(‘Hello!’); c. float a = 10.0F; printf("%% = %f", a); d. putchar('D'); e. int a = 10, b=50; printf("\t%d\t%d\n", a, b); f. int a = 100, *b = &a; printf("%p\t%d\n", b, *b); g. printf("\”printf\”"); h. printf("%s" ); i. putchar('\007'); j. putchar(ch); k. putchar(getchar( )); l. char str[]="Hello %s!"; printf(str,”Ann”); m. putchar('\n'); n. float a = 10.0F; printf("%010.2f %c 100", a, a<100.?’<’:’>’); 55. Приведите конструкцию, выводящую на экран переменную, объявленную как float dgt; с точностью до трех разрядов в дробной части 56. Приведите конструкцию, выводящую на экран переменную, объявленную как int counter; с дополнением нулями слева до 10 знаков 57. Приведите конструкцию, выводящую на экран переменную, объявленную как float dgt; с точностью до трех разрядов в дробной части 58. Напишите программу, выводящую на консоль таблицу символов с кодами от 0 до 255 в формате «шестнадцатеричный код – символ» в две колонки с выравниванием табуляцией 59. Используя цикл «while», обнулите элементы массива, объявленного как int arr[123]; 60. Используя цикл «for», заполните элементы массива, объявленного как int arr[123] значениями соответствующих индексов 61. Каким оператором можно прервать цикл? 62. Приведите формат цикла «while» 63. Используя цикл, заполните элементы массива, объявленного как int arr[123] значениями, обратными значениям соответствующих индексов; 64. Приведите формат цикла «for» 65. Используя цикл, скопируйте элементы массива, объявленного как float arr[] = {1.3F, 2.3F, 3.3F, 4.3F, 5.3F, 6.3F, 7.3F, 8.3F, 9.3F, 10.3F}; в другой, вновь созданный, массив 66. Используя циклы, скопируйте элементы массива, объявленного как unsigned int arr[3][4] = {{1, 2, 3, 4},{5, 6, 7, 8},{9, 10, 11, 12}}; в другой, вновь созданный, массив 67. Приведите пример конструкции бесконечного цикла 68. Приведите формат цикла «do-while» 69. Верны ли следующие конструкции цикла, укажите на ошибки: a. for(;) { } b. for(int i=0, i<10, i++) { } c. for(,,) { } d. while(1) { } do e. for(int i=0;i<10;i++) { } f. while(i<10) {i++; } g. for(i=0;i++;i<10) { } h. do { } for(,,); i. for(i=0;i<10;i++) { } j. for(;;) { } k. int k=0; while(k++<100) printf(“\b\b\b\b\b%%=%3d”, k); l. for(i=0;i<10;i++) { } m. for(1) { } n. while(i++) { } o. for(i<10;i++) { } p. (;;)for { } q. while(;) { } r. do { } while(1) 70. Заполните элементы массива, объявленного как int arr[123], с индексами от 40 до 60 включительно, значениями соответствующих индексов (остальные нулями) 71. Заполните четные элементы массива, объявленного как int arr[123] значениями соответствующих индексов (остальные нулями) 72. Что произойдет, если в операторе switch после метки case не использовать оператор break? 73. Как заменить в произвольной введенной строке символы «W» на «V» 74. Что произойдет, если в операторе switch не поставить метку default и условие переключения не совпадет ни с одной меткой case? 75. Каким образом можно осуществить выход из бесконечного цикла? 76. Какой формат записи имеет тернарный оператор условия? 77. Верны ли следующие конструкции условных операторов, укажите на ошибки: a. else (var) if {} b. if (var) {var=0;} else {var++;} c. if (var=0) else { var=1;} d. int v1=0, v2=2; v1 = v1?v2:v1; e. if (var=1;) else {var*=2;} f. if (2=var) var==3; g. switch (var < 2){case var==1: printf(“1”); break; case var==2: printf(“2”); } h. var = var?var+1:var-1; i. int v1=0, v2=2; v1 = v1:v2?v1; j. if (var) {var=0;} {var++;} else var--; k. int v1=0, v2 = v1?100:v1++; l. if (var==2) printf(“Ok?”); m. if (2==var) printf(“Ok?”); n. switch (var){case 1: printf(“1”); break; case 2: printf(“2”); } o. if (2=var) var++; p. if (var=2) var++; q. int v1=0, v2=2; v1 = v1?v2:v1; r. int v1=0, v2=2; v1 += v1:v2:v1; s. else(var) {var-+;} if(var); t. if(var<1) {var==1;} else if(var>1) {var-=2;} else {var--;} 78. Приведите формат оператора «switch – case» 79. Приведите формат оператора «if – else» 80. Приведите формат тернарного оператора «?:» 81. Какая функция лежит в основе любой программы, созданной на языке С? 82. Какие типы данных может возвращать функция? И что не может возвращать? 83. Что такое прототип функции? Какие элементы объявления функции входят в ее прототип? 84. В чем разница между фактическими и формальными параметрами функции? 85. Каким образом можно вернуть из функции несколько значений? 86. Как выглядит описание функции, которая возвращает указатель на заданный тип, например, char? 87. Как осуществляется вызов функции с помощью указателя? 88. Приведите синтаксис объявления функции 89. Приведите синтаксис определения функции 90. Как взаимосвязаны между собой объявление функции, ее определение и вызов функции? 91. Какой способ передачи параметров в функциях предусматривает синтаксис языка С? 92. Как можно изменить значение аргумента функции в теле самой функции? 93. Каково назначение ключевого слова return? 94. Какова область видимости переменных, определенных в теле функции? 95. Можно ли использовать функцию без параметров и без служебного слова void? К каким последствиям это может привести? 96. Напишите программу, состоящую из нескольких пользовательских функций, без прототипов созданных функций? 97. Что объявляется в следующих конструкциях: a. int (*qwerty)(int); b. double* old(void); c. void mstr(char*); d. int* fnc(const char*, unsigned char*) e. long** prime(long*); f. float (*w[10])(int); 98. Напишите функцию, принимающую строку и возвращающую длину строки (до символа терминатора) 99. Напишите функцию, принимающую строку и меняющую последовательность символов в ней на обратную 100. Верны ли следующие конструкции, прокомментируйте их: a. funct int(abc) {return abc*2;} b. int funct(float b){return b*12345.0;} c. void funct(int a) { printf("%d\n", a%2); return a;} d. int funct(int a) { ++a+=a--; return a++*++a;} e. void funct() { printf("Hello!\n");} f. void funct() { printf("\t%s\n");} g. void funct(char* s) { while(*(s++)!=0) putchar(*s);} h. number funct(void) {return number;} i. char* funct() {return “Hello!”;} 101. Напишите функцию, вычисляющую и возвращающую квадрат заданного на входе значения 102. Напишите функцию, принимающую три вещественных числа и возвращающую произведение введенных чисел 103. Напишите функцию, принимающую строку и выводящую ее на экран 104. Напишите функцию, принимающую число строк и колонок и выводящую на консоль таблицу, каждая ячейка которой заполняется произведением номеров колонки и строки 105. Напишите функцию, принимающую массив целых чисел и возвращающую сумму всех чисел массива 106. Напишите функцию, принимающую число строк и колонок и выводящую на консоль таблицу, каждая ячейка которой заполняется максимальным из двух чисел - номеров колонки и строки 107. Напишите функцию, принимающую на входе число длиной в один разряд и возвращающую строку, содержащую это число в текстовом виде 108. Напишите функцию, возвращающую строку символов, которая содержит ваше имя 109. Напишите функцию, принимающую строку, заменяющую все ее символы (кроме 0) на пробел 110. Напишите функцию, принимающую вещественное число выводящую его на консоль в формате «Number = 000123.4567» 111. Напишите функцию, принимающую строку и переводящую все символы в верхний регистр 112. Запишите объявления для: a. Указателя на функцию, которая принимает вещественный аргумент и возвращает целое значение b. Функции, принимающей указатель на строку и возвращающую целое c. Массива из десяти указателей на функции, которая принимает целочисленный аргумент и возвращает целое d. Функции, принимающей целое и не возвращающую значений e. Функции, не принимающей ничего и возвращающую указатель на строку f. Массива из десяти указателей на функции, которая принимает целочисленный аргумент и возвращает целое 113. Что может быть файлом в языке С? 114. Какие обязательные операции выполняются при нормальной работе с файлами? Какие библиотечные функции при этом используются? 115. Как определяется текстовой поток в стандарте языка С? 116. Как определяется двоичный поток в стандарте языка С? 117. Что представляет собой указатель файла? 118. С помощью каких функций языка С осуществляется форматная запись в файл и форматное чтение данных из файла? 119. Какая переменная стандартной библиотеки используется для определения стандартного потока вывода на дисплей? 120. Какая переменная стандартной библиотеки используется для определения стандартного потока чтения с дисплея? 121. Как в языке С кодируется признак конца файла? 122. Как в языке С кодируется признак конца строки? 123. Что такое файл произвольного доступа? 124. Как в языке С осуществляется пакетная запись данных в файл? 125. Как осуществляется запись бинарной информации в текстовый файл? 126. Как осуществляется чтение бинарной информации из текстового файла? 127. Как определяется структура в языке С? 128. Как объявляется структура в языке С? 129. Чем структура отличается от объединения? 130. Какими способами можно объявить новые структурные переменные? 131. Какие форматы используются для доступа к элементам структуры? 132. Что такое вложенная структура? 133. В чем суть конструкции «enum»? 134. Какой уровень вложенности структур поддерживается стандартом С89? 135. Как объявляется массив структур? 136. Что описывается конструкциями: a. struct dinner { char *place; float cost; struct dinner *next; }; b. struct dinner week_days [7]; c. union smallbox *p; d. union bigword { long bg_long; char *bg_char [4]; }; e. struct { double x,y; } a,b,c[9]; f. enum color suite [40]; g. typedef struct { char name[30]; int id; dept d; family f; } employee; h. enum color { red, green, blue }; i. struct student { char name[25]; int id,age; char sex; }; 137. Как объявляется указатель на структуру? 138. Как инициализируется указатель на структуру? 139. Как осуществляется инициализация полей структуры, определенных как символьные массивы? 140. Какие отличия и общие черты имеются у структур и объединений? 141. Для чего используются объединения в языке С? Как они определяются? 142. Как осуществляется инициализация полей объединения? 143. Как можно вывести значения полей объединения на дисплей? 144. Для чего служит перечислимый тип данных в языке С? Как он определяется? 145. Какие операции разрешено выполнять над объединениями? 146. Какие значения по умолчанию присваиваются полям перечислимого списка? 147. Какие операции над структурами разрешены в языке С? 148. Как осуществляется передача частей структуры в качестве аргументов функции? 149. Как осуществляется возврат частей структуры из функции? 150. Как реализуется возвращение измененной структуры из функции? 151. Как осуществляется обращение к полям структуры, переданной функции в виде аргумента? 152. Допустимо ли объявление переменных глобальной структуры и переменных структуры функции одними и теми же идентификаторами? 153. Как распределить структуру в динамической памяти? 154. Как осуществляется возврат данных структурного типа из пользовательской функции? 155. Какое назначение отводится препроцессору языка С? 156. Назовите операторы препроцессора. Для чего они используются? 157. Что такое макроопределение препроцессора? Как оно реализуется? 158. Что описывается конструкциями: a. #define NULL '\0' b. #define abs(A) (((A)>0) ? (A): - (A)) c. #include <math.h> d. #define USA '$' e. #define RUSSIA "Рубль" f. #undef USA g. #define CONST_A 0.0012f h. #define nmem(P,N) (P)->p_mem[N].u_long 159. Прокомментируйте текст (построчно) и результаты выполнения следующих программ: a. #include <conio.h> #define OPER2(x) ((x)*(x)) #define OPER3(x) ((x)*OPER2(x))
int main(void) { for (int k = 0; k < 100; ++k) printf(" %3d\t %6d\t %10d\n", k, OPER2(k), OPER3(k));
return 0; } b. #include <stdio.h>
int main(void) { FILE *in; int ch; if ((in = fopen("File", "r") ) != NULL) { while ((ch = getc(in)) != EOF) putc(ch, stdout); fclose(in); } else printf (" Error \"File\".\n"); return 0; } c. #include <conio.h>
int main(void) { for (int k = 0; k < 255; ++k) printf(" %03d\t 0x%02x\t \”%c\”\n", k, k, k);
return 0; } d. #include <stdio.h> #define STOP '!'
int main(void) { char ch; while ((ch=getchar( )) != STOP) putchar(ch); } e. S #include <stdio.h> #include <conio.h>
void abs(int* a, int* b, int c) { if (!c || !a || !b) return; for(int i=0; i < c; i++) a[i] < 0 ? b[i] = -a[i]:b[i] = a[i]; } void print(int* a, int* b, int c) { if (!c || !a || !b) return; for(int i=0; i < c; i++) printf("|%4d| = %4d\n", a[i], b[i]); } int main(void) { int a[]= {10, 34, -54, 76, -87, 23, 0, -1, 44, -1, 4, 0, 55, -4, 3}; int b[sizeof(a)/sizeof(int)];
abs(a, b, sizeof(a)/sizeof(int)); print(a, b, sizeof(a)/sizeof(int));
_getch(); return 0; } f. #include <conio.h>
int main(void) { int arr[100]; for (int k = 0; k < 100; ++k) { *(arr + k) = k; printf(" %03d\t %03d\t %p\n", k, arr[k], &arr[k]); } return 0; } g. #include <stdio.h> #include <conio.h>
int abs(int); int main(void) { int a=100, b=0, c=-122; int d,e,f; d=abs(a); e=abs(b); f=abs(c); printf("%d, %d, %d\n",d,e,f); return 0; } int abs(int x) { int y; y = (x < 0) ? -x : x; return y; } h. #include <stdio.h> #include <conio.h>
int main(void) { for(int i=0; ; i=(i+1)%4) { for(int r=0;r<100000000;r++); printf("\b%c", "|/-\\"[i]); } return 0; } i. #include <stdio.h> #include <conio.h>
int main(void) { int a[] = {1, 2, 3, 4, 5}; int b[] = {10, 20, 30, 40, 50}; int c[5];
for(int i=0; i < sizeof(a)/sizeof(int) ; i++) c[i] = a[i] +b[i];
for(int j=0; j < sizeof(c)/sizeof(int) ; j++) printf("%d\t", c[j]);
_getch(); return 0; } j. #include <stdio.h> #include <conio.h>
int abs(int x) { if(x < 0) return(-x); else return(x); return -1; } int main(void) { int a[]= {100, -1, 4, 0, 55, -4,3}; for(int i=0; i < sizeof(a)/sizeof(int); i++) printf("|%d| = %d\n", a[i], abs(a[i])); _getch(); return 0; } k. #include <stdio.h> #include <conio.h>
int main(void) { int ch; int count=0; while((ch=getchar( )) != EOF) if(ch !=' ' && ch != '\n' && ch != '\t') count++; printf("Всего %d непустых символов. \n", count); } l. #include <stdio.h> #include <conio.h>
int main(void) { int a[] = {1, 2, 3, 4, 5}; int b[] = {10, 20, 30, 40, 50}; int c[5];
for(int i=0; i < sizeof(a)/sizeof(int) ; i++) c[i] = a[sizeof(a)/sizeof(int) - 1 - i] +b[i];
for(int j=0; j < sizeof(c)/sizeof(int) ; j++) printf("%d\t", c[j]);
_getch(); return 0; } m. #include <stdio.h> #include <conio.h>
int main(void) { int Number = 100; int* ptrNumber = &Number;
char Char = 'H'; char* ptrChar = &Char;
char Str1[] = "Hello!"; char* Str2 = "Hello!";
printf("Number:\t\t %10d \t - 0x%p\n", Number, &Number); printf("ptrNumber:\t 0x%p \t - 0x%p\n", ptrNumber, &ptrNumber); printf("\n");
printf("Char:\t\t %10c \t - 0x%p\n", Char, &Char); printf("ptrChar:\t 0x%p \t - 0x%p\n", ptrChar, &ptrChar); printf("\n");
printf("Str1:\t %s - %d - 0x%p - 0x%p - 0x%p\n", Str1, sizeof(Str1), Str1, &Str1[0], &Str1);
printf("Str2:\t %s - %d - 0x%p - 0x%p - 0x%p\n", Str2, sizeof(Str2), Str2, &Str2[0], &Str2); printf("\n");
printf("%s\n","12345"+3); printf("%c\n","12345"[3]);
printf("%c\n",3["12345"]); //трюк printf("\n");
_getch(); return 0; } n. #include <stdio.h> #include <conio.h> #include <string.h>
struct date { int day; int month; int year; int yearday; char mon_name[4]; };
int main(void) { struct date d={ 4, 7, 1776, 186, "jul"}, *pd = &d; _strupr(pd->mon_name); pd->day++;
printf("%2d-%02d-%4d\t%06d\t%s\n", d.day, d.month, d.year, d.yearday, d.mon_name); return 0; } a. #include <stdio.h> #include <conio.h> #include <string.h>
#define NAMESIZE 256 #define ADRSIZE 512
struct date { int day; int month; int year; int yearday; char mon_name[4]; };
struct person { char name[NAMESIZE]; char address[ADRSIZE]; long zipcode; long ss_number; double salary; struct date birthdate; struct date hiredate; };
int main(void) {
struct person emp;
emp.zipcode = 1234; emp.birthdate.day = 31; emp.birthdate.month = 12; emp.birthdate.year = 2012; emp.salary = 10000.0;
strcpy(emp.address, "Moscow"); strcpy(emp.name, "Ivanov");
_strrev(emp.address); _strupr(emp.name);
puts(emp.name); puts(emp.address);
printf("%2d-%02d-%4d\t%06d\t%.2f\n", emp.birthdate.day, emp.birthdate.month, emp.birthdate.year, emp.zipcode, emp.salary); _getch(); return 0; } b. #include <stdio.h> #include <conio.h> #include <locale.h> #include <ctype.h> #include <string.h>
int main(void) { char text[][80] = { "Язык С(читается как Си) в основе своей был создан в 1972 г.", "как язык для операционной системы UNIX. Автором этого языка", "считается Денис М. Ритчи (DENNIS M. RITCHIE).", "Популярность языка С обусловлена, прежде всего тем, что", "большинство операционных систем были написаны на языке С. Его", "начальное распространение было задержано из-за того, что не", "было удачных компиляторов." };
char textUP[7][80];
setlocale( LC_ALL, "Russian");
memset(textUP,0,sizeof(textUP));
for (int i=0; i<7; i++) for(int j=0; j < 80; j++ ) { if (!text[i][j]) break;
if( islower( (unsigned char)text[i][j] ) ) textUP[i][j] = _toupper( (unsigned char)text[i][j] ); else textUP[i][j] = text[i][j]; }
for (int i=0; i<7; i++) puts(text[i]);
for (int i=0; i<7; i++) puts(textUP[i]);
_getch(); return 0; }
|
||
Последнее изменение этой страницы: 2018-05-10; просмотров: 197. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |