問題一覧
1
<question> С какими недостатками связано применение многопоточности для параллельных вычислений?
<variant> для взаимодействия потоков требуется применение специальных средств обмена сообщениями
2
<question> В каких состояниях может находиться поток в процессе работы, если он не выполняет операций ввода-вывода, обращений к функциям ядра и не приостанавливается другими потоками?
<variant> "Готовый", "Выполняющийся"
3
<question> К чему приводит вызов метода Thread.Sleep(0)?
<variant> текущий поток снимается с процессора, не дожидаясь завершения выделенного кванта времени
4
<question> В чём преимущества использования пула потоков для параллельной обработки?
<variant> нет накладных расходов на создание и завершение потоков и распределение рабочих элементов по потокам осуществляется автоматически
5
<question> Число рабочих потоков в пуле зависит от следующих факторов:
<variant> возможности вычислительной системы (число процессоров/ядер), загруженность вычислительной системы, параметры пула потоков
6
<question> Объект ThreadPool позволяет ...
<variant> автоматизировать распределение пользовательских задач по рабочим потокам пула
7
<question> При каких условиях поток находится в состоянии "Готовый"?
<variant> выполняющийся поток выгружен по истечении кванта времени, объект типа Thread запущен с помощью метода Start
8
<question> В рабочей функции потока используется переменная SomeVal типа int. В каких случаях переменная является локальной для каждого потока?
<variant> переменная класса, используемого в рабочей функции, объявлена с атрибутом ThreadStaticAttribute, переменная объявлена внутри рабочей функции потока
9
<question> Второй аргумент в вызове метода пула потоков задает ... ThreadPool.QueueUserWorkItem(f, 5);
<variant> аргумент метода f
10
<question> Локальное хранилище потоков может использоваться для хранения ...
<variant> нет правильных ответов
11
<question> Для передачи управления другому потоку, конкурирующему за ядро процессора, на котором выполняется данный поток без прекращения его работы, можно использовать записи:
<variant> Thread.Yield или Thread.Sleep(0)
12
<question> Применение многопроцессного выполнения связано со следующими проблемами:
<variant> накладные расходы, связанные с переключением контекста разных процессов и взаимодействие процессов с помощью специальных средств
13
<question> Для выполнения пользовательских задач с помощью пула потоков необходимо ...
<variant> использовать метод для добавления рабочих элементов QueueUserWorkItem
14
<question> Метод Thread.Yield игнорируется в случае, когда ...
<variant> нет конкуренции за ядро, на котором выполняется текущий поток
15
<question> Преимущества использования многопоточности для параллельных вычислений по сравнению с применением многопроцессности связаны с тем, что:
<variant> потоки работают в едином адресном пространстве, переключение потоков одного процесса занимает меньшее время по сравнению с переключением потоков разных процессов
16
<question> Для ожидания завершения обработки пользовательских рабочих элементов пулом потоков можно использовать ...
<variant> нет правильных вариантов
17
<question> В какое состояние может перейти поток после завершения операции ввода-вывода, если до операции поток выполнялся?
<variant> "Готовый"
18
<question> Определите способ распределения витков цикла между нитями для следующего фрагмента программы: #define N 100 void work(int i); int main () { #pragma omp parallel { #pragma omp for for (int i=0;i<N;i++) work (i); } }
<variant> зависит от реализации компилятора
19
<question> Определите способ распределения витков цикла между нитями для следующего фрагмента программы: #define N 100 #include "omp.h" void work(int i); int main () { #pragma omp parallel { omp_set_schedule (omp_sched_dynamic); #pragma omp for schedule(static) for (int i=0;i<N;i++) work (i); } }
<variant> статический (static)
20
<question> Определите способ распределения витков цикла между нитями для следующего фрагмента программы: #define N 100 #include "omp.h" void work(int i); int main () { #pragma omp parallel { omp_set_schedule (omp_sched_static); #pragma omp for schedule(dynamic) for (int i=0;i<N;i++) work (i); } }
<variant> динамический (dynamic)
21
<question> Определите способ распределения витков цикла между нитями для следующего фрагмента программы: #define N 100 #include "omp.h" void work(int i); int main () { #pragma omp parallel { omp_set_schedule (omp_sched_static); #pragma omp for for (int i=0;i<N;i++) work (i); } }
<variant> зависит от реализации компилятора
22
<question> Определите способ распределения витков цикла между нитями для следующего фрагмента программы: #define N 100 #include "omp.h" void work(int i); int main () { #pragma omp parallel { omp_set_schedule (omp_sched_dynamic); #pragma omp for for (int i=0;i<N;i++) work (i); } }
<variant> зависит от реализации компилятора
23
<question> Определите количество нитей, между которыми будет распределена работа в параллельной области: #define N 100 #include "omp.h" void work(int i); int main () { omp_set_num_threads(2); #pragma omp parallel num_threads(4) { #pragma omp for for (int i=0;i<N;i++) work (i); } }
4
24
<question> Определите количество нитей, между которыми будет распределена работа в параллельной области: #include "omp.h" void work(int i); int main () { int n; n=10; omp_set_num_threads(2); #pragma omp parallel num_threads(4) if (n>20) { #pragma omp for for (int i=0;i<n;i++) work (i); } }
1
25
<question> Определите количество нитей, между которыми будет распределена работа в параллельной области: #include "omp.h" void work(int i); int main () { int n; n=10; #pragma omp parallel num_threads(4) if (n>20) { #pragma omp for for (int i=0;i<n;i++) work (i); } }
1
26
<question> Пусть следующая программа скомпилирована компилятором, поддерживающим вложенный параллелизм. #include <stdio.h> #include "omp.h" int counter; int main() { counter=0; omp_set_nested(0); #pragma omp parallel num_threads(2) { if (omp_get_thread_num() == 0) { #pragma omp parallel num_threads(2) { #pragma omp atomic counter++; } } } printf("Counter=%d\n",counter); } Определите значение переменной counter по завершении выполнения этой программы:
1
27
<question> Пусть следующая программа скомпилирована компилятором, поддерживающим вложенный параллелизм. #include <stdio.h> #include "omp.h" int counter; int main() { counter=0; omp_set_nested(1); #pragma omp parallel num_threads(2) { if (omp_get_thread_num() == 0) { #pragma omp parallel num_threads(2) { #pragma omp atomic counter++; } } } printf("Counter=%d\n",counter); } Определите значение переменной counter по завершении выполнения этой программы:
2
28
<question> Пусть следующая программа скомпилирована компилятором, поддерживающим вложенный параллелизм. #include <stdio.h> #include "omp.h" int counter; int main() { counter=0; omp_set_nested(0); #pragma omp parallel num_threads(2) { #pragma omp parallel num_threads(2) { #pragma omp atomic counter++; } } printf("Counter=%d\n",counter); } Определите значение переменной counter по завершении выполнения этой программы:
2
29
<question> Определите значение переменной team_size по завершении выполнения следующей программы: #include <stdio.h> #include "omp.h" int main() { int team_size; team_size=omp_get_team_size(omp_get_level ()); printf("Team Size=%d\n",team_size); }
1
30
<question> Определите значение переменной team_size по завершении выполнения следующей программы: #include <stdio.h> #include "omp.h" int main() { int team_size; team_size=0; #pragma omp parallel num_threads(2) { if (omp_get_thread_num() == 0) { team_size=omp_get_team_size(omp_get_level ()); } } printf("Team Size=%d\n",team_size); }
2
31
<question> Определите значение переменной team_size по завершении выполнения следующей программы: #include <stdio.h> #include "omp.h" int main() { int team_size; team_size=0; #pragma omp parallel num_threads(2) { if (omp_get_thread_num() == 0) { team_size=omp_get_team_size(0); } } printf("Team Size=%d\n",team_size); }
1
32
<question> Каждая РС локальной вычислительной сети располагает копией СУБД. Организован циклический обмен сегментами БД с тактом Т0 и с количеством т циркулирующих сегментов. Определите целесообразность построения БД с циркулирующей между РС информацией. Т0 = 0,001 с, m = 100, λ =100(запросов в сек.), μ = 500(запросов в сек.)
неравенство, определяющее целесообразность, не выполняется
33
<question> Каждая РС локальной вычислительной сети располагает копией СУБД. Организован циклический обмен сегментами БД с тактом Т0 и с количеством т циркулирующих сегментов. Определите целесообразность построения БД с циркулирующей между РС информацией. Т0= 0,001 с, m = 40, λ=180(запросов в сек.), μ = 200 (запросов в сек.)
<variant> неравенство, определяющее целесообразность, выполняется
34
<question> Каждая РС локальной вычислительной сети располагает копией СУБД. Организован циклический обмен сегментами БД с тактом Т0 и с количеством т циркулирующих сегментов. Определите целесообразность построения БД с циркулирующей между РС информацией. Т0 = 0,0005 с, m = 50, λ=350(запросов в сек.), μ = 400 (запросов в сек.)
<variant> целесообразно
35
<question>// struct_program.cpp
<variant>однострочный комментарий
36
<question>Юникод - стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков
<variant>верно
37
<question>Заголовочные файлы и имя подключаемых библиотек - синонимы.
<variant>верно
38
<question>Такой комментарий начинается с символов /* и заканчивается символами */.
<variant>многострочный комментарий
39
<question>cout << "My first program!" << endl; Выберите верное утверждение
<variant> endl Передает в поток символ новой строки и сбрасывает поток
40
<question>system("pause");
<variant>выполняет задержку с последующим выводом сообщения: Для продолжения нажмите любую клавишу…
41
<question>\r Этот управляющий символ означает
<variant>возврат каретки в начало строки
42
<question>\n Этот управляющий символ означает
<variant>возврат каретки в начало строки
43
<question>\n Этот управляющий символ означает
<variant>новая строка
44
<question>\t Этот управляющий символ означает
<variant>горизонтальная табуляция
45
<question>\v Этот управляющий символ означает
<variant>вертикальная табуляция
46
<question>\a Этот управляющий символ означает
<variant>сигнал бипера (спикера) компьютера
47
<question>\» Этот управляющий символ означает
<variant>двойные кавычки
48
<question>cout << "\t\tcontrol characters C++";
<variant>две табуляции и печать сообщения
49
<question>cout << "\'formatting\' output with \"escape characters\""; Выберите верное сообщение
<variant>одинарные и двойные кавычки
50
<question>cout << "\a\a\a\a\a\a\a\a\a\a\a\a\a\a" <<endl;
<variant>звуковой сигнал биппера
51
<question>Все управляющие символы, при использовании, обрамляются двойными кавычками, если необходимо вывести какое-то сообщение, то управляющие символы можно записывать сразу в сообщении, в любом его месте
<variant>верно
52
<question>a1=1; a2=2; sum= a1 + a2; cout << a1 << "+" << a2 <<"=" << sum << endl;
<variant>Результат/1+2=3
53
<question>a1=1; a2=a1+2; sum= a1 + a2; cout << a1 <<"+" << a2 <<"=" << sum << endl;
<variant>Результат/1+3=4
54
<question>double a1; cin >> a1;
<variant>прочитать число в переменную а1
55
<question>cout <<"8%4=" <<8 % 4<< endl; Здесь % - остаток от деления
<variant>8%4=0
56
<question>cout <<"7%4=" <<7 % 4<< endl; Здесь % - остаток от деления
<variant>7%4=3
57
<question>cout <<"2%4=" <<2 % 4<< endl; Здесь % - остаток от деления
<variant>2%4=2
58
<question>cout <<"12%3=" <<12 %3<< endl;Здесь % - остаток от деления
<variant>12%3=0
59
<question>cout <<"27%11=" << 27 % 11 << endl; Здесь % - остаток от деления
<variant>27%11= 5
60
<question>bool boolean = 25; Тип переменной
<variant>целочисленный (логический) тип данных в диапазоне 0 - 255
61
<question>ASCII (от англ. American Standard Code for Information Interchange) - американский стандартный код для обмена информацией
<variant>верно
62
<question>Согласно ASCII десятичный код английской буквы A равен 65. Десятичный код английской буквы B равен
<variant>66
63
<question>Согласно ASCII десятичный код английской буквы A равен 65. Шестнадцатиричный код английской буквы B равен
<variant>42
64
<question>Согласно ASCII десятичный код английской буквы A равен 65. Двоичный код английской буквы B равен
<variant>1000010
65
<question>Согласно ASCII десятичный код английской буквы A равен 65. Шестнадцатиричный код английской буквы А равен
41
66
<question>Согласно ASCII десятичный код английской буквы A равен 65. Двоичный код английской буквы А равен
<variant>1000001
67
<question>Согласно ASCII десятичный код символа / (слэш) равен 47. Шестнадцатиричный код этого символа равен
<variant>2F
68
<question>Согласно ASCII десятичный код символа нуль равен 48. Шестнадцатиричный код этого символа равен
30
69
<question>Согласно ASCII десятичный код символа / (слэш) равен 47. Двоичный код этого символа равен
<variant>101111
70
<question>Согласно ASCII десятичный код символа единица равен 49. Шестнадцатиричный код этого символа равен
31
71
<question>Согласно ASCII десятичный код символа единица равен 49. Двоичный код этого символа равен
<variant>110001
72
<question>В С++ существует ... операций присваивания
6
73
<question>В языке С++ определены ... операций присваивания
6
74
<question>В С++ существует шесть операций присваивания: = присваивание, += присваивание- сложение, -= присваивание-вычитание, *= присваивание-умножение, /= присваивание-деление, %= присваивание-остаток от деления
variant>верно
75
<question>= , += , -= , *= , /= , %= Это шесть операций
<variant>присваивания
76
<question>value += 256; Это
<variant>value = value + 256;
77
<question>value -= 256; Это
<variant>value = value - 256;
78
<question>value *= 25; Это
<variant>value = value * 25;
79
<question>value /= 25; Это
<variant>value = value / 25;
80
<question>value %= 25; Это
<variant>value = value % 25;
81
<question>value = 25; Это
<variant>значение переменной value равно 25
82
<question>value = 26; Это
<variant>значение переменной value равно шестнадцатиричное 1A
83
<question>value = 28; Это
<variant>значение переменной value равно двоичное 11100
84
<question>value = 23; Это
<variant>значение переменной value равно 23
85
<question>Инкремент это
<variant>увеличение на единицу
86
<question>Декремент - это
<variant>уменьшение на единицу
87
<question>int value = 2011; cout << "++value = " << ++value << endl;
<variant>Результат\++value = 2012
88
<question>int value = 2011; cout << "value++ = " << value++ << endl;
<variant> value++ в cout: значение value печатает, потом значение value увеличивается на единицу
89
<question>int value = 2011; cout << "--value = " << --value << endl;
<variant>Результат\--value = 2010
90
<question>int value = 2011; cout << "--value= " << --value << endl;
<variant>--value в cout: значение value уменьшается на единицу, потом cout печатает value
91
<question>int value = 2010; cout << "++value= " << ++value << endl;
<variant>Результат\++value = 2011
92
<question>int value = 2010; cout << "value++ = " << value++ << endl;
<variant> value++ в cout: печатает value, потом значение value увеличивается на единицу
93
<question>int value = 2011; cout << "value-- = " << value-- << endl;
<variant>Результат\value-- = 2011
94
<question>int value = 2020; cout << "value-- = " << value-- << endl;
<variant> value— в cout печатает value, потом значение value уменьшается на единицу
95
<question>int value = 2011; cout << "++value = " << ++value; cout << " value = " << value << endl;
<variant>Результат\++value = 2012 value = 2012
96
<question>int value = 2011; cout << "value++ = " << value++; cout << " value = " << value << endl;
<variant> Результат\value++ = 2011 value = 2012
97
<question>int value = 2011; cout << "--value = " << --value; cout << " value = " << value << endl;
<variant>Результат\--value = 2010 value = 2010
98
<question>int value = 2011; cout << "value-- = " << value--; cout << " value = " << value << endl;
<variant> Результат\value-- = 2011 value = 2010
99
<question>int value = 2020; cout << "value++ = " << value++; cout << " value = " << value << endl;
<variant>Результат\value++ = 2020 value = 2021
100
<question>int value = 2020; cout << "++value = " << ++value; cout << " value = " << value << endl;
<variant> Результат\++value = 2021 value = 2021