Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Сборник тестовых вопросов и задач по языку программирования Си. В 2 частях. Ч. 1. Практикум

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
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–134.
Операции и их приоритеты:
арифметические: *(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.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]