Муниципальная контрольная работа по информатике 10 класс (с ответами)

Муниципальная контрольная работа (10 класс)
Вариант 1
1. Сколько существует натуральных чисел x, для которых выполнено неравенство
11011000
2
≤ x ≤ DF
16
? В ответе укажите только количество чисел, сами числа писать не
нужно.
2. Для кодирования растрового рисунка, напечатанного с использованием шести красок,
применили неравномерный двоичный код. Для кодирования цветов используются
кодовые слова.
Цвет
Кодовое слово
Белый
0
Зелёный
11111
Красный
1110
Цвет
Кодовое слово
Синий
Фиолетовый
11110
Чёрный
10
Укажите кратчайшее кодовое слово для кодирования синего цвета, при котором код будет
удовлетворять условию Фано. Если таких кодов несколько, укажите код с наименьшим
числовым значением.
Примечание. Условие Фано означает, что никакое кодовое слово не является началом
другого кодового слова. Это обеспечивает возможность однозначной расшифровки
закодированных сообщений.
3. У исполнителя Троечник две команды, которым присвоены номера:
1. прибавь 2,
2. умножь на 3.
Первая из этих команд увеличивает число на экране на 2, а вторая — умножает его на 3.
Программа исполнителя Троечник — это последовательность номеров команд. Например,
1211 это программа
прибавь 2
умножь на 3
прибавь 2
прибавь 2
Эта программа преобразует, например, число 2 в число 16.
Запишите программу, которая преобразует число 12 в число 122 и содержит не более 5
команд. Если таких программ более одной, запишите любую из них.
4. Запишите число, которое будет напечатано в результате выполнения следующей
программы.
Бейсик
DIM S, N AS INTEGER
S = 25
N = 1
WHILE N < 21
S = S 1
N = N + 2
WEND
PRINT S
Паскаль
var s, n: integer;
begin
s := 25;
n := 1;
while n < 21 do
begin
s := s - 1;
n := n + 2
end;
writeln(s)
end.
5. В корзине лежат черные и белые шары. Среди них 18 черных шаров. Сообщение о том,
что достали белый шар, несет 2 бита информации. Сколько всего шаров в корзине?
6. Ниже записан рекурсивный алгоритм F.
Бейсик
Python
SUB F(N)
PRINT N
IF N >= 2 THEN
F(n 2)
F(n 1)
F(n 2)
END IF
END SUB
def F(n):
print(n, end=’’)
if n >= 2:
F(n 2)
F(n 1)
F(n 2)
Паскаль
Алгоритмический язык
procedure F(n: integer);
begin
write(n);
if n >= 2 then begin
F(n 2);
F(n 1);
F(n 2)
end
end;
алг F(цел n)
нач
вывод n
если n >= 2 то
F(n 2)
F(n 1)
F(n 2)
все
кон
Запишите подряд без пробелов и разделителей все числа, которые будут выведены на
экран при выполнении вызова F(3). Числа должны быть записаны в том же порядке, в
котором они выводятся на экран.
7. В офисе работают 55 человек. Специальное устройство утром на входе регистрирует
приход сотрудника на работу, записывая его индивидуальный номер с использованием
минимально возможного количества бит, одинакового для каждого сотрудника. Каков
информационный объем сообщения, записанного устройством, если утром в офис пришли
только 50 из 55 сотрудников? (Ответ дайте в битах.)
8. В языке запросов поискового сервера для обозначения логической операции «ИЛИ»
используется символ «|», а для логической операции «И» – символ «&». В таблице
приведены запросы и количество найденных по ним страниц некоторого сегмента сети
Интернет:
Запрос
Найдено страниц
(в тысячах)
Динамо & Зенит & Спартак
150
Динамо & Спартак
380
Динамо & Зенит
310
Компьютер печатает количество страниц (в тысячах), которое будет найдено по
следующему запросу:
Динамо & (Зенит | Спартак).
Укажите целое число, которое напечатает компьютер. Считается, что все запросы
выполнялись практически одновременно, так что набор страниц, содержащих все искомые
слова, не изменялся за время выполнения запросов.
9. Ниже записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа a и
b. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 2,
а потом 10.
Бейсик
Python
DIM X, A, B AS INTEGER
INPUT X
A = 0: B = 1
WHILE X > 0
IF X MOD 2 > 0 THEN
A = A + X MOD 12
ELSE
B = B * (X MOD 12)
END IF
X = X \ 12
WEND
PRINT A
PRINT B
x = int(input())
a=0; b=1
while x > 0:
if x%2 > 0:
a += x%12
else:
b *= x%12
x = x // 12
print(a, b)
Паскаль
Алгоритмический язык
var x, a, b: longint;
begin
readln(x);
a := 0; b := 1;
while x > 0 do begin
if x mod 2 > 0 then
a := a + x mod 12
else
b := b * (x mod 12);
x := x div 12;
end;
writeln(a); write(b);
end.
алг
нач
цел x, a, b
ввод x
a := 0; b := 1
нц пока x > 0
если mod(x,2)>0
то a := a + mod(x,12)
иначе b := b*mod(x,12)
все x := div(x,12)
кц
вывод a, нс, b
кон
10. У исполнителя Удвоитель две команды, которым присвоены номера:
1. прибавь 2,
2. прибавь 4.
Первая из них увеличивает на 2 число на экране, вторая увеличивает это число на 4.
Программа для Удвоителя — это последовательность команд. Сколько существует
программ, которые число 2 преобразуют в число 22?
Ключ к варианту 1