КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Вопросы и задачи для самостоятельного решенияПроцедуры и функции
В языке Си все процедуры рассматриваются как функции, т.е. Все они имеют результат. В редких случаях, когда требуется прямо указать, что функция не возвращает никакого значения, указывается тип void. Следует различать в программе два контекста, каждый из которых по-своему влияет на выполнение вычислений функции: контекст определения (описания) и контекст вызова (использования). К сожалению, система программирования Си не гарантирует их обязательное соответствие. Забота об этом во многом лежит на программисте - разработчике программного кода. При определении функции (процедуры) разработчик должен задать заголовок функции, в котором определяются тип возвращаемого значения, имя функции и список её параметров. Например,
void My_Strcpy(char *Destination, char *Source)
Такой заголовок определяет процедуру, перемещающую значение входной строки символов Source в результирующую строку Destination. В качестве формальных параметров рассматриваются указатели на символы, что в Си также соответствует символьным массивам. Вслед за заголовком указывается тело — исполняемая часть процедуры. В нем указывается как производится обработка параметров. Например, для данного заголовка, подойдёт тело следующего вида:
{ while ((*Destination++ = *Source++)!= '\0'); } Как видим, обработка продолжается до тех пор, пока не будет переслан символ с нулевым кодом — признак конца символьной строки. Общее описание процедуры подобного типа должно содержать не только собственно определение кода. Но и блок комментариев, помогающий понять назначение самой процедуры и её параметров. Например (с учётом определений 4.1.1), /*********************************************************************** * * Наименование: My_Strcmp * * Назначение: Функция сравнивает значения двух символьных * строк и возвращает TRUE если они равны и * FALSE в противном случае. * * Входы: String1 & String2 две строки для сравнения. * * Выходы: Нет * * Возвращаемое значение: * * TRUE Строки одинаковые * FALSE Строки различаются * **********************************************************************/
BOOL My_Strcmp(CHAR *String1, CHAR *String2) { while (*String1!= '\0') { if (*String1++!= *String2++) { /* обнаружено несовпадение */ return FALSE; } } /* Дошли до конца строки. Надо проверить, что концы совпали */ return (*String1 == *String2); }
Задайте на языке Си тип Дек. Чему будет равен х после выполнения этих строчек: х=5; х-= х++ - --х; Реализуйте на языке C функцию конкатенации двух строк.
В int представлении чисел можно обменять значения двух переменных не используя промежуточной памяти: int I, J; .... I = I + J; J = I – J; I = I – J; справедливо ли подобное преобразование для float представления?
Реализуйте на языке C функцию замены подстроки в строке на заданную строку. Реализуйте на языке C следующую задачу: «Заменить в исходной строке все цифры на соответствующее количество символов «*», равное значению цифры (0 заменять на пустую подстроку, 9 на *********). Строка передаётся процедуре-функции как входной/выходной параметр». Рекомендуемое имя для процедуры Convert_String.
Дата добавления: 2014-12-26; Просмотров: 296; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |