Ответы на вопросы к разделу 1

1. а) 2. б) 3. г) 4. г)
5. б) 6. в) 7. б) 8. в)
9. а) 10. а)    

Ответы на вопросы к разделу 2.

1. в) 2. а) 3. а) 4. б)
5. а) 6. б) 7. г) 8. а)
9. б) 10. а)    

Ответы на вопросы к разделу 3.

1. а) 2. б) 3. в) 4. а)
5. а) 6. в) 7. а) 8. а)
9. б) 10. в)    

Ответы на вопросы к разделу 4.

1. г) 2. а) 3. в) 4. б)
5. а) 6. в) 7. г) 8. д)
9. а) 10. б) 11. а) 12. в)
13. б)      

Ответы на вопросы к разделу 5.

1. а) 2. а) 3. в) 4. б)
5. в) 6. а) 7. б) 8. б)
9. в) 10. б)    

Ответы на вопросы к разделу 6.

1. а) 2. в) 3. г) 4. б)
5. д) 6. г) 7. г) 8. в)
9. г) 10. в)    

Ответы на вопросы к разделу 7.

1. в) 2. г) 3. а) 4. б)
5. г) 6. б) 7. а) 8. б)
9. д) 10. д)    

Ответы на вопросы к разделу 8.

1. а) 2. г) 3. а) 4. б)
5. г) 6. в) 7. а) 8. в)
9. а)      

Ответы на вопросы к разделу 9.

1. в) 2. а) 3. б) 4. а)
5. а) 6. г) 7. в) 8. а)
9. б) 10. г) 11. в)  

Ответы на вопросы к разделу 10.

1. в) 2. а) 3. в) 4. б)
5. б) 6. г) 7. а) 8. в)
9. а)      

Ответы на вопросы к разделу 11.

1. а) 2. а) 3. в) 4. а)
5. а) 6. б) 7. а) 8. а)
9. в) 10. а) 11. б) 12. а)
13. б)      

Ответы на вопросы к разделу 12.

1. г) 2. г) 3. а) 4. г)
5. г) 6. а) 7. в) 8. б)
9. г)      

Ответы на вопросы к разделу 13.

1. а) 2. з) 3. е) 4. г)
5. г) 6. в) 7. б) 8. д)
9. а) 10. б) 11. а) 12. д)
13. а) 14. в) 15. г)  

Вопросы к теоретическому зачету

1. Данные типа int

2. Данные типа char

3. Модификаторы доступа const и volatile

4. Данные вещественного типа (с плавающей точкой)

5. Элементарный ввод-вывод

6. Арифметические операции

7. Побитовые логические операции

8. Операции сдвига

9. Операция присваивания

10. Операция sizeof

11. Преобразование типов в выражениях

12. Операция преобразования типов

13. Приоритеты в языке Си

14. Оператор if

15. Операции отношения

16. Логические операции

17. Операция запятая

18. Операция условия?:

19. Оператор безусловного перехода goto

20. Операторы switch

21. Операторы цикла. Оператор for. Оператор while. Оператор do...while

22. Оператор break. Оператор continue

23. Одномерные массивы и их инициализация

24. Многомерные массивы и их инициализация

25. Объявление указателей. Операции над указателями

26. Тип void

27. Связь между указателями и массивами

28. Динамическое распределение памяти

29. Массивы указателей

30. Функции. Область видимости переменных. Локальные и глобальные переменные

31. Передача параметров в функцию

32. Рекурсивные функции

33. Использование функций в качестве параметров функций

34. Указатели на функции

35. Структура программы на Си

36. Передача параметров в функцию main()

37. Строки

38. Классы хранения и видимость переменных. Классы auto и register

39. Классы хранения и видимость переменных. Классы static и extern

40. Структуры. Инициализация структурных переменных. Вложенные структуры

41. Указатели на структуры. Массивы структурных переменных

42. Передача функциям структурных переменных. Оператор typedef

43. Поля

44. Объединения

45. Перечисления

46. Односвязные списки

47. Стеки

48. Очереди

49. Бинарные деревья

50. Файлы. Общие сведения. Открытие и закрытие файлов

51. Функции ввода-вывода для работы с текстовыми файлами

52. Произвольный доступ к файлу

53. Функции ввода-вывода для работы с бинарными файлами

54. Директива препроцессора #include

55. Директивы препроцессора #define и #undef

56. Директивы условной компиляции


Практический раздел

Контрольные работы

Указания к выбору варианта контрольных работ

Номер вашего варианта равен: 1 плюс остаток от целочисленного деления номера вашей зачетной книжки (его двух последних цифр, стоящих после дефиса) на тридцать.

Контрольная работа №1

Тема работы. СТРУКТУРЫ. Для заданного варианта составить программу на языке Си. Программа должна содержать подробные комментарии.

Варианты индивидуальных заданий

1. Дана ведомость абитуриентов. В каждой строке записана фамилия абитуриента, его постоянное место жительства (город), средний балл аттестата.

Распечатать в алфавитном порядке список абитуриентов, проживающих в Минске, и определить их количество.

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

Определить средний балл аттестата по университету и распечатать список абитуриентов, средний балл которых не ниже среднего балла по университету. Список должен быть отсортирован по алфавиту.

3. В справочной аэропорта хранится расписание вылета самолетов на следующие сутки. Для каждого рейса указаны его номер, пункт назначения, время вылета. Определить все номера рейсов, и времена их вылета для заданного пункта назначения.

4. У администратора железнодорожных касс хранится информация о свободных местах в поездах по всем направлениям на ближайшую неделю. Данная информация представлена в следующем виде: дата выезда, конечный пункт назначения, время отправления, число свободных мест. Выдать на печать информацию о поездах, следующих до Москвы.

5. Написать программу формирования ведомости об успеваемости студентов. Каждая запись этой ведомости должна содержать номер группы, фамилию студента, средний балл за последнюю сессию. Необходимо распечатать списки по группам. В каждой группе фамилии студентов разместить в порядке убывания среднего балла.

6. Имеется список учета нуждающихся в улучшении жилищных условий. Каждая запись этого списка содержит фамилию и дату постановки на учет. Список упорядочен по дате постановки на учет. В течение года выделяется 5 квартир. Вывести на экран весь список с указанием ожидаемого года получения квартиры.

7. В библиотеке имеется список книг. Каждая запись этого списка содержит фамилии авторов, название книг, год издания. Определить, имеются ли в данном списке книги, в названии которых встречается некоторое ключевое слово (например, "ПЭВМ"). Если имеются, то выдать на печать фамилии авторов, название и год издания всех таких книг.

8. Информация о сотрудниках предприятия содержит:

- фамилию;

- оклад;

- номер отдела.

Требуется по каждому отделу определить сотрудника, у которого максимальная зарплата.

9. Информация о сотрудниках предприятия содержит:

- фамилию;

- оклад;

- номер отдела.

Требуется по каждому отделу определить сумму зарплат.

10. Список товаров, имеющихся на складе, включает:

- наименование товара;

- стоимость товара.

Вывести в алфавитном порядке список товаров, стоимость которых превышает 100000 рублей.

11. Список товаров, имеющихся на складе, включает:

- наименование товара;

- дата поступления товара на склад.

Вывести в алфавитном порядке список товаров поступивших на склад в феврале месяце.

12. Для получения места в общежитии формируется список студентов, который включает:

- фамилию;

- номер группы;

- доход на одного члена семьи.

Вывести список студентов в порядке уменьшения дохода на одного члена семьи.

13. В справочной автовокзала хранится расписание движения автобусов. Для каждого рейса указаны:

- номер рейса;

- пункт назначения;

- время прибытия на конечный пункт.

Вывести информацию о рейсах, которыми можно воспользоваться для прибытия в пункт назначения раньше 21 часа.

14. На междугородной АТС информация о разговорах содержит:

- дату разговора;

- название города;

- время разговора;

- тариф.

Вывести по каждому городу общее время разговора с ним и сумму.

15. На междугородной АТС информация о разговорах содержит:

- дату разговора;

- название города;

- время разговора;

- тариф.

Вывести общее время разговора и сумму за 30 марта.

16. Информация о сотрудниках фирмы включает:

- фамилию;

- табельный номер;

- количество проработанных часов за месяц;

- почасовой тариф.

Вывести размер заработной платы каждого сотрудника фирмы.

17. Информация об участниках спортивных соревнований содержит:

- название команды;

- фамилию игрока;

- возраст игрока.

Вывести название и средний возраст самой молодой команды.

18. Информация об участниках спортивных соревнований содержит:

- фамилию игрока;

- название команды;

- рост игрока.

Вывести название и средний рост самой рослой команды.

19. Информация об участниках спортивных соревнований содержит:

- фамилию игрока;

- название команды;

- вес игрока.

Вывести название и средний вес самой легкой команды.

20. Для книг, хранящихся в библиотеке, задаются:

- автор;

- название;

- год издания.

Вывести список книг с фамилиями авторов в алфавитном порядке, изданных после 2000 года.

21. Для книг, хранящихся в библиотеке, задаются:

- автор;

- название;

- год издания.

Вывести список книг заданного автора.

22. Различные цеха завода выпускают продукцию нескольких наименований. Сведения о выпущенной продукции включают:

- наименование;

- количество;

- номер цеха.

Для заданного цеха необходимо вывести количество выпущенных изделий по каждому наименованию.

23. Информация о сотрудниках предприятия содержит:

- фамилию;

- номер отдела;

- стаж работы.

Вывести список сотрудников по отделам в порядке убывания стажа.

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

- фамилия;

- год рождения;

- класс музыкального инструмента (скрипка, фортепиано);

- занятое место.

Вывести список лауреатов конкурса по классам инструментов в порядке занятых мест.

25. Элементами структуры являются:

- фамилия студента;

- номер группы;

- место проживания (в общежитии или нет).

Вывести отсортированный по алфавиту список проживающих в общежитии студентов и их количество.

26. Информация об участниках спортивных соревнований между командами России и Беларуси содержит:

- страну участника;

- фамилию;

- занятое место.

За каждое место присуждается следующее количество очков:

1 место – 6 очков, 2 место – 5 очков, 3 место – 4 очка. Вывести списки спортсменов каждой команды, отсортировать их по алфавиту и подсчитать количество очков, набранное командами.

27. В магазине содержатся сведения об ассортименте игрушек. Структура записи:

- название игрушки;

- цена;

- возрастные границы, например, 2 – 5, т.е. от 2 до 5 лет.

Вывести на печать название игрушек, которые подходят детям от 1 до 3 лет.

28. В магазине содержатся сведения об ассортименте игрушек. Структура записи:

- название игрушки;

- цена.

Вывести на печать стоимость самой дорогой игрушки и ее наименование.

29. В магазине содержатся сведения об ассортименте игрушек. Структура записи:

- название игрушки;

- стоимость.

Вывести на печать названия игрушек, стоимость которых не превышает 10000 руб.

30. Информация о сотрудниках предприятия содержит:

- фамилию;

- номер отдела;

- год рождения.

Вычислить средний возраст сотрудников по отделам.

Контрольная работа №2

Тема работы. ФАЙЛЫ. Для заданного варианта составить программу на языке Си. Программа должна содержать подробные комментарии.

Варианты индивидуальных заданий

1. Разработать программу, которая формирует файл F1, содержащий целые числа, и переписывает этот файл в другой файл - F2, помещая в него из F1 только положительные числа.

2. Разработать программу, переписывающую в текстовый файл Т2 содержимое текстового файла Т1, но без строк, содержащих числа.

3. Разработать программу сортировки (упорядочения по возрастанию значений элементов) файла, содержащего целые числа.

4. Разработать программу, которая формирует на основе текстового файла Т1 файл Т2, разбивая Т1 на строки так, чтобы каждая строка оканчивалась либо точкой с запятой, либо содержала 30 любых литер, кроме точки с запятой. В качестве Т1 можно использовать файл с исходным текстом разработанной программы.

5. Разработать программу формирования файла, содержащего сведения о студентах. Каждый элемент этого файла должен содержать следующие данные: номер группы; фамилию; год рождения; средний балл за последнюю сессию. Предусмотреть возможность добавления, удаления и корректировки записей.

6. Разработать программу перекодировки текстового файла, заменив в нем заглавные буквы строчными.

7. Сформировать базу данных результатов экзамена студентов. Разработать программу, которая удаляет соответствующие записи из файла тех, чья оценка меньше 5 и помещает их в другой файл.

8. Разработать программу вывода на экран текстового файла. Вывод следует организовать таким образом, чтобы выполнялось выравнивание по правой границе путем вставки между словами необходимого количества пробелов. В качестве исходного файла можно использовать файл с исходным текстом разработанной программы.

9. Разработать программу слияния двух отсортированных по убыванию значений элементов файлов F1 и F2. Результатом слияния должен быть файл F3, элементы которого упорядочены по возрастанию.

10. Разработать программу, объединяющую несколько файлов, содержащих списки студенческих групп, в один результирующий файл. Запись производится в алфавитном порядке.

11. Имеется телефонный справочник. Каждая запись в нем состоит из фамилии и телефона. Список фамилий уже упорядочен по алфавиту. Организовать в файле поиск методом быстрой сортировки. Найти по фамилии телефон.

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

13. Даны файлы F1 и F2. Переписать с сохранением порядка следования компоненты F1 в файл F2, а компоненты F2 – в файл F1.

14. Дан файл F. Определить, являются ли два первых символа файла цифрами.

15. Дан файл F. Получить файл G, образованный из файла F заменой всех его прописных (больших) латинских букв одноименными строчными (малыми) русскими буквами.

16. Разработать программу, которая записывает в файл F3 сначала компонент файла F1, затем компонент файла F2 с сохранением порядка.

17. Разработать программу определения: совпадают ли компоненты файла F1 с компонентами файла F2. Если нет, то определить номера 1-го и 2-го компонента, в которых есть отличие.

18. Дан файл А. Записать в файл В компоненты файла А в обратном порядке.

19. Задан текстовый файл F1, состоящий из произвольной последовательности буквенных символов. Упорядочить символы в алфавитном порядке, при этом все повторяющиеся символы должны быть удалены, и переписать новый текст в файл F2.

20. Переписать компоненты файла F1 в файл F2, заменив при этом каждый восклицательный знак точкой, а каждое двоеточие – тремя точками.

21. Компоненты файла F1 – натуральные числа. Переписать в файл F2 все нечетные числа.

22. Составить программу записи в файл F1 всех чисел файла F2, кратных 5, а в файл F3 – всех отрицательных чисел, кратных 3.

23. Дан файл F1, который содержит данные о студентах групп (фамилия – имя – возраст). Создать файл F, который будет содержать данные о студентах, имеющих наибольший возраст.

24. Дан файл А, компоненты которого являются целыми числами. Записать в файл В все четные числа файла А, а в файл С – все нечетные. Порядок следования чисел сохраняется.

25. Дан файл А, компоненты которого являются целыми числами. Получить файл В, образованный из файла А исключением повторных вхождений одного и того же числа.

26. Дан текстовый файл А. Переписать в файл В все компоненты файла А с заменой в них символа 0 на символ 1 и наоборот.

27. Дан текстовый файл А. Исключить пробелы, стоящие в концах его строк. Результат поместить в файл А1.

28. Дан текстовый файл А. Переписать компоненты файла А в файл А1, вставляя в начало каждой строки по одному пробелу. Порядок компонент должен быть сохранен.

29. Дан файл А, компоненты которого являются целыми числами. Записать в файл А1 все повторяющиеся числа файла А, а в файл А2 – числа, которые встречаются один раз. Порядок следования чисел сохраняется.

30. Даны два файла. Составить программу слияния этих файлов в один по алгоритму – цифра вставляется после двух символов.

Лабораторные работы

Указания к выбору варианта лабораторных работ

Номер вашего варианта равен: 1 плюс остаток от целочисленного деления номера вашей зачетной книжки (его двух последних цифр, стоящих после дефиса) на тридцать.

Лабораторная работа № 1.
Массивы и строки

Цель работы: изучить работу с массивами и строками.

Варианты индивидуальных заданий

1. Дана действительная квадратная матрица порядка n, все элементы которой различны. Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом, стоящим на пересечении этих диагоналей.

2. В матрице 6*6 упорядочить элементы в каждой строке по убыванию, а строки матрицы расположить по возрастанию суммы элементов строк.

3. В данной действительной квадратной матрице порядка 5*5 найти сумму элементов строки, в которой расположен элемент с наименьшим значением. Предполагается, что такой элемент единственный.

4. В данной действительной матрице размером 5*5 поменять местами строку, содержащую элемент с наибольшим значением, со строкой, содержащей элемент с наименьшим значением. Предполагается, что эти элементы единственны.

5. В матрице А(6,6) путем перестановки строк и столбцов поместить максимальный элемент на место элемента А(1,1).

6. Расположить элементы столбцов матрица А(6,6) в порядке возрастания, если номера столбцов четные, в порядке убывания, если нечетные.

7. Ввести матрицу 5*5. Найти столбец с наименьшей суммой элементов и строку с наибольшей суммой элементов.

8. Ввести матрицу 5*5. Найти, сколько раз встречается каждый элемент.

9. Ввести матрицу 5*5. Упорядочить строки этой матрицы по возрастанию значений сумм их элементов.

10. Ввести матрицу 5*5. Упорядочить столбцы этой матрицы по убыванию сумм их элементов.

11. Дана матрица размером 6*6. Найти сумму наименьших элементов ее нечетных строк и наибольших элементов ее четных строк.

12. Составить программу обмена в матрице А(10,10) элементов, находящихся на главной диагонали, с соответствующими элементами первого столбца.

13. Дана матрица размером 6*6. Среди элементов этой матрицы нет нулей и единиц. Заменить элементы, встречающиеся несколько раз, единицами, а неповторяющиеся – нулями. Подсчитать количество единиц и нулей в каждой строке и столбце.

14. Дана матрица размером 6*6. В каждой ее строке переставить максимальный и минимальный элементы.

15. Дана действительная квадратная матрица порядка n. Найти наименьшее из значений элементов, расположенных в заштрихованной части матрицы.

16. Проверить, является ли выражение, состоящее из прописных и строчных букв заданной строки, палиндромом (т.е. читающееся слева направо и справа налево одинаково, например, «кабак»). Если да, то напечатать полученный палиндром. В противном случае вывести строку, состоящую из символов исходной строки с удаленными прописными символами.

17. Ввести с клавиатуры строку символов. Программа должна определить длину введенной строки, и если длина кратна 4, то первая часть строки меняется местами со второй.

18. В строке символов поменять местами символы на четных и нечетных позициях.

19. С клавиатуры вводится предложение, слова в котором разделены символом подчеркивания. Напечатайте все предложения, которые получаются при перестановке слов исходного предложения.

Пример:

Исходное предложение: КОШКА_СЪЕЛА_МЫШКУ

Перестановки: СЪЕЛА_КОШКА_МЫШКУ

МЫШКУ_СЪЕЛА_КОШКА

КОШКА_МЫШКУ_СЪЕЛА

20. С клавиатуры вводится предложение, слова в котором разделены символом подчеркивания. Подсчитайте число вхождений в предложение используемых букв. Результат записать в строку (парами: буква-цифра) и напечатать ее.

Пример:

Введите предложение: КАРАБАС_БАРАБАС

Результат: А6Б3К1Р2С2

21. Текст состоит из слов разной длины. Определить, сколько раз в тексте встречается заданное слово.

22. В тексте поменять слова местами (первое с последним, второе с предпоследним и т.д.). Слова имеют разную длину.

23. Вывести на экран самое длинное слово из заданного текста.

24. Имеется строка, содержащая буквы и цифры. Преобразуйте эту строку так, чтобы сначала в ней шли все буквы, встречающееся в исходной строке, но в обратном порядке, а потом – все цифры исходной строки в прямом порядке. Например,

Исходная строка Результат

ad2e76b8 beda2768

25. Ввести строки длиной М и К символов (К< М). Удалить из первой строки все знаки, входящие во вторую строку, и сдвинуть все символы первой строки влево.

26. Даны переменные М, N и строки А и В. В строке А заменить символы, начиная с М-го, на первые N символов строки В.

27. С клавиатуры вводится строка. Выберите из нее все буквы от А(а) до I(i) (строчные преобразуйте в прописные) и отсортируйте их в алфавитном порядке. Например,

Исходная строка: SHiFROVkaOtSHPIonA

Результат: AAFHHII

28. Пусть задано некоторое слово. Напечатать просмотр этого слова слева направо до тех пор, пока не встретятся повторяющиеся буквы. Если такие буквы встретились, пропустить их и продолжить просмотр с конца слова в обратном порядке (справа налево), пока снова не встретится набор повторяющихся букв. Если такой набор встретился, продолжить просмотр с того места, которое следует за первым набором повторяющихся букв и т.д. «Протокол» просмотра строки вывести на экран; вместо последовательности повторяющихся букв выводить один символ подчеркивания.

Пример:

Исходное слово: НОННИЛЛИОН

«Протокол» просмотра: НО_НОИ_И

29. Найти в исходной строке все вхождения (но не более девяти) заданной подстроки и заменить их на другую строку с указанием номера очередного вхождения.

Пример:

Исходная строка: ПОЛИЛИ_ЛИЛИЮ

Какую подстроку заменить: ЛИ

На какую подстроку заменить: СТО

Результат: ПОСТО1СТО2_СТО3СТО4Ю

30. Зашифруйте вводимое с клавиатуры предложение следующим образом: сначала выбираются два произвольных слова из базы, находящейся в тексте программы или вводимой с клавиатуры, затем слово из шифруемого предложения, потом опять два слова из базы, после чего – опять слово из предложения и т.д. “База” – набор слов, допустимых при выполнении программы, либо набор пар слов, как в приведенном ниже примере.

Пример:

Шифруемое предложение:

ДЕЛО_ЗАКОНЧЕНО_ХАДСОН_РАССКАЗАЛ_ВСЕ_БЕРЕГИТЕСЬ

База шифра:

С_ДИЧЬЮ_Я_ПОЛАГАЮ_ГЛАВА_ПРЕДПРИЯТИЯ_ПО_

СВЕДЕНИЯМ_О_МУХОБОЙКАХ_ФАЗАНЬИХ_КУРОЧЕК

Результат шифровки:

С_ДИЧЬЮ_ДЕЛО_Я_ПОЛАГАЮ_ЗАКОНЧЕНО_ГЛАВА_

ПРЕДПРИЯТИЯ_ХАДСОН_ПО_СВЕДЕНИЯМ_РАССКАЗАЛ_
О_МУХОБОЙКАХ_ВСЕ_ФАЗАНЬИХ_КУРОЧЕК_БЕРЕГИТЕСЬ


Лабораторная работа № 2.
Динамические структуры данных

Цель работы: освоить работу с динамическими структурами данных.

Варианты индивидуальных заданий

1. Разработать программу формирования стека, содержащего последовательность чисел и его преобразования в два новых стека: первый должен содержать только положительные числа, а второй – только отрицательные.

2. Разработать программу формирования стека, содержащего целые положительные числа, и его преобразования путем удаления из него всех четных чисел.

3. Разработать программу, определяющую симметричность произвольного текста любой длины. Текст должен оканчиваться точкой. Эту задачу рекомендуется решать с помощью двух стеков. В первый стек следует поместить весь текст, затем во второй перенести его половину так, чтобы последний символ текста находился на дне стека. Далее путем поэлементного сравнения стеков получить ответ на вопрос о симметричности текста.

4. Разработать программу формирования стека, куда помещается последовательность символов, вводимых с клавиатуры. Процесс ввода символов должен прекращаться, как только среди вводимых символов появляется точка. После этого программа должна реверсировать стек, т.е. после реверсирования вершина и дно стека меняются местами.

5. Разработать программу слияния двух стеков, содержащих возрастающую последовательность целых положительных чисел, в третий стек так, чтобы его элементы располагались также в порядке возрастания.

6. Разработать программу добавления к стеку, содержащему возрастающую последовательность целых положительных чисел, нового элемента так, чтобы порядок возрастания в стеке не изменялся.

7. Разработать программу формирования стека с последующим его преобразованием в двунаправленную очередь. Двунаправленная очередь является динамической структурой данных, каждый элемент которой хранит не одну ссылку (указатель на следующий элемент, как в стеке), а две. Из них одна указывает на предыдущий элемент, другая – на следующий элемент очереди.

8. Разработать программу, реализующую следующие функции: создать очередь, удалить элемент, добавить элемент, закольцевать очередь.

9. Разработать программу формирования стека, куда помещается последовательность символов в виде отдельных слов, вводимых с клавиатуры. Каждое слово, помещенное в стек, следует вывести на экран терминала; при этом порядок вывода символов в каждом слове должен быть обратным по сравнению с последовательностью их ввода.

10. Разработать программу, определяющую число вхождений элемента Е в дерево Т.

11. Разработать программу, подсчитывающую сумму элементов непустого дерева.

12. Разработать программу удаления максимального элемента из заданного дерева.

13. Разработать программу исключения элемента с заданным признаком из очереди. Значение признака ввести с клавиатуры.

14. Разработать программу удаления из очереди каждого второго элемента.

15. Инвертируйте заданную очередь, т. е. первый становится последним и т.д.

16. Разработать программу поиска узла с заданным ключом в бинарном дереве.

17. Разработать программу проверки, находится ли элемент с ключом «А» в поддереве с корнем в вершине «В». Значения «А» и «В» введите.

18. Разработать программу подсчета числа узлов заданного бинарного дерева.

19. Разработать программу подсчета числа концевых (терминальных) узлов заданного бинарного дерева.

20. Разработать программу подсчета числа неполных узлов заданного бинарного дерева.

21. Разработать программу удаления узла из заданного бинарного дерева. Ключ удаляемого узла необходимо ввести.

22. Разработать программу преобразования очереди в стек.

23. Разработать программу копирования стека, используя промежуточный стек.

24. Разработать программу определения максимальной длины поддерева в заданном бинарном дереве.

25. Имеется произвольное количество лунок и в каждой лунке лежит шар черного или белого цвета (белых шаров на один больше). Одним ходом разрешается менять местами два любых шара. Переставить шары так, чтобы сначала шли белые шары, а за ними черные. Если общее число лунок N, то для решения задачи достаточно сделать не более N/2 ходов. Значение N ввести. При решении задачи использовать очереди с двумя ссылками.

26. Разработать программу преобразования стека в очередь.

27. Разработать программу, которая выводит на экран элементы из всех листьев дерева.

28. В каждой лунке лежит красный, белый или синий шар. Одним ходом разрешается менять местами два любых шара. Добиться того, чтобы все красные шары шли первыми, все синие – последними, а белые – посередине.

29. Разработать программу, которая находит в непустом дереве Т длину (число ветвей) пути от корня до вершины с элементом Е.

30. Имеется N лунок, в которых расставлены L черных и S белых шаров. Поменять местами черные и белые шары. Черные шары можно передвигать только вправо, а белые – только влево. Шар передвигается в соседнюю с ним лунку (пустую) либо в пустую лунку, находящуюся непосредственно за ближайшим шаром. Значения N, L, S ввести (N=L+S+1).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: