игра брюс 2048
Главная / Программирование / Структуры и алгоритмы компьютерной обработки данных / Тест 27

Структуры и алгоритмы компьютерной обработки данных - тест 27

Упражнение 1:
Номер 1
Чем ограничен размер динамической памяти?

Ответ:

 (1) размером оперативной памяти 

 (2) размером внешних накопителей 

 (3) размером стековой области 

 (4) нет никаких ограничений 


Номер 2
Из какой области выделяются блоки динамической памяти?

Ответ:

 (1) стековой области 

 (2) области программы 

 (3) области свободной памяти 

 (4) области глобальных переменных 


Номер 3
Динамическая память явно не освобождена в программе. Тогда:

Ответ:

 (1) она будет занята и после завершения программы 

 (2) она автоматически освободится после завершения работы программы 

 (3) она освободится только при выходе из среды программирования 

 (4) она освободится только после выключения компьютера 


Упражнение 2:
Номер 1
Укажите некорректное выделение динамической памяти, если выполнено объявление int *pt;

Ответ:

 (1) pt = new int; 

 (2) pt = new int [15]; 

 (3) pt = new int []; 

 (4) pt = new int (15); 


Номер 2
Укажите корректное выделение динамической памяти, если выполнено объявление float *pf;

Ответ:

 (1) *pf = new float; 

 (2) pf = new float [15]; 

 (3) pf = new float []; 

 (4) pf = new sizeof(float); 


Номер 3
Укажите ошибку при использовании операции выделения динамической памяти, если выполнено объявление char *ph;

Ответ:

 (1) ph = new char [20]; 

 (2) ph = *(new char); 

 (3) ph = new char ('&'); 

 (4) ph = new char; 


Упражнение 3:
Номер 1
Какая область динамической памяти, выделенной под одномерный массив mass, будет освобождена следующим действием: delete mass;?

Ответ:

 (1) вся используемая динамическая память 

 (2) область, занятая всеми элементами массива mass 

 (3) область, занятая только первым элементом массива mass 

 (4) к массиву данная операция не применима 


Номер 2
Укажите верное освобождение динамической памяти, занятой всеми элементами массива mass.

Ответ:

 (1) delete [] mass; 

 (2) delete mass; 

 (3) free (mass); 

 (4) free (*mass); 


Номер 3
Какая область динамической памяти, выделенной под одномерный массив mass, будет освобождена следующим действием: free (mass);?

Ответ:

 (1) вся используемая динамическая память 

 (2) область, занятая всеми элементами массива mass 

 (3) область, занятая только первым элементом массива mass 

 (4) к массиву данная операция не применима 


Упражнение 4:
Номер 1
Какие действия выполняет приведенный фрагмент кода?
		
int *mas, n=10, i; 
  mas = new int [n]; 
  mas[0]= a[1]=1;
for (i=2; i<n; i++) 
    mas[i]= mas[i-1]+ mas[i-2];
		
		

Ответ:

 (1) динамическая память под массив не выделена, фрагмент ошибочный 

 (2) обращение к элементам массива неверно, фрагмент ошибочный 

 (3) выделяет динамическую память для 10 целочисленных элементов и заполняет его случайными числами 

 (4) выделяет динамическую память для 10 целочисленных элементов массива и заполняет его числами Фибоначчи 


Номер 2
Какие действия выполняет приведенный фрагмент кода?

int n=20, i;
float *mas; 
  mas = (float *) calloc(n,sizeof(float)); 
for (i=0; i<n; i++) 
    mas[i]= exp(i);


Ответ:

 (1) выделяет динамическую память для 20 вещественных элементов и заполняет его случайными числами 

 (2) выделяет динамическую память для 20 вещественных элементов массива и заполняет его значениями экспоненциальной функции 

 (3) не выполнено явное преобразование типа указателя при выделении динамической памяти, фрагмент ошибочный 

 (4) во фрагменте ошибка вследствие неверного обращения к элементам массива 


Номер 3
Какие действия выполняет приведенный фрагмент кода?
		
int n=15, i;
double *mas; 
  mas = (double *)malloc(sizeof(double)); 
for (i=0; i<n; i++) 
    cin << mas[i];
		
		

Ответ:

 (1) выделяет динамическую память для 15 вещественных элементов и считывает в него элементы с клавиатуры 

 (2) не выполнено явное преобразование типа указателя при выделении динамической памяти, фрагмент ошибочный 

 (3) во фрагменте ошибка вследствие неверного обращения к элементам массива 

 (4) динамическая память выделена только для одного вещественного числа, фрагмент ошибочный 


Упражнение 5:
Номер 1
Укажите порядок освобождения динамической памяти, выделенной ранее под двумерный массив
		
  • free (matr[i]);
  • free (matr);
  • for (int i=0; i<n; i++)

  • Ответ:

     (1) 231 

     (2) 321 

     (3) 213 

     (4) 312 


    Номер 2
    Укажите порядок выделения динамической памяти под двумерный массив
    		
  • matr[i] = new int [m];
  • int n=5, m=6,**matr;
  • for (int i=0; i<n; i++)
  • matr = new int * [n];

  • Ответ:

     (1) 2134 

     (2) 2431 

     (3) 2314 

     (4) 2341 


    Номер 3
    Укажите порядок освобождения динамической памяти, выделенной ранее под двумерный массив
    		
  • delete matr [i];
  • for (int i=0; i<n; i++)
  • delete [] matr;

  • Ответ:

     (1) 123 

     (2) 321 

     (3) 213 

     (4) 231 


    Упражнение 6:
    Номер 1
    Укажите верный вызов функции, если объявлен ее прототип void gen(int nn, int a, int b, int ***mas) и переменная int **mass

    Ответ:

     (1) gen(n,0,10,**mass); 

     (2) gen(n,0,10,*mass); 

     (3) gen(n,0,10,&mass); 

     (4) gen(n,0,10,mass); 


    Номер 2
    Укажите верный вызов функции, если объявлен ее прототип void out(int nn, int **mas) и переменная int **mass

    Ответ:

     (1) out(n,**mass); 

     (2) out(n,*mass); 

     (3) out(n,mass); 

     (4) out(n,&mass); 


    Номер 3
    Укажите верное описание прототипа функции, если ее вызов осуществляется как gen(n,0,10,&mass); и объявлена переменная int **mass

    Ответ:

     (1) void gen(int nn, int a, int b, int &mas) 

     (2) void gen(int nn, int a, int b, int *mas) 

     (3) void gen(int nn, int a, int b, int **mas) 

     (4) void gen(int nn, int a, int b, int ***mas) 


    Упражнение 7:
    Номер 1
    Охарактеризуйте результат разыменования нулевого указателя

    Ответ:

     (1) будет возвращено значение '0' 

     (2) будет возвращено заранее непредсказуемое значение 

     (3) программа аварийно завершится с ошибкой сегментации 

     (4) указатель не может иметь нулевое значение 


    Номер 2
    Охарактеризуйте значение указателя в результате выделения памяти для массива из нулевого или отрицательного числа элементов

    Ответ:

     (1) будет возвращено значение NULL 

     (2) будет возвращено заранее непредсказуемое значение 

     (3) программа аварийно завершится с ошибкой сегментации 

     (4) будет возвращено значение адреса выделенной области памяти 


    Номер 3
    Охарактеризуйте результат, возвращаемый операцией или функцией выделения памяти, если затребованный размер памяти слишком большой

    Ответ:

     (1) будет возвращено заранее непредсказуемое значение 

     (2) будет возвращено значение NULL 

     (3) будет возвращено значение адреса части выделенной памяти 

     (4) программа аварийно завершится с ошибкой сегментации 


    Упражнение 8:
    Номер 1
    Охарактеризуйте ошибку при использовании указателя во фрагменте кода:
    		
    int *n;
    *n=34;
    		
    		

    Ответ:

     (1) указатель неверно объявлен 

     (2) указатель нельзя использовать без предварительного выделения памяти 

     (3) значение присваивается неинициализированному указателю 

     (4) не освобождена память под указатель 


    Номер 2
    Охарактеризуйте ошибку при использовании действий с указателями во фрагменте кода:
    		
    int *p,i=55;
    p=&i;
    delete p;
    		
    		

    Ответ:

     (1) попытка освободить нединамическую память 

     (2) указатель неверно объявлен 

     (3) значение присваивается неинициализированному указателю  

     (4) несоответствие типов в присваивании 


    Номер 3
    Охарактеризуйте ошибку при использовании действий с указателями во фрагменте кода:
    		
    int *p;
    for (i=0;i<32000;i++)
    p= new int;
    		
    		

    Ответ:

     (1) память выделяется под необъявленный указатель 

     (2) указатель неверно объявлен 

     (3) к операции new необходимо применить явное преобразование типов 

     (4) происходит "утечка" памяти 




    Главная / Программирование / Структуры и алгоритмы компьютерной обработки данных / Тест 27