Строки:

нужен фрагмент кода. Обязательно используйте функции для работы со строками.

  1. Как сравнить две строки без учёта регистра букв на равенство?
  2. Как скопировать строку в существующий буфер с учётом возможного переполнения буфера?
  3. Как найти адрес последнего символа строки?
  4. Как найти первое вхождение заданного символа в строку (порядковый номер в строке)?
  5. Как найти первое вхождение заданной подстроки в строку (порядковый номер в строке)?
  6. Как конвертировать строку в верхний регистр?
  7. Как конвертировать строку в нижний регистр?
  8. Как найти последнее вхождение заданного символа в строку (порядковый номер в строке)?
  9. Как обратить порядок символов в строке (cba вместо abc)?
  10. Как найти порядковый номер первого символа в исследуемой строке, не принадлежащего другой, заданной строке (например, для строки “8945abcde” и тестовой строки “0123456789” это будет номер первой буквы – ‘a’)?

Файлы

нужен фрагмент кода! Обязательно использовать функции стандартной библиотеки ввода/вывода.

  1. Как переместить файловый указатель на позицию 220 байт от конца файла?
  2. Как переместить файловый указатель на 120 байт вперёд (к концу файла) от текущей позиции в файле?
  3. Как переместить файловый указатель на 120 байт назад (к началу файла) от текущей позиции в файле?
  4. Как переместить файловый указатель на позицию 220 байт от начала файла?
  5. Как, прочитав из файла один символ, выявить факт окончания файла?
  6. Как определить, что попытка чтения/записи окончилась успешно?
  7. Как программно переопределить в файл стандартный поток ввода/вывода?
  8. Как, не читая файл, открытый для чтения, определить его размер?
  9. Как однократно принудительно сбросить на диск программный буфер вывода в файл?
  10. Как совсем отменить для потока вывода буферизацию выводимых данных?
  11. Как обрезать существующий файл до нужной длины?
  12. Как удалить существующий файл?
  13. Как переименовать существующий файл?
    Ответьте на вопросы:
  1. Что такое ссылка? Чем ссылка отличается от указателя? Приведите примеры.
  2. Что такое сигнатура функции? Как описать функцию, отличаемую от других функций только по имени, но не сигнатуре? Приведите примеры.
  3. Что такое сигнатура функции? Как можно описать несколько функций, различных по сигнатуре, но не по имени? Приведите примеры.
  4. Что такое перегрузка функций? Каковы ограничения на перегрузку функций? Приведите примеры.
  5. Что такое class? В чём его отличие от простых структурных типов? Приведите примеры.
  6. Как в C++ осуществляется инкапсуляция (сокрытие) данных/методов класса? Приведите примеры.
  7. Как в C++ осуществляется инкапсуляция (сокрытие) данных базового класса при наследовании? Приведите примеры.
  8. Как описать метод класса? Как двумя способами описать инлайнируемый метод класса? Что такое this?
  9. Что такое множественное наследование? Как вызвать метод при наличии нескольких его унаследованных реализаций? Приведите примеры.
  10. Что такое множественное наследование? Каковы его потенциальные проблемы? Что такое виртуальное множественное наследование? Приведите примеры.
  11. Что такое конструктор? Чем он отличается от обычных методов? Приведите примеры.
  12. Что такое деструктор? Чем он отличается от обычных методов? Приведите примеры.
  13. Как реализуется конструктор производного класса? Конструктор производного класса при наличии множественного наследования? Конструктор производного класса при наличии виртуального множественного наследования?
  14. Что такое виртуальная функция? Зачем их используют? Приведите свой пример.
  15. Что такое абстрактный класс? Зачем их используют? Приведите свой пример.
  16. Чем отличаются перегрузка (overloading) и переопределение (overriding) функций? Приведите примеры.
  17. Где и для чего можно использовать ключевое слово static при описании классов C++? Приведите примеры.
  18. Какие библиотеки ввода/вывода можно использовать в C/C++? Какие заголовочные файлы нужно включить в программу для их использования?
  19. Как определить метод, разрешённый для неизменяемых объектов? Как задать поле класса, которое можно менять даже у «неизменяемых» объектов? Приведите примеры.
  20. Что такое исключительная ситуация? Как возбудить, поймать, «перевозбудить» исключительную ситуацию? Приведите примеры.
  21. Что такое исключительная ситуация? Как поймать исключительную ситуацию? Каков должен быть порядок ловушек для исключительных ситуаций?
  22. Как в C++ использовать динамическое выделение памяти? Приведите примеры выделения памяти с порождением исключительных ситуаций и без.
  23. Что такое дружественная функция? Приведите примеры.
  24. Какие унарные операторы можно переопределить? Какие два способа есть для переопределения унарных операторов? Приведите примеры.
  25. Какие бинарные операторы можно переопределить? Какие два способа есть для переопределения бинарных операторов? Приведите примеры.
  26. Как переопределить оператор [] для своего класса «безопасного массива»? Приведите пример.
  27. Как переопределить оператор -> для своего класса «умного указателя»? Приведите пример.
  28. Как в библиотеке C++ потокового ввода/вывода осуществляется работа с текстовыми файлами? Приведите примеры.
  29. Как в библиотеке C++ потокового ввода/вывода осуществляется работа с двоичными файлами? Приведите примеры.
Ответьте на вопросы:
  • Как описать метод класса? Как двумя способами описать инлайнируемый метод класса? Каковы ограничения на использование инлайн-функций?
  • Что такое абстрактный класс? Зачем их используют? Приведите свой пример.
  • Где и для чего можно использовать ключевое слово static при описании классов C++? Приведите примеры.
  • Какие библиотеки ввода/вывода можно использовать в C/C++? Какие заголовочные файлы нужно включить в программу для их использования?
  • Как определить метод, разрешенный для неизменяемых объектов? Как задать поле класса, которое можно менять даже у «неизменяемых» объектов? Приведите примеры.
  • Что такое дружественная функция? Что такое дружественный класс? Приведите примеры кода.
  • Какие унарные операторы можно переопределить? Какие два способа есть для переопределения унарных операторов? Приведите примеры.
  • Какие бинарные операторы можно переопределить? Какие два способа есть для переопределения бинарных операторов? Приведите примеры.
  • Как переопределить оператор [] для своего класса? Приведите пример.
  • Как переопределить оператор -> для своего класса? Приведите пример.
  • Как переопределить оператор () для своего класса? Приведите пример.
  • Как в библиотеке C++ потокового ввода/вывода осуществляется работа с текстовыми файлами? Приведите примеры.
  • Как в библиотеке C++ потокового ввода/вывода осуществляется работа с двоичными файлами? Приведите примеры.
  • Что такое манипулятор вывода? Какие манипуляторы вы знаете? Как определить текущие установки потока для форматирования вывода?
  • Реализовать шаблонный класс или функцию:

    1. Опишите параметризованный класс односвязный список элементов (параметр – тип).
    2. Опишите параметризованный класс двусвязный список элементов (параметр – тип).
    3. Опишите параметризованный класс очередь элементов (параметр – тип).
    4. Опишите параметризованный класс стек элементов (параметр – тип).
    5. Опишите параметризованный класс стек элементов ограниченной ёмкости (параметр – тип и число).
    6. Опишите параметризованный класс геометрическая фигура на плоскости (параметр – тип и число).
    7. Опишите параметризованную функцию сортировки вставкой.
    8. Опишите параметризованную функцию сортировки выборкой.
    9. Опишите параметризованную функцию сортировки пузырьком.
    10. Опишите параметризованную функцию нахождения элемента в неупорядоченном массиве.
    11. Опишите параметризованную функцию нахождения элемента в упорядоченном массиве.
    12. Опишите параметризованную функцию замены одного элемента массива на другой.
    13. Опишите параметризованную функцию инверсии массива элементов.
    14. Опишите параметризованную функцию вычисления среднего арифметического значения массива элементов.
    15. Опишите параметризованный класс двоичное дерево элементов (параметр – тип).

    Опишите предназначение стандартного шаблонного класса, какие методы и перегруженные операторы он поддерживает. Приведите примеры кода.

    1. Шаблон vector.
    2. Шаблон list.
    3. Шаблон deque.
    4. Шаблон set.
    5. Шаблон multiset.
    6. Шаблон map.
    7. Шаблон multimap.
    8. Шаблон stack.
    9. Шаблон queue.
    10. Шаблон priority_queue.
    11. Шаблон bitset.
    12. Шаблон basic_string.
    13. Шаблон valarray.
    14. Шаблон hash_map.
    15. Шаблон unordered_map.