Составьте программу перекодировки вводимых символов
Составьте программу перекодировки вводимых символов со стандартного ввода по следующему правилу:
a -> b b -> c c -> d ... z -> a другой символ -> *
Коды строчных латинских букв расположены подряд по возрастанию.
Составьте программу перекодировки вводимых символов со стандартного ввода по следующему правилу:
B -> A C -> B ... Z -> Y другой символ -> *
Коды прописных латинских букв также расположены по возрастанию.
Напишите программу, печатающую номер и код введенного символа в восьмеричном и шестнадцатеричном виде. Заметьте, что если вы наберете на вводе строку символов и нажмете клавишу ENTER, то программа напечатает вам на один символ больше, чем вы набрали. Дело в том, что код клавиши ENTER, завершившей ввод строки - символ '\n' тоже попадает в вашу программу (на экране он отображается как перевод курсора в начало следующей строки!).
Разберитесь, в чем состоит разница между символами '0' (цифра нуль) и '\0' (нулевой байт). Напечатайте
printf( "%d %d %c\n", '\0', '0', '0' );
Поставьте опыт: что печатает программа?
main(){ int c = 060; /* код символа '0' */ printf( "%c %d %o\n", c, c, c); }
Почему печатается 0 48 60? Теперь напишите вместо
int c = 060; строчку
char c = '0';
Что напечатает программа?
#include <stdio.h>
void main(){ printf("ab\0cd\nxyz"); putchar('\n'); }
Запомните, что '\0' служит признаком конца строки в памяти, а '\n' - в файле. Что в строке "abcd\n" на конце неявно уже расположен нулевой байт:
'a','b','c','d','\n','\0'
Что строка "ab\0cd\nxyz" - это
'a','b','\0','c','d','\n','x','y',z','\0'
Что строка "abcd\0" - избыточна, поскольку будет иметь на конце два нулевых байта (что не вредно, но зачем?). Что printf печатает строку до нулевого байта, а не до закрывающей кавычки. Программа эта напечатает ab и перевод строки.
Вопрос: чему равен sizeof("ab\0cd\nxyz")? Ответ: 10.
Напишите программу, печатающую целые числа от 0 до 100.
Напишите программу, печатающую квадраты и кубы целых чисел.
Напишите программу, печатающую сумму квадратов первых n целых чисел.
Напишите программу, которая переводит секунды в дни, часы, минуты и секунды.
Напишите программу, переводящую скорость из километров в час в метры в секундах.
Напишите программу, шифрующую текст файла путем замены значения символа (например, значение символа C заменяется на C+1 или на ~C ).
© Copyright А. Богатырев, 1992-95
Си в UNIX
| |
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий