игра брюс 2048
Главная / Программирование / Программирование / Тест 44

Программирование - тест 44

Упражнение 1:
Номер 1
Пусть расположенный в статической памяти
целочисленный массив a описан как

static int a[] = {
    1, 2, 3, 4, 5, 6, 7, 8, 9, 10
};

Пусть в программе задана функция суммирования массива
с прототипом

int sum(const int *m, int n);

где m - константный указатель на начало
массива, n - число его элементов. Укажите,
чему будет равно значение переменной s в
результате выполнения следующего фрагмента программы:

    int s = sum(a+4, 4);


Ответ:

 26 


Номер 2
Пусть расположенный в статической памяти
целочисленный массив a описан как

static int a[] = {
    10, 9, 8, 7, 6, 5, 4, 3, 2, 1
};

Пусть в программе задана функция суммирования массива
с прототипом

int sum(const int *m, int n);

где m - константный указатель на начало
массива, n - число его элементов. Укажите,
чему будет равно значение переменной s в
результате выполнения следующего фрагмента программы:

    int s = sum(a+3, 4);


Ответ:

 22 


Номер 3
Пусть расположенный в статической памяти
целочисленный массив a описан как

static int a[] = {
    1, 1, 2, 2, 3, 3, 4, 4, 5, 5
};

Пусть в программе задана функция суммирования массива
с прототипом

int sum(const int *m, int n);

где m - константный указатель на начало
массива, n - число его элементов. Укажите,
чему будет равно значение переменной s в
результате выполнения следующего фрагмента программы:

    int s = sum(a+5, 3);


Ответ:

 11 


Упражнение 2:
Номер 1
Пусть переменные a, p,
q, n описаны следующим образом:

    double a[10]; double *p;
    const double *q; int n;

Отметьте, какие из приведенных ниже операторов языка C/C++
корректны.

Ответ:

 (1) p = &a[7] + n;  

 (2) q = &p[3] + 2;  

 (3) p = &q[2] + 3;  

 (4) n = p - a;  

 (5) n = q - a;  


Номер 2
Пусть переменные a, p,
q, n описаны следующим образом:

    double a[16]; double *p;
    const double *q; int n;

Отметьте, какие из приведенных ниже операторов языка C/C++
корректны.

Ответ:

 (1) q = a + 16;  

 (2) q = &p[3] + 2;  

 (3) p = &q[2] + 3;  

 (4) n = p - &a[2];  

 (5) n = q - a;  


Номер 3
Пусть переменные a, p,
q, n описаны следующим образом:

    double a[10]; double *p;
    const double *q; int n;

Отметьте, какие из приведенных ниже операторов языка C/C++
корректны.

Ответ:

 (1) p = a + 10;  

 (2) p = &q[5] + 2;  

 (3) q = &p[5] + 5;  

 (4) n = q - &a[4];  

 (5) n = p - a;  


Упражнение 3:
Номер 1
Мы хотим реализовать функцию, которая находит
индекс максимального элемента вещественного массива.
Отметьте, какие из возможных прототипов данной функции
корректны.

Ответ:

 (1) int indmax(double a[], int n);  

 (2) int indmax(const double *a, int n);  

 (3) void indmax(const double a[], int n, int* idx);  

 (4) void indmax(double *a, int n, int* idx);  


Номер 2
Мы хотим реализовать функцию product, которая находит
произведение элементов вещественного массива a
длины n.
Отметьте, какие из возможных прототипов данной функции
корректны.

Ответ:

 (1) double product(double *a, int n);  

 (2) double product(const double a[], int n);  

 (3) void product(const double *a, int n, double* prod);  

 (4) void product(double a[], int n, double* prod);  


Номер 3
Мы хотим реализовать функцию length, которая находит
длину вектора в трехмерном пространстве. Вектор задается массивом
из трех его координат.
Отметьте, какие из возможных прототипов данной функции
корректны.

Ответ:

 (1) double length(double v[3]);  

 (2) double length(double *v);  

 (3) double length(const double v[]);  

 (4) double length(const double *v);  


Упражнение 4:
Номер 1
Рассмотрим следующий фрагмент программы на С/С++:

    static int *p = NULL;
    . . .
    p = (int *) malloc(sizeof(int));
    *p = 123;

Где хранится значение выражения "*p" (т.е.
число 123)?

Ответ:

 (1) В статической памяти.  

 (2) В динамической памяти.  

 (3) В стеке.  


Номер 2
Рассмотрим следующий фрагмент программы на С++:

    static double *p = 0;
    . . .
    p = new double[100];
    *p = 1.5;

Где хранится значение выражения "*p" (т.е.
число 1.5)?

Ответ:

 (1) В статической памяти.  

 (2) В динамической памяти.  

 (3) В стеке.  


Номер 3
Рассмотрим следующий фрагмент программы на С++:

    static double *a = new double[10];
    a[0] = 3.7;

Где хранится значение выражения "a[0]" (т.е.
число 3.7)?

Ответ:

 (1) В статической памяти.  

 (2) В динамической памяти.  

 (3) В стеке.  


Упражнение 5:
Номер 1
Среди указанных ниже операторов языка C/C++
отметьте корректные.

Ответ:

 (1) double x = new double;  

 (2) double* x = new double(1.5);  

 (3) double x = new double[100];  

 (4) double* x = (double *) malloc(100 * sizeof(double));  


Номер 2
Среди указанных ниже операторов языка C/C++
отметьте корректные.

Ответ:

 (1) int x = new int;  

 (2) int* x = new int(1000);  

 (3) int* x = new int[1000];  

 (4) int* x = (int *) malloc(1000 * sizeof(int));  


Номер 3
Среди указанных ниже операторов языка C/C++
отметьте корректные.

Ответ:

 (1) int* x = new int(8);  

 (2) int* x = new int(1000);  

 (3) int x = new int[1000];  

 (4) int* x = (int *) malloc(8 * sizeof(int));  




Главная / Программирование / Программирование / Тест 44