На главную.
К полному списку вопросов.
10. Найти 107-ый элемент ряда Фибоначи .
11. Дан произвольный прямоугольник состоящий из чёрных и белых клеточек( как шахматная доска). Вырезали левую верхнюю клетку и правую нижнюю. Можно ли покрыть оставшуюся фигуру прямоугольниками из 2-х клеток (доминошками).
12. Сколько памяти занимает объект класса (рассказать как и под что выделяется память).
13. Что такое конструктор копирования. В каких случаях он применяется?
14. Запишите в ячейку памяти с адресом 1037 в 7-ой бит 1.
10. Найти 107-ый элемент ряда Фибоначи .
Ряд Фибоначи - это числовая последовательность, начиная с 1, в которой каждый
последующий элемент равен сумме двух предыдущих.(1, 1, 2, 3, 5, 8 и т.д.).
Вычисление 107-го элемента удобнее всего делать с помощью рекурсии.
int Fibonachi(int& elem,int result = 1,int prevres = 0)
{
while(elem > 0){
elem--;
result = Fibonachi(elem,(result+prevres),result);
}
return result;
}
.....
int main()
{
int elemn = 107;
int elemFib = Fibonachi(elemn);
}
наверх.
11. Дан произвольный прямоугольник состоящий из чёрных и белых клеточек( как шахматная доска). Вырезали левую верхнюю клетку и правую нижнюю. Можно ли покрыть оставшуюся фигуру прямоугольниками из 2-х клеток (доминошками).
Прямоугольник из 2-х клеток (доминошка) всегда покрывает 1-у белую и 1-у
чёрную клетку. Если правая верхняя и левая нижняя клетка были одного цвета,
то нельзя, так как клеток другого цвета будет на 1 больше и не найдётся
пары белая-чёрная. Если правая верхняя и левая нижняя клетка были разного цвета, то можно.
наверх.
12. Сколько памяти занимает объект класса (рассказать как и под что выделяется память).
Размер объекта класса равен суммарному объему памяти, занимаемому переменными, объявленными в классе. Если в классе
присутсвуют виртуальные функции, то к размеру добавляется указатель на таблицу виртуальных функций. Так же если класс
наследуется от класса в котором есть виртуальные функции, но не переопределяет их, то к его размеру всё равно будет добавлен
размер указателя на таблицу виртуальных функций базового класса. Размер пустого класса -
класса который не содержит ничего кроме обычных(не виртуальных) функций равен 1.
наверх.
13. Что такое конструктор копирования. В каких случаях он применяется?
Конструктор копирования - это конструктор которому в качестве параметра
передаётся ссылка на объект класса в котором он обьявлен. Причём эта ссылка
объявляется со спецификатором const. Он отвечает за создание объекта с
одновременным копированием значений данных-членов другого объекта. У конструктора
копирования есть 3 формы вызова:
ClassType X2 = X1;
ClassType X2(X1);
ClassType X3 = ClassType(X1);
наверх.
14.Запишите в ячейку памяти с адресом 1037 в 7-ой бит 1.
У этой задачи на Visual С++ нет решения, так как можно
заставить указатель указывать на ячейку 1037 (p = 1037, где p - указатель), но при
попытке записать туда значение выскочит исключение (exception), так как память
для записи значения не была выделенна.
наверх.