База ответов ИНТУИТ

Программирование

<<- Назад к вопросам

По логике задачи нам требуется использовать большой массив вещественныхчисел, размер которого не превышает миллион элементов. Какие из перечисленныхниже решений являются корректными?

(Ответ считается верным, если отмечены все правильные варианты ответов.)

Варианты ответа
Используем описание
    double a[1000000];
в начале тела той функции, которая работает с этим массивом.
Используем описание
    double a[1000000];
в начале файла с программой, вне функций.
(Верный ответ)
Создадим массив в динамической памяти с помощью строки
    double* a = new double a[1000000];
которая выполняется внутри тела фунции main.
(Верный ответ)
Используем описание
    double a[1000000];
в начале тела функции main.
Похожие вопросы
В функции с прототипом
int f(int x);
которая вызывается часто в различных контекстахи должна работать быстро, нам требуется небольшой массив целых чисел размером в 16 элементов.Какое из перечисленных ниже решений являетсянаиболее правильным?
Сортируемый массив содержит составные ключи из 10десятичных цифр.Массив имеет длину 1000000 (миллион). Надо выбрать один из двух алгоритмовсортировки: сортировку кучей HeapSort или RADIX-сортировку.Какой из двух алгоритмов будет в среднем работать быстреев данной ситуации?
Пусть a - целочисленный массив размера n(индекс элементов меняется от 0 до n-1),элементы которого строго возрастают:a[0] < a[1] <... < a[n-1].Определить, содержит ли следующий фрагмент программы ошибку(т.е. действительно ли тело цикла сохраняет инвариант):
// Программа Поиск    int n; int *a;    . . .    // дано: целое n;    //       целочисленный массив a[n],    //           элементы которого строго возрастают    //           a[0] < a[1] < ... < a[n-1]    // надо: найти элемент x в массиве    int x;          // искомый элемент    . . .           // рассматриваются исключительные случаи    // общий случай    // утверждение: a[0] < x  &&  x <= a[n-1];    int b = 0; int e = n - 1;    while (e - b > 1) {        Invariant: a[b] < x  &&  x <= a[e]        int c := (a + b)/2; // c - целая часть (a+b)/2        if (x < a[c]) {            e = c;  // выбираем левую половину отрезка        } else {            b = c;  // выбираем правую половину        }    }    // утверждение: b == e - 1   &&    //              a[b] < x  &&  x <= a[e]
Рассмотрим реализацию матрицы целых чисел,размеры которой определяютсяв процессе работы программы, через массив указателей на началострок, захватываемый в динамической памяти. Каждая строкатакже представляет собой отдельный массив вдинамической памяти:
    typedef int* intptr;    int m, n; // Размеры матрицы: число строк, столбцов    . . .    intptr* a = new intptr[m];    for (int i = 0; i < m; ++i) {        a[i] = new int[n];    }    // a[i][j] -- элемент i-й строки и j-го столбца
Сколько памяти требуется для хранения прямоугольнойматрицы размером в 10 строк и 20 столбцовв 64-разрядной архитектуре(без учета памяти, используемой под описатели фрагментов кучи;предполагаем, что размер элемента типа int равен 4)?
Алгоритм пузырьковой сортировки упорядочивает массивиз 10 тысяч элементов примерно за 1 секунду. За какое примерновремя тот же алгоритм упорядочит массив из миллиона элементов?
Алгоритм пузырьковой сортировки упорядочивает массивиз 10 тысяч элементов примерно за 1 секунду. За какое примерновремя тот же алгоритм упорядочит массив из 100 тысяч элементов?
Алгоритм пузырьковой сортировки упорядочивает массивиз 100 тысяч элементов примерно за 1 минуту. За какое примерновремя тот же алгоритм упорядочит массив из 10 тысяч элементов?
Пусть переменные p, q описаны следующим образом:
    double *p, q[100];
Отметьте, какие из перечисленных ниже выражений языка C/C++являются корректными:
Пусть переменные p, q, nописаны следующим образом:
    double *p, *q; int n;
Отметьте, какие из перечисленных ниже выражений языка C/C++являются корректными:
Пусть переменные p, q, nописаны следующим образом:
    double *p, q[100], *r; int n;
Отметьте, какие из перечисленных ниже строк программы на C/C++являются корректными: