4. Чем отличается прототип функции от вызова функции?

5. Чем отличается описание функции от определения функции?

6. Критерии соответствия формальных и фактических параметров.

7. Соответствие типов формальных и фактических параметров.

8. Зачем нужен оператор return?

9. Может ли в функции быть несколько операторов return?

10. Когда необходимо писать оператор return в функции типа void?

11. Что такое побочный эффект функции?

12. Когда используются формальные параметры-указатели? Какими в этом случае должны быть фактические параметры?

13. Как передать массив в функцию? Как передать в функцию матрицу?

14. Как описать функцию, позволяющую работать и с одномерными массивами, и с матрицами?

15. Что такое параметр-константа? Когда используются такие параметры?

16. Что такое указатель на функцию? Как его описать?

17. Как передать функцию в функцию? Что будет являться формальным параметром, что фактическим? Как обратиться к функции, переданной через параметры?

18. Что такое рекурсия? Когда она применяется? Что такое глубина рекурсии?

19. Как описать функцию с переменным числом параметров? Как использовать такую функцию?

20. Какие параметры могут быть у функции main()? Как отлаживать и тестировать программу, содержащую функцию main() с параметрами?

 

Лабораторная работа №8. Строки

Цель работы – знакомство с организацией строк в языке Си, изучение библиотечных функций обработки строк и символов.

Постановка задачи

Написать две программы согласно индивидуальному варианту. В случае, когда указано, что задается строка до точки, обрезать строку, отбросив все символы после точки, если точки нет, то считать, что строка ограничена точкой. Словом считать любую последовательность символов, ограниченную пробелами. Использовать функции библиотеки string.

Варианты заданий

Вариант 1

1. Дана строка символов. Удалить из нее все кратные рядом стоящие одинаковые символы, оставив по одному (АААВВССàАВС)

2. Дана строка символов до точки. Подсчитать, сколько слов она содержит.

Вариант 2

1. Дана символьная строка. Определить длину самой длинной подстроки из подряд стоящих букв «а».

2. Дана строка символов до точки. Подсчитать в ней число латинских букв.

Вариант 3

1. Дана строка символов. Удалить из нее все слова нечетной длины. Слова отделяются друг от друга одним пробелом.

2. Дана строка символов до точки. Выделить в ней все русские буквы, сделав их заглавными.

Вариант 4

1. Дана строка символов до точки. Определить, является ли она палиндромом. (Палиндром слева направо и справа налево читается одинаково, например "Леша на полке клопа нашел.") Пробелы и знаки препинания, а также регистр букв не учитываются.

2. Дана строка символов. Подсчитать, сколько раз в ней встречается подслово «АВВА».

Вариант 5

1. Дана строка символов (введена с клавиатуры), состоящая из цифр от 0 до 9. Составить новую строку из букв от А (соответствует цифре 0) до J (соответствует цифре 9).

2. Дана строка символов до точки. В каждом слове поменять местами первый и последний символы.

Вариант 6

1. Дана строка символов до точки. Определить, входят ли в состав заданной строки цифры. Сформировать из них новую строку.

2. Дана строка символов до точки. Вывести ее на экран задом наперед без пробелов.

Вариант 7

1. Дана строка символов до точки. Записать слова этой строки в обратном порядке (мама мыла раму à раму мыла мама).

2. Дана символьная строка. Зашифровать в ней все латинские буквы с помощью циклической подстановки AàBàCà…àYàZàA

Вариант 8

1. Дана строка символов. Определить, является ли она правильным скобочным выражением.

2. Дана символьная строка. Определить длину самой длинной подстроки из подряд стоящих букв «е».

Вариант 9

1. Даны две строки. Составить третью строку из слов, имеющихся в обеих данных строках.

2. Дана строка символов до точки. Записать новую строку из слов заданной, содержащих букву «М».

Вариант 10

1. Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить.

2. Дана строка символов. Группы символов между группами пробелов считаются словами. Определить число вхождений в последовательность слов группы букв «abc».

Вариант 11

1. Дана строка символов до точки. Оставить в ней только слова, начинающиеся на буквы «A», «D», «K», «P».

2. Дана символьная строка. Выделить в ней цветом все прописные буквы.

Вариант 12

1. Дана символьная строка. Оставить в ней только слова, содержащие хотя бы одну букву «А».

2. Дана строка символов до точки. Изменить ее таким образом, чтобы все символы отделялись друг от друга одним пробелом.

Вариант 13

1. Дана строка символов, состоящая из букв и цифр. Найти количество букв в данной строке.

2. Дана символьная строка. Заменить в ней все буквы «О» на «Ъ», а буквы «Е» – на случайные символы.

Вариант 14

1. Дана строка символов до точки. Определить, сколько слов, состоящих из 5 и более символов, содержит данная строка.

2. Дана строка символов. Удалить из нее все гласные буквы.

Вариант 15

1. Дана строка символов до точки. Удалить из нее все слова, начинающиеся с буквы «а».

2. Дана символьная строка. Проверить, все ли слова после точки начинаются с заглавной буквы. Если нет – исправить.

Вариант 16

1. Дана символьная строка. Удалить из нее все символы, не являющиеся буквами.

2. Дана строка символов до точки. Подсчитать, сколько каких знаков препинания она содержит.

Вариант 17

1. Дана строка символов. Поменять местами N первых и N последних символов заданной строки.

2. Дана строка символов. Выделить и вывести слова, ограниченные пробелом или знаками препинания: запятая, точка, двоеточие, точка с запятой.

Вариант 18

1. Дана строка символов до точки. Инвертировать каждое слово в заданной строке.

2. Дана строка символов. Найти в строке самое длинное слово и вывести его на экран.

Вариант 19

1. Дана строка символов. Найти длину каждого слова в заданной строке.

2. Дана строка символов до точки. Удалить из нее все сочетания “ас”.

Вариант 20

1. Дана строка символов. Инвертировать все слова в этой строке, последовательность слов сохранить.

2. Дана строка символов до точки. Удалить из нее все повторные вхождения букв.

Вариант 21

1. Дана строка символов. Во всех словах с четным номером поменять местами первый и последний символы.

2. Дана строка символов. Заменить все пробелы в заданной строке точками и запятыми поочередно.

Вариант 22

1. Дана символьная строка. Поменять местами первый символ ‘d’ и последний символ ‘f’ в заданной строке.

2. Дана строка, состоящая из букв и цифр. Преобразовать ее так, чтобы сначала шли буквы, а потом – все цифры исходной строки.

Вариант 23

1. Дана строка символов до точки. Заменить в строке все слоги “we” на специальный символ “&”.

2. Дана строка символов. Поменять местами первое и последнее слова.

Вариант 24

1. Дана строка символов до точки. Удалить из строки первые буквы каждого слова.

2. Дана строка, состоящая из букв от А до J. Составить новую строку из цифр от 0 (соответствует цифре А) до 9 (соответствует цифре J).

Вариант 25

1. Дана строка символов до точки. Заменить в строке первую букву каждого слова со строчной на заглавную.

2. Дана строка, состоящая из букв и цифр. Проверить, является ли данная строка представлением числа в шестнадцатеричной системе счисления.

Вариант 26 *

1. В БГТУ принято, что старшая цифра номера студенческой группы означает номер кафедры, средняя – последнюю цифру года поступления, младшая – порядковый номер группы на курсе. Продолжительность обучения не более 6 лет. Дан номер группы студента и текущий год. Определить, к какой кафедре прикреплен студент, в каком году он поступил и на каком сейчас курсе.

2. Дана строка символов до точки. Определить, сколько каких латинских букв в ней содержится.

Контрольные вопросы

1. Способы организации строк.

2. Что такое Си-строка? Чем она отличается от массива символов?

3. Что такое нуль-терминатор?

4. Чем отличается описание char * st от char st [ N ], где N – некоторая константа?

5. Как инициализировать строку?

6. Чем отличается ввод строки с помощью функции scanf() от ввода с помощью функции gets()?

7. Можно ли использовать операцию присваивания для задания значения строки?

8. Как изменить строку?

9. Что такое конкатенация строк?

10. Какие функции для работы со строками Вы можете назвать?

 

Библиографический список

1. Арсеньев Б.П., Решетова О.А., Рыкова И.И., Шеляпин Ю.П. Основы языков программирования С и С++: Учеб. пособие/ Балт. гос. техн. ун-т. СПб., 2001. - 132 с.

2. Подбельский В. В. Основы программирования на языке Си

3. Березин Б. И. Начальный курс С и С++: учеб. пос./ Б. И. Березин,
С. Б. Березин; ДИАЛОГ-МИФИ. М., 2004. 288 с.

4. Павловская Т.А. С/С++. Программирование на языке высокого уровня/ Т.А. Павловская; Питер, СПб., 2003. – 461 с.

5. Культин Н. Б. С/С++ в задачах и примерах: сб. задач/ Н. Б. Культин; БХВ-Петербург. СПб., 2004. 288 с.

Приложение
Образец оформления отчета по лабораторной работе

Балтийский государственный технический университет «Военмех» им. Д. Ф. Устинова

 

Кафедра И5

«Информационные системы и компьютерные технологии»