Тест прикладное программирование
В тесте 30 вопросов на 25 мин
Какой заголовочный файл включают в текст программы для использования стандартных входных потоков?
<math. h>
<iostream. h>
<fstream. h>
<iomanip. h>
Оператор cin обеспечивает:
— проверку истинности того или иного условия
— ввод с клавиатуры
— вывод на экран
— многократное повторение одних и тех же действий
Управляющий символ f в выходном потоке осуществляет:
— новая строка, перевод строки
— новая страница, перевод страницы
— знак вопроса
— возврат каретки
Какой заголовочный файл необходимо включить в текст программы на С++ для использования модификатора setw?
— <iostream. h>
— <iomanip. h>
— <fstream. h>
— <math. h>
Алгоритм называется циклическим:
— если ход его выполнения зависит от истинности тех или иных условий
— если его команды выполняются в порядке их естественного следования друг за другом независимо от каких-либо условий
— если он составлен так, что его выполнение предполагает многократное повторение одних и тех же действий
— если он представим в табличной форме
— если он включает в себя вспомогательный алгоритм
По Вашему мнению, какие из перечисленных типов данных являются целыми?
— float
— int
— long
— double
Какие из перечисленных типов данных не являются целыми?
— int
— float
— void
Какие из ниже перечисленных операторов являются операторами циклов?
— switch
— while
— do … while
— else
Какой из ниже перечисленных операторов является оператором проверки условия?
— while
— switch
— for
— if
Какой из ниже перечисленных операторов не является оператором цикла?
— while
— do…while
— все перечисленные операторы — операторы цикла
— for
По вашему мнению, рекурсивная функция – это функция, которая:
— возвращает сама себя
— вызывает сама себя
— проверяет сама себя
Что такое, по вашему мнению, стек?
— Вся доступная область оперативной памяти
— Область оперативной памяти ограниченного размера
— Именованная область жесткого диска
По вашему мнению, содержит ли данный программный код рекурсивную функцию?
#include <iostream. h>
float f(float x)
{
float fc=1;
for(int i=1;i<=x;i++)
fc=fc*i;
return fc;
}
void main ()
{
float ff, st;
for(st=1;st<=10;st++)
{
ff=f(st);
cout<<”значение функции ”<<ff<<endl;
}
}
да
нет
программный код не содержит функций, кроме главной функции
Какая функция требует меньше места в оперативной памяти?
Рекурсивная
Итеративная
Любая функция требует одинакового места в оперативной памяти
Именованная область жесткого диска – это …
файл
стек
функция
драйвер
Выберите правильное утверждение:
— Если при описании класса использовано служебное слово struct, то все его компоненты имеют тип доступа private
— Если при описании класса использовано служебное слово struct, то все его компоненты имеют тип доступа public
— Если при описании класса использовано служебное слово struct, то все его компоненты имеют тип доступа protected
Выберите неправильные утверждения
— Если при описании класса использовано служебное слово struct, то все его компоненты имеют тип доступа private
— Если при описании класса использовано служебное слово class, то все его компоненты имеют тип доступа public
— Если при описании класса использовано служебное слово struct, то все его компоненты имеют тип доступа public
Какие части не входят в состав объекта в объектно-ориентированном программировании?
— Поля объекта
— Адрес объекта
— Указатель на объект
— Методы объекта
— Имя объекта
Разновидность класса, общий вид описания которой выглядит следующим образом
struct <идентификатор>
{
<список членов >
};
Структура
Конструктор
Указатель this
Что, по вашему мнению, не соответствует основным идеям объектно-ориентированного программирования?
— Построение языка программирования, содержащего как можно больше типов данных, и выбор для каждого класса задач некоторого подмножества этого языка.
— Любая большая программа представляет собой совокупность процедур-подпрограмм. Одна из подпрограмм является главной, и с нее начинается выполнение программы.
— Модель реального мира или его части может быть описана как совокупность взаимодействующих между собой объектов.
— Объект представляет собой совокупность данных, методов их обработки (функций) и событий, на которые данный объект может реагировать.
Закончите фразу: «Если структура используется в качестве параметра функции и функция изменяет поля структуры, то она…»
— передается в функцию с помощью адреса, внутри функции в этом случае используются указатели, а для обращения к элементам структуры используется операция «стрелка».
— передается в функцию по имени, внутри функции для доступа к элементам структуры используется операция «точка».
— может содержать функции обработки данных, например, ввод и вывод данных.
По Вашему мнению, с точки зрения С++ правилен ли приведенный код:
#include<iostream. h>
struct Int
{
int a;
void enter() {cout<<”введите целое число”; cin>>a;}
void exit() {cout<<a<<endl;}
}
void main()
{
Int z;
z. enter();
z. exit();
}
— компиляция вызовет ошибку
— компиляция не вызовет ошибку
— ошибка возможна при выполнении, компиляция не вызовет ошибку
— это код не на С++
Продолжите фразу: «Целью введения концепции классов в С++ является…»
— предоставление программисту средств создания новых типов, которые настолько же удобны в использовании, как и встроенные типы.
— предоставление программисту средств усложнения программного кода, чтобы защитить его от внешнего вмешательства
— предоставление программисту средств для упрощения программирования, чтобы сделать программный код более открытым, доступным.
Выберите правильные утверждения
— Класс – это новый тип данных, созданный для того, чтобы исключить использование стандартных типов данных.
— В классе отражены важнейшие концепции объектно-ориентированного программирования: инкапсуляция, наследование, полиморфизм.
— Класс содержит данные и функции, оперирующие этими данными.
— Класс не предоставляет механизм для создания объектов.
Какие служебные слова не используются при определении типа класса?
— class
— include
— main
— union
— switch
— struct
Выберите нестандартные типы данных, которые можно описать с помощью классов
— matrix
— char
— complex
— vector
— float
— int
Продолжите фразу: «Типизированные данные – это…»
— члены-данные класса
— поля объекта, образующие его структуру. Значения полей определяет состояние объекта.
— методы класса, определяющие операции над объектом.
Какие определения НЕ соответствуют понятию «инкапсуляция»?
— это процесс, посредством которого, один объект может приобретать свойства другого
— это свойство, которое позволяет одно и то же имя использовать для решения нескольких задач
— это механизм, который объединяет данные и методы, манипулирующие этими данными, и защищает то и другое от внешнего вмешательства или неправильного использования
Защищенные члены класса объявляют со спецификатором доступа:
— public
— protected
— private
— friend
Формы проявления инкапсуляции в классе:
— при описании класса использовано служебное слово class, внутри класса часть членов класса имеют спецификатор доступа public
— при описании класса использовано служебное слово class, внутри класса часть членов класса имеют спецификатор доступа protected
— при описании класса использовано служебное слово struct, внутри класса часть членов класса имеют спецификатор доступа public
Подберите синоним к слову «данные» класса
— поля класса
— методы класса
— функции класса
— адрес класса
— указатель на класс
Какой способ задания методов класса использован в данном примере?
#include<iostream. h>
class complex
{
float re, im;
public:
void enter();
void exit();
};
void complex::enter()
{
cout<<”введите действительную часть ”; cin>>re;
cout<<”введите мнимую часть”; cin>>im;
}
void complex::exit()
{cout<<re<<”+i”<<im<<endl;}
void main()
{
complex z;
z. enter();
z. exit();
}
— внутри класса помещен прототип функции, а сама функция описана вне класса, при этом перед именем функции указаны имя класса и оператор глобального разрешения
— класс не содержит функций
— функции описаны внутри класса
Выберите наиболее подходящий вариант определения деструктора класса
— это функция, которая не является компонентной функцией класса, но имеет доступ к его защищенным и собственным членам
— нет подходящего варианта
— это функция, предназначенная для упрощения инициализации членов класса и имеющая то же имя, что и класс
— это функция, которая вызывает сама себя до тех пор, пока не выполнится некоторое условие
По Вашему мнению, содержит ли данный класс конструктор?
#include<iostream. h>
class Int
{
int a;
public:
void enter() {cout<<”введите целое число”; cin>>a;}
void exit() {cout<<a<<endl;}
};
— да
— нет
По Вашему мнению, содержит ли данный класс перегруженные конструкторы:
#include<iostream. h>
class complex
{
float re, im;
public:
complex(float, float);
void exit();
complex();
};
— в данном классе нет конструкторов
— да
— не содержит перегруженные конструкторы
Какое свойство объектно-ориентированного программирования использовано в случае определения в классе перегруженных конструкторов?
— Полиморфизм
— Инкапсуляция
— Наследование
— Никакое
Можно ли в классе определить конструктор с одним параметром?
— Да
— Нет
Выберите правильные утверждения:
— деструктор вызывается автоматически без явного вызова функции
— нельзя передавать параметры деструктору
— конструктор вызывается автоматически без явного вызова функции
— нельзя передавать параметры конструктору
Выберите наиболее подходящий вариант определения дружественной функции класса
— Это функция, которая вызывает сама себя до тех пор, пока не выполнится некоторое условие
— Это функция, которая не является компонентной функцией класса, но имеет доступ к его защищенным и собственным членам
— Это функция, которая является компонентной функцией класса и имеет прямой доступ к его защищенным и собственным членам
— Это функция, предназначенная для упрощения инициализации членов класса и имеющая то же имя, что и класс
Правила неявного преобразования типов построены по принципу:
— если при выполнении двухадресной арифметической операции один операнд имеет более узкий диапазон значений, то другой операнд преобразуется к данному типу
— если при выполнении двухадресной арифметической операции один операнд имеет более широкий диапазон значений, то другой операнд преобразуется к данному типу
— если в цикле одна переменная имеет более узкий диапазон значений, то другая переменная преобразуется к данному типу
— если в цикле одна переменная имеет более широкий диапазон значений, то другая переменная преобразуется к данному типу
Стандартные арифметические преобразования выполняются в определенной последовательности. Установите её.
4) если один операнд имеет тип double, другой операнд преобразуется в тип double;
2) если один операнд имеет тип float, другой операнд преобразуется в тип float;
3) операнды имеют тип int.
1) если один операнд имеет тип long, другой операнд преобразуется в тип long;
— 4, 2, 1, 3
— 1, 2, 4, 3
— 4, 3, 2, 1
— 2, 4, 1, 3
По вашему мнению, используется в данном классе преобразование типов?
#include<iostream. h>
class vector
{
int v[15];
public:
void enter();
void exit();
operator int ();
};
да
нет
По вашему мнению, содержит данный класс дружественную функцию?
#include<iostream. h>
class Float;
class vector
{
int v[15];
public:
void enter();
void exit();
operator int ();
friend vector umn(vector, Float);
};
да
нет
Если в описании класса присутствует служебное слово operator, это означает, что определена…
— функция преобразования типов
— функция перегрузки операции
— дружественная функция
Перегрузка операций – это…
— динамическое выделение памяти с помощью оператор new
— использование арифметических операций над переменными стандартных типов
— изменение смысла операции при использовании её с нестандартными типами данных
— использование одного имени для задания общих для класса действий
Отметьте унарные операции
— Инкремент
— Произведение
— Разыменование
— Декремент
— Сложение
Выберите правильные утверждения:
— Функцию перегрузки унарной операции можно определить как компонентную функцию класса с одним параметром;
— Функцию перегрузки бинарной операции можно определить как дружественную функцию класса с двумя параметрами;
— Функцию перегрузки унарной операции можно определить как дружественную функцию класса с одним параметром;
— Функцию перегрузки бинарной операции можно определить как компонентную функцию класса с двумя параметрами;
По вашему мнению, содержит данный класс функцию перегрузки операции?
class complex {
double re, im;
public:
complex (double, double);
friend complex operator+(complex, complex);
void print (void);
};
да
нет
По вашему мнению, содержит данный класс функцию перегрузки бинарной операции?
class vector
{
int v[15];
public:
void enter();
void exit();
operator int ();
};
нет
да
Простым называют наследование, при котором …
— производный класс имеет одного родителя;
— один класс обладает свойствами двух и более родительских классов;
— два и более производных класса имеют более одного родителя;
Преимущества построения иерархии классов:
— производный класс наследует все, связанное с родителем, и добавляет к ним свои собственные определяющие характеристики;
— позволяет объединить общие для нескольких классов свойства в одном классе и использовать его в качестве базового;
— позволяет объединять данные и методы, манипулирующие этими данными, и защищать и то и другое от внешнего вмешательства или неправильного использования;
— позволяет одно и то же имя использовать для решения нескольких технически разных задач
Ключ доступа public означает:
— общедоступные члены класса
— собственные члены класса
— защищенные члены класса
Спецификатор доступа protected имеет смысл использовать …
— в случае построения иерархии классов
— в любом случае
— только со структурами
Выберите правильные утверждения:
— Если класс наследуется со спецификатором public и доступ в базовом классе public, то доступ в производном классе public
— Если класс наследуется со спецификатором private и доступ в базовом классе private, то доступ в производном классе private
— Если класс наследуется со спецификатором public и доступ в базовом классе public, то доступ в производном классе private
— Если класс наследуется со спецификатором private и доступ в базовом классе private, то доступ в производном классе public
Для данного примера построения иерархии классов базовым является класс …
#include<iostream. h>
class _2d
{
protected:
int x, y;
public:
void vvod();
void vivod();
};
class _3d:public _2d
{
int z;
public:
void enter();
void show();
};
_2d
_3d