Программирование на языке C++



Переменная типа signed char может принимать значения

  • только символов английского алфавита, цифр и символа подчеркивания
  • (Правильный ответ) из первой половины кодовой таблицы
  • (Правильный ответ) от -128 до 127
  • только из алфавита языка C++

Выберите все правильные ответы.
В переменной типа unsigned char можно хранить число

  • (Правильный ответ) 213
  • -213
  • -13
  • (Правильный ответ) 13
  • 1213

Выберите все правильные ответы.
Элементарные конструкции (лексемы) языка C++ включают в себя:

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

Выберите все правильные ответы.
Алфавит языка C++ включает в себя:

  • символы <, >, =, !
  • (Правильный ответ) прописные латинские буквы
  • (Правильный ответ) цифры
  • (Правильный ответ) строчные латинские буквы

Выберите все правильные ответы.
Элементарные конструкции (лексемы) языка C++ включают в себя:

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

Выберите все правильные ответы.
Элементарные конструкции (лексемы) языка C++ включают в
себя:

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

Выберите все правильные утверждения.

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

Чему равно числовое значение выражения e/2*a-abs(e)*1e0 при e = 4, a = 2?

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

Выберите правильные утверждения:

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

Чему равно значение выражения (a && ! b || c), где a, b и с -величины типа bool, имеющие значения false, true и true соответственно?

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

Какие выражения не содержат синтаксических ошибок?

  • a*exp(t)\(2t)
  • (Правильный ответ) ((cos(3*a+1.*abs(x))))
  • (Правильный ответ) 0XCC00*.34E-4/_do/k-2
  • sin(abs(0.6(e*3))

Чему равно значение выражения (a || b && a || c), где a, b ис — величины типа bool, имеющие значения false, true и true соответственно?

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

Чему равно числовое значение выражения sqrt(4)+142/20*2?

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

Какая из следующих операций языка C выполняется справа
налево?

  • ->
  • ^
  • (Правильный ответ) =
  • []
  • ,

Выберите все правильные утверждения.

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

Какое выражение не содержит синтаксических ошибок?

  • (-0.18)*a)\(r-0.2*t))
  • (-0.18)*a)/(r-0.2*t)
  • (Правильный ответ) -0.18*a/r-0.2*t
  • cos/^2*x+0,2

Найдите операторы вывода, не содержащие ошибок (int k; float x,y)

  • (Правильный ответ) printf («*%4f %d %4.2f*», x, k, y);
  • (Правильный ответ) printf («*%f %d %4f*», x, k, y);
  • (Правильный ответ) printf («*%4f %4d %4.2f*», x, k, y);

Что будет выведено на экран в результате работы программы (учитывая формат вывода)?

#include main() { int i; float t; i = 1; t = 5; printf(«»%3.1f%d%2d»», t, i, i); }

  • 1.01 5
  • 51 1
  • (Правильный ответ) 5.01 1

Выберите все правильные варианты.
При использовании в программме оператора scanf(«%d%d%d»,&a,&b,&c) требуется разделять числовые значения величин при вводе при помощи

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

Какие из выражений имеют значение true?

  • (Правильный ответ) (1 > 3) || ! (1 > 3)
  • (1 < 3) && (2 = = 1)
  • (Правильный ответ) (1 < 3) || (2 = = 1)
  • (Правильный ответ) ! ((1 < 3) && (2 = = 1))
  • (Правильный ответ) (! (1 > 3)) && (1 < 3)

Выберите все правильные варианты.
При использовании в программе функции scanf требуется разделять числовые значения величин при вводе при помощи

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

Выберите все правильные утверждения.
В функции printf для величин действительного типа можно задавать формат
вида printf(«%К.Мf», A), где А — переменная или выражение,

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

Выберите правильные ответы.
Можно ли присвоить значения

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

Выберите все правильные ответы.
Можно ли присвоить

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

Какую величину вычисляет программа?

#include <stdio.h>main(){ int a[3][4]; int i, j, k; for (i = 0; i < 3; i++) for (j = 0; j < 4; j++) scanf(«»%d»»,&a[i][j]); for (i = 0; i < 3; i++) { k = 0; for (j = 0; j < 4; j++) if (a[i][j] > 0) ++k; } printf(«»%d»»,k);}

  • количество положительных элементов массива в каждой строке
  • (Правильный ответ) количество положительных элементов массива в последней строке
  • количество положительных элементов массива в первой строке
  • количество положительных элементов массива
  • количество положительных элементов массива в последнем столбце

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

#include <stdio.h>main(){const char a[] = «»abcrcaab»»;int i; for (i = 0; i < 8; i++) if (a[i] < ‘c’) printf(«»%c»»,a[i]);}

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

Основное правило структурного программирования состоит в том, что:

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

Чему будет равно значение переменной А после выполнения фрагмента программы, если В = 5?

A = 2;if (В <= 4)C = 1;else { C = 0;A = C;}

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

Какое число получится в результате работы программы?

#include <stdio.h>#include <math.h>main(){const int a[8] = {3,8,0,-6,0,-1,-9,3};int i,j,k; k = 0; j = 4; for (i = 0; i < 8; i++) if (abs(a[i]) > j) k = a[i]; printf(«»%d»»,k);}

  • 10
  • -2
  • (Правильный ответ) -9

Какое значение получит «p[0]» в данном примере?

int a[2][3]={{1,2,3},{7,8,9}};int *p=&a[0][2];p+=3;

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

Какую величину вычисляет программа?

#include <stdio.h>main(){ int a[3][4]; int i, j, k; for (i = 0; i < 3; i++) for (j = 0; j < 4; j++) scanf(«»%d»», &a[i][j]); k = -1; for (i = 0; i < 4; i++) { for (j = 0; j < 3; j++) if (a[j][i] == 0) k = i; } printf(«»%d»»,k);}

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

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

int main (){int k;int m;k = 0; m = 0;while (k < 3)++k;++m;return m;}

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

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

main(){int k;int m;m = 1;for (k = 1; k <= 2; k++) {++m; k+=2; }}

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

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

main(){int k;int m;m = 1;for (k = 3; k >= 1; k—) ++m;}

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

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

#include <stdio.h>main(){const char a[] = «»abcrcaab»»;int i;for (i = 7; i > 1; i—) if (a[i] < ‘c’) printf(«»%c»»,a[i]);}

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

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

main(){int k;int m; k = 3; m = 0; while (k > 0){ k—; m++; }}

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

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

#include <stdio.h>void f(char a, char d){ a = d; d = a;}int main(){ char a[] = «»глаз»»; f(a[0],a[3]); puts(a); return 0;}

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

Заголовок функции имеет вид: void P(int a, float b, char& c);
Укажите правильные варианты вызова подпрограммы, если переменные в
вызывающей функции описаны так: float a,b; int c,d; char e;

  • (Правильный ответ) P(c,c,e);
  • (Правильный ответ) P(c%d,sin(d)/3.14,e);
  • (Правильный ответ) P(d,a-b,e);
  • P(a,b,c);

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

#include <stdio.h>int a, b, c, d;void f( int a, int& c, int& d){int b; a = 5; c = 7; b = 9;}int main(){ a = 1; c = 1; b = 1; f(a,c,b); printf («»%d|%d|%d»»,a,c,b); return 0;}

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

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

#include <stdio.h>int a, b, c, d;void f( int& a, int& c, int& d){int b; a = 5; c = 7; b = 9;}int main(){ a = 1; c = 1; b = 1; f(a, b, c); printf («»%d|%d|%d»»,a,c,b); return 0;}

  • (Правильный ответ) 5|1|7
  • 1|9|7
  • 9|5|7

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

#include <stdio.h>int a, b, c, d;void f( int a, int& c, int& d){int b; a = 5; c = 7; b = 9;}int main(){ a = 1; c = 1; b = 1; f(b,a,c); printf («»%d|%d|%d»»,a,c,b); return 0;}

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

Параметр функции описан как «int& a».
Соответствующий ему аргумент может быть:

  • выражением типа, совместимого с int
  • выражением типа int
  • (Правильный ответ) переменной типа int
  • константой типа int

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

#include <stdio.h>void f(char* a, char* b){ a = b; b = a;}int main(){ char a[]=»»abcde»»; char b[]= «»opr»»; f(a,b); puts(a); return 0;}

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

Выберите все правильные утверждения.

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

Выберите все правильные утверждения.

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

Параметр функции описан как «const int a». соответствующий ему аргумент может быть:

  • (Правильный ответ) выражением целого типа
  • (Правильный ответ) переменной целого типа
  • только переменной типа int с именем а
  • выражением любого типа

Заголовок функции имеет вид: void f(int& a, float b, char c);
Укажите правильные варианты вызова функции, если переменные в
вызывающей функции описаны так: int a; char b; float d,x;

  • (Правильный ответ) f(a,a,b);
  • f(2,d,b);
  • (Правильный ответ) f(a,x,’b’);
  • (Правильный ответ) f(a,d-x/2,b);

Заголовок функции имеет вид: void P(int a,char b, float c);
Укажите правильные варианты вызова подпрограммы, если переменные в
вызывающей функции описаны так: char a[10]; float c; int d;

  • P(c,a[4],d);
  • (Правильный ответ) P(3200,’a’,c/2*d);
  • P(a,c,d-1);
  • (Правильный ответ) P(d,a[2],c);

Стиль ООП рекомендует объявлять поля объектов

  • с директивой global
  • с директивой public
  • с директивой local
  • (Правильный ответ) с директивой private
  • без директив

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

  • конструкторы нельзя описывать с модификатором virtual.
  • конструкторы нельзя описывать с модификатором static.
  • конструкторы нельзя описывать с модификатором const.
  • (Правильный ответ) конструкторы наследуются.

Что можно сказать о приведенном примере?

#include <iostream.h>class A{int x;public:A(int y){x = y;}};int main(){ A a; cin >> a.x; return 0;}

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

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

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

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

  • +
  • =
  • (Правильный ответ) ?:

Выберите наиболее подходящий ответ. В объектно-ориентированной программе объекты обмениваются между собой

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

Какое свойство ООП позволяет единообразно обращаться с разными объектами одной иерархии?

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

Что неверно при инициализации ‘y’ в приведенном ниже коде?

class SomeClass { int x; public: SomeClass (int xx) : x(xx) {}; }; SomeClass x (10); SomeClass y(x);

  • это неверно, потому что SomeClass не содержит public конструктора копирования.
  • это неверно, потому что SomeClass не содержит конструктора по умолчанию.
  • это неверно, потому что SomeClass не содержит конструктора копирования.
  • (Правильный ответ) здесь нет ничего неверного. С инициализацией ‘y’ все в порядке.
  • это неверно, потому что SomeClass не содержит виртуального деструктора.

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

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

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

  • конструктор с параметром-объектом.
  • конструктор копирования.
  • конструктор по умолчанию.
  • (Правильный ответ) в этом случае никакой конструктор не вызывается.

Выберите правильный вызов функции-члена класса С через указатель «pmfn»

class Class1 { public: void func(); }; void (Class1::*pmfn)() = &Class1::func; Class1 *c;

  • (c.*pmfn)();
  • c->*pmfn();
  • (Правильный ответ) c->pmfn();
  • c.*pmfn();
  • (c->*pmfn)();

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

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

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

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

В чем, кроме имени, различие между методами «f1()» и «f2()» в приведенном ниже коде?

struct Foo { int f1() { return 0; } int f2(); }; int Foo::f2() { return 0; };

  • f1() — это статическая функция.
  • (Правильный ответ) f1() — это встроенная функция.
  • f2() — private.
  • f2() — это встроенная функция.
  • f2() — это статическая функция.

Основные особенности объективно-ориентированного языка (выберите наиболее точный ответ):

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

При описании метода перед его именем указывается

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

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

  • ?:
  • (Правильный ответ) ->*
  • ::
  • .
  • .*

Выберите правильные утверждения (одно или более).
Упрощение структуры программы всегда приводит

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

Выберите правильные утверждения (одно или более).
Инкапсуляция приводит к

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

Шаблон функции описан как template<class X, class Y, class Z>void f(Y, Z);
Какой из вызовов этой функции неверный?

  • f<int, char*, double>(«Test», 2.0);
  • f<int>(«Test», 2.0);
  • f<int, char*>(«Test», 2.0);
  • (Правильный ответ) f(«Test», 2.0);

Выберите правильное утверждение.
Если класс, производный от абстрактного, не определяет все чисто виртуальные функции, он является:

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

Какое из следующих утверждений является примером полиморфизма?

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

Что необходимо поставить на место «???» в приведенном примере так, чтобы класс C не имел доступа к неоткрытым (non-public) членам класса A?

class A {// … }; class B : ??? A {}; class C : public B {};

  • (Правильный ответ) private
  • virtual
  • public
  • protected
  • virtual protected

Выберите правильное утверждение.

class A {}; class B : protected А {};

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

Какой уровень доступа имеет переменная «x» из класса «derived» в приведенном примере?

class basex { protected: int x; }; class derived : private basex {};

  • public
  • (Правильный ответ) private
  • global
  • protected
  • local

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

class Base{ public: Base(int _x = 10){x = _x;} void f() {cout<<x*2<<endl;} protected: int x;};class Derived: public Base{ public: void f() {cout<<x/2<<endl;} };int main(){ Derived d; Base* pB= &d; pB->f(); return 0;}

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

Какой уровень доступа имеет переменная «x» из класса «derived» в приведенном примере?

class basex { public: int x; }; class derived : basex {};

  • global
  • (Правильный ответ) private
  • public
  • local
  • protected

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

class Base{ public: Base(int _x=10){x=_x;} virtual void f() {cout<<x*2<<endl;} protected: int x;};class Derived: public Base{ public: void f() {cout<<x/2<<endl;}};int main(){ Derived d; Base* pB= &d; pB->f(); return 0;

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

Какое из приведенных утверждений об абстрактном классе является НЕПРАВИЛЬНЫМ?

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

Какой уровень доступа имеет переменная «x» из класса «derived» в приведенном примере?

class basex { protected: int x; }; class derived : protected basex {};

  • global
  • public
  • local
  • (Правильный ответ) protected
  • private

Почему приведенный ниже фрагмент кода НЕВЕРЕН?

namespace f { struct Obj { struct T; template<class T, class f> virtual void f() { } }; };

  • предварительное описание Т конфликтует с параметром шаблона T.
  • классы и структуры не могут содержать шаблоны методов.
  • параметр шаблона f конфликтует с именованной областью f.
  • здесь все верно.
  • (Правильный ответ) виртуальные методы не могут быть шаблонами.

Какое число получится в результате работы программы?

#include <stdio.h>main(){const int a[8] = {3,8,0,-6,0,-1,-9,3};int i,j,k; k = 0; j = 2; for (i = 0; i < 8; i++) if (a[i] < j) ++k; printf(«»%d»»,k);}

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

Какое значение получит «p[0]» в данном примере?

int a[2][3]={{1,2,3},{7,8,9}};int *p=&a[0][0];p+=2;

  • 1
  • 8
  • 7
  • (Правильный ответ) 3
  • значение не определено

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

for (int ii = 0; ii < 3; ++ ii) { switch (ii) { case 0: cout << «»ZERO»»