- •Группа операторов с ошибкой:
- •Указать ошибку:
- •Указать ошибку: ???
- •Указать и объяснить ошибку:
- •Истинные высказывания:
- •Правильные определения указателей:
- •Правильная инициализация указателей:
- •Правильная инициализация указателей:
- •Операторы с ошибкой:
- •Присваивание указателей выполняется с ошибкой в операторах:
- •Присваивание указателей выполняется с ошибкой в операторах:
- •Инициализация указателя выполняется правильно в операторах:
- •Истинные высказывания:
- •Определить результат:
- •Определить результат:
- •Определить результат:
- •Результат сложения/вычитания указателя type * ptr с константой n определяют выражения:
- •Интерпретировать выражение:
- •Интерпретировать выражение:
- •??? Интерпретировать выражение:
- •??? Интерпретировать выражение:
- •??? Интерпретировать выражение:
- •НазвАть тип
- •Назвать тип
- •Назвать тип
- •Результат работы программы:
- •Результат работы операторов //6, //7 и //8 программы:
- •Указать операторы с ошибкой
- •Истинные высказывания:
- •Неявное (по умолчанию) приведение типа выполняется с ошибкой в операторах:
- •Указать ошибку и объяснить ее причины:
- •Указать ошибку и объяснить ее причины:
- •Указать ошибку и объяснить ее причины:
- •Указать ошибку и объяснить ее причины:
- •Верное использование указателя на константу
- •Неверное использование указателя-константы
- •Неверное использование указателя-константы на константу
- •Истинные высказывания:
- •Верные операторы:
- •Последовательность выполнения операторов
Тестовые вопросы по теме лекции 8: «Указатели» курса «Программирование». Для зачета необходимо ответить на 60% вопросов.
Гр.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;
Указать ошибку:
int *pix; int *piw; int y, z; *pix=16; y=-15; piw = &y; *piw = 16;
1. не выделена динамическая память под переменную, на которую указывает piw 2. не проинициализирован указатель pix 3. не проинициализирован указатель piw
Указать ошибку: ???
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. выход за диапазон значений индекса массива
Указать и объяснить ошибку:
#define PI 3.141592
const int n=5;
int main()
{
cout << &PI<< endl; //1
cout << &n<< endl; //2
_getch();
return 0;
}
в операторе //1
в операторе //2
адрес препроцессорной константы получить нельзя
адрес типизированной константы получить можно
адрес препроцессорной константы получить можно
адрес типизированной константы получить нельзя
Истинные высказывания:
1. указатель – переменная, предназначенная для хранения адреса
2. значением указателя является адрес данного
3. указатель не является самостоятельным типом и всегда связан с каким-либо другим конкретным типом
4. указатель занимает 4 байта памяти
5. операция разыменования позволяет по адресу, хранимому в указателе, обратиться к содержимому памяти
Правильные определения указателей:
1. char *p, *pp=*p;
2. char *pp;
3. char *p=new char;
4. char *p=new char;
char *pp=p;
Правильная инициализация указателей:
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. 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;
Операторы с ошибкой:
(номера операторов вводить по возрастанию, без пробелов, разделяя запятой):
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