Форум программистов, компьютерный форум CyberForum.ru

Проверить и прокомментировать вариант решения тестового экзаменационного задания по теории C++ и Си - C++

Восстановить пароль Регистрация
 
МихаилЗеленски
 Аватар для МихаилЗеленски
1 / 1 / 0
Регистрация: 14.10.2015
Сообщений: 74
Завершенные тесты: 1
03.01.2016, 20:21     Проверить и прокомментировать вариант решения тестового экзаменационного задания по теории C++ и Си #1
Уважаемые профессионалы,на днях мне предстоит сдавать экзамен по программированию, если не затруднит - посмотрите вопросы, которые я подготовил и скажите, всё ли верно, или чего-то не хватает. При подготовке пользовался книгой Павловской "Программирование на языке высокого уровня", а так же сайтами StackOverflow, http://www.c-cpp.ru/, http://cppstudio.com/ , Habrahabr. некоторые вопросы оставил без ответа, так как не знаю его...) (надпись ПРОГА означает, что мне ещё предстоит написать программу для этого варианта). Заранее спасибо))
Кликните здесь для просмотра всего текста
ВАРИАНТ №1
1) Что такое поток? Можно ли открыть поток не открывая файла?
Поток — ЭТО абстрактное понятие, относящееся к любому переносу данных от
источника к приемнику. Потоки C++, в отличие от функций ввода/вывода в стиле
С, обеспечивают надежную работу как со стандартными, так и с определенными
пользователем типами данных, а также единообразный и понятный синтаксис.
Чтение данных из потока называется извлечением, вывод в поток — помещегшем,
или включением. Поток определяется как последовательность байтов и не зависит
от конкретного устройства, с которым производится обмен (оперативная память,
файл на диске, клавиатура или принтер). Обмен с потоком для увеличения
скорости передачи данных производится, как правило, через специальную область
оперативной памяти — буфер. Фактическая передача данных выполняется
при выводе после заполнения буфера, а при вводе — если буфер исчерпан.
По направлению обмена потоки можно разделить на входные (данные вводятся в
память), выходные (данные выводятся из памяти) и двунаправленные (допускающие
как извлечение, так и включение).
По виду устройств, с которыми работает поток, можно разделить потоки на стандартные,
файловые и строковые.
Нельзя открыть поток не открывая файл. Если всё-таки сделать это, то указатель на поток приобретёт значение NULL (0), что является ошибкой.

2) Что такое класс? Что такое обьект?
Классы в С++ — это абстракция описывающая методы, свойства, ещё не существующих объектов. Объекты — конкретное представление абстракции, имеющее свои свойства и методы. Созданные объекты на основе одного класса называются экземплярами этого класса. Эти объекты могут иметь различное поведение, свойства, но все равно будут являться объектами одного класса. В ООП существует три основных принципа построения классов:
Инкапсуляция — это свойство, позволяющее объединить в классе и данные, и методы, работающие с ними и скрыть детали реализации от пользователя.
Наследование — это свойство, позволяющее создать новый класс-потомок на основе уже существующего, при этом все характеристики класса родителя присваиваются классу-потомку.
Полиморфизм — свойство классов, позволяющее использовать объекты классов с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.
3) ПРОГА

ВАРИАНТ №2
1) Как устроена строка формата функции fscanf?
Функция fscanf() работает подобно функции scanf(), но читает информацию не из стандартного потока ввода stdin, а из потока, заданного указателем stream.
Приведенный фрагмент программы читает из потока fp строку и значение переменной f с плавающей точкой (типа float).
char str[80];
float f;

fscanf(fp, "%s%f", str, &f);
Где fp –поток, "%s%f" – спецификаторы формата, str - строка, f – переменная .

2) Какие существуют возможности определения функций-компонент класса?
В С++ компоненты-функции могут использоваться с модификатором static и const. Обычная компонента-функция, вызываемая
object . function(a,b);
имеет явный список параметров a и b и неявный список параметров, состоящий из компонент данных переменной object. Неявные параметры можно представить как список параметров, доступных через указатель this. Статическая (static) компонента-функция не может обращаться к любой из компонент посредством указателя this. Компонента-функция const не может изменять неявные параметры.

3) ПРОГА

ВАРИАНТ №3
1) Как проверить существует ли ошибка во время работы с потоками?
???????????????????????????????????
2) Что такое инкапсуляция. Описать основные спецификаторы доступа.
Объединение данных с функциями их обработки в сочетании со скрытием ненужной для использования этих данных информации называется инкапсуляцией
(encapsulation).
Всего существует 3 спецификатора доступа :
-public – доступ имеет любая функция;
-protected –аналогично private. Разница заметна только при наследовании;
-private - доступ имеют только функции-члены класса или дружественные функции класса.
3)ПРОГА


ВАРИАНТ №4
1) Функции, которые читают и записывают строку в поток.
Вывод в поток выполняется с помощью операции вставки (в поток), которая является перегруженной операцией сдвига влево << . Левым ее операндом является объект потока вывода. Правым операндом может являться любая переменная, для которой определен вывод в поток (то есть переменная любого встроенного типа или любого определенного пользователем типа, для которого она перегружена). Например, оператор cout << "Hello!\n"; приводит к выводу в предопределенный поток cout строки "Hello!".
Для ввода информации из потока используется операция извлечения, которой является перегруженная операция сдвига вправо >>. Левым операндом операции >> является объект класса istream, который также является и результатом операции. Это позволяет строить цепочки операций извлечения из потока, выполняемых слева направо. Правым операндом может быть любой тип данных, для которого определен поток ввода. Для С это функции gets() и puts().
Для операций с бинарными файлами существуют функции read() и write().
2) Что такое полиморфизм?
Полиморфизм — возможность использовать в различных классах иерархии одно имя для обозначения сходных по смыслу действий и гибко выбирать требуемое действие во время выполнения программы.
3)ПРОГА


ВАРИАНТ №5
1) Что возвращает функция fopen?
Если файл был успешно открыт, то fopen вернёт указатель на объект FILE, который может быть использован для идентификации потока будущих операций.
2) Для чего используются статические поля? Какие их особенности?
Статические поля применяются для хранения данных, общих для всех объектов
класса, например, количества объектов или ссылки на разделяемый всеми объектами ресурс. Эти поля существуют для всех объектов класса в единственном экземпляре, то есть не дублируются.
Вот их особенности :
- Память под статическое поле выделяется один раз при его инициализации
независимо от числа созданных объектов (и даже при их отсутствии) и инициализируется с помощью операции доступа к области действия, а не операции
выбора (определение должно быть записано вне функций)
- Статические поля доступны как через имя класса, так и через имя объекта:
А *а. Ь:
cout « A::count « a->count « b.count:
// Будет выведено одно и то же;
- На статические поля распространяется действие спецификаторов доступа, поэтому статические поля, описанные как private, нельзя изменить с помощью операции доступа к области действия, как описано выше. Это можно сделать только с помощью статических методов.
- Память, занимаемая статическим полем, не учитывается при определении размера объекта с помощью операции sizeof.
3) ПРОГА

ВАРИАНТ №6
1) На какие группы можно поделить библиотечные функции ввода-вывода?
Библиотечные функции ввода-вывода можно поделить на стандартные, форматированный ввод-вывод. (не уверен в этом ответе)
2) Что такое статические методы? Для чего они предназначены?
Статические методы предназначены для обращения к статическим полям класса.
Они могут обращаться непосредственно только к статическим полям и вызывать
только другие статические методы класса, потому что им не передается скрытый
указатель this. Обращение к статическим методам производится так же, как к
статическим полям — либо через имя класса, либо, если хотя бы один объект
класса уже создан, через имя объекта.
3) ПРОГА

ВАРИАНТ №7
1) Как открыть поток в двоичном режиме?
(открыть двоичный файл для записи можно с помощью функций read() и write(), но открыть поток в двоичном режиме….)
2) Для чего используются дружественные функции? Правила их описания и особенности.
Дружественные функции применяются для доступа к скрытым нолям класса и
представляют собой альтернативу методам.
Вот правила описания и особенности дружественных функций.
• Дружественная функция объявляется внутри класса, к элементам которого
ей нужен доступ, с ключевым словом friend. В качестве параметра ей должен
передаваться объект или ссылка на объект класса, поскольку указатель this
ей не передается.
• Дружественная функция может быть обычной функцией или методом другого
ранее определенного класса. На нее не распространяется действие спецификаторов
доступа, место размещения ее объявления в классе безразлично.
• Одна функция может быть дружественной сразу нескольким классами.
Использования дружественных функций нужно по возможности избегать, поскольку
они нарушают принцип инкапсуляции и, таким образом, затрудняют отладку
и модификацию программы.
3) ПРОГА

ВАРИАНТ №8
1) Что такое поток? Можно ли открыть поток не открывая файла?
Поток — ЭТО абстрактное понятие, относящееся к любому переносу данных от
источника к приемнику. Потоки C++, в отличие от функций ввода/вывода в стиле
С, обеспечивают надежную работу как со стандартными, так и с определенными
пользователем типами данных, а также единообразный и понятный синтаксис.
Чтение данных из потока называется извлечением, вывод в поток — помещегшем,
или включением. Поток определяется как последовательность байтов и не зависит
от конкретного устройства, с которым производится обмен (оперативная память,
файл на диске, клавиатура или принтер). Обмен с потоком для увеличения
скорости передачи данных производится, как правило, через специальную область
оперативной памяти — буфер. Фактическая передача данных выполняется
при выводе после заполнения буфера, а при вводе — если буфер исчерпан.
По направлению обмена потоки можно разделить на входные (данные вводятся в
память), выходные (данные выводятся из памяти) и двунаправленные (допускающие
как извлечение, так и включение).
По виду устройств, с которыми работает поток, можно разделить потоки на стандартные,
файловые и строковые.
Нельзя открыть поток не открывая файл. Если всё-таки сделать это, то указатель на поток приобретёт значение NULL (0), что является ошибкой.

2)Механизм работы виртуальных функций.
В C++ все функции по умолчанию имеютраннее связывание, то есть компилятор и компоновщик решают, какая именно функция должна быть вызвана, до запуска программы. Виртуальные функции имеют позднее связывание, то есть при вызове функции нужное тело выбирается на этапе выполнения программы.
Встретив ключевое слово virtual, компилятор помечает, что для этого метода должно использоваться позднее связывание: для начала он создает для класса таблицу виртуальных функций, а в класс добавляет новый скрытый для программиста член — указатель на эту таблицу. Таблица виртуальных функций хранит в себе адреса всех виртуальных методов класса (по сути, это массив указателей), а также всех виртуальных методов базовых классов этого класса. Таблиц виртуальных функций будет столько, сколько есть классов, содержащих виртуальные функции — по одной таблице на класс.
3) ПРОГА
Вложения, ожидающие проверки
Тип файла: docx ПроТеори.docx
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2016, 20:21     Проверить и прокомментировать вариант решения тестового экзаменационного задания по теории C++ и Си
Посмотрите здесь:

C++ Разработать алгоритм интерполяции значений функции методом Лагранжа. В качестве тестового примера использовать функцию Рунге
C++ Проверить правильность задания №2
C++ Строки. Проверить правильность задания круглых скобок
C++ Даны следующие задания , как написать решения
Напишите свой вариант решения, простенькая задачка C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mr.X
Эксперт С++
 Аватар для Mr.X
2807 / 1583 / 248
Регистрация: 03.05.2010
Сообщений: 3,688
03.01.2016, 20:43     Проверить и прокомментировать вариант решения тестового экзаменационного задания по теории C++ и Си #2
МихаилЗеленски, ну вот сразу видно делового человека! И профессионалов привлек, и недорого в общем-то!
МихаилЗеленски
 Аватар для МихаилЗеленски
1 / 1 / 0
Регистрация: 14.10.2015
Сообщений: 74
Завершенные тесты: 1
03.01.2016, 20:45  [ТС]     Проверить и прокомментировать вариант решения тестового экзаменационного задания по теории C++ и Си #3
Я же не прошу сделать за меня)) я прошу просмотреть и указать на ошибки. если не хочешь или не можешь помочь - не пиши сюда.
Байт
03.01.2016, 21:03
  #4

Не по теме:

Mr.X, Эта болезнь называется - "Стягивание пространства". Подробно описана Стругацкими в незабвенном Понедельнике. Иногда проходит сама с возрастом (ибо болезнь, в общем-то, детская). Но бывают и тяжелые, запущенные случаи.

kurson
0 / 0 / 0
Регистрация: 11.04.2014
Сообщений: 22
07.01.2016, 16:15     Проверить и прокомментировать вариант решения тестового экзаменационного задания по теории C++ и Си #5
Добавлено через 7 минут
МихаилЗеленски, а можно документик ещё раз скинуть?
МихаилЗеленски
 Аватар для МихаилЗеленски
1 / 1 / 0
Регистрация: 14.10.2015
Сообщений: 74
Завершенные тесты: 1
07.01.2016, 20:48  [ТС]     Проверить и прокомментировать вариант решения тестового экзаменационного задания по теории C++ и Си #6
Зачем? вопросы видны и так. или не видны?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2016, 22:18     Проверить и прокомментировать вариант решения тестового экзаменационного задания по теории C++ и Си
Еще ссылки по теме:

C++ Разработать программу для решения задачи из нижеприведенных положений теории чисел
C++ Проверить и прокомментировать вариант решения тестового задания при приёме на работу
C++ N-ый элемент последовательности Фибоначчи для тестового случая

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
kurson
0 / 0 / 0
Регистрация: 11.04.2014
Сообщений: 22
07.01.2016, 22:18     Проверить и прокомментировать вариант решения тестового экзаменационного задания по теории C++ и Си #7
МихаилЗеленски, да уже не надо)
у меня точно такие же вопросы, и я не заметил закономерность)

Добавлено через 20 минут
МихаилЗеленски, и, кстати, ответ на 2 вопрос первого билета не правильный)
Yandex
Объявления
07.01.2016, 22:18     Проверить и прокомментировать вариант решения тестового экзаменационного задания по теории C++ и Си
Ответ Создать тему
Опции темы

Текущее время: 08:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru