Язык программирования C++



Что выведет следующая программа ?

#include <iostream.h>int main() {     int 1_i ;     for( 1_i = 0; 1_i < 9; 1_i++)     cout << 1_i +1;     return 1;}

  • цифры от 0 до 8
  • (Правильный ответ) программа не будет построена из-за ошибок
  • цифры от 1 до 9

Существует файл «test.dat» в котором записано «Hello World».Каково будет содержимое файла после выполнения кода:

ofstream outfile(«»c:\\test.dat»»); if (!outfile) { cout << «»Ошибка создания файла»»; return 1; } outfile << «»!!!»» << endl; outfile.close();

  • (Правильный ответ) !!!
  • Hello World!!!
  • Hello World

Вызовет ли данный код ошибку компиляции?

class Rectangle{ public: int a,b; int sum(); int square(); ~rect(); };

  • да, имя деструктора не может начинаться с маленькой буквы
  • нет, все записано верно
  • (Правильный ответ) да, имя деструктора должно совпадать с именем класса

Для того чтобы вывести символ новой строки, надо:

  • (Правильный ответ) воспользоваться специальным манипулятором endl
  • при выводе строки символов перевод строки добавляется автоматически
  • закончить оператор точкой с запятой

Какой будет результат выполнения следующего кода?

class A {public:     int y;     int inc(int x) { return ++y; };     int inc(short x) { return x + y; };};A obj; int y = 5; obj.y = 6;cout << obj.inc(y);

  • 11
  • ошибка компиляции
  • 6
  • (Правильный ответ) 7

В каком случае описание класса верно?

1. class A{ public: int x; int summ(int a){return x+a;}};2. class my_cl{ public: int f; int summ(int a){return x+a;}};3. class B{ public: int F; void Ch_F(int x) { F=x; return F; }};

  • в третьем
  • (Правильный ответ) в первом
  • во втором

Функция вычисляет произведение двух чисел. Исходные данные вводятся с клавиатуры. Какие проверки целесообразно ввести в программе?

  • проверка, что исходные данные являются числами и эти числа больше нуля
  • (Правильный ответ) проверка, что исходные данные являются числами
  • проверка исходных данных на равенство нулю
  • проверки не нужны, все возможные ошибки отловит компилятор

Что выведет программа в стандартный поток вывода?

class A{ public : int a, b; protected : int z; private : short id; } A1;class B : protected A{ public : short t; void ff(short a) { id = ++a; }} B1;int main(){ B1.ff(20); cout << B1.id;}

  • 20
  • 0
  • 21
  • (Правильный ответ) ошибка

Для чего предназначен оператор namespace?

  • для заключения в группу объявлений классов, переменных и функций для использования только в текущем модуле
  • (Правильный ответ) для заключения в группу объявлений классов, переменных и функций в отдельный контекст со своим именем
  • для использования классов, переменных и функций из других модулей программы без использования заголовочных файлов

Какие компоненты могут входить в интегрированную среду программирования

  • (Правильный ответ) компилятор
  • (Правильный ответ) текстовый редактор
  • (Правильный ответ) отладчик

Укажите все ключевые слова в приведенном примере?

int calc(int a, int b, bool f) { if (f==1) return a+b; else return a*b; }

  • (Правильный ответ) int,bool,if,else,return
  • int,calc,bool,return,if,else
  • int,if,else,return

Если определена операция вычитания для двух объектов класса A, а операция преобразования к int не определена, что будет вызвано при

A a1,a2,a3=5;a3 = a1 – a2;

  • только операция вычитания
  • преобразование к целому
  • (Правильный ответ) произойдет ошибка
  • операция вычитания, а затем преобразование к целому

Шаблон A и его специализации объявлены следующим образом:

template <class T> class A{ public: A(){ printf(«»1 «»);}};template <> class A<int>{ public: A(){ printf(«»2 «»);}};template <> class A<char*>{ public: A(){ printf(«»3 «»);}};

Какой будет результат после выполнения кода

A<int> a;A<char> a1;A<long> a2;

  • ошибка компиляции в строке «template <> class A<int>»
  • 2 3 1
  • 1 1 1
  • (Правильный ответ) 2 1 1

Что будет на экране после выполнения программы

int m = 5; namespace space1 { int x1 = 1; namespace space2 { int x1 = 3 + ::m + space1::x1; } } int main() { int x3 = space1::space2::x1 * 2; { int x3 = 20; } cout << x3; return 0; }

  • (Правильный ответ) 18
  • 20
  • ошибка компиляции
  • 4

Какой из наборов перечисляемых значений записан правильно?

  • enum { a, b = 3, c = 4, 3 };
  • (Правильный ответ) enum {a, b = 3, c, d };
  • enum { a, b, 3, 4 };

В чем различие использования следующих выражений #include <…> и #include «…»

  • в различии использования заголовочных и исходных файлов
  • нет различий
  • (Правильный ответ) различие заключается в методе поиска препроцессором включаемого файла

Чему будет равен результат вычисления выражения: int d=5; bool b = true, c; c = (!b||(d>3));

  • (Правильный ответ) true
  • Ошибка компилятора
  • false

Если в арифметическом выражении участвуют целый и вещественный операнды, то:

  • (Правильный ответ) целый тип приводится к вещественному
  • ошибка компиляции
  • вещественный тип приводится к целому

Что будет выведено в результате выполнения данного кода?

int f1(int x1, int &x2) { return ++x1 + (++x2); } int main() { int a = 7, k = 1; k = f1(a, k); cout << a << «» «» << k; }

  • 7 1
  • (Правильный ответ) 7 10
  • 8 10

Что будет на экране после выполнения программы

#include <iostream.h>short x = 4, i = 0;void fun1(){ double p=2; if (!i) throw p; }void fun2(){ —x; fun1(); x++; }int main(){ try { fun2(); } catch (double) { cout << «»Exception «»; } cout << x << «» «» << i; }

  • (Правильный ответ) Exception 3 0
  • Ошибка компиляции
  • Exception
  • 4 0

Для чего предназначен фрагмент текста из заголовочного файла:

//Пример файла test.h#ifndef TEST#define TEST//прочие строки кода#endif

  • (Правильный ответ) для защиты от повторного включения файла test.h
  • для определения символьной константы Test
  • для целей отладки
  • для защиты от удаления
  • для защиты от копирования

Укажите в каком выражении произойдет потеря точности

  • (Правильный ответ) int i; float x = 2.134, y = 3.14; i = x/y;
  • float M = 235.2; double Z = 3; Z *= M;
  • short i = 0x3; float x = 2.7, v; v = i + x;

Какой результат будет у следующего выражения?

const char* str1 = «»hello»»; char* str2 = const_cast ( char* ) str1; cout << str2;

  • hellohello
  • h
  • (Правильный ответ) ошибка компиляции
  • hello

Если после выражения стоит точка с запятой, то

  • выражение вычисляется только если первой стоит операция присваивания
  • (Правильный ответ) это оператор-выражение, действие которого заключается в вычислении выражения
  • выражение вычисляется, а его значение запоминается в специальной переменной, которую можно использовать в следующем операторе

Что из себя представляет динамическое выделение памяти?

  • (Правильный ответ) память под объект (переменную) может выделяться не сразу, а в процессе работы программы, освобождение памяти производится вручную
  • память под объект (переменную) выделяется каждый раз при обращении к переменной
  • память под объект (переменную) может выделяться не сразу, а в процессе работы программы, освобождение памяти производится автоматически после завершения программы

Отметьте истинные высказывания:

  • переменная инициализируется, потом объявляется
  • (Правильный ответ) переменная объявляется, потом изменяется
  • переменная объявляется, потом инициализируется и изменяется

Какой правильный вариант описания шаблона семейства классов?

  • template {class T}class Array{. . . }
  • (Правильный ответ)
    template <class T>class Array{. . . };
  • template (class T)class Array{. . . };

Какие операции поддаются перегрузке?

  • только унарные
  • (Правильный ответ) унарные и бинарные
  • только бинарные

В каком случае программа выведет строку на консоль

  • #include <iostream.h>using namespace std;void main(){ cout < «»Hello, world!»» < endl; return;}
  • (Правильный ответ)
    #include <iostream.h>using namespace std;int main(){ cout << «»Hello, world!»» << endl; return 1;}
  • #include <iostream.h>using namespace std;void main(){ cout >> «»Hello, world!»» >> endl; return;}

Если в программе уже имеется функция с прототипом int func(int k, double f), то какое из следующих объявлений не вызовет ошибки компиляции?

  • void func(int m, double g = 3.14)
  • (Правильный ответ) int func(double x, int y)
  • double func(int m, double g)

С помощью какого метода можно изменить текущую позицию в файле?

  • open
  • put
  • (Правильный ответ) seekp

Какой результат будет у следующего выражения?

int main() { try { try { try { throw 1; } catch (int) { cout << «»Exception 1″»; } } catch (int) { cout << «»Exception 2″»; } } catch (int){ cout << «»Exception 3″»; } return 0; }

  • Exception 1Exception 2Exception 3
  • Exception 3
  • Exception 2
  • Exception 1Exception 2
  • (Правильный ответ) Exception 1

Какой правильный вызов функции базового класса из объекта производного класса, если в производном классе эта функция была замещена?

  • (Правильный ответ) Base::FunctionName();
  • FunctionName();
  • Base.FunctionName();
  • такую функцию вызывать нельзя.

Отметьте истинное высказывание, если вызываются подряд несколько функций:

  • последовательность выполнения функций определяется компилятором
  • все функции выполняются одновременно
  • (Правильный ответ) после выполнения одной функции управление переходит к следующей

Что будет напечатано в результате выполнения следующего кода?

char x[] = «»Hello, world»»; char* p = x; p += 4; cout << *p;

  • Hello, world
  • o, world
  • (Правильный ответ) o

Функция объявлена как friend класса. Отметьте верное.

  • (Правильный ответ) функция имеет доступ к внутренним атрибутам класса
  • ключевое слово friend не оказывает влияния на функции и операторы
  • функция-оператор должна иметь в качестве первого аргумента объект данного класса

Какой результат будет у следующего выражения?

int m = 1, n=2; double A = (double)m/n; cout << A;

  • 0
  • 1
  • ошибка компиляции
  • (Правильный ответ) 0.5

В каких случаях код будет работать правильно

…vector <int> IntVector;//объект класса вектор/*запись значений в IntVector*/int d=IntVector[0];… }

  • (Правильный ответ) если оператор [] переопределен соответствующим образом
  • если существует элемент IntVector[0]
  • ничего, так как эта запись ошибочна

Процесс компиляции программы

  • приводит программы к единообразному внешнему виду
  • (Правильный ответ) переводит исходный текст в исполняемый файл
  • для языка Си++ необязателен

Какой массив имеет самый большой размер?

char *s1= «»QWERTY»»;char s2[7]= «»qwerty»»;char *s3= «»127*27″»;

  • s3
  • s1
  • (Правильный ответ) Все массивы имеют одинаковый размер
  • s2

Существует файл «c:\test.dat» в котором записано «Hello World».Каково будет содержимое файла после выполнения кода:

ofstream outfile(«»c:\\test.dat»»,ios::in); if (!outfile) { cout << «»Ошибка создания файла»»; return 1; } outfile << «»!!!»»; outfile.close();

  • (Правильный ответ) !!!lo World
  • Hello World!!!
  • !!!

Является ли x переменной или константой?

y = 12 + x;

  • является константой
  • (Правильный ответ) определить нельзя
  • является переменной

Что описывает данная строка программы: float mas=new int[3][2]?

  • (Правильный ответ) данная строка представляет собой ошибочную запись и работать не будет
  • создание одномерного динамического массива из 3 элементов
  • создание двумерного динамического массива размерности 3*2
  • создание одномерного динамического массива из 2 элементов

Может ли нестатический метод иметь доступ к статическим методам и атрибутам?

  • не может
  • (Правильный ответ) может

Отметьте все утверждения, которые считаете верными:

  • (Правильный ответ) в качестве описания шаблона функции используется прототип шаблона: template <список _параметров _шаблона >
  • (Правильный ответ) цель введения шаблонов – создание функций, которые могут обрабатывать разнотипные данные
  • нельзя с помощью шаблона создать функцию с таким же именем, как у явно определенной функции

Определите результат выполнения следующего кода:

float *thingPtr = new float (3.14159)

  • возникнет ошибка компиляции, поскольку нельзя задавать значение переменной в процессе её создания
  • (Правильный ответ) данная строка задает значение объекту типа float
  • возникнет ошибка компиляции, поскольку при создании объекта не указан размер выделяемой памяти

Если в арифметическом выражении участвуют короткое целое и длинное целое, то:

  • ошибка компиляции
  • длинное приводится к короткому
  • (Правильный ответ) короткое приводится к длинному

Что будет выведено на экран?

template <class T> class A { public : T x1; T x2; T func(T x3) { x3 += x1 + x2; return x3; } }; int main() { A <int> A1; A1.x1 = 3; A1.x2 = 10; cout << A1.func(1); …. }

  • (Правильный ответ) 14
  • 11
  • 10
  • ошибка компиляции

Чему равно значение выражения !((1 || 0) && 0) ?

  • ошибка компиляции
  • 0
  • (Правильный ответ) 1

Может ли статический метод класса быть объявлен как friend?

  • не может
  • (Правильный ответ) может

Если int n=3, какой будет результат ?

switch(n) {case 2: cout << «»ааа»»; break;case 3: cout << «»ббб»»; break;default: cout << «»ввв»»; break; }

  • ошибка компилятора
  • ввв
  • ааа
  • (Правильный ответ) ббб
  • неопределенное поведение

С помощью механизма friend можно разрешить обращение к внутренним элементам класса:

  • (Правильный ответ) всем методам другого класса
  • (Правильный ответ) отдельной функции
  • (Правильный ответ) отдельному методу другого класса

Что вычисляет эта функция:

double func(double x, int n) {      if (n == 0) return 1;      if (x == 0) return 0;      if (n > 0) return x * func(x, n-1);      if (n < 0) return func(x, n+1) / x; }

  • факториал
  • любую степень любого числа
  • (Правильный ответ) целую степень любого числа
  • дробную степень вещественного ненулевого числа

Укажите какому классу принадлежит атрибут Z1

class t { public: double sum::Z1;} C; class sum { public: double t::Z1;} D;

  • обоим классам
  • классу t
  • (Правильный ответ) запись неверна

Что будет выведено на экран в результате выполнения кода?

int a=3;if (a>1) cout << «»1″»;else if(a>2) cout << «»2″»;else if(a>3) cout << «»3″»;

  • (Правильный ответ) 1
  • 12
  • 123

Что будет на экране после выполнения программы

#include <iostream.h>short x = 4, i = 0;void fun1(){ if (i == 0) throw 2; }int fun2(){ —x; fun1(); x++; return x; }int main(){ try { fun2(); } catch (int) { cout << «»Exception «»; } cout << x << «» «» << i; }

  • ошибка компиляции
  • Exception 4 0
  • Exception
  • (Правильный ответ) Exception 3 0

Если функция вычисления факториала n имеет прототип int fact(int n), отметьте код, использующий рекурсию и правильно вычисляющий значение факториала:

  • (Правильный ответ)
    {if (n == 0 || n==1) return 1; else return n * fact (n -1);}
  • {if (n == 0 || n==1) return 1; else return fact(n)*(n-1);}
  • {if (n == 0 || n==1) return 1; else return fact(n) * fact(n-1);}
  • {if (n == 0 || n==1) return 1; else return fact(n);}

В каком случае компилятор выдаст ошибку:

  • (Правильный ответ) int int iCeloe;
  • bool LD1LW;
  • (Правильный ответ) const float fL = 32; float e23 = 1; fL = e23;

Известно, что в классе A определен один публичный конструктор A(int);. Выберите из предложенных выражений компилируемые:

  • A *a(4);
  • A a;
  • (Правильный ответ) A *a = new A(4);
  • (Правильный ответ) A a(4);

Определите размер структуры

struct {char fio[30];unsigned char date:4;unsigned char code:4;};

  • 9 байт
  • (Правильный ответ) 31 байт
  • 38 байт
  • 39 байт

Укажите правильный идентификатор для имени переменной:

  • FA_Ф12
  • int
  • 2a
  • (Правильный ответ) _ri18

Если есть два объявления int qwerty; int QWERTY; какое из
утверждений верно

  • такие имена переменных недопустимы
  • (Правильный ответ) объявления правильные
  • такие объявления недопустимы, так как мы пытаемся создать две одинаковые переменные

Какой статус международного стандарта языка Си++?

  • (Правильный ответ) принят ISO и тем самым автоматически принят во всех странах
  • принят проект стандарта, дорабатывается
  • принят только в США и ждет одобрения международной организации

Битовой операцией является

  • (Правильный ответ) &
  • ||
  • +
  • !=
  • =

Какой результат будет у следующего выражения?

int main() { try { try { try{ throw 1; } catch (float) { cout << «»Exception 1″»; } } catch (int){ cout << «»Exception 2″»; } } catch (int){ cout << «»Exception 3″»; } return 0; }

  • Exception 1Exception 2Exception 3
  • Exception 1
  • Exception 1Exception 2
  • (Правильный ответ) Exception 2
  • Exception 3

Какое из следующих объявлений является объявлением неизменяемого указателя?

  • (Правильный ответ) int* const ptr;
  • const int* ptr;
  • int * ptr const;
  • int const* ptr;

Допустима ли следующая конструкция?

class A {     int x;     int f(const A& a)      {            x = 0;           x += a.x;            return x;      } };

  • произойдет ошибка компиляции
  • (Правильный ответ) допустима
  • произойдет ошибка при выполнении

Будет ли вызываться конструктор, если в программе встретится следующaя конструкция:

monstr Super(200, 300), Vasia(50), Z;monstr X = monstr(1000);monstr Y = 500;

  • (Правильный ответ) да, будет
  • нет, не будет
  • данный код вызовет ошибку компиляции
  • данная конструкция содержит синтаксическую ошибку

Что понимается под потоком в языке C++

  • обмен данными между программами
  • (Правильный ответ) механизм ввода-вывода
  • обмен данными между компилятором и функцией main

Что будет выведено в результате выполнения следующего кода?

int a[4] = { 1,2,3,4}; int* p = a; cout << (*p+2) + *p;

  • (Правильный ответ) 4
  • 6
  • 10
  • адрес памяти

Что будет на экране после выполнения программы

#include <iostream.h>short x = 4, i = 0;void fun1(){ if (i == 5) throw 2; }void fun2(){ —x; fun1(); x++; }int main(){ try { fun2(); } catch (int) { cout << «»Exception «»; } cout << x << «» «» << i;}

  • Exception 4 0
  • (Правильный ответ) 4 0
  • Exception
  • Exception 3 0

Могут ли контексты быть вложенными?

  • могут, при определенных условиях
  • не могут
  • (Правильный ответ) могут

Что будет на экране после выполнения данного кода

{ int ar[4]; ar[0]=1; ar[1]=2; ar[2]=3; ar[3]=4; for (int i = 0; i<=4; i++) cout << ar[i]; }

  • результат невозможно предсказать
  • 1234
  • код не выполнится из-за ошибки компиляции
  • (Правильный ответ) 1234 и случайное число

Чему равен результат вычисления выражения

b – x * 3 + b

при x = 12 и b = 8 ?

  • -4
  • (Правильный ответ) -20
  • -124

Если имеется код

class A { public: int a; };A obj;

как обратиться к переменной a?

  • (Правильный ответ) obj.a
  • obj-a
  • obj::a

В каких выражениях правильно определен метод класса Ping?

class Ping { public: float f, d; int a; void MathFunc(double D);};

  • Ping::MathFunc(double D) {f = D;}
  • (Правильный ответ) void Ping::MathFunc(double D) {this->f = D;}
  • (Правильный ответ) void Ping::MathFunc(double D) {f = D;}

В чем заключается принцип полиморфизма?

  • в использовании виртуального наследования
  • (Правильный ответ) в наличии виртуальных методов
  • в наличии множественного наследования

Какие бывают конструкторы?

  • инициализирующий
  • (Правильный ответ) по умолчанию
  • (Правильный ответ) с параметрами
  • (Правильный ответ) копирующий

Какой результат следующего выражения ?

int *a; int b[2]; a = b; b[0] = 7; b[1] = 10; *a++; cout << *a;

  • (Правильный ответ) 10
  • 7
  • 8
  • 11

Что является результатом компоновки программы?

  • набор заголовочных файлов с определением в них всех используемых функций
  • (Правильный ответ) исполняемый файл или библиотека
  • заголовочный файл

Если имеется объявление char ch1=’a’,ch2=’b’,ch3=’c’;
допустима ли запись ch1=ch2+ch3;

  • нет
  • (Правильный ответ) да

Если объявлен тип

struct Value {double tt; //Размер переменной типа double 64 битаunion number { short sx; // Размер переменной типа short 16 битов long lx; // Размер переменной типа long 32 бита double dx; // Размер переменной типа double 64 бита } val;};

сколько байтов занимает один объект такого типа?

  • 176
  • (Правильный ответ) 16
  • 28
  • 8

Если функция вычисления суммы целых чисел от 1 до n имеет прототип int sum(int n), запишите определение функции, используя рекурсию:

  • (Правильный ответ)
    {if (n == 1) return 1; else return n + sum (n – 1);}
  • {if (n == 1) return 1; else return sum(n);}
  • {if (n == 1) return 1; else return sum(n) + sum (n-1);}
  • {if (n == 1) return 1; else return sum(n) + (n – 1);}

Что происходит при попытке выполнить оператор return внутри блока catch?

  • (Правильный ответ) выход из функции
  • повторное создание обрабатываемой исключительной ситуации
  • ошибка компиляции
  • аварийная остановка программы
  • ошибка выполнения

Чему равен результат вычисления выражения

x + 3 * b + x

при x = 12 и b = 8 ?

  • 132
  • 300
  • (Правильный ответ) 48

Что выполняет операция «delete [] v;» в данном ниже коде:

class MyClass { int sz; // число элементов int * v; // указатель на целые public: MyClass ( int ); ~MyClass (); int&operator [] ( int index ); // операция индексации };…MyClass::~ MyClass() { delete [] v; }

  • удаляет последний элемент из массива «v»
  • (Правильный ответ) удаляет весь массив «v», освобождая память
  • удаляет указатель на массив «v» из памяти
  • удаляет первый элемент из массива «v»

Е