Программирование - ответы на тесты Интуит
Все ответы: Курс механико-математического факультета МГУ им. М.В. Ломоносова предназначен для обучения основам программирования на языках C и C++.
a
длины 64 применяется
восходящая схема двунаправленного алгоритма сортировки
слиянием с использованием дополнительной памяти — массива b
такого же размера. В каком из этих массивов мы получим результат после
окончательного шага слияния, т.е. будет ли вызвана
функция copyArray
, чтобы
скопировать результат из вспомогательного массива
b
в массив a
?
a
, функция
copyArray
вызвана не будет.
b
, будет вызвана функция
copyArray
.
n
, требуется циклически
сдвинуть его элементы вправо на одну позицию. Какое минимальное
число операций копирования выполняется в любом алгоритме,
решающем данную задачу? Имеются в виду операции копирования
одного элемента массива в другой, элемента массива в простую
переменную, одной простой переменной в другую.
n
операций.
n+1
операция.
3n
операций.
n-1
операций.
2n
операций.
double
?
n
после выполнения этого фрагмента?
n = 2
n = 3
n = 10
n = 11
x0, x1, x2
,
принимающего в этих узлах значения
y0, y1, y2
?
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: посчитать среднее арифметическое чисел из последовательности.
Постановка задачи: программа должна содержать функцию, которая получает в качестве параметров имя массива и его длину (или нескольких массивов, если этого требуют условия задачи) и выполняет необходимые действия. При решении не разрешается создавать или резервировать в программе дополнительную память, соизмеримую по размерам с объемом исходных данных. То есть, нельзя создавать дополнительные массивы, если это явно не оговорено в задаче.
Функция main
должна заполнить массив числами из файла. Для определения длины массива предусматривается два варианта: 1) по значению первого числа в файле, 2) непосредственным подсчетом количества чисел в файле. Результат также выводится в файл.
Задание: симметричны ли значения элементов массива целых чисел относительно середины массива?
unsigned char
?
m=13
, n=17
?
a
описан как
m
- константный указатель на начало
массива, n
- число его элементов. Укажите,
чему будет равно значение переменной s
в
результате выполнения следующего фрагмента программы:
char
?
char (*a)[100];
char *a[100];
char (&a)[100];
char &a[100];
e
такой, что для всякого
другого элемента x
"произведение" e
на
x
равно x
:
e x = x
. Какие элементы будут нейтральными
для операций суммы и максимума чисел соответственно?
0, 0
.
0, +
0, -
-, +
A(x)
и B(x)
обозначены условия, зависящие от переменной x
.
Какое условие выполняется по окончании цикла?
(не A(x) и B(x))
.
(A(x) и B(x))
.
(A(x) и не B(x))
.
(не A(x) и не B(x))
.
x
.
При этом x
содержится
в массиве с вероятностью 0.25. Сколько в среднем операций сравнения
будет выполнено?
a
размера 4 содержит
элементы 4, 3, 2, 1 в указанном порядке.
К нему применяется алгоритм пузырьковой сортировки,
использующий сравнение элементов с помощью функции compare
и обмен элементов с помощью функции swap
.
Сколько раз будет вызвана функция swap
?
partition
, которая разделяет массив на 3 части:
в начале элементы, меньшие либо равные медиане, затем медиана,
в конце элементы, большие либо равные медиане. Рассмотрим следующую
реализацию функции partition:
400, 201, 401, 122, 232, 035, 171, 077, 198, 199
400, 401, 201, 122, 035, 232, 171, 077, 198, 199
400, 401, 201, 122, 232, 035, 171, 077, 198, 199
400, 401, 201, 122, 171, 232, 035, 077, 198, 199
400, 401, 201, 122, 232, 035, 171, 077, 198, 199
a
длины 28 применяется
восходящая схема двунаправленного алгоритма сортировки
слиянием с использованием дополнительной памяти — массива b
такого же размера. В каком из этих массивов мы получим результат после
окончательного шага слияния, т.е. будет ли вызвана
функция copyArray
, чтобы
скопировать результат из вспомогательного массива
b
в массив a
?
a
, функция
copyArray
вызвана не будет.
b
, будет вызвана функция
copyArray
.
12
, требуется циклически
сдвинуть его элементы влево на 5 позиций. Какое минимальное
число операций копирования выполняется в любом алгоритме,
решающем данную задачу? Имеются в виду операции копирования
одного элемента массива в другой, элемента массива в простую
переменную, одной простой переменной в другую.
12
операций.
13
операций.
36
операции.
11
операции.
24
операции.
n
-значных чисел в системе счисления
с основанием b
требуется n
разрядов,
каждый из которых может находиться в b
состояниях.
Таким образом, суммарное число состояний равно произведению n*b
.
Рассмотрим двоичную (b
=2), восьмеричную (b
=8)
и шестнадцатеричную (b
=16) системы счисления.
Какая из них наиболее экономна по суммарному числу состояний
для записи чисел в диапазоне 0..N
,
где N
- некоторое достаточно большое число?
2718
представляет
вещественное число 2.718
. Рассмотрим два числа
с фиксированной точкой, представленные целыми числами
10500 и 1010. Каким числом будет представлено их произведение?
arctg(x)
раскладывается
в ряд Тейлора следующим образом:
myAtan(x)
,
вычисляющую значение arctg(x)
с точностью до одной миллионной:
x
ее можно применять?
Укажите все правильные ответы из числа перечисленных ниже.
x
,
например, |x| < 10
.
x
в интервале
-0.75<x<0.75
x = 1.0001
.
x = -2
.
i
-й строке и j
-м столбце
(считая, что значения i
и j
уже находятся в регистрах процессора)?
x0, x1, ..., xn
,
представляется формулой
x=t
?
O(n)
.
O(n2)
.
O(n3)
.
int
(для удобства
триады цифр разделяются запятыми).
k
в результате выполнения следующего фрагмента программы:
a
, p
,
q
, n
описаны следующим образом:
p = &a[7] + n;
q = &p[3] + 2;
n
в результате выполнения следующего фрагмента программы?
Процессор имеет 32-разрядную архитектуру.
double
? Укажите все правильные
варианты.
-DBL_MAX
(константа DBL_MAX описана в стандартном заголовочном файле
float.h).
DBL_MIN
,
заданную в стандартном заголовочном файле
float.h.
-1e+30
.
n
содержит некоторое положительное целое число.
Указать, что вычисляет следующая функция f(n)
:
n
.
log2 n
.
n
.
en
.
2n
.
x
.
При x
содержится
в массиве с вероятностью равна 0.1.
Сколько в среднем операций сравнения
будет выполнено?
partition
, которая разделяет массив на 3 части:
в начале элементы, меньшие либо равные медиане, затем медиана,
в конце элементы, большие либо равные медиане. Рассмотрим следующую
реализацию функции partition:
25, 10, 20, 5, 9, 15, 19, 1, 3, 8, 7, 12
в указанном порядке. Образуют ли они бинарную кучу (пирамиду)?
k
,
длина сортируемого массива равна n
. Какова асимптотическая
оценка времени работы алгоритма?
t = O(k*n)
t = O(k*log2n)
t = O(k2*n)
t = O(k*n2)
t = O(n)
a
длины 12 применяется
восходящая схема двунаправленного алгоритма сортировки
слиянием с использованием дополнительной памяти.
В процессе выполнения алгоритма многократно
вызывается функция merge
слияния двух упорядоченных
массивов длины n
и m
. Каковы
длины массивов, которые сливаются при самом последнем вызове
функции merge
?
n=6
, m=6
n=8
, m=4
n=10
, m=2
n=8
, m=6
n=6
, m=4
n=10
, m=4
26
, требуется циклически
сдвинуть его элементы вправо на 6 позиций.
Существует ли алгоритм, который решает эту задачу,
выполняя 28 операций копирования?
Имеются в виду операции копирования
одного элемента массива в другой, элемента массива в простую
переменную, одной простой переменной в другую.
n
в системе счисления с основанием b
мы вычисляем цифры числа справа налево,
начиная с последней цифры. На очередном шаге
мы делим n
с остатком на b
, получая
частное q
и остаток r
;
остаток представляет очередную цифру числа в порядке справа налево.
Затем мы переменной n
присваиваем значение частного q
,
и процесс повторяется,
пока n
не станет равным нулю.
Сколько раз будет выполнена операция деления
при переводе числа 1000000 (миллион)
в шестнадцатеричную систему счисления?
x
в виде
s
- знак числа, принимающий значение
плюс или минус единица,
e
- порядок, представляющий собой
целое число (положительное, 0 или отрицательное),
m
- мантисса, представляющая собой
вещественное число в диапазоне
1 m < 2
.
Чему равны порядок и мантисса для числа 12?
e=2, m=1.75
.
e=3, m=1.2
.
e=3, m=1.5
.
ln(z)
(натуральный логарифм z
) представляется
в виде степенного ряда следующим образом:
z=1+x
). Этот ряд сходится лишь для значений
x
, по абсолютной величине не превосходящих 1, а эффективно вычислять
его сумму можно только для еще более узкого интервала значений
x
.
Какими свойствами функции ln(z)
удобнее всего воспользоваться, чтобы свести ее вычисление
к суммированию ряда?
ln(z) = ln(z/n) + ln(n)
,
где n
- целая часть z
.
ln(z) = 0.5*ln(z*z)
при z < 0.5
и
ln(z) = 2*ln(sqrt(z))
при z > 1.5
.
ln(z) = ln(z/e) + 1
при z > 1.5
и
ln(z) = ln(z*e) - 1
при z < 0.5
.
m
строк на n
столбцов
при помощи линейного массива,
в котором хранятся сначала элементы нулевой строки матрицы,
затем первой, второй и т.д., в конце - элементы (m-1)-й строки:
m
на n
превратиться в матрицу размера
n
на m
?
[a, b]
,
применяется сплайн-интерполяция. Для этого отрезок разбивается
на n
частей точками
x0, x1, x2, ..., xn
,
в которых заданы значения функции
y0, y1, y2, ..., yn
,
На каждом из этих маленьких отрезков
[xi, xi+1]
функция приближается
многочленом степени d
, который на концах отрезка принимает
заданные значения. Пусть, помимо значений функции в узлах интерполяции
yi
,
заданы также и значения ее производной
y'i
в узлах; производная каждого интерполяционного
многочлена также должна принимать заданные значения
на концах отрезка [xi, xi+1]
.
Чему должна быть равна
степень d
интерполяционных многочленов, из которых
составляется искомый сплайн?
d = 1
.
d = 2
.
d = 3
.
d = 4
.
(-12)%5*10
в языке C?
n
в результате выполнения следующего фрагмента программы:
int indmax(double a[], int n);
int indmax(const double *a, int n);
void indmax(const double a[], int n, int* idx);
void indmax(double *a, int n, int* idx);
ab p = mn
a*b + p = m*n
ba p = mn
a/b + p = m*n
a + b + p = m*n
a
длины n
,
элементы которого нестрого возрастают, т.е. соседние
элементы могут быть равными.
Рассмотрим фрагмент программы бинарного поиска
элемента x
в массиве
a
длины n
, где
после отбрасывания особых ситуаций рассматривается
основной случай:
x
содержится в массиве
в нескольких экземплярах. Индекс какого элемента
массива a
будет записан в переменную *idx
?
x
.
x
.
a
, равного
x
.
a
, равного
x+1
.
a
, равного
x-1
.
compare
и обмен элементов с помощью функции swap
.
Какое максимальное количество раз может быть вызвана
функция swap
?
while
, а также
вспомогательную функцию partition,
которая разделяет текущий отрезок массива на 3 части
(элементы, меньшие либо равные медиане, медиана,
элементы, большие либо равные медиане):
11, 18, 10, 7, 15, 9, 8
в указанном порядке. Услове пирамиды нарушается
только для элемента 11, стоящего в вершине пирамиды.
Для исправления пирамиды выполняется процедура просеивания,
при которой элемент 11 опускается на свое место.
Каким будет содержимое массива после окончания этой процедуры?
18, 15, 10, 11, 7, 9, 8
.
18, 15, 11, 7, 10, 9, 8
.
18, 15, 10, 7, 11, 9, 8
.
18, 15, 10, 11, 8, 9, 7
.
11, 18, 15, 7, 10, 9, 8
.
x
.
merge
слияния двух упорядоченных массивов
применяется к двум массивам длины 10 и 20.
Может ли в процессе ее выполнения быть сделано ровно 28 сравнений?
a
длины 10 применяется восходящая схема
двунаправленного алгоритма сортировки
слиянием с использованием дополнительной памяти
такого же размера. Сколько раз будет вызвана
функция слияния двух упорядоченных массивов merge
?
n
, содержащий
элементы некоторого упорядоченного типа (их можно
сравнивать между собой, определяя,
какой из них больше или их равенство).
Рассмотрим задачу нахождения множества различных
элементов, содержащихся в массиве. Приведите асимптотическую
оценку времени работы наилучшего алгоритма, решающего данную
задачу.
float
,
хранит знак, смещенный порядок и дробную часть
двоичного представления мантиссы. Сколько битов
отводится под каждый элемент представления?
arctg(x)
(ее также обозначают
arctg
или atan
)
представляется рядом Тейлора:
x
, по модулю не превосходящих
единицы, а эффективно вычислять его можно лишь для x
, по модулю
существенно меньших единицы - например, |x|<0.5
.
Чтобы свести задачу вычисления функции arctg(x)
к
суммированию ряда для малых значений x
,
можно воспользоваться формулой
x
вычислением для y
.
Например, arctg(1)=2*arctg(1/(1+sqrt(2)))
. При этом нам придется
воспользоваться функцией sqrt
, вычисляющей квадратный корень. Какое
максимальное число раз ее придется вызвать, чтобы свести вычисление
arctg(x)
для произвольного x
к суммированию ряда для
x
в интервале |x|<0.5
?
x
может потребоваться
многократное применение отображения x->y
,
поэтому число вызовов sqrt
не ограничено.
fallTime
,
вычисляющую время падения камня с высоты
h
. Какой из приведенных ниже фрагментов кода
правильно решает задачу?
f(x)
- гладкая функция,
заданная на отрезке [a, b]
, производная которой
по абсолютной величине не превышает некоторой константы.
Для приближенного вычисления интеграла от этой функции мы
применяем формулу прямоугольников, разбивая отрезок
[a, b]
на n
равных частей.
Какова точность вычисления интеграла в зависимости от n
?
O(1/n).
O((1/n)2).
O((1/n)3).
x
типа unsigned char
удовлетворяют равенству
x+x+x+x == 0
?
p
, q
, n
описаны следующим образом:
p+q
p-q
2*p
p+n
p-n
*p
" (т.е.
число 123)?
PntAct
и VectAct
,
заданные в приведенном ниже фрагменте программы?
n
ставит в соответстие единицу, если n
делится на 7,
и ноль в противном случае. Какая из приведенных
ниже функций на последовательности десятичных цифр числа n
является индуктивным расширением функции F?
n
на 231.
n
на 100,
остаток от деления числа n
на 11).
n
, сумма цифр числа n
).
n
на 100,
остаток от деления числа n
на 231).
n
неотрицательно.
r == xn/n!
,
где восклицательным знаком обозначен факториал числа n
.
r == xn/((n+1)*(n+2))
.
r == (x+n)/n!
,
где восклицательным знаком обозначен факториал числа n
.
r == xn/(n+1)!
.
a
нестрого возрастают (соседние элементы могут быть равными).
Дано произвольное значение x
, требуется
найти максимальный индекс i
такой, что
a[i] <= x
. Используется идея алгоритма
бинарного поиска. Каким должен быть инвариант цикла,
в котором рассматривается основной случай после отбрасывания
исключительных ситуаций?
(Условие завершения цикла
end == beg+1
.)
a[beg] < x <= a[end]
,
ответ в переменной end
.
a[beg] <= x < a[end]
,
ответ в переменной beg
.
a[beg] < x <= a[end]
,
ответ в переменной beg
.
16, 12, 11, 8, 7, 10, 6
в указанном порядке. Затем выполняется второй этап сортировки.
На его первом шаге начальный и конечный элементы массива
меняются местами, от пирамиды отрезается правая нижняя ветка
(т.е. последний элемент массива), затем элемент в вершине
пирамиды просеивается, благодаря чему восстанавливается
условие пирамиды. Каким будет содержимое массива по
окончании этого шага?
12, 7, 11, 8, 6, 10, 16
.
12, 8, 11, 6, 7, 10, 16
.
12, 8, 11, 7, 6, 10, 16
.
- некоторое условие, не зависящее
от значения переменной x
.
Укажите, чему может быть равно значение x
в результате выполнения следующего фрагмента программы
(многоточием обозначен текст, не содержащий
переменной x
):
x
равно 1.
x
равно 2.
x
равно 3.
x
равно 1 или 2.
x
равно 1 или 3.
a
длины 11 применяется восходящая схема
двунаправленного алгоритма сортировки
слиянием с использованием дополнительной памяти
такого же размера. Сколько раз будет вызвана
функция слияния двух упорядоченных массивов merge
?
n
, содержащий
элементы некоторого упорядоченного типа (их можно
сравнивать между собой, определяя,
какой из них больше или их равенство).
Требуется определить, сколько различных
элементов содержится в массиве.
Приведите асимптотическую
оценку времени работы наилучшего алгоритма, решающего данную
задачу.
int
.
Положительное оно или отрицательное?
double
,
хранит знак, смещенный порядок и дробную часть
двоичного представления мантиссы.
Чему равен смещенный порядок в представлении числа 6.0?
[a, b]
методом деления отрезка пополам
с точностью eps
. Сколько примерно раз будет выполнено
тело цикла при поиске корня, когда используется следующий вызов:
n
?
f(x) = p*x2 + q*x + r
(многочлен степени 2), заданная на отрезке [a, b]
,
принимает значения
y0, y1, y2
в точках a, (a+b)/2, b
(на концах и в середине отрезка). Чему равен интеграл от этой
функции по отрезку [a, b]
?
1/4 * (y0 + 2*y1 + y2) * (b - a)
.
1/5 * (y0 + 3*y1 + y2) * (b - a)
.
1/6 * (y0 + 4*y1 + y2) * (b - a)
.
double x = new double;
double* x = new double(1.5);
double x = new double[100];
double* x = (double *) malloc(100 * sizeof(double));
y = f(p)
на последовательности p
элементов некоторого типа индуктивной, если при добавлении в конец
последовательности p
еще одного элемента x
новое значение функции
y1 = f(p&x)
можно вычислить, зная только
старое значение y
и добавленный элемент x
.
Среди перечисленных ниже функций на последовательностях вещественных
чисел укажите индуктивные.
t=2
,
коэффициенты многочлена заданы в последовательности
p = {a0, a1, a2, ..., an}
по возрастанию степеней:
t=2
,
коэффициенты многочлена заданы в последовательности
p = {a0, a1, a2, ..., an}
по убыванию степеней:
C*log2max(m, n)
,
где C
- некоторая константа
(т.е. время пропорционально количеству цифр в двоичной или
десятичной записи максимального из чисел m
, n
).
C*r
, где C
- некоторая константа,
r
-
квадратный корень из max(m, n)
(т.е. время пропорционально квадратному корню из максимального
числа).
C*max(m, n)
,
где C
- некоторая константа
(т.е. время пропорционально максимальному из чисел
m
, n
).
a
нестрого возрастают (соседние элементы могут быть равными).
Дано произвольное значение x
, требуется
найти максимальный индекс i
такой, что
a[i] <= x
. Используется идея алгоритма
бинарного поиска. В приведенном ниже цикле
рассматривается основной случай после отбрасывания
исключительных ситуаций:
a[beg] < x <= a[end]
.
a[beg] <= x < a[end]
.
a[beg] > x <= a[end]
.
a[beg] < x >= a[end]
.
1, 2, 3, 4, 5, 6, 7
в указанном порядке.
Каким будет содержимое массива
после построения пирамиды?
7, 5, 6, 2, 4, 1, 3
.
7, 5, 6, 4, 2, 1, 3
.
7, 5, 6, 4, 2, 3, 1
.
7, 5, 4, 6, 2, 3, 1
.
7, 5, 6, 4, 3, 2, 1
.
x
в результате выполнения приведенного ниже фрагмента программы?
-10
для типа signed char
?
double
,
хранит знак, смещенный порядок и дробную часть
двоичного представления мантиссы.
Сколько единичных битов в двоичном представлении
дробной части мантиссы для числа 10.0?
new
.
push X
.
d
между максимальным и минимальным элементами
непустой числовой последовательности.
xmin
и xmax
, чтобы программа
работала правильно?
xi
числовой последовательности
w={x1, x2, ..., xn}
локальным максимумом,
если он строго больше соседних элементов (для крайних
элементов рассматривается только 1 сосед, элемент последовательности
длины 1 считается локальным максимумом).
Пусть F(w)=числу локальных максимумов в w
.
Какие из перечисленных ниже функций
являются индуктивным расширением функции F?
Укажите все правильные варианты.
последний элемент последовательности w;
1, если последний элемент является лок. максимумом, 0 в противном случае).
последний элемент последовательности w;
предпоследний элемент последовательности w).
последний элемент последовательности w;
1, если последний элемент является лок. максимумом, 0 в противном случае).
последний элемент последовательности w;
0).
f(x)
- целочисленная функция от целочисленного
аргумента. Определить,
содержит ли следующий фрагмент программы ошибку
(т.е. действительно ли тело цикла сохраняет инвариант):
while
;
рекурсия применяется лишь к меньшему сегменту массива,
разделенного на части функцией partition
.
n
- переменная типа unsigned char
.
Укажите значение n
после выполнения оператора
double
без потери точности?
new
.
new
в теле функции, которая работает быстро и вызывается часто.
w
содержит коэффициенты многочлена по убыванию степеней.
Функция F(w)
равна значению второй производной
многочлена в фиксированной точке t=2
. Среди
указанных ниже функций отметьте те, которые являются индуктивным
расширением функции F
.
t
;
значение первой производной многочлена в точке t
;
значение второй производной многочлена в точке t
).
t
;
степень многочлена).
t
;
степень многочлена).
0
;
значение первой производной многочлена в точке 0
;
значение второй производной многочлена в точке 0
).
z
и t
после его выполнения?
m
- число Ферма, то
2m-1
1 (mod m)
gcd1
будет размещено одновременно в аппаратном стеке) при следующем
вызове функции:
a
длины 50 применяется
восходящая схема двунаправленного алгоритма сортировки
слиянием с использованием дополнительной памяти — массива b
такого же размера. В каком из этих массивов мы получим результат после
окончательного шага слияния, т.е. будет ли вызвана
функция copyArray
, чтобы
скопировать результат из вспомогательного массива
b
в массив a
?
a
, функция
copyArray
вызвана не будет.
b
, будет вызвана функция
copyArray
.
11
, требуется циклически
сдвинуть его элементы вправо на 3 позиции. Какое минимальное
число операций копирования выполняется в любом алгоритме,
решающем данную задачу? Имеются в виду операции копирования
одного элемента массива в другой, элемента массива в простую
переменную, одной простой переменной в другую.
11
операций.
12
операций.
33
операции.
22
операции.
10
операции.
n
в результате выполнения
следующего фрагмента программы:
n
равно 0.
n
равно -1.
n
равно -2.
n
равно 254.
n
равно 255.
pow(a, b)
возводит
число a
в степень b
.)
Что будет напечатано в результате ее выполнения?
y == z
.
y != z
.
n
после выполнения этого фрагмента?
n = 8
n = 12
n = 64
n = 96
x0, x1,
x2, x3
,
принимающего в этих узлах значения
y0, y1,
y2, y3
?
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: посчитать среднее геометрическое чисел из последовательности.
Постановка задачи: программа должна содержать функцию, которая получает в качестве параметров имя массива и его длину (или нескольких массивов, если этого требуют условия задачи) и выполняет необходимые действия. При решении не разрешается создавать или резервировать в программе дополнительную память, соизмеримую по размерам с объемом исходных данных. То есть, нельзя создавать дополнительные массивы, если это явно не оговорено в задаче.
Функция main
должна заполнить массив числами из файла. Для определения длины массива предусматривается два варианта: 1) по значению первого числа в файле, 2) непосредственным подсчетом количества чисел в файле. Результат также выводится в файл.
Задание: переставить элементы массива в обратном порядке.
signed char
?
m=24
, n=30
?
a
описан как
m
- константный указатель на начало
массива, n
- число его элементов. Укажите,
чему будет равно значение переменной s
в
результате выполнения следующего фрагмента программы:
e
такой, что для всякого
другого элемента x
"произведение" e
на
x
равно x
:
e x = x
. Какие элементы будут нейтральными
для операций произведения и минимума чисел соответственно?
1, 0
.
0, +
1, -
1, +
x
.
При этом x
содержится
в массиве с вероятностью 0.75. Сколько в среднем операций сравнения
будет выполнено?
a
размера 4 содержит
элементы 4, 2, 1, 3 в указанном порядке.
К нему применяется алгоритм пузырьковой сортировки,
использующий сравнение элементов с помощью функции compare
и обмен элементов с помощью функции swap
.
Сколько раз будет вызвана функция swap
?
partition
, которая разделяет массив на 3 части:
в начале элементы, меньшие либо равные медиане, затем медиана,
в конце элементы, большие либо равные медиане. Рассмотрим следующую
реализацию функции partition:
301, 901, 102, 105, 307, 811, 215, 323, 232, 835
901, 301, 102, 105, 307, 811, 215, 323, 232, 835
901, 301, 102, 105, 307, 811, 215, 232, 323, 835
901, 301, 102, 105, 307, 215, 811, 323, 232, 835
901, 301, 102, 307, 105, 811, 215, 323, 232, 835
a
длины 30 применяется
восходящая схема двунаправленного алгоритма сортировки
слиянием с использованием дополнительной памяти.
В процессе выполнения алгоритма многократно
вызывается функция merge
слияния двух упорядоченных
массивов длины n
и m
. Каковы
длины массивов, которые сливаются при самом последнем вызове
функции merge
?
n=15
, m=15
n=16
, m=14
n=24
, m=16
n=24
, m=15
n=16
, m=15
n=15
, m=14
21
, требуется циклически
сдвинуть его элементы вправо на 6 позиций.
Существует ли алгоритм, который решает эту задачу,
выполняя 22 операции копирования?
Имеются в виду операции копирования
одного элемента массива в другой, элемента массива в простую
переменную, одной простой переменной в другую.
n
-значных чисел в системе счисления с основанием
b
требуется n
разрядов,
каждый из которых может находиться
в b
состояниях. Таким образом, суммарное число состояний
равно произведению n*b
.
Рассмотрим двоичную (b
=2), троичную
(b
=3) и десятичную (b
=10) системы счисления.
Какая из них
наиболее экономна по суммарному числу состояний для записи
чисел в диапазоне 0..N
,
где N
- некоторое достаточно большое число?
314
представляет
вещественное число 3.14
. Рассмотрим два числа
с фиксированной точкой, представленные целыми числами
240 и 20001. Каким числом будет представлено их произведение?
ln(z)
(натуральный логарифм z
) представляется
в виде степенного ряда следующим образом:
z=1+x
).
Рассмотрим реализованную на C/C++ функцию myLog(z)
,
вычисляющую значение логарифма с точностью до одной миллионной:
z
ее можно применять так,
чтобы функция завершала работу за разумное время и
ошибка вычисления результата была бы не более 0.0001?
Укажите все правильные ответы из числа перечисленных ниже.
z
,
например, 0<z<10
.
z
в интервале
0<z<2
.
z = 10-10
.
z = 2.0001
.
z
в интервале
0.1 <z<1.9
.
x0, x1, ..., xn
и
принимающий в этих узлах значения
y0, y1, ..., yn
,
представляется формулой
a0, a1, ..., an
?
O(n)
.
O(n2)
.
O(n3)
.
unsigned int
(для удобства триады цифр разделяются запятыми).
k
в результате выполнения следующего фрагмента программы:
a
, p
,
q
, n
описаны следующим образом:
q = a + 16;
q = &p[3] + 2;
n
в результате выполнения следующего фрагмента программы?
Процессор имеет 32-разрядную архитектуру.
float
? Укажите все правильные
варианты.
-FLT_MAX
(константа FLT_MAX описана в стандартном заголовочном файле
float.h).
FLT_MIN
,
заданную в стандартном заголовочном файле
float.h.
-1e+30
.
n
содержит некоторое положительное целое число.
Указать, что вычисляет следующая функция f(n)
:
n/2
;
n
.
log2 n
.
n
.
en
.
2n
.
a
длины n
,
элементы которого нестрого возрастают, т.е. соседние
элементы могут быть равными.
Рассмотрим фрагмент программы бинарного поиска
элемента x
в массиве
a
длины n
, где
после отбрасывания особых ситуаций рассматривается
основной случай:
x
содержится в массиве
в нескольких экземплярах. Индекс какого элемента
массива a
будет записан в переменную *idx
?
x
.
x
.
a
, равного
x
.
x-1
.
x+1
.
20, 18, 10, 15, 7, 7, 9, 8, 10, 6, 4, 5
в указанном порядке. Образуют ли они бинарную кучу (пирамиду)?
a
длины 20 применяется
восходящая схема двунаправленного алгоритма сортировки
слиянием с использованием дополнительной памяти.
В процессе выполнения алгоритма многократно
вызывается функция merge
слияния двух упорядоченных
массивов длины n
и m
. Каковы
длины массивов, которые сливаются при самом последнем вызове
функции merge
?
n=10
, m=10
n=12
, m=8
n=16
, m=4
n=10
, m=8
n=12
, m=4
n=16
, m=10
15
, требуется циклически
сдвинуть его элементы вправо на 6 позиций.
Существует ли алгоритм, который решает эту задачу,
выполняя 18 операций копирования?
Имеются в виду операции копирования
одного элемента массива в другой, элемента массива в простую
переменную, одной простой переменной в другую.
n
в системе счисления с основанием b
мы вычисляем цифры числа справа налево,
начиная с последней цифры. На очередном шаге
мы делим n
с остатком на b
, получая
частное q
и остаток r
;
остаток представляет очередную цифру числа
в порядке справа налево.
Затем мы переменной n
присваиваем значение частного q
,
и процесс повторяется, пока n
не станет равным нулю.
Сколько раз будет выполнена операция деления
при переводе числа 2000000 (два миллиона)
в восьмеричную систему счисления?
x
в виде
s
- знак числа, принимающий значение
плюс или минус единица,
e
- порядок, представляющий собой
целое число (положительное, 0 или отрицательное),
m
- мантисса, представляющая собой
вещественное число в диапазоне
1 m < 2
.
Чему равны порядок и мантисса для числа 20?
e=4, m=1.2
.
e=3, m=1.75
.
e=4, m=1.25
.
z
":
z=1+x
).
Этот ряд сходится лишь для значений
x
, по абсолютной величине не превосходящих 1, а эффективно вычислять
его сумму можно только для еще более узкого интервала значений
x
.
Каким свойством функции sqrt(z)
удобнее всего воспользоваться, чтобы свести ее вычисление к суммированию ряда?
sqrt(z)=sqrt(n)*sqrt(z/n)
,
где n
- целая часть z
.
sqrt(z) = sqrt(2)*sqrt(z/2)
при z > 1.5
и
sqrt(z) = sqrt(z*2)/sqrt(2)
при z < 0.5
.
sqrt(z) = 2*sqrt(z/4)
при z > 1.5
и
sqrt(z) = 0.5*sqrt(z*4)
при z < 0.375
.
sqrt(x)
, вычисляющий
квадратный корень вещественного числа x
?
m
строк на n
столбцов
при помощи линейного массива,
в котором хранятся сначала элементы нулевой строки матрицы,
затем первой, второй и т.д., в конце - элементы (m-1)-й строки:
m
на n
превращается в матрицу размера
n
на m
Пусть эта функция применяется к прямоугольной матрице,
содержащей 2 строки и 4 столбца, элементы которой хранятся
в линейном массиве a
Сколько элементов массива
a
при этом останутся на своем месте?
[a, b]
,
причем на концах отрезка заданы ее значения
y0=f(a)
,
y1=f(b)
,
а также значения ее производной
y'0=f'(a)
,
y'1=f'(b)
.
Нужно приблизить функцию многочленом так, чтобы на концах отрезка
его значения, а также значения его производной совпадали со
значениями и производной функции. Какой должна быть
степень такого многочлена? (Укажите минимальную
степень, достаточную для решения этой задачи.)
(-23)%6*10
в языке C?
n
в результате выполнения следующего фрагмента программы:
product
, которая находит
произведение элементов вещественного массива a
длины n
.
Отметьте, какие из возможных прототипов данной функции
корректны.
double product(double *a, int n);
double product(const double a[], int n);
void product(const double *a, int n, double* prod);
void product(double a[], int n, double* prod);
НОД(a, b) = НОД(m, n)*c
.
НОК(m, n) = c*(a + b)
.
НОД(a,b)*c = НОД(m, n)
.
НОД(a,b) = НОД(m, n)*c
.
a
длины n
,
элементы которого нестрого возрастают, т.е. соседние
элементы могут быть равными.
Рассмотрим фрагмент программы бинарного поиска
элемента x
в массиве
a
длины n
, где
после отбрасывания особых ситуаций рассматривается
основной случай:
x
содержится в массиве
в нескольких экземплярах. Индекс какого элемента
массива a
будет записан в переменную *idx
?
x
.
x
.
a
, равного
x
.
x+1
.
x-1
.
compare
и обмен элементов с помощью функции swap
.
Сколько раз будет вызвана функция swap
?
while
, а также
вспомогательную функцию partition,
которая разделяет текущий отрезок массива на 3 части
(элементы, меньшие либо равные медиане, медиана,
элементы, большие либо равные медиане):
14, 20, 25, 15, 12, 22, 18
в указанном порядке. Услове пирамиды нарушается
только для элемента 14, стоящего в вершине пирамиды.
Для исправления пирамиды выполняется процедура просеивания,
при которой элемент 14 опускается на свое место.
Каким будет содержимое массива после окончания этой процедуры?
25, 20, 14, 15, 12, 22, 18
.
25, 20, 22, 15, 12, 14, 18
.
25, 15, 22, 14, 12, 20, 18
.
25, 20, 14, 14, 15, 22, 18
.
25, 15, 20, 14, 12, 22, 18
.
x
.
merge
слияния двух упорядоченных массивов
применяется к двум массивам длины 100 и 1000. Какое максимальное
число сравнений может быть сделано при выполнении этой функции?
a
длины 12 применяется восходящая схема
двунаправленного алгоритма сортировки
слиянием с использованием дополнительной памяти
такого же размера. Сколько раз будет вызвана
функция слияния двух упорядоченных массивов merge
?
n
, содержащий
элементы некоторого упорядоченного типа (их можно
сравнивать между собой, определяя,
какой из них больше или их равенство).
Требуется удалить из массива повторяющиеся элементы так,
чтобы каждый элемент содержался в массиве ровно 1 раз
(при этом n
может уменьшиться).
Приведите асимптотическую
оценку времени работы наилучшего алгоритма, решающего данную
задачу.
double
,
хранит знак, смещенный порядок и дробную часть
двоичного представления мантиссы. Сколько битов
отводится под каждый элемент представления?
arcsin(x)
представляется рядом Тейлора:
x
, по модулю меньших
единицы, причем вблизи единицы сходится очень медленно и
точность его вычисления низка. Поэтому эффективно вычислять
сумму ряда можно лишь для x
, по модулю
существенно меньших единицы - например, |x|<0.75
.
Каким свойством функции arcsin
можно воспользоваться,
чтобы свести ее вычисление к суммированию ряда для значеий
x
в интервале |x|<0.75
? Укажите все
возможные правильные решения из числа перечисленных ниже.
(Предполагается, что мы умеем быстро и точно вычислять квадратный корень
sqrt(z)
, а также знаем константу pi
.)
arcsin
,
сводящей ее вычисление к положительным значениям x
.
Для положительных значений x0.7
вычислить
сумму указанного ряда.
Для положительных значений x>0.7
воспользоваться
формулой
y=sqrt(1-x*x)
.
arcsin
к вычислению
функции arctg
, воспользовавшись формулой
x = ±1
значение
arcsin(x) = ±pi/2
. При других значениях x
воспользоваться формулой
y=x/sqrt(1-x*x)
вычислить сумму ряда Тейлора функции arctg
:
f(x)
- гладкая функция,
заданная на отрезке [a, b]
, вторая производная которой
по абсолютной величине не превышает некоторой константы.
Для приближенного вычисления интеграла от этой функции мы
применяем формулу трапеций, разбивая отрезок
[a, b]
на n
равных частей.
Какова точность вычисления интеграла в зависимости от n
?
O(1/n).
O((1/n)2).
O((1/n)3).
O((1/n)4).
x
типа int
удовлетворяют равенству
x+x == 0
?
p
, q
описаны следующим образом:
*(p+2)-*q
p[10]*q[10]
*p-*(q+20)
*p+*q[0]
*p
" (т.е.
число 1.5)?
Matrix
и Transform
,
заданные в приведенном ниже фрагменте программы?
n
ставит в соответстие единицу, если n
делится на 15,
и ноль в противном случае. Какая из перечисленных
ниже функций на последовательности десятичных цифр числа n
является индуктивным расширением функции F?
n
.
n
на 231.
n
на 20,
остаток от деления числа n
на 24).
n
на 100,
остаток от деления числа n
на 35).
n > 0
.
r == (-1)n*xn/n!
,
где восклицательным знаком обозначен факториал числа n
.
r == (-1)n-1*xn/n
.
r == (-1)n+1*xn/n!
,
где восклицательным знаком обозначен факториал числа n
.
r == (-1)n+1*xn/n
.
a
нестрого возрастают (соседние элементы могут быть равными).
Дано произвольное значение x
, требуется
найти минимальный индекс i
такой, что
a[i] >= x
. Используется идея алгоритма
бинарного поиска. Каким должен быть инвариант цикла,
в котором рассматривается основной случай после отбрасывания
исключительных ситуаций?
(Условие завершения цикла
end == beg+1
.)
a[beg] < x <= a[end]
,
ответ в переменной end
.
a[beg] <= x < a[end]
,
ответ в переменной beg
.
a[beg] < x <= a[end]
,
ответ в переменной beg
.
20, 17, 12, 2, 10, 4, 8
в указанном порядке. Затем выполняется второй этап сортировки.
На его первом шаге начальный и конечный элементы массива
меняются местами, от пирамиды отрезается правая нижняя ветка
(т.е. последний элемент массива), затем элемент в вершине
пирамиды просеивается, благодаря чему восстанавливается
условие пирамиды. Каким будет содержимое массива по
окончании этого шага?
17, 10, 12, 2, 4, 8, 20
.
17, 12, 10, 2, 8, 4, 20
.
17, 10, 12, 2, 8, 4, 20
.
17, 2, 10, 12, 8, 4, 20
.
17, 10, 12, 20, 8, 4, 2
.
a = a(x)
-
некоторое условие, зависящее только от
значения переменной x
.
Укажите, чему может быть равно значение переменной y
в результате выполнения следующего фрагмента программы:
y
равно 1 или 10.
y
равно 1 или 20.
y
может быть равным любому из чисел
1, 10, 20.
y
не может быть равным любому из чисел
1, 10, 20.
k
и получаются упорядоченные подмассивы
длины не больше 2k
; первый шаг выполняется при
k=1
.
Сколько всего шагов будет выполнено?
mergeBlocks
слияния двух упорядоченных блоков, т.е. подмассивов длины
m
и n
, реализованная рекурсивно.
За какое время работает эта функция?
t=O(n+m)
t=O((n+m)log2(n+m))
t=O((n+m)log22(n+m))
t=O((n)log2(m))
t=O((m)log2(n))
signed char
.
Чему оно равно?
float
,
хранит знак, смещенный порядок и дробную часть
двоичного представления мантиссы.
Чему равен смещенный порядок в представлении числа 9.0?
[a, b]
методом деления отрезка пополам
с точностью eps
.
Пусть функция f(x)
определена следующим
образом:
x
в результате выполнения следующего фрагмента программы:
x
примерно равно 0.
x
примерно равно 3.141593
x
примерно равно 6.283185
x
примерно равно 1.570796
4
?
f(x) = p*x2 + q*x + r
(многочлен степени 2) задана на отрезке [a, b]
.
Пусть отрезок [a, b]
разделен на 4 равных части;
обозначим концы этих отрезков через
x0, x1,
x2, x3, x4
:
h = (b-a)/4, xi = a+i*h, i = 0,1,2,3,4
.
yi = f(xi)
.
f(x)
по отрезку [a, b]
? Отметьте все правильные ответы.
1/4 * (y0 + 2*y2 + y4) * (b - a)
.
1/6 * (y0 + 4*y2 + y4) * (b - a)
.
1/12 * (y0 + 4*y1 + 2*y2 + 4*y3 + y4) * (b - a)
.
int x = new int;
int* x = new int(1000);
int* x = new int[1000];
int* x = (int *) malloc(1000 * sizeof(int));
y = f(p)
на последовательности p
элементов некоторого типа индуктивной, если при добавлении в конец
последовательности p
еще одного элемента x
новое значение функции
y1 = f(p&x)
можно вычислить, зная только
старое значение y
и добавленный элемент x
.
Среди перечисленных ниже функций на последовательностях вещественных
чисел укажите индуктивные.
t=2
,
коэффициенты многочлена заданы в последовательности
p = {a0, a1, a2, ..., an}
по убыванию степеней:
C*n
,
где C
- некоторая константа
(т.е. время пропорционально числу n
).
C*log2 n
,
где C
- некоторая константа
(т.е. время пропорционально количеству цифр в двоичной или
десятичной записи числа n
).
C*r
, где C
- некоторая константа,
r
- квадратный корень из числа n
(т.е. время пропорционально квадратному корню из n
).
while
;
рекурсия применяется лишь к меньшему сегменту массива,
разделенного на части функцией partition
.
Алгоритм применяется к массиву размером миллион. Может ли
глубина рекурсии равняться 30?
4, 5, 6, 7, 1, 2, 3
в указанном порядке.
Каким будет содержимое массива
после построения пирамиды?
7, 6, 4, 5, 1, 2, 3
.
7, 6, 5, 4, 1, 2, 3
.
7, 5, 6, 4, 1, 2, 3
.
7, 6, 5, 4, 3, 2, 1
.
7, 5, 6, 4, 3, 2, 1
.
x
в результате выполнения приведенного ниже фрагмента программы?
mergeBlocks
слияния двух упорядоченных блоков, т.е. подмассивов длины
m
и n
, реализованная рекурсивно.
Пусть сумма длин блоков m+n=1000
. Какой может быть
максимальная суммарная длина блоков при рекурсивном вызове
функции mergeBlocks
на первом шаге?
mergeBlocks
слияния двух упорядоченных блоков, т.е. подмассивов длины
m
и n
, реализованная рекурсивно.
Пусть сумма длин блоков m+n=512
.
При реализации функции mergeBlocks
вызывается функция перестановки двух блоков
swapBlocks
. Какой может быть
максимальная суммарная длина блоков переставляемых блоков?
(x+y)7
раскрываются скобки и приводятся подобные члены.
Чему будет равен коэффициент при
x3y4
?
-31
для типа short
?
(Для удобства двоичная запись разбита запятыми на четверки.)
double
,
хранит знак, смещенный порядок и дробную часть
двоичного представления мантиссы.
Сколько единичных битов в двоичном представлении
дробной части мантиссы для числа 0.125?
new
.
pop X
.
n
элементов,
строго больших предыдущего, причем самый первый элемент не
учитывается (не считается больше предыдущего).
Например, для последовательности
{2, 1, 3, 5}
ответ n=2
(элементы 3
и 5
).
x0
, чтобы программа работала правильно?
w
- последовательность
целых чисел, F(W)
- максимальная из
сумм нескольких подряд идущих элементов
последовательности w
.
Например, для последовательности
w={1, -2, 3, 4, -1, 5, -2, -3, 4}
максимальную сумму образуют элементы с третьего по шестой:
F(w)=3+4-1+5=11
.
Какие из перечисленных ниже функций
являются индуктивным расширением функции F
?
Укажите все правильные варианты.
w
;максимальная из сумм отрезков последовательности
w
,
заканчивающихся в конце w
).
w
;сумма положительных элементов в конце последовательности
w
).
w
;сумма положительных элементов в конце последовательности
w
).
w
;сумма отрицательных элементов в конце последовательности
w
).
a
- целочисленный массив размера n
(индекс элементов меняется от 0 до n-1
),
элементы которого строго возрастают:
a[0] < a[1] <... < a[n-1]
.
Определить, содержит ли следующий фрагмент программы ошибку
(т.е. действительно ли тело цикла сохраняет инвариант):
while
;
рекурсия применяется лишь к меньшему сегменту массива,
разделенного на части функцией partition
.
n
- переменная типа unsigned char
.
Укажите значение n
после выполнения оператора
double
без потери точности?
main
.
main
.
f(x, y)
языка C/C++ со
следующим прототипом:
y
функции f
относительно регистра
FP (Frame Pointer - указатель кадра) во время выполнения
тела функции?
w
содержит коэффициенты многочлена по возрастанию степеней.
Функция F(w)
равна значению второй производной
многочлена в фиксированной точке t=2
. Среди
указанных ниже функций отметьте те, которые являются индуктивным
расширением функции F
.
t
;значение первой производной многочлена в точке
t
;значение второй производной многочлена в точке
t
).
t
;степень многочлена).
0
;значение первой производной многочлена в точке
0
;значение второй производной многочлена в точке
0
).
0
;степень многочлена).
z
и t
после его выполнения?
m=143
. Существуют ли два различных целых числа
a
, b
такие, что
a2b2 (mod m)
, но
a±b (mod m)
?
gcd1
будет размещено одновременно в аппаратном стеке) при следующем
вызове функции:
n
в результате выполнения
следующего фрагмента программы:
n
равно 0.
n
равно -1.
n
равно 255.
n
равно -256.
pow(a, b)
возводит
число a
в степень b
.)
Что будет напечатано в результате ее выполнения?
x == y
.
x != y
.
n
после выполнения этого фрагмента?
n = 3
n = 13
n = 21
n = 22
p(x)
и q(x)
степени 4 принимают в четырех попарно различных узлах
x0, x1,
x2, x3
одни и те же
значения
y0, y1,
y2, y3
. Следует ли из
этого, что многочлены p(x)
и q(x)
равны?
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: посчитать среднее гармоническое чисел из последовательности.
Постановка задачи: программа должна содержать функцию, которая получает в качестве параметров имя массива и его длину (или нескольких массивов, если этого требуют условия задачи) и выполняет необходимые действия. При решении не разрешается создавать или резервировать в программе дополнительную память, соизмеримую по размерам с объемом исходных данных. То есть, нельзя создавать дополнительные массивы, если это явно не оговорено в задаче.
Функция main
должна заполнить массив числами из файла. Для определения длины массива предусматривается два варианта: 1) по значению первого числа в файле, 2) непосредственным подсчетом количества чисел в файле. Результат также выводится в файл.
Задание: циклически сдвинуть элементы массива на одну позицию вправо.
short
?
m=17
, n=22
?
a
описан как
m
- константный указатель на начало
массива, n
- число его элементов. Укажите,
чему будет равно значение переменной s
в
результате выполнения следующего фрагмента программы:
e
такой, что для всякого
другого элемента x
"произведение" e
на
x
равно x
:
e x = x
. Какие элементы будут нейтральными
для операций суммы и минимума чисел соответственно?
0, 0
.
0, +
0, -
-, +
a
размера 4 содержит
элементы 4, 1, 3, 2 в указанном порядке.
К нему применяется алгоритм пузырьковой сортировки,
использующий сравнение элементов с помощью функции compare
и обмен элементов с помощью функции swap
.
Сколько раз будет вызвана функция swap
?
n
элементов,
которые можно сравнивать
между собой. Их медианой называется такое
значение m
, что число элементов набора,
меньших либо равных m
,
равно числу элементов, больших либо равных m
.
Существует ли алгоритм выбора медианы, который
работает за время O(n)
(т.е. за время,
линейно зависящее от n)?
901, 301, 102, 105, 307, 811, 215, 232, 835, 335
301, 901, 102, 105, 307, 811, 215, 232, 835, 335
102, 301, 901, 105, 307, 811, 215, 232, 335, 835
901, 301, 102, 105, 307, 811, 215, 232, 335, 835
301, 901, 105, 102, 307, 811, 215, 232, 335, 835
n
-значных чисел в системе счисления с основанием
b
требуется n
разрядов,
каждый из которых может находиться
в b
состояниях. Таким образом, суммарное число состояний
равно произведению n*b
.
Рассмотрим восьмеричную (b
=8), десятичную (b
=10)
и шестнадцатеричную (b
=16) системы счисления.
Какая из них наиболее экономна по суммарному числу состояний
для записи чисел в диапазоне 0..N
,
где N
- некоторое достаточно большое число?
1414
представляет
вещественное число 1.414
. Рассмотрим два числа
с фиксированной точкой, представленные целыми числами
100001 и 20050. Каким числом будет представлено их произведение?
z
":
z=1+x
).
Рассмотрим реализованную на C/C++ функцию mySqrt(z)
,
вычисляющую значение квадратного корня с точностью до одной миллионной:
z
ее можно применять так,
чтобы функция завершала работу за разумное время и
ошибка вычисления результата была бы не более 0.0001?
Укажите все правильные ответы из числа перечисленных ниже.
z
,
например, 0<z<10
.
z
в интервале
0<z<2
.
z = 10-10
.
z = 2.0001
.
z = 0
.
z
в интервале
0.1<z<1.9
.
x0, x1, ..., xn
и
принимающий в этих узлах значения
y0, y1, ..., yn
,
представляется формулой
a0, a1, ..., an
многочлена pn(x)
уже вычислены. Мы добавляем новый узел xn+1
,
значение в котором должно быть равно yn+1
,
и строим новый многочлен Ньютона pn+1(x)
на единицу большей степени по узлам
x0, x1, ..., xn, xn+1
и значениям
y0, y1, ..., yn, yn+1
.
Сколько действий нужно выполнить, чтобы вычислить все
коэффициенты нового многочлена?
O(1)
.
O(n)
.
O(n2)
.
O(n3)
.
unsigned short
k
в результате выполнения следующего фрагмента программы:
a
, p
,
q
, n
описаны следующим образом:
p = a + 10;
q = &p[5] + 5;
n
в результате выполнения следующего фрагмента программы?
Процессор имеет 32-разрядную архитектуру.
int
? Укажите все правильные
варианты.
-INT_MAX
(константа INT_MAX описана в стандартном заголовочном файле
limits.h).
INT_MIN
,
заданную в стандартном заголовочном файле
limits.h.
-2147483648
,
равную -231
.
n
содержит некоторое положительное целое число.
Указать, что вычисляет следующая функция f(n)
:
n/10
.
10*n
.
log10 n
.
n/10
.
210*n
.
30, 25, 23, 15, 10, 20, 16, 7, 12, 5, 11, 9
в указанном порядке. Образуют ли они бинарную кучу (пирамиду)?
n
в системе счисления с основанием b
мы вычисляем цифры числа справа налево,
начиная с последней цифры. На очередном шаге
мы делим n
с остатком на b
, получая
частное q
и остаток r
;
остаток представляет очередную цифру числа
в порядке справа налево.
Затем мы переменной n
присваиваем значение частного q
,
и процесс повторяется, пока n
не станет равным нулю.
Сколько раз будет выполнена операция деления
при переводе числа 1000 (тысяча)
в троичную систему счисления?
x
в виде
s
- знак числа, принимающий значение
плюс или минус единица,
e
- порядок, представляющий собой
целое число (положительное, 0 или отрицательное),
m
- мантисса, представляющая собой
вещественное число в диапазоне
1 m < 2
.
Чему равны порядок и мантисса для числа 0.1?
e = -3, m = 1.0
.
e = -3, m = 1.125
.
e = -4, m = 1.6
.
z
"
(обозначим ее croot(z)
):
z=1+x
).
Этот ряд сходится лишь для значений
x
, по абсолютной величине не превосходящих 1, а эффективно вычислять
его сумму можно только для еще более узкого интервала значений
x
.
Каким свойством функции croot(z)=z1/3
удобнее всего воспользоваться, чтобы свести ее вычисление
для положительных значений z
к суммированию ряда?
croot(z)=croot(n)*croot(z/n)
,
где n
- целая часть z
.
croot(z) = 2*croot(z/8)
при z > 1.6
и
croot(z) = 0.5*croot(z*8)
при 0 < z < 0.2
.
croot(z) = croot(2)*croot(z/2)
при z > 1.5
и
croot(z) = croot(z*2)/croot(2)
при 0 < z < 0.5
.
printf
,
используемой для печати различных значений по заданному формату?
m
строк на n
столбцов
при помощи линейного массива,
в котором хранятся сначала элементы нулевой строки матрицы,
затем первой и т.д., в конце - элементы (m-1)-й строки:
m
на n
превращается в матрицу размера
n
на m
Пусть эта функция применяется к прямоугольной матрице,
содержащей 3 строки и 5 столбцов, элементы которой хранятся
в линейном массиве a
. Сколько элементов массива
a
при этом останутся на своем месте?
[a, b]
,
причем на концах отрезка заданы ее значения
y0=f(a)
,
y1=f(b)
,
а также значения ее производной
y'0=f'(a)
,
y'1=f'(b)
.
Всегда ли существует многочлен степени 2 такой, что
на концах отрезка его значения и значения его производной
совпадают со значениями и производной функции?
(-17)%3*10
в языке C?
n
в результате выполнения следующего фрагмента программы:
length
, которая находит
длину вектора в трехмерном пространстве. Вектор задается массивом
из трех его координат.
Отметьте, какие из возможных прототипов данной функции
корректны.
double length(double v[3]);
double length(double *v);
double length(const double v[]);
double length(const double *v);
q
и остаток r
от деления
целых чисел a
, b
:
e
является степенью двойки, а также
выполняются равенства
a - q*b == r
и
m == e*b
.
e
является степенью двойки, а также
выполняются равенства
a - q*m == r
и
m == e*b
.
e
является степенью двойки, а также
выполняются равенства
a + q*b == r
и
m == e*b
.
e
является степенью двойки, а также
выполняются равенства
a - q*m == r
и
m == e+b
.
compare
и обмен элементов с помощью функции swap
.
Сколько раз будет вызвана функция swap
?
10, 16, 12, 8, 11, 7, 5
в указанном порядке. Услове пирамиды нарушается
только для элемента 10, стоящего в вершине пирамиды.
Для исправления пирамиды выполняется процедура просеивания,
при которой элемент 10 опускается на свое место.
Каким будет содержимое массива после окончания этой процедуры?
16, 10, 12, 8, 11, 7, 5
.
16, 11, 12, 8, 7, 10, 5
.
16, 11, 12, 8, 10, 7, 5
.
16, 12, 11, 8, 10, 7, 5
.
16, 11, 12, 8, 10, 5, 7
.
x
.
merge
слияния двух упорядоченных массивов
применяется к двум массивам длины 100 и 1000. Какое минимальное
число сравнений может быть сделано при выполнении этой функции?
int
(4 байта) в переменной типа double
без потери
точности? То есть, если мы имеем целочисленную
переменную n
типа int
,
то она не изменит своего значения в результе выполнения
следующего фрагмента программы:
arctg(x)
(ее также обозначают
arctan
или atan
)
представляется рядом Тейлора:
x
, по модулю не превосходящих
единицы, а эффективно вычислять его можно лишь для x
, по модулю
существенно меньших единицы - например, |x|<0.5
.
(Для значений x
, по модулю близких к единице и не превосходящих
единицу, ряд сходится, но очень медленно, а точность вычисления его суммы
невысока.)
Какие способы вычисления функции arctan(x)
для "плохих"
значений x
возможны? Укажите все разумные способы из
числа перечисленных ниже.
(Предполагается, что мы умеем быстро и точно вычислять квадратный корень
sqrt(z)
, а также знаем константу pi
.)
arctg(x)
к вычислению arctg(y)
для меньшего по модулю значения y
.
arcsin(y)
,
где y=x/sqrt(1+x*x)
. Значение arcsin(y)
можно вычислить как сумму ряда, когда |y|
существенно меньше единицы (например, |y|<0.75
):
y
, по модулю близких к единице, этот ряд
сходится очень медленно, поэтому для них можно дополнительно
воспользоваться формулой
arcsin(z)
для значения z=sqrt(1-y*y)
.
arctg(x)
нечетная, поэтому
достаточно уметь ее вычислять только для неотрицательных x
.
Для 0 x 1
вычисляется сумма указанного ряда.
Для x>1
применим формулу
arctg(y)
,
где y=1/x
и значение y
меньше единицы.
f(x)
- гладкая функция,
заданная на отрезке [a, b]
, третья производная которой
по абсолютной величине не превышает некоторой константы.
Для приближенного вычисления интеграла от этой функции мы
применяем формулу Симпсона (парабол), разбивая отрезок
[a, b]
на 2*n
равных частей.
Какова точность вычисления интеграла в зависимости от n
?
O(1/n).
O((1/n)2).
O((1/n)3).
O((1/n)4).
x > 0
типа signed char
, удовлетворяющее неравенству
x+x <= 0
?
p
, q
, n
описаны следующим образом:
p = q+20;
p = &q[10];
n = p - q;
r = p - n;
p = q + r;
a[0]
" (т.е.
число 3.7)?
Callback
и Action
,
заданные в приведенном ниже фрагменте программы?
n
ставит в соответстие единицу, если n
делится на 14,
и ноль в противном случае. Какая из приведенных
ниже функций на последовательности десятичных цифр числа n
является индуктивным расширением функции F?
n
на 57,
остаток от деления числа n
на 35).
n
на 52,
остаток от деления числа n
на 21).
n
на 165.
n
на 57.
n
не меньше k
.
Восклицательным знаком обозначается операция вычисления факториала.
c = n! / (k! * (n-k)!)
.
c = (n+k)! / (n! * (n-k)!)
.
c = (n-k)! / (k! * (n+k)!)
.
c = (n+k)! / (k! * (n-k)!)
.
compare
и обмен элементов с помощью функции swap
.
Какой из этих алгоритмов вызывает функцию swap
большее число раз? (Имеется в виду нестрогое сравнение.)
swap
не меньшее число раз, чем сортировка
прямым выбором.
swap
не меньшее число раз, чем
пузырьковая сортировка.
swap
большее число раз,
для других массивов - сортировка прямым выбором).
30, 20, 25, 10, 7, 19, 5
в указанном порядке. Затем выполняется второй этап сортировки.
На его первом шаге начальный и конечный элементы массива
меняются местами, от пирамиды отрезается правая нижняя ветка
(т.е. последний элемент массива), затем элемент в вершине
пирамиды просеивается, благодаря чему восстанавливается
условие пирамиды. Каким будет содержимое массива по
окончании этого шага?
25, 20, 19, 10, 7, 5, 30
.
25, 20, 19, 10, 5, 7, 30
.
25, 19, 20, 10, 7, 5, 30
.
25, 10, 19, 20, 5, 7, 30
.
25, 30, 19, 10, 5, 7, 20
.
z
в результате выполнения следующего фрагмента программы:
z
равно 0 или 10.
z
равно 0 или 20.
z
равно 10 или 20.
z
не равно 0.
short
. Четное оно или нечетное?
double
,
хранит знак, смещенный порядок и дробную часть
двоичного представления мантиссы.
Чему равен смещенный порядок в представлении числа 0.3?
[a, b]
методом деления отрезка пополам
с точностью eps
.
Пусть функция f(x)
определена следующим
образом:
x
в результате выполнения следующего фрагмента программы:
x
приблизительно равно 1.
x
приблизительно равно 2.
x
приблизительно равно 3.
x
приблизительно равно 4.
x
приблизительно равно 5.
3
строки и 4
столбца?
[a, b]
от функции y = f(x)
вычисляется по формуле
1/6 * (y0 + 4*y1 + y2) * (b - a)
.
y0 = f(a), y1 = f((a+b)/2), y2 = f(b)
.
f(x)
- многочлен некоторой степени.
Какова максимальная степень многочленов, для которых эта формула
всегда дает точное значение интеграла?
int* x = new int(8);
int* x = new int(1000);
int x = new int[1000];
int* x = (int *) malloc(8 * sizeof(int));
y = f(p)
на последовательности p
элементов некоторого типа индуктивной, если при добавлении в конец
последовательности p
еще одного элемента x
новое значение функции
y1 = f(p&x)
можно вычислить, зная только
старое значение y
и добавленный элемент x
.
Среди перечисленных ниже функций на последовательностях вещественных
чисел укажите индуктивные.
t=2
,
коэффициенты многочлена заданы в последовательности
p = {a0, a1, a2, ..., an}
по убыванию степеней:
C*log2 [x+1]
,
где C
- некоторая константа,
[x+1]
- целая часть числа x+1
(т.е. время пропорционально количеству цифр
в двоичной или десятичной записи
целой части числа x
).
C*log2[x+1]*log2(1/eps)
,
где C
- некоторая константа, а квадратные скобки
обозначают целую часть.
Иначе говоря, время пропорционально количеству цифр
в двоичной или десятичной записи
целой части x
, умноженному на требуемое количество значащих
цифр в дробной части результата.
C*log2[x+1] + log2(1/eps)
,
где C
- некоторая константа, а квадратные скобки
обозначают целую часть. Иначе говоря,
время пропорционально сумме количества цифр
в двоичной или десятичной записи
целой части x
и требуемого количества значащих
цифр в дробной части результата.
1, 2, 3, 4, 7, 6, 5
в указанном порядке.
Каким будет содержимое массива
после построения пирамиды?
7, 4, 6, 1, 2, 3, 5
.
7, 4, 5, 1, 2, 6, 3
.
7, 6, 5, 4, 2, 3, 1
.
7, 4, 6, 5, 2, 3, 1
.
7, 6, 4, 5, 2, 3, 1
.
x
в результате выполнения приведенного ниже фрагмента программы?
-14
для типа signed char
?
double
,
хранит знак, смещенный порядок и дробную часть
двоичного представления мантиссы.
Сколько единичных битов в двоичном представлении
дробной части мантиссы для числа 15.0?
new
.
call f
.
n
элементов,
строго меньших предыдущего, причем самый первый элемент также
учитывается (считается меньше предыдущего).
Например, для последовательности
{2, 1, 3, 5, 4}
ответ n=3
(элементы 2
, 1
и 4
).
x0
, чтобы программа работала правильно?
w
- последовательность целых чисел,
F(w)=длина максимального постоянного участка в w
.
Например, для последовательности
w={1, 1, 4, 4, 4, 0, 2}
значение F
равно 3 (постоянный участок из четверок).
Какие из перечисленных ниже функций
являются индуктивным расширением функции F?
Укажите все правильные варианты.
последний элемент последовательности w;
1, если максимальный постоянный участок заканчивается в конце последовательности, и 0 в противном случае).
последний элемент последовательности w;
длина постоянного участка в конце последовательности w).
предпоследний элемент последовательности w;
1, если максимальный постоянный участок заканчивается в конце последовательности, и 0 в противном случае).
последний элемент последовательности w;
0, если максимальный постоянный участок заканчивается в конце последовательности, и 1 в противном случае).
f(x)
- вещественная функция функция
от вещественного
аргумента. Определить,
содержит ли следующий фрагмент программы ошибку
(т.е. действительно ли тело цикла сохраняет инвариант):
n
- переменная типа unsigned char
.
Укажите значение n
после выполнения оператора
1,000,000,000
(миллиард)
в переменной типа float
без потери точности?
f
,
вне тела функции.
f
.
f
cоздаем массив в динамической памяти с помощью строки
w
содержит коэффициенты многочлена по возрастанию степеней.
Функция F(w)
равна значению производной
многочлена в фиксированной точке t=2
. Среди
указанных ниже функций отметьте те, которые являются индуктивным
расширением функции F
.
t
;значение производной многочлена в точке
t
).
t
;степень многочлена).
t
;значение второй производной многочлена в точке
t
).
t
;значение второй производной многочлена в точке
t
).
z
и t
после его выполнения?
m=101
. Существуют ли два различных целых числа
a
, b
такие, что
a2b2 (mod m)
, но
a±b (mod m)
?
gcd1
будет размещено одновременно в аппаратном стеке) при следующем
вызове функции:
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: посчитать количество чисел, больших предыдущего.
Постановка задачи: программа должна содержать функцию, которая получает в качестве параметров имя массива и его длину (или нескольких массивов, если этого требуют условия задачи) и выполняет необходимые действия. При решении не разрешается создавать или резервировать в программе дополнительную память, соизмеримую по размерам с объемом исходных данных. То есть, нельзя создавать дополнительные массивы, если это явно не оговорено в задаче.
Функция main
должна заполнить массив числами из файла. Для определения длины массива предусматривается два варианта: 1) по значению первого числа в файле, 2) непосредственным подсчетом количества чисел в файле. Результат также выводится в файл.
Задание: сравнить два неупорядоченных целочисленных массива A и B как числовые множества без повторения элементов: A = B и A входит B.
return
.
FP+S
, где константа S>0
.
FP-S
, где константа S>0
.
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: определить в последовательности действительных чисел количество равных некоторому число X с заданной точностью. Число X и точность ввдятся с клавиатуры.
Постановка задачи: программа должна содержать функцию, которая получает в качестве параметров имя массива и его длину (или нескольких массивов, если этого требуют условия задачи) и выполняет необходимые действия. При решении не разрешается создавать или резервировать в программе дополнительную память, соизмеримую по размерам с объемом исходных данных. То есть, нельзя создавать дополнительные массивы, если это явно не оговорено в задаче.
Функция main
должна заполнить массив числами из файла. Для определения длины массива предусматривается два варианта: 1) по значению первого числа в файле, 2) непосредственным подсчетом количества чисел в файле. Результат также выводится в файл.
Задание: для двух целочисленных массивов построить третий массив, являющийся их объединением как числовых множеств без повторения элементов. Указать длину получившегося массива.
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: определить номер последнего чмсла, равного заданному X с заданной точностью. Число X и точность ввдятся с клавиатуры.
Постановка задачи: программа должна содержать функцию, которая получает в качестве параметров имя массива и его длину (или нескольких массивов, если этого требуют условия задачи) и выполняет необходимые действия. При решении не разрешается создавать или резервировать в программе дополнительную память, соизмеримую по размерам с объемом исходных данных. То есть, нельзя создавать дополнительные массивы, если это явно не оговорено в задаче.
Функция main
должна заполнить массив числами из файла. Для определения длины массива предусматривается два варианта: 1) по значению первого числа в файле, 2) непосредственным подсчетом количества чисел в файле. Результат также выводится в файл.
Задание: для двух целочисленных массивов построить третий массив, являющийся их пересечением как числовых множеств без повторения элементов. Указать длину получившегося массива.
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: определить является ли последовательнсть возврастающей или убывающей.
Постановка задачи: программа должна содержать функцию, которая получает в качестве параметров имя массива и его длину (или нескольких массивов, если этого требуют условия задачи) и выполняет необходимые действия. При решении не разрешается создавать или резервировать в программе дополнительную память, соизмеримую по размерам с объемом исходных данных. То есть, нельзя создавать дополнительные массивы, если это явно не оговорено в задаче.
Функция main
должна заполнить массив числами из файла. Для определения длины массива предусматривается два варианта: 1) по значению первого числа в файле, 2) непосредственным подсчетом количества чисел в файле. Результат также выводится в файл.
Задание: определить какое число встречается в массиве целых чисел наибольшее количество раз.
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: определить удовлетворяют ли элементы последовательности данному рекуррентному соотношению c1*ai-1+c2*ai+c3*ai+1=b с заданной точностью. Параметры ci, b и точность задаются с клавиатуры.
Постановка задачи: программа должна содержать функцию, которая получает в качестве параметров имя массива и его длину (или нескольких массивов, если этого требуют условия задачи) и выполняет необходимые действия. При решении не разрешается создавать или резервировать в программе дополнительную память, соизмеримую по размерам с объемом исходных данных. То есть, нельзя создавать дополнительные массивы, если это явно не оговорено в задаче.
Функция main
должна заполнить массив числами из файла. Для определения длины массива предусматривается два варианта: 1) по значению первого числа в файле, 2) непосредственным подсчетом количества чисел в файле. Результат также выводится в файл.
Задание: удалить из целочисленного массива одинаковые значения, т.е. если какое-то значение встречается несколько раз (в разных местах массива), то оставить только первый такой элемент, а остальные удалить из массива. Оставшиеся элементы сдвинуть к началу массива, и указать их количество.
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: определить количество различных элементов в неубывающнй последовательности целых чисел.
Постановка задачи: программа должна содержать функцию, которая получает в качестве параметров имя массива и его длину (или нескольких массивов, если этого требуют условия задачи) и выполняет необходимые действия. При решении не разрешается создавать или резервировать в программе дополнительную память, соизмеримую по размерам с объемом исходных данных. То есть, нельзя создавать дополнительные массивы, если это явно не оговорено в задаче.
Функция main
должна заполнить массив числами из файла. Для определения длины массива предусматривается два варианта: 1) по значению первого числа в файле, 2) непосредственным подсчетом количества чисел в файле. Результат также выводится в файл.
Задание: сократить подряд идущие одинаковые элементы целочисленного массива до одного элемента. То есть, если в массиве встречается несколько одинаковых элементов, стоящих рядом, то оставить только один из них, а остальные удалить из массива. Оставшиеся элементы сдвинуть к началу массива, и указать их количество.
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: определить общее количество элементов в постоянных участках последовательности целых чисел.
Постановка задачи: программа должна содержать функцию, которая получает в качестве параметров имя массива и его длину (или нескольких массивов, если этого требуют условия задачи) и выполняет необходимые действия. При решении не разрешается создавать или резервировать в программе дополнительную память, соизмеримую по размерам с объемом исходных данных. То есть, нельзя создавать дополнительные массивы, если это явно не оговорено в задаче.
Функция main
должна заполнить массив числами из файла. Для определения длины массива предусматривается два варианта: 1) по значению первого числа в файле, 2) непосредственным подсчетом количества чисел в файле. Результат также выводится в файл.
Задание: удалить из массива все отрицательные значения, а оставшиеся уплотнить (сдвинуть) с сохранение исходного порядка к началу массива. Указать количество оставшихся значений.
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: определить порядковый номер первого числа, равного максимуму по всей последовательности.
Постановка задачи: программа должна содержать функцию, которая получает в качестве параметров имя массива и его длину (или нескольких массивов, если этого требуют условия задачи) и выполняет необходимые действия. При решении не разрешается создавать или резервировать в программе дополнительную память, соизмеримую по размерам с объемом исходных данных. То есть, нельзя создавать дополнительные массивы, если это явно не оговорено в задаче.
Функция main
должна заполнить массив числами из файла. Для определения длины массива предусматривается два варианта: 1) по значению первого числа в файле, 2) непосредственным подсчетом количества чисел в файле. Результат также выводится в файл.
Задание: циклически сдвинуть элементы массива на K позиций вправо с затратой O(N) действий (N - длина массива).
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: определить порядковый номер последнего числа, равного минимуму по всей последовательности..
Постановка задачи: программа должна содержать функцию, которая получает в качестве параметров имя массива и его длину (или нескольких массивов, если этого требуют условия задачи) и выполняет необходимые действия. При решении не разрешается создавать или резервировать в программе дополнительную память, соизмеримую по размерам с объемом исходных данных. То есть, нельзя создавать дополнительные массивы, если это явно не оговорено в задаче.
Функция main
должна заполнить массив числами из файла. Для определения длины массива предусматривается два варианта: 1) по значению первого числа в файле, 2) непосредственным подсчетом количества чисел в файле. Результат также выводится в файл.
Задание: каждый элемент a[i] массива заменить на сумму элементов исходного массива вплоть до него самого включительно, т.е. от 0 до i-го.
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: определить количество чисел, равных минимальному из всей последовательности целых чисел.
Постановка задачи: программа должна содержать функцию, которая получает в качестве параметров имя массива и его длину (или нескольких массивов, если этого требуют условия задачи) и выполняет необходимые действия. При решении не разрешается создавать или резервировать в программе дополнительную память, соизмеримую по размерам с объемом исходных данных. То есть, нельзя создавать дополнительные массивы, если это явно не оговорено в задаче.
Функция main
должна заполнить массив числами из файла. Для определения длины массива предусматривается два варианта: 1) по значению первого числа в файле, 2) непосредственным подсчетом количества чисел в файле. Результат также выводится в файл.
Задание: каждый элемент массива заменить на полусумму его соседних элементов (кроме первого и последнего).
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: найти среднее квадратичное отклонение от среднего арифметического в последовательности.
Постановка задачи: программа должна содержать функцию, которая получает в качестве параметров имя массива и его длину (или нескольких массивов, если этого требуют условия задачи) и выполняет необходимые действия. При решении не разрешается создавать или резервировать в программе дополнительную память, соизмеримую по размерам с объемом исходных данных. То есть, нельзя создавать дополнительные массивы, если это явно не оговорено в задаче.
Функция main
должна заполнить массив числами из файла. Для определения длины массива предусматривается два варианта: 1) по значению первого числа в файле, 2) непосредственным подсчетом количества чисел в файле. Результат также выводится в файл.
Задание: назовем x-отрезком группу подряд идущих элементов массива, каждый из которых равен x. Для заданного числа x заменить элементы каждого x-отрезка на полусумму элементов, прилегающих к этому отрезку справа и слева. Если x-отрезок расположен в начале или конце массива, считать второй крайний элемент равным нулю.
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: найти величину максимального отклонения элементов последовательности от их среднего арифметического.
Постановка задачи: программа должна содержать функцию, которая получает в качестве параметров имя массива и его длину (или нескольких массивов, если этого требуют условия задачи) и выполняет необходимые действия. При решении не разрешается создавать или резервировать в программе дополнительную память, соизмеримую по размерам с объемом исходных данных. То есть, нельзя создавать дополнительные массивы, если это явно не оговорено в задаче.
Функция main
должна заполнить массив числами из файла. Для определения длины массива предусматривается два варианта: 1) по значению первого числа в файле, 2) непосредственным подсчетом количества чисел в файле. Результат также выводится в файл.
Задание: сгруппировать положительные элементы массива в его начале, а отрицательные - в конце с сохранением их порядка.
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: найти количество элементов последовательности больших среднего арифметическго.
Постановка задачи: программа должна содержать функцию, которая получает в качестве параметров имя массива и его длину (или нескольких массивов, если этого требуют условия задачи) и выполняет необходимые действия. При решении не разрешается создавать или резервировать в программе дополнительную память, соизмеримую по размерам с объемом исходных данных. То есть, нельзя создавать дополнительные массивы, если это явно не оговорено в задаче.
Функция main
должна заполнить массив числами из файла. Для определения длины массива предусматривается два варианта: 1) по значению первого числа в файле, 2) непосредственным подсчетом количества чисел в файле. Результат также выводится в файл.
Задание: Назовем массив из N целых чисел счастливым, если существует такое 0 < k < N , что сумма элементов с индексами от 0 до k-1 совпадает с суммой элементов с индексами от k до N-1. Определить является ли данный массив счастливым.
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: найти количество возрастающих участков последовательности.
Постановка задачи: программа должна содержать функцию, которая получает в качестве параметров имя массива и его длину (или нескольких массивов, если этого требуют условия задачи) и выполняет необходимые действия. При решении не разрешается создавать или резервировать в программе дополнительную память, соизмеримую по размерам с объемом исходных данных. То есть, нельзя создавать дополнительные массивы, если это явно не оговорено в задаче.
Функция main
должна заполнить массив числами из файла. Для определения длины массива предусматривается два варианта: 1) по значению первого числа в файле, 2) непосредственным подсчетом количества чисел в файле. Результат также выводится в файл.
Задание: назовем массив из целых чисел плотным, если множество значений элементов массива полностью заполняет некоторый отрезок [a, b] (рассматривются целые значения). Определить является ли данный массив плотным.
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: найти сумму четных эдементов во всех возрастающих участках последовательности целых чисел.
Постановка задачи: программа должна содержать функцию, которая получает в качестве параметров имя массива и его длину (или нескольких массивов, если этого требуют условия задачи) и выполняет необходимые действия. При решении не разрешается создавать или резервировать в программе дополнительную память, соизмеримую по размерам с объемом исходных данных. То есть, нельзя создавать дополнительные массивы, если это явно не оговорено в задаче.
Функция main
должна заполнить массив числами из файла. Для определения длины массива предусматривается два варианта: 1) по значению первого числа в файле, 2) непосредственным подсчетом количества чисел в файле. Результат также выводится в файл.
Задание: получить массив биномиальных коэффициентов для степени N, последовательно вычисляя строки треугольника Паскаля (можно использовать только один массив).
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: определить количество возрастающих и убывающих участков в последовательности.
Постановка задачи: программа должна содержать функцию, которая получает в качестве параметров имя массива и его длину (или нескольких массивов, если этого требуют условия задачи) и выполняет необходимые действия. При решении не разрешается создавать или резервировать в программе дополнительную память, соизмеримую по размерам с объемом исходных данных. То есть, нельзя создавать дополнительные массивы, если это явно не оговорено в задаче.
Функция main
должна заполнить массив числами из файла. Для определения длины массива предусматривается два варианта: 1) по значению первого числа в файле, 2) непосредственным подсчетом количества чисел в файле. Результат также выводится в файл.
Задание: элементы массива не убывают. Двоичным поиском определить позицию, где в этот массив можно вставить данное число x.
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: найти количество элементов в наибольшем постоянном участке последовательности целых чисел.
Постановка задачи: программа должна содержать функцию, которая получает в качестве параметров имя массива и его длину (или нескольких массивов, если этого требуют условия задачи) и выполняет необходимые действия. При решении не разрешается создавать или резервировать в программе дополнительную память, соизмеримую по размерам с объемом исходных данных. То есть, нельзя создавать дополнительные массивы, если это явно не оговорено в задаче.
Функция main
должна заполнить массив числами из файла. Для определения длины массива предусматривается два варианта: 1) по значению первого числа в файле, 2) непосредственным подсчетом количества чисел в файле. Результат также выводится в файл.
Задание: даны два неубывающих массива. Построить третий неубывающий массив, который является объединением первых двух (элементы могут повторяться).
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: найти количество элементов в постоянном участке последовательности целых чисел с наибольшей суммой элементов этого участка.
Постановка задачи: программа должна содержать функцию, которая получает в качестве параметров имя массива и его длину (или нескольких массивов, если этого требуют условия задачи) и выполняет необходимые действия. При решении не разрешается создавать или резервировать в программе дополнительную память, соизмеримую по размерам с объемом исходных данных. То есть, нельзя создавать дополнительные массивы, если это явно не оговорено в задаче.
Функция main
должна заполнить массив числами из файла. Для определения длины массива предусматривается два варианта: 1) по значению первого числа в файле, 2) непосредственным подсчетом количества чисел в файле. Результат также выводится в файл.
Задание: выполнить следующее преобразование. Элементы с четными индексами сгруппировать в начале массива с сохранением их исходного порядка относительно друг друга, а элементы с нечетными индексами сгрупировать в конце массива также с сохранением их исходного порядка.
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: найти длину возрастающего участка последовательности с наибольшим количеством элементов.
Постановка задачи: программа должна содержать функцию, которая получает в качестве параметров имя массива и его длину (или нескольких массивов, если этого требуют условия задачи) и выполняет необходимые действия. При решении не разрешается создавать или резервировать в программе дополнительную память, соизмеримую по размерам с объемом исходных данных. То есть, нельзя создавать дополнительные массивы, если это явно не оговорено в задаче.
Функция main
должна заполнить массив числами из файла. Для определения длины массива предусматривается два варианта: 1) по значению первого числа в файле, 2) непосредственным подсчетом количества чисел в файле. Результат также выводится в файл.
Задание: Выполнить следующее преобразование массива длины N . Элементы с индексами i <= [(N + 1)/2] переместить на позиции с четными индексами с сохранением их исходного порядка относительно друг друга, а оставшиеся элементы (i > [(N + 1)/2]) разместить на позициях с нечетными индексами также с сохранением их исходного порядка. Т.е. начальная и конечная половины массива "перемешиваются" чередованием элементов.
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: найти наибольшую сумму возрастающего участка последовательности (т.е. максимум из сумм элементов по каждому возрастающему участку).
Постановка задачи: программа должна содержать функцию, которая получает в качестве параметров имя массива и его длину (или нескольких массивов, если этого требуют условия задачи) и выполняет необходимые действия. При решении не разрешается создавать или резервировать в программе дополнительную память, соизмеримую по размерам с объемом исходных данных. То есть, нельзя создавать дополнительные массивы, если это явно не оговорено в задаче.
Функция main
должна заполнить массив числами из файла. Для определения длины массива предусматривается два варианта: 1) по значению первого числа в файле, 2) непосредственным подсчетом количества чисел в файле. Результат также выводится в файл.
Задание: пусть в массиве последовательно записаны цифры некоторого длинного десятичного числа. Реализовать функции “прибавляющие единицу” и “вычитающие единицу” из такого числа. (для реализации переноса из “старшего разряда” можно заранее запасти 1 лишний элемент в массиве).
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: найти среднее арифметическое локальных максимумов последовательности (локальный максимум - элемент строго больший своих соседей).
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: найти максимальное количество элементов между двумя соседними локальными минимумами последовательности (локальный минимум - элемент строго меньший своих соседей).
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: найти среднее арифметическое значений элементов последовательности целых чисел, учитывая значения в постоянных участказ только один раз.
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: найти среднее арифметическое, взяв только по одному значению из каждого постоянного участка последовательности.
Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности.
Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main
открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл.
Задание: найти максимальную сумму трех подряд идущих элементов последовательности.