Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЯП - ПОИТ (Бахтизин) часть 1 редакт.doc
Скачиваний:
0
Добавлен:
07.01.2020
Размер:
1.76 Mб
Скачать

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

1. Назовите альтернативу оператору выбора if/else.

а) ?:

б) while

в) goto

2. Выведите целые числа от 1 до 10, используя для этого цикл for и переменную-счетчик x.

а)

for (x = 1; x = 10; x++)

printf (‘%d \n”, x);

б)

for (x = 10; x >= 1; x--)

printf (“%d \n”, 11 - x);

в)

for (x = 1; x < 10; x ++)

printf (‘%d \n”, x);

3. Какой результат даст следующий фрагмент кода программы:

int x = 1;

while (x<=10)

printf (“%d ”, x++);

а) Программа выведет числа: 2 3 4 5 6 7 8 9 10 11;

б) Программа выведет числа: 10 11 12 13 14 15;

в) Программа выведет числа: 1 2 3 4 5 6 7 8 9 10.

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

а) if/else

б) for

в) whilе

5. Правильно ли записано следующее выражение? Обоснуйте ответ.

for ( i = 1, i <= 20, i++)

а) Ошибка. Выражения в скобках должны разделяться точкой с запятой.

б) Все правильно.

в) Ошибка. Выражения в скобках должны разделяться пробелами

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

3+4>5&&3+5>4&&4+5>3 ?

а) 0;

б) -10;

в) 1.

7. Что неправильно в следующем фрагменте программы?

if (town <= 10)

printf (“Minsk \n”);

else;

printf (“ London \n”);

а) Помещение точки с запятой после ветви else приводит к логической ошибке, в итоге, второй оператор printf будет выполняться в любом случае.

б) Все правильно.

в) Неправильная запись оператора printf (“ London \n”); приводит к ошибке, так как здесь не нужны кавычки.

8. Какой оператор в цикле или в структуре switch вызывает немедленный выход?

а) Оператор break.

б) Оператор case.

в) Оператор continue .

9. Обязательно ли наличие в операторе switch блока default?

а) Блок default является обязательным в любом случае.

б) Блок default не является обязательным, если в программе нет никакого действия по умолчанию.

в) Блока default не должно быть в программе.

10. Выражение (x > y && a < b) истинно, если истинно либо выражение x > y, либо выражение a < b. Верно ли данное высказывание?

а) Верно.

б) Неверно, т.к. при операции && оба выражения отношений должны быть ложными.

в) Неверно, т.к. должны быть истинными оба выражения отношений.

Вопросы к разделу 4. Массивы и указатели

1. Указатель – это переменная:

а) значением которой является имя другой переменной;

б) адресом которой является адрес другой переменной;

в) значением которой является тип другой переменной;

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

2. При помощи указателей осуществляется:

а) косвенный доступ к переменным;

б) прямой доступ к переменным;

в) доступ с использованием процедур;

г) произвольный доступ.

3. Унарная операция & возвращает:

а) значение своего операнда;

б) тип своего операнда;

в) адрес своего операнда;

г) количество разрядов своего операнда.

4. Унарная операция * возвращает:

а) адрес своего операнда;

б) значение переменной, на которую ссылается указатель;

в) адрес переменной, на которую ссылается указатель;

г) значение своего операнда.

5. Нумерация массива начинается:

а) с нуля;

б) с единицы;

в) с n, где n – размерность массива;

г) с любого числа.

6. Какая из ниже перечисленных инициализаций массива неверная?

а) int a[3] = {0};

б) int a[3] = {1,2};

в) int a[3] = {1,2,3,4};

г) int a [] = {1,2,3,4,5}.

7. Двумерные массивы хранятся в памяти:

а) в порядке возрастания значений массива;

б) по столбцам;

в) в порядке убывания значений массива;

г) по строкам.

8. Результатом разности двух указателей одного и того же типа является:

а) количество байт между ними;

б) разность значений их адресов;

в) разность значений переменных, на которые указатели указывают;

г) эта операция не применима к указателям;

д) Разность 2-х указателей равна разности их значений, поделенной на sizeof (тип).

9. Без явного приведения типа над указателем типа void нельзя выполнить операцию:

а) разыменования указателя (*);

б) взятия адреса;

в) присваивания указателя на void указателю другого типа;

г) присваивания указателю на void значения указателя другого типа.

10. Начальные данные:

int mas[4] = {1,2,3,4};

int *p, a;

p = mas;

В каком из ниже перечисленных вариантов переменной «a» не присваивается значение второго элемента массива mas:

а) a = *(p+1);

б) a = *mas[1];

в) a = p[1];

г) a = *(mas+1).

11. Объявим массив указателей:

char *p[] = {“Иванов”, ”Петров”, “Сидоров”};

Какой из операторов выведет фамилию «Петров»?

а) printf (“%s”, *(p + 1));

б) printf (“%s”, *p);

в) printf (“%s”, *p + 1);

г) printf (“%s”, p[0] + 2).

12. Функция malloc возвращает:

а) количество выделенных байт;

б) единицу – в случае удачного выделения памяти и 0 – в обратном случае;

в) указатель типа void на начало выделенной памяти;

г) адрес начала сегмента данных.

13. Какое из ниже следующих утверждений является неверным:

а) функция realloc изменяет размер объекта, выделенного в результате предыдущего вызова malloc, calloc и realloc;

б) функция malloc не может выделить более 10 Кбайт;

в) функция calloc используется при распределении памяти для массивов;

г) функция free освобождает память и возвращает её системе.