Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Сборник тестовых вопросов и задач по языку программирования Си. В 2 частях. Ч. 1. Практикум
.pdf
41
14. Какие арифметическими операторы являются унарными?
• % и ^;
• ^ и $;
• ++ и - -;
• ничего из перечисленного.
15. Какие выделяют классы арифметических операций?
• унарные и бинарные;
• логические и символьные;
• битовые и логические;
• ничего из перечисленного.
16. Какие записи правильно описывают, что значение number равно
или больше 2, но меньше 11?
• number <11 || number <2;
• number >=2 || number <11;
• number <11 && number >=2;
• number >=2 && number <11.
17. Каков тип результата операций <,>,<=,>= ?
• double;
• float;
• long;
• int.
18. Пусть значение переменной сh не равно символам q и k. Какие
выражения записаны неверно?
• ch && 'k' && ch !='q'
• 'ch' !=q && 'ch' !=k
• ch != q && ch !=k
• сh !='q' && ch !='k'
19. Отметьте ложные выражения:
• 'a' > c'
• 100 > 3 && 'a '> 'c'
• 100 > 3

42
20. Каковы значения целых x и y в выражении y=3+2*(x=7/2);?
• x=3, y=9;
• x=3, y=5;
• x=3.5, y=3;
• x=3, y=3.
21. Как записываются комментарии в программе на языке Си?
• /* comment */
• { comment }
• (* comment *)
22. Каким будет вывод программы?
#include<stdio.h>
int main()
{
int a=-7, b=5, c=0, F;
F = ++a && ++b && ++c;
printf("%d, %d, %d, %d ", a, b, c, F);
return 0;
}
• -8, 6. 0, 0;
• -6, 6, 1, 1;
• -8, 6. 0, 1;
• -6, 6, 1, 0.
23. Каким будет вывод программы?
#include<stdio.h>
int main()
{
int a=-2, sh=2;
printf("%x\n", a<<sh);
return 0;
}
• ffffffff;
• 0;
• fffffff8;
• сообщение об ошибке.

43
24. Каким будет вывод программы?
#include<stdio.h>
int main()
{
int a=-7, b=5, c=0, r;
r = ++a || ++b && ++c;
printf("\n\n\t%d, %d, %d, %d", a, b, c, r);
return 0;
}
• -6 5 0 1;
• -6 5 1 0;
• -5 6 0 0;
• -5 6 1 1.
25. Каким будет вывод программы?
#include<stdio.h>
int main()
{
int a=12, b=7, c;
c = a!=3 && b == 5;
printf("\n\n\tc=%d", c);
return 0;}
}
• c=5;
• c=0;
• c=1.
26. Определите истинность высказывания:
Правая часть операции || не выполняется, поскольку значение левой части
выражения, равное 1, определяет значение результата.
• истина;
• ложь.

44
27. Определите истинность высказывания:
В выражении a=b=7 порядок выполнения операций присваивания определяется ассоциативностью слева направо.
• истина;
• ложь.
28. Являются ли семантически эквивалентными следующие выра-
жения?
a <= 20 ? (b = 30): (c = 30);
(a <=20) ? b : (c = 30);
• да;
• нет.
29. Укажите допустимые выражения для языка Си для объявленных
переменных x, y, z, u, c, w:
int x=1, y=2, z=-7, u=0;
char c='a', w;
• w = '5'-1 > c;
• u = - x - 8 / y == z+3;
• z + y-- +z == -2^y;
• u = 8 >= y = 13;
• u || 8 >= y && 13;
• u == c='9';
• u = !c != 101;
• u = !c+!101;
• !0 ==c && 101;
• !u= c + 101;
• z == y + 3 || x;
• z *= 2 * y;
• z + y = !z;
• x -= -- y - 7;
• z %= u = 4 + z/2;
• 1 + 3*z += z/5;
• 2 || 5 * (z *= 9)/3;
• c * x >= c - '7'+10;
• x + z ? u='!'+y : u='!'+x;

