1) Сколько значащих нулей в двоичной записи шестнадцатеричного числа 4A6716?
2) Логическая функция F задаётся выражением ¬x ∧ y ∧ (w → z). На рисунке приведён фрагмент таблицы истинности функции F, содержащий все наборы аргументов, при которых функция F истинна. Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z, w.
В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала – буква, соответствующая первому столбцу; затем – буква, соответствующая второму столбцу, и т.д.) Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
3) Между населёнными пунктами A, B, C, D, E, F, Z построены дороги, протяжённость которых приведена в таблице. (Отсутствие числа в таблице означает, что прямой дороги между пунктами нет.)
Определите длину кратчайшего пути между пунктами A и Z (при условии, что передвигаться можно только по построенным дорогам).
4) В фрагменте базы данных представлены сведения о родственных отношениях. На основании приведённых данных определите, сколько всего внуков и внучек есть у Ковач Л.П.
6) На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом:
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R.
Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число, большее, чем 121. В ответе это число запишите в десятичной системе.
7) Дан фрагмент электронной таблицы.
Какое целое число должно быть записано в ячейке B1, чтобы диаграмма, построенная по значениям ячеек диапазона A2:С2, соответствовала рисунку? Известно, что все значения ячеек из рассматриваемого диапазона неотрицательны.
8) При каком наименьшем целом введённом числе d после выполнения программы будет напечатано 192?
d = int(input()) s = 0 k = 0 while k < 200: s = s + 64 k = k + d print(s)
var s, k, d: integer; begin readln(d); s := 0; k := 0; while k < 200 do begin s := s + 64; k := k + d; end; writeln(s); end.
#include <iostream> using namespace std; void main() { int d; cin >> d; int s = 0; int k = 0; while (k<200) { s = s + 64; k = k + d; } cout << s << endl; }
9) Музыкальный фрагмент был оцифрован и записан в виде файла без использования сжатия данных. Получившийся файл был передан в город А по каналу связи за 25 секунд. Затем тот же музыкальный фрагмент был оцифрован повторно с разрешением в 7 раза выше и частотой дискретизации в 2,5 раза меньше, чем в первый раз. Сжатие данных не производилось. Полученный файл был передан в город Б; пропускная способность канала связи с городом Б в 2 раза выше, чем канала связи с городом А. Сколько секунд длилась передача файла в город Б? В ответе запишите только целое число, единицу измерения писать не нужно.
10) Все 5-буквенные слова, составленные из букв И, К, Р, А, записаны в алфавитном порядке. Вот начало списка:
Запишите слово, которое стоит под порядковым номером 333.
11) Ниже представлена реализация рекурсивной процедуры на трех языках программирования:
def f(n): if n>0: print('?'*(n%7)) f(n//10)
procedure f(n:integer); begin if n>0 then begin writeln('?'*(n mod 7)); f(n div 10); end; end;
void f(int n) { if (n > 0) { cout << '?'*(n % 7) << endl; f(n / 10); } }
Какое максимальное количество символов ? будет распечатано в одной строке при вызове f(2346) ?
12) Два узла, находящиеся в одной сети, имеют IP-адреса 215.171.155.54 и 215.171.145.37. Укажите наибольшее возможное значение третьего слева байта маски сети. Ответ запишите в виде десятичного числа.
13) При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 6 символов и содержащий только символы из 7-буквенного набора С, Ч, А, С, Т, Ь, Е. В базе данных для хранения сведений о каждом пользователе отведено одинаковое целое число байт, при этом для хранения сведений о 100 пользователях используется 1400 байт. Для каждого пользователя хранятся пароль и дополнительные сведения. Для хранения паролей используют посимвольное кодирование, все символы кодируются одинаковым и минимально возможным количеством бит. Сколько бит отведено для хранения дополнительных сведений о каждом пользователе?
14) Чертёжнику был дан для исполнения следующий алгоритм (количество повторений и величины смещения в первой из повторяемых команд неизвестны):
Начало Сместиться на ( 13, 19) Повтори ... раз Сместиться на ( ..., ...) Сместиться на ( 6, -3) Конец Сместиться на ( 27, -3) Конец
В результате выполнения этого алгоритма Чертёжник возвращается в исходную точку. Какое наибольшее число повторений могло быть указано в конструкции «ПОВТОРИ … РАЗ»?
15) На рисунке представлена схема дорог, связывающих города А, Б, В, Г, Д, Е, Ж, З, И, К, Л, М, Н, О, П, Р, С, Т.
По каждой дороге можно двигаться только в одном направлении, указанном стрелкой.
Сколько существует способов добраться из пункта А в пункт Т?
16) Результат выражения 3623 - 228 * 328 + 401 записали в шестеричной системе счисления. Подсчитайте сколько раз встретилась цифра "5"
17) В языке запросов поискового сервера для обозначения логической операции «ИЛИ» используется символ «|», а для логической операции «И» — символ «&».
В таблице приведены запросы и количество найденных по ним страниц некоторого сегмента сети Интернет.
Укажите, какое количество страниц будет найдено по запросу:
Считается, что все запросы выполнялись практически одновременно, так что набор страниц, содержащих все искомые слова, не изменялся за время выполнения запросов.
18) Обозначим через ДЕЛ (n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наименьшего натурального числа А формула
тождественно истинна, то есть принимает 1 при любом натуральном значении переменной х?
19) В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 8, 7, 6, 6, 6, 5, 3, 3, 2, 1 соответственно, т.е. A[0] = 8, A[1] = 7 и т.д. Определите значение переменной c после выполнения следующего фрагмента этой программы (записанного ниже на трех языках программирования).
c = 0 for i in range(1,10): if A[i] < A[0]: c = c + 1 t = A[i] A[i] = A[0] A[0] = t
c := 0; for i := 1 to 9 do if A[i] < A[0] then begin c := c + 1; t := A[i]; A[i] := A[0]; A[0] := t; end;
c = 0; for (i = 0; i < 9; i++) { if (A[i] < A[0]) { c = c + 1; t = A[i]; A[i] = A[0]; A[0] = t; } }
20) Ниже на трех языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: L и M. Укажите наименьшее число x, при вводе которого алгоритм печатает сначала 4, а потом 7.
x = int(input()) L = 0 M = 0 while x > 0: M = M + 1 if x % 2 != 0: L = L + 1 x = x // 2 print(L) print(M)
var x, L, M: integer; begin readln(x); L := 0; M := 0; while x > 0 do begin M := M + 1; if x mod 2 <> 0 then L := L + 1; x := x div 2; end; writeln(L); writeln(M); end.
#include <iostream> using namespace std; void main() { int x, L, M; cin >> x; L = 0; M = 0; while (x > 0) { M = M + 1; if (x % 2 != 0) { L = L + 1; } x = x / 2; } cout << L; cout << M; }
21) Укажите число, равное количеству различных значений входной переменной k, при которых приведённая ниже программа выводит тот же ответ, что и при входном значении k = 11. Значение k = 11 также включается в подсчёт различных значений k.
def f(n): return 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; 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; } 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 результатом является число 12 и при этом траектория вычислений не содержит число 10?
23) Сколько всего различных наборов значений логических перемененных x1, x2 ... x7, x8, которые удовлетворяют системе уравнений?
В ответе не нужно перечислять все различные наборы значений переменных, удолетворяющих системе уравнений. В качестве ответа нужно указать количество таких наборов
24) Требовалось написать программу, которая получает на вход натуральное число N, не превосходящее 109, и выводит число, которое получается из N после удаления всех единиц, порядок остальных цифр при этом не меняется. Например, число 19520125 должно быть преобразовано в число 952025. Число, в котором все цифры – единицы и нули, должно быть преобразовано в 0. Незначащие нули в старших разрядах полученного числа печатать не нужно. Программист торопился и написал программу неправильно.
N = int(input()) R = 0 T = 1 while N > 0: d = N % 10 if d != 1: R = R + d*T T = T + 1 N = N // 10 print(T)
var N, R, T: longint; d: integer; begin readln(N); R:=0; T:=1; while N>0 do begin d := N mod 10; if d<>1 then begin R := R + d*T; T := T+1 end; N := N div 10; end; writeln(T); end.
#include <iostream> using namespace std; int main() { long N, R, T; int d; cin >> N; R=0; T=1; while (N>0) { d = N % 10; if (d != 1) { R = R + d*T; T = T+1; } N = N / 10; } cout << T; }
Последовательно выполните следующее: 1. Напишите, что выведет эта программа при вводе числа 314. 2. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки выпишите номер строки и укажите, как надо исправить ошибку - приведите правильный вариант строки.
25) Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10000 включительно. Опишите на одном из языков программирования алгоритм, который находит сумму элементов массива, меньших 200 и при этом кратных 5, а затем заменяет каждый такой элемент на число, равное найденной сумме. Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести изменённый массив, каждый элемент выводится с новой строчки.
Например, для исходного массива из шести элементов: 204 115 27 20 305 4
программа должна вывести следующий массив 204 135 27 135 305 4
# допускается также # использовать две # целочисленные переменные 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; }
Задания взяты из базы данных ФИПИ, сайта К.Полякова или придуманы мною