Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
тест_9_л_8.doc
Скачиваний:
4
Добавлен:
24.08.2019
Размер:
206.34 Кб
Скачать

Тестовые вопросы по теме лекции 8: «Указатели» курса «Программирование». Для зачета необходимо ответить на 60% вопросов.

Гр.1________________________________________________________________________________________________________________________

  1. Группа операторов с ошибкой:

1. #define PI 3.141592

cout << &PI<< endl;

2. const int n=5;

cout << &n<< endl;

3. int var1 = 11, var2 = 22;

cout << &var1 << endl

<< &var2 << endl;

  1. Указать ошибку:

int *pix; int *piw; int y, z; *pix=16; y=-15; piw = &y; *piw = 16;

1. не выделена динамическая память под переменную, на которую указывает piw 2. не проинициализирован указатель pix 3. не проинициализирован указатель piw

  1. Указать ошибку: ???

int *data; int size; printf (”укажите размер массива”); scanf (”%d”, &size); data = (int *) malloc (size * sizeof(int)); for (int i=0; i <= size; i++) data[i] = 100*i; 1. не выделена динамическая память под переменную, на которую указывает data 2. не проинициализирован указатель pix 3. не проинициализирован указатель piw

4. выход за диапазон значений индекса массива

  1. Указать и объяснить ошибку:

#define PI 3.141592

const int n=5;

int main()

{

cout << &PI<< endl; //1

cout << &n<< endl; //2

_getch();

return 0;

}

  1. в операторе //1

  2. в операторе //2

  3. адрес препроцессорной константы получить нельзя

  4. адрес типизированной константы получить можно

  5. адрес препроцессорной константы получить можно

  6. адрес типизированной константы получить нельзя

  1. Истинные высказывания:

1. указатель – переменная, предназначенная для хранения адреса

2. значением указателя является адрес данного

3. указатель не является самостоятельным типом и всегда связан с каким-либо другим конкретным типом

4. указатель занимает 4 байта памяти

5. операция разыменования позволяет по адресу, хранимому в указателе, обратиться к содержимому памяти

  1. Правильные определения указателей:

1. char *p, *pp=*p;

2. char *pp;

3. char *p=new char;

4. char *p=new char;

char *pp=p;

  1. Правильная инициализация указателей:

1. int a=5; int *iptr = &a;

2. int a=5; int *iptr(&a);

3. int a=5; int * iptr= &a, *kptr = iptr;

4. static int *kptr;

5. int b[10]; int *ptr = &b;

6. int a=5; int *iptr = *a;

  1. Правильная инициализация указателей:

1. int *nptr = new int;

2. int *kptr = new int(10);

3. int *mptr= new int[10];

4. int *iptr = reinterpret_cast <int*> (malloc(sizeof(int)));

5. int *pi = 0;

6. int *pi = NULL;

7. int *nptr = new *int;

  1. Операторы с ошибкой:

(номера операторов вводить по возрастанию, без пробелов, разделяя запятой):

bool by; //1

bool *pbx = new (bool); // 2 *pbx=true; //3

by=!*pbx; // 4

delete pbx; // 5

cout << by<< endl; // 6

pbx = by; // 7

delete by; //8