Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
тест_9_л_8.doc
Скачиваний:
5
Добавлен:
24.08.2019
Размер:
206.34 Кб
Скачать
  1. Результат сложения/вычитания указателя type * ptr с константой n определяют выражения:

1. ptr + N  ptr + N * sizeof (type);

2. ptr - N  ptr - N * sizeof (type);

3. ptr + N  ptr + N * sizeof (ptr);

4. ptr - N  ptr - N * sizeof (ptr);

5. ptr + N  ptr + type * sizeof (N);

6. ptr - N  ptr - type * sizeof (N);

  1. результат вычитания указателей ptr1 – ptr2:

(int *ptr1, *ptr2;) если ptr1 имеет значение 0x16AB8; а ptr2: 0x16AB0 // 8

  1. результат вычитания указателей ptr1 – ptr2:

(float *ptr1, *ptr2;) если ptr1 имеет значение 0x16AB8; а ptr2: 0x16AB0

// 8

  1. результат вычитания указателей ptr1 – ptr2:

(double *ptr1, *ptr2;) если ptr1 имеет значение 0x16AB8; а ptr2: 0x16AB0

// 8

  1. результат вычитания указателей ptr1 – ptr2:

(unsigned *ptr1, *ptr2;) если ptr1 имеет значение 0x16AB8; а ptr2: 0x16AB0

// 8

  1. Интерпретировать выражение:

++p=(int *)3;    где int *p;

1. левый операнд есть l-value выражение

2. невозможно конвертировать от 'int' к 'int *'

3. компиляция без ошибок

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

5. значение указателя увеличивается на 1 до выполнения присваивания

6. выполняется приведение типа от 'int' к 'int *'

7. значение указателя увеличивается на 4 после выполнения присваивания

8. значение указателя увеличивается на 1 после выполнения присваивания

9. ошибка компиляции

10. левый операнд должен быть l-value выражением

  1. Интерпретировать выражение:

p++=(int *)3;    где int *p;

1. левый операнд должен быть l-value выражением

2. невозможно конвертировать от 'int' к 'int *'

3. компиляция без ошибок

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

5. значение указателя увеличивается на 1 до выполнения присваивания

6. выполняется приведение типа от 'int' к 'int *'

7. значение указателя увеличивается на 4 после выполнения присваивания

8. значение указателя увеличивается на 1 после выполнения присваивания

9. ошибка компиляции

10. левый операнд есть l-value выражение

  1. ??? Интерпретировать выражение:

(*p)++=3; где int *p;

1. левый операнд должен быть l-value выражением

2. невозможно конвертировать от 'int' к 'int *'

3. компиляция без ошибок

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

5. значение указателя увеличивается на 1 до выполнения присваивания

6. выполняется приведение типа от 'int' к 'int *'

7. значение *р увеличивается на 4 после выполнения присваивания

8. значение *р увеличивается на 1 после выполнения присваивания

9. ошибка компиляции

10. левый операнд есть l-value выражение

  1. ??? Интерпретировать выражение:

++(*p)=3; где int *p;

1. левый операнд есть l-value выражение

2. невозможно конвертировать от 'int' к 'int *'

3. компиляция без ошибок

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

5. значение указателя увеличивается на 1 до выполнения присваивания

6. выполняется приведение типа от 'int' к 'int *'

7. значение *р увеличивается на 4 до выполнения присваивания

8. значение *р увеличивается на 1 до выполнения присваивания

9. ошибка компиляции

10. левый операнд должен быть l-value выражением