РК инфа Вопросы ответы (Вопросы и ответы к РК по информатике (ИУ5))
Описание файла
Файл "РК инфа Вопросы+ответы" внутри архива находится в папке "Вопросы и ответы к РК по информатике (ИУ5)". Документ из архива "Вопросы и ответы к РК по информатике (ИУ5)", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "контрольные работы и аттестации", в предмете "информатика" в общих файлах.
Онлайн просмотр документа "РК инфа Вопросы ответы"
Текст из документа "РК инфа Вопросы ответы"
1. Пусть ip – указатель на int. Написать предложение для динамического размещения массива из 500 целых чисел и сохранения его адреса в ip. Написать предложение для уничтожения этого массива.
int n = 500;
int *ip = new int[n];
delete[] int;
2. Пусть Rptr – указатель на структуру Rectangle.
struct Rectangle
{
int length, width;
};
Какое из выражений: A, B или C эквивалентно выражению Rptr -> width
А) *Rptr.width
В) (*Rptr).width
С) Rptr.(*width)
B) (*Rptr).width
3. Какова разница между прямой и косвенной рекурсией?
При прямой рекурсии процедура содержит оператор обращения к самой себе.
При косвенной рекурсии одна функция вызывает другую, которая сама либо
посредством других функций вызывает исходную функцию
4. Что выведет на экран эта программа?
#include <iostream>
using namespace std;
int func(int);
void main()
{
int x=10;
cout << func(x) << endl;
}
int func(int num)
{
if (num <= 0) return 0;
else return func(num-1)+num;
}
55
5. Что выведет на экран следующая программа?
#include <iostream>
using namespace std;
void function(char[], int, int);
void main()
{
char names[] = “Adam and Eve”;
cout << names << ‘ ‘;
function(names, 0, 13);
cout << endl;
}
void function(char array[], int pos, int size)
{
if (pos < size - 1)
{
function(array, pos +1, size);
cout << array[pos];
}
}
Adam and Eve evE dna madA
6. Перепишите функцию, использовав рекурсию.
void sign(int n)
{
while (n-- > 0)
cout << “No Parking\n”;
}
int sign(int n)
{
if (n == 0) return 0;
else {
cout << “No Parking\n”;
sign(n--);
}
}
7. Какие три шага надо выполнить для использования файла в программе?
#include "stdio.h"
ofstream myfile;
myfile.open ("blablabla.txt");
8. Какую операцию надо выполнить перед чтением или записью информации в файл?
объявить переменную файлового потока или выполнить операцию open либо для инициализации хэндла, либо для созданного объекта файла
9. Пусть DiskInfo – объект класса fstream. Напишите предложение, открывающее файл Customers.dat для вывода информации в конец файла.
DiskInfo.open ("Customers.dat", ios::out | ios::app | ios::binary);
10. Напишите предложение if, проверяющее объект файлового потока DataBase для определения, был ли файл открыт успешно.
if (myfile.is_open());
11. Измените приведённую программу так, чтобы информация выводилась не на экран, а в файл Output.txt
#include <iostream>
using namespace std;
void main()
{
cout << “Today is the first day\n”;
cout << “of the rest of your life.\n“;
}
ofstream myfile;
myfile.open ("Output.txt", ios::out | ios::app | ios::binary);
myfile << “Today is the first day\n”;
myfile << “of the rest of your life.\n“
12. Опишите разницу между чтением из файла оператором >> и при помощи функции-члена getline.
оператор >> позволяет читать разные типы, а getline берет все символы до перевода строки
13. Опишите, какие операции доступны при работе с файлами, открытыми при помощи следующих предложений.
File.open(“info.dat”); - "простое" открытие файла без разрешений
File.open(“info.dat”, ios::in | ios::app); - ввод потока, в том числе в конец файла
File.open(“info.dat”, ios::in | ios::out | ios::binary); - ввод\вывод, в том числе бинарный
14. Конструктор имеет то же имя, что
A) класс B) объект C) программа D) другое.
А) Класс
15. Кратко опишите назначение деструктора.
Дестру́ктор — специальный метод класса, служащий для деинициализации объекта (например освобождения памяти).
16. Когда вызывается конструктор копирования?
Конструктор копирования вызывается при создании нового объекта, являющегося копией уже существующего объекта.
17. Какова разница между членами класса из разделов private и protected?
Разница в доступе из внешних функций.
Методы protected также могут вызываться из своего класса и классов-наследников, но их можно вызывать и как функции, и как методы с объектами-получателями сообщения.
Private делает возможным вызывать метод только как функцию, то есть единственный допустимый объект-получатель сообщения - это self. Private метод можно вызывать только из класса, где он определен, либо из классов-наследников.
18. Для класса с именем BlackBox напишите заголовок функции-члена класса для преобразования объекта BlackBox к типу int.
BlackBox::operator int();
19. Если в классе X функция А объявлена другом, становится ли эта функция членом класса X ?
Да, если она объявлена как функция-друг (friend)
20. Объект какого типа возвращает перегруженный оператор >> ?
объект типа производного от ostream
или же все целочисленные типы: в этом случае этот оператор работает как сдвиг
21. Перегруженные функции имеют разные типы, разные списки параметров или и то и другое вместе?
Перегруженные функции имеют разные списки параметров
22. Объяснить, почему в разделе private недопустимо описание виртуальных функций.
Потому, что она попадет в таблицу виртуальных функций и
может быть использована потомками, а модификатор private
этому препятствует (он разрешает только конкретно этому классу)
23. Каковы признаки того, что созданный класс является абстрактным?
Класс представляет собой как бы заготовку, в которой часть методов реализована, а часть — нет.
В описании класса перед словом class должен стоять описатель abstact и при описании нереализованных методов тоже должен использоваться этот описатель.
Абстрактные классы не могут определять типр возвращаемого ф-циекй значения, не могут использоваться для приведения типов.
24. Что выведет на экран эта программа?
#include <iostream>
using namespace std;
class Tank
{
private:
int litres;
public:
Tank()
{litres = 50;}
Tank(int gal)
{litres = gal;}
int getLitres()
{return litres;}
};
void main()
{
Tank storage1, storage2, storage3(20);
cout << storage1.getLitres() << endl;
cout << storage2.getLitres() << endl;
cout << storage3.getLitres() << endl;
}
50
50
20
25. Что будет выведено на экран следующей программой?
#include <iostream>
using namespace std;
class Base
{
protected:
int baseVar;
public:
Base(int val=2){baseVar=val;}
int getVar() {return baseVar;}
};
class Derived : public Base
{
private:
int deriVar;
public:
Derived(int val=100){deriVar=val;}
int getVar() {return deriVar;}
};
void main()
{
Derived object;
Base *optr = &object;
cout << optr -> getVar() << endl;
}
2
26. Что будет выведено на экран следующей программой?
#include <iostream>
using namespace std;
class First
{
protected:
int a;
public:
First(int x=1) {a=x;}
int GetVal(){return a;}
};
class Second: public First
{
private:
int b;
public:
Second(int y=5){b=y;}
int GetVal(){return b;}
};
void main()
{
First Object1;
Second Object2;
cout << Object1.GetVal() << endl;
cout << Object2.GetVal() << endl;
}
1
5
27. Что выведет на экран эта программа?
#include <iostream>
using namespace std;
class Sky
{
public:
Sky() {cout << “Entering the sky.\n”;}
~Sky() {cout << “Leaving the sky.\n”;}
};
class Ground: public Sky
{
public:
Ground() {cout << “Entering the ground.\n”;}
~Ground() {cout << “Leaving the ground.\n”;}
};
void main()
{
Ground Hog;
}
Entering the sky.
Entering the ground.