1) Сколько единиц в двоичной записи шестнадцатеричного числа 2C416?
2) Логическая функция F задаётся выражением x ∧ ¬y ∧ (¬z ∨ w).
На рисунке приведён фрагмент таблицы истинности функции F, содержащий все наборы аргументов, при которых функция F истинна. Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных w, x, y, z
В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала – буква, соответствующая первому столбцу; затем – буква, соответствующая второму столбцу, и т.д.) Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
3) Между населёнными пунктами A, B, C, D, E, F, Z построены дороги, протяжённость которых приведена в таблице. (Отсутствие числа в таблице означает, что прямой дороги между пунктами нет.)
Определите длину кратчайшего пути между пунктами A и Z (при условии, что передвигаться можно только по построенным дорогам).
4) В фрагменте базы данных представлены сведения о родственных отношениях. Определите на основании приведенных данных, сколько родных сестер есть у Лесных П.А.
6) На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом:
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R.
Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число, большее, чем 108. В ответе это число запишите в десятичной системе.
7) Дан фрагмент электронной таблицы.
Какое целое число должно быть записано в ячейке A1, чтобы диаграмма, построенная по значениям ячеек диапазона A2:С2, соответствовала рисунку? Известно, что все значения ячеек из рассматриваемого диапазона неотрицательны.
8) Укажите число, которое будет напечатано в результате выполнения следующей программы.
s = 0 n = 0 while 2*s < 70: s = s + 5 n = n + 2 print(n)
var s, n: integer; begin s := 0; n := 0; while 2*s < 70 do begin s := s + 5; n := n + 2; end; writeln(n); end.
#include <iostream> using namespace std; void main() { int s = 0; int n = 0; while (2 * s < 70) { s = s + 5; n = n + 2; } cout << n << endl; }
9) После преобразования растрового 256-цветного графического файла в черно-белый формат (2 цвета) его размер уменьшился на 7 Кбайт. Каков был размер исходного файла в Кбайтах?
10) Все 5-буквенные слова, составленные из букв З, О, Ж, записаны в алфавитном порядке. Вот начало списка:
Укажите номер слова ЗЖЖОО.
11) Ниже представлена реализация рекурсивной процедуры на трех языках программирования:
def f(n,s): if n>0: print(s) f(n//10,s+'???')
procedure f(n:integer;s:string); begin if n>0 then begin writeln(s); f(n div 10,s+'???'); end; end;
void f(int n, string s) { if (n > 0) { cout << s; F(n / 2, s + '???'); } }
Сколько символов ? будет всего распечатано на экране при вызове f(7135,'??') ?
12) Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске. Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.
Для узла с IP-адресом 222.111.58.77 адрес сети равен 222.111.32.0. Чему равно наименьшее возможное значение третьего слева байта маски? Ответ запишите в виде десятичного числа.
13) При регистрации в компьютерной системе, используемой при проведении командной олимпиады, каждому ученику выдается уникальный идентификатор - целое число от 1 до 1000. Для хранения каждого идентификатора ученика используется одинаковое и минимально возможное количество бит. В каждой команде участвует 4 ученика. Идентификатор команды состоит из последовательно записанных идентификаторов учеников и 12 дополнительных бит. Для записи каждого идентификатора команды система использует одинаковое и минимально возможное количество байт. Сколько байт должна отвести система для записи идентификаторов 20 команд?
14) Чертёжнику был дан для исполнения следующий алгоритм (количество повторений и величины смещения в первой из повторяемых команд неизвестны):
Начало Сместиться на ( 1, 2) Повтори ... раз Сместиться на ( ..., ....) Сместиться на ( -1, -2) Конец Сместиться на ( -26, -12) Конец
В результате выполнения этого алгоритма Чертёжник возвращается в исходную точку. Какое наибольшее число повторений могло быть указано в конструкции «ПОВТОРИ … РАЗ»?
15) На рисунке представлена схема дорог, связывающих города А, Б, В, Г, Д, Е, Ж, З, И, К, Л, М, Н, О, П, Р, С.
По каждой дороге можно двигаться только в одном направлении, указанном стрелкой.
Сколько существует способов добраться из пункта А в пункт С?
16) Результат выражения (56)4 + 2517 - 510 записали в пятеричной системе счисления. Подсчитайте сколько раз встретилась цифра "4"
17) В языке запросов поискового сервера для обозначения логической операции «ИЛИ» используется символ «|», а для логической операции «И» — символ «&».
В таблице приведены запросы и количество найденных по ним страниц некоторого сегмента сети Интернет.
Укажите, какое количество страниц будет найдено по запросу:
Считается, что все запросы выполнялись практически одновременно, так что набор страниц, содержащих все искомые слова, не изменялся за время выполнения запросов.
18) Обозначим через ДЕЛ (n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наибольшего натурального числа А формула
тождественно истинна, то есть принимает 1 при любом натуральном значении переменной х?
19) В программе используется одномерный целочисленный массив А с индексами от 0 до 9. Значения элементов равны 5, 6, 5, 8, 5, 4, 1, 2, 9, 6 соответственно, т.е. А[0] = 5, А[1] = 6 и т.д. Определите значение переменной с после выполнения следующего фрагмента этой программы (записанного ниже на трех языках программирования).
c = 0 for i in range(9): if A[i] >= A[9]: c = c + 1 t = A[i] A[i] = A[9] A[9] = t
c := 0; for i := 0 to 8 do if A[i] >= A[9] then begin c := c + 1; t := A[i]; A[i] := A[9]; A[9] := t; end;
c = 0; for (i = 0; i < 9; i++) { if (A[i] >= A[9]) { c = c + 1; t = A[i]; A[i] = A[9]; A[9] = t; } }
20) Ниже на трех языках программирования записан алгоритм. Получив на вход число x, эта программа печатает два числа a и b. Укажите наименьшее из чисел x, при вводе которых алгоритм печатает сначала 14, а потом 6.
x = int(input()) a = 0 b = 10 while x > 0: c = x % 10 a = a + c if c < b: b = c x = x // 10 print(a) print(b)
var x, a, b, c: integer; begin readln(x); a := 0; b := 10; while x > 0 do begin c := x mod 10; a := a + c; if c < b then b := c; x := x div 10; end; writeln(a); write(b); end.
#include <iostream> using namespace std; void main() { int x, a, b, c; cin >> x; a = 0; b = 10; while (x > 0) { c = x % 10; a = a + c; if (c == b) b = c; x = x / 10; } cout << a; cout<<b; }
21) Укажите количество различных значений входной переменной k, при которых приведённая ниже программа выводит тот же ответ, что и при входном значении k = 33. Значение k = 33 также включается в подсчёт различных значений k.
def f(n): return n*n*n i = 1 k = int(input()) while f(i) < k: i+=1 if (f(i)-k <= k-f(i-1)): print (i) else: print (i - 1)
var k, i : longint; function f(n: longint) : longint; begin f := n * n * n; end; begin i := 1; readln(k); while f(i) < k do i := i + 1; if (f(i)-k) <= (k-f(i-1)) then writeln(i) else writeln(i - 1); end.
#include <iostream> using namespace std; long int f(long int n) { return n*n*n; } void main() { int i, k; i = 1; cin >> k; while (f(i)<k) i = i + 1; if (f(i) - k <= k - f(i)) cout << i << endl; else cout << i - 1 << endl; }
22) Исполнитель СдамЕГЭ преобразует число на экране. У исполнителя есть две команды, которым присвоены номера:
Сколько существует программ, для которых при исходном числе 2 результатом является число 33 и при этом траектория вычислений содержит число 16 и не содержит число 30?
23) Сколько существует различных наборов значений логических переменных x1 ... x7, y1 ... y7, которые удовлетворяют всем перечисленным ниже условиям?
В ответе не нужно перечислять все различные наборы значений переменных, удолетворяющих системе уравнений. В качестве ответа нужно указать количество таких наборов
24) Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится минимальную цифру этого числа. Программист торопился и написал программу неправильно:
N = int(input()) min_digit = 0 while N > 0: digit = N % 10 if digit > min_digit: min_digit = digit N = N // 10 print(min_digit)
var N: longint; digit, min_digit: integer; begin readln(N); min_digit := 0; while N > 0 do begin digit := N mod 10; if digit > min_digit then min_digit := digit; N := N div 10; end; writeln(min_digit); end.
#include <iostream> using namespace std; int main() { long N; int digit, min_digit; cin >> N; min_digit = 0; while (N > 0) { digit = N % 10; if (digit > min_digit) { min_digit = digit; } N = N / 10; } cout << min_digit << endl; }
Последовательно выполните следующее: 1. Определите, что выведет программа при вводе числа 532. 2. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки выпишите номер строки и укажите, как надо исправить ошибку - приведите правильный вариант строки.
25) Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести минимальный элементов массива, шестнадцатеричная запись которого содержит ровно две цифры, причём вторая (младшая) цифра – это буква (от A до F). Если таких чисел нет, нужно вывести ответ 0.
# допускается также # использовать две # целочисленные переменные j и k a = [ ] n = 30 for i in range(0, n): a.append(int(input())) ...
const N = 30; var a: array [1..N] of integer; i, j, k: integer; begin for i := 1 to N do readln(a[i]); ... end.
#include <iostream> using namespace std; const int N = 30; int main() { int a[N]; int i, j, k; for (i = 0; i < N; i++) cin >> a[i]; ... return 0; }
Задания взяты из базы данных ФИПИ, сайта К.Полякова или придуманы мною