Главная / Программирование /
Язык программирования C++ / Тест 15
Язык программирования C++ - тест 15
Упражнение 1:
Номер 1
У какой переменой в данном коде самое короткое "время жизни"?
char foo(char my_ch)
{
char ch= my_ch;
static int flag = 1;
if (flag){
char p;
p=ch;
ch=ch+1;
}
.....
return ch;
}
Ответ:
 (1) p
 
 (2) flag
 
 (3) ch
 
Номер 2
У какой переменой в данном коде самое длинное "время жизни"?
char foo(char my_ch)
{
char ch= my_ch;
static int flag = 1;
if (flag){
char p;
p=ch;
ch=ch+1;
}
.....
return ch;
}
Ответ:
 (1) p
 
 (2) flag
 
 (3) ch
 
Упражнение 2:
Номер 1
Если в функции main()
выполняется
...
int a=9; // в глобальном пространстве
void f() { int a; a = 4; }
...
cout << a;
то что будет выведено?
Ответ:
 (1) 9
 
 (2) 0
 
 (3) 4
 
 (4) другой 
Номер 2
Если имеется программа
int a = 7; //в глобальном пространстве
void f() { static int a; a += 5; }
и в функции main()
выполняется
f(); cout << a;
то какой будет результат?
Ответ:
 (1) 5
 
 (2) 7
 
 (3) 12
 
 (4) другой 
Номер 3
Если имеется программа
int a; //в глобальном пространстве
void f() { extern int a; a = 8; }
и в функции main()
выполняется
a = 3; f(); cout << a;
то какой будет результат?
Ответ:
 (1) 0
 
 (2) 8
 
 (3) 3
 
 (4) другой 
Упражнение 3:
Номер 1
Отметьте все верные утверждения о статических атрибутах класса:
Ответ:
 (1) по умолчанию помещаются в public
часть класса 
 (2) существуют в единственном экземпляре, независимо от количества объектов 
 (3) инициализируются при создании первого объекта 
 (4) не могут изменяться 
 (5) инициализируются в начале выполнения программы 
Номер 2
Отметьте все верные утверждения о статических методах класса:
Ответ:
 (1) не могут иметь аргументов по умолчанию 
 (2) не существуют до создания первого объекта класса 
 (3) не могут объявляться со словом const
в конце объявления 
Номер 3
Можно ли создать объект класса, у которого все атрибуты и методы – статические?
Ответ:
 (1) да, можно 
 (2) вызовет ошибки компиляции 
 (3) вызовет ошибку выполнения 
Упражнение 4:
Номер 1
Объявление extern int f;
означает:
Ответ:
 (1) переменная определена в другом исходном файле 
 (2) переменная определена в стандартной библиотеке 
 (3) переменная может быть использована только в этом файле 
Номер 2
Могут ли контексты быть вложенными?
Ответ:
 (1) могут 
 (2) не могут 
 (3) могут, при определенных условиях 
Номер 3
Запись ::func(x)
означает, что
Ответ:
 (1) функция func
написана на ассемблере 
 (2) вызывается функция из анонимного контекста 
 (3) вызывается функция из глобального контекста 
 (4) вызывается функция, определенная в другом файле 
 (5) функция func
имеет тип void
 
Упражнение 5:
Номер 1
Может ли статический метод класса быть объявлен как friend
?
Ответ:
 (1) не может 
 (2) может 
Номер 2
Может ли нестатический метод иметь доступ к статическим методам и атрибутам?
Ответ:
 (1) может 
 (2) не может 
Номер 3
Какие из перечисленных операций не являются операциями доступа к атрибуту класса?
Ответ:
 (1) "<-"
 
 (2) "."
 
 (3) ":"
 
Упражнение 6:
Номер 1
Что является минимальной областью видимости имен?
Ответ:
 (1) модуль 
 (2) блок 
 (3) функция 
 (4) класс 
Номер 2
Для чего предназначен оператор namespace
?
Ответ:
 (1) для заключения в группу объявлений классов, переменных и функций в отдельный контекст со своим именем 
 (2) для заключения в группу объявлений классов, переменных и функций для использования только в текущем модуле 
 (3) для использования классов, переменных и функций из других модулей программы без использования заголовочных файлов 
Номер 3
Контекст пространства имен может содержать:
Ответ:
 (1) только объявления переменных 
 (2) объявления и определения переменных 
 (3) другие контексты 
Упражнение 7:
Номер 1
Что будет выведено в стандартный поток в результате выполнения программы
int main()
{ int x1 = 5;
x1 = x2 - 2;
int x2 = x1;
cout << x2;
return 0;
}
Ответ:
 (1) -2
 
 (2) 5
 
 (3) 0
 
 (4) ошибка компиляции 
Номер 2
Что будет на экране после выполнения программы
func() { int a = 10; }
int main()
{ int x2 = a + 1;
cout << x2;
return 0;
}
Ответ:
 (1) 11
 
 (2) 1
 
 (3) 12
 
 (4) ошибка компиляции 
Номер 3
Что будет на экране после выполнения программы
namespace t
{ char * c = "Hi"; }
int main()
{
char * x2 = c;
cout << x2;
return 0;
}
Ответ:
 (1) Hi
 
 (2) H
 
 (3) ошибка компиляции 
Упражнение 8:
Номер 1
namespace a {
int a;
void A() { static int a = 4; };
};
Какой будет результат выполнения cout << a::A::a;
в функции main
?
Ответ:
 (1) 4
 
 (2) 0
 
 (3) ошибка компиляции 
 (4) ошибка выполнения 
Номер 2
Что будет на экране после выполнения программы
int m = 5;
namespace space1
{ int x1 = 3;
namespace space2
{ int x1 = 2 + ::m + space1::x1; }
}
int main()
{ int x3 = space1::space2::x1 * 2;
{ int x3 = 10; }
cout << x3;
return 0;
}
Ответ:
 (1) 10
 
 (2) 20
 
 (3) 13
 
 (4) ошибка компиляции 
Номер 3
Что будет на экране после выполнения программы
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;
}
Ответ:
 (1) 20
 
 (2) 18
 
 (3) 4
 
 (4) ошибка компиляции