45
30. Укажите допустимые выражения для языка Си для объявленных
переменных
int i=2, j=6, k=3;
• - ++i;
• -- i = j;
• -- j / i ++ / ++k;
• i -- = i;
• i = ( j * 1 ) --;
• + + + i;
• + i++ +j;
• ++ + i;
• i -- = j;
• i +++ j;
• i = i --;
• i -= i --;
• i+ --k;
• j-- / --i / k ++;
• j++ + i;
ОТВЕТЫ К ВОПРОСАМ И ЗАДАЧАМ ТЕМЫ 4
1. Какого типа скобки используются для изменения порядка выпол-
нения операторов?
• для изменения последовательности выполнения операций нужно исполь-
зовать дополнительные круглые скобки.
2. Какие операторы являются битовыми?
• &, |, ^
3. Что используется для комбинирования операторов сравнения?
• логические операции.
4. Тип выражения может быть изменен за счет использования:
• приведения типов.
5. Что используется для задания порядка вычисления операторов?
• приоритеты.

46
6. Какая последовательность операций соответствует иерархии ариф-
метических операций в языке Cи?
• / * + -
7. Какова иерархия групп операций в языке Cи:
• 2–1–3–4.
Операции и их приоритеты:
• арифметические: *(3), /(3), %(3), +(4), -(4)
• операции сравнения: >(6), <(6), >=(6), <=(6), ==(7), != (7)
• логические: !(2), &&(11), ||(12)
• присваивания: =(16)
8. Как называется комбинация операторов и операндов
• выражением.
9. Что будет выведено на экран после ее выполнения?
• 11 1 11.
10. Что будет выведено на экран после ее выполнения?
• 2 0 0.
11. Что будет выведено на экран после ее выполнения?
• 1 0 0.
12. Что будет выведено на экран после ее выполнения?
• 1 0 80.
13. Какие из операторов могут быть и унарным, и бинарным?
• * -
14. Какие арифметическими операторы являются унарными?
• ++ и –
15. Какие выделяют классы арифметических операций?
• унарные и бинарные.
16. Какие записи правильно описывают, что значение number равно
или больше 2, но меньше 11?
• number <11 && number>=2 и number >=11 && number<11.

47
17. Каков тип результата операций <,>,<=,>= ?
• int.
18. Пусть значение переменной сh не равно символам q и k. Какие
выражения записаны неверно?
• ch && 'k' && ch !='q'
• 'ch' !=q && 'ch' !=k
• ch != q && ch !=k
19. Отметьте ложные выражения:
• 'a' > c'
• 100 > 3 && 'a '> 'c'
20. Каковы значения целых x и y в выражении y=3+2*(x=7/2);?
• x=3, y=9.
21. Как записываются комментарии в программе на языке Си?
• /* comment */
22. Каким будет вывод программы?
• -6, 6. 1, 1. F=(a+1)^(b+1)^(c+1)=-6^6^1=1.
23. Каким будет вывод программы?
• fffffff8.
Отрицательные числа представляются в виде двоичного дополнения по-
средством инвертирования битов положительного числа, равного по модулю,
с прибавлением единицы. Целое значение 2 в двоичной системе в четырех байтах представляется как 0000 0000 0000 0010B. Отрицательное число –2 имеет
двоичный вид: 1111 1111 1111 1110B. После сдвига влево на 2 бита получаем:
11111 11111 1111 1000B = FFFFFFF8H".
24. Каким будет вывод программы?
• -6 5 0 1.
Переменные a, b, c инициализированы соответственно в -3, 2, 0. Выражения, соединенные операциями && и ||, выполняются слеванаправо до тех пор,
пока не будут получены 0 или 1. Поэтому при вычислении значения выражения

48
r = ++a || ++b && ++c выполняется его усечение, поскольку результат вычисления ++a не равен нулю и часть исходного выражения (++b && ++c;) не будет
вычисляться. В результате вычисления исходного выражения переменные a, b,
c, r примут значения -6, 5, 0, 1 соответственно.
25. Каким будет вывод программы?
• c=0.
Переменные a, b инициализированы соответственно в 12, 7. Переменной
с присваивается значение 0. При подстановке значений переменных a и b, c учетом порядка вычисления операций, получаем (12!=3) && (7==5) = 1 && 0 = 0.
26. Определите истинность высказывания:
• истина.
27. Определите истинность высказывания:
• ложь.
Оператор присваивания имеет ассоциативность справа налево. Поэтому
в выражении a=b=7 сначала переменной b присваивается значение 7, а затем переменной а присваивается значение переменной b.
28. Являются ли семантически эквивалентными следующие выра-
жения?
• Нет.
В соответствии с синтаксисом условной трехместной операции значение
переменной b определяется по-разному.
29. Укажите допустимые выражения для языка Си для объявленных
переменных x, y, z, u, c, w:
Все, кроме:
• u = 8 >= y = 13;
• u == c='9';
• !u= c + 101;
• z + y = !z;
• + 3*z += z/5;
30. Укажите допустимые выражения для языка Си для объявленных
переменных:
Все, кроме:
• i -- = i; i = ( j * 1 ) --;
• ++ + i; i -- = j;

49
ТЕМА 5. УПРАВЛЯЮЩИЕ СТРУКТУРЫ
1. Какие из следующих высказываний верны?
• вычислительный процесс, который включает в себя повторяемую после-
довательность команд, называется циклическим;
• если условие проверяется после выполнения тела цикла, то цикл назы-
вается циклом с постусловием;
• циклический процесс называется итерационным, если параметры цикла
не изменяются;
• циклический процесс называется детерминированным, если число повто-
рений цикла заранее определено.
2. Какие из следующих высказываний верны?
• модификация параметров цикла должна осуществляться в конце каждого
выполнения тела цикла;
• циклический процесс называется итерационным, если число повторений
цикла заранее определено;
• для корректной работы цикла параметры цикла должны модифициро-
ваться;
• если условие проверяется до выполнения тела цикла, то цикл называется
циклом с предусловием.
3. Какие из следующих высказываний верны?
• любая ветвь, по которой осуществляются вычисления, должна приводить
к завершению вычислительного процесса;
• вычислительный процесс, для реализации которого предусмотрено не-
сколько направлений, называется линейным;
• при однократном прохождении программы процесс реализуется только
по одной ветви, а остальные исключаются;
• в языках программирования структура ветвления реализуется условными
и селективными операторами.
4. Какие из следующих высказываний верны?
• линейный вычислительный процесс реализуется структурой следования;
• вычислительный процесс, в котором действия выполняются последова-
тельно, в порядке их записи, называется ветвящимся;
• тело любой функции в Си является составным оператором.

50
5. Какие из следующих высказываний верны?
• составные операторы заключены в инструктивные скобки;
• выполнение составного оператора состоит в последовательном выпол-
нении составляющих его операторов;
• структура следования реализуются условными операторами.
6. Любую программу можно преобразовать в эквивалентную, состоя-
щую только из некоторых базовых структур и их комбинаций. Каковы эти
базовые структуры?
• ветвление и цикл;
• следование, ветвление, цикл;
• следование, ветвление, мультиветвление, цикл;
• цепочка, следование, ветвление, мультиветвление, цикл.
7. Какие типы переключательных выражений допускается использо-
вать в операторе switch?
• char;
• int;
• float;
• enum.
8. Какие значения можно задать i, чтобы напечатать фразу «болото,
и ничего больше?»?
switch(i)
{
case 1: printf("Попытаемся проанализировать, что сейчас происходит:\n");
break;
case 2: printf("расчистка площади под что-то новое в экономике,\n");
break;
case 3: printf("где могут проклюнуться ростки этого нового,\n"); break;
case 4: printf("или это разрушение,\n");break;
default: printf("болото, и ничего больше?\n");
}
• 300;
• 1;
• 5;
• 4.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
