Перечислимый тип, ограниченный тип

1. Какие значения может принимать переменная перечислимого типа? одно из перечисленных при описании значения

2. Могут ли встречаться одинаковые значения при описании двух различных перечислимых типов? ДА

3. Применимы ли операции сравнения к переменным перечислимого типа. ДА

4. Может ли переменная перечислимого типа быть параметром цикла for? ДА

5. Какие стандартные функции применимы к переменным перечислимого типа? ord(X):Longint, Pred, Succ

6. Отличается ли перечислимый тип

type

boolean = ( false, true );

от стандартного типа boolean? ДА

7. Дан фрагмент программы:

Type colour = ( green, yellow, red );

Var c: colour;

begin

...

for c := green to yellow do write( ord( c ) )

...

end.

Что будет напечатано в результате выполнения цикла? 012

8. Ко всем ли значениям перечислимого типа применимы функции succ и pred? ДА

9. Что будет напечатано в результате выполнения следующих программ:

program A;

begin

if true > false

then writeln( 'true > false' ) else writeln( 'true <= false' )

end. true>false

10. Что будет напечатано в результате выполнения следующих программ:

program B;

type z = ( true, false );

begin

if true > false

then writeln( 'true > false' ) else writeln( 'true <= false' )

end. true<=false

11. Можно ли к данным перечислимого типа применить стандартные процедуры ввода-вывода Read/Write? НЕТ

12. Пусть имеются описания

type

day = ( monday, tuesday, wednesday, thursday, friday, saturday, sunday);

pmonth = ( m28, m29, m30, m31 );

var

wday, weekday: day; kday: pmonth;

допустимы ли присваивания: weekday:=friday

13. Пусть имеются описания

type

day = ( monday, tuesday, wednesday, thursday, friday, saturday, sunday);

pmonth = ( m28, m29, m30, m31 );

var

wday, weekday: day; kday: pmonth;

Отметьте выражения, принимающие значения true: monday<Sunday wednesday<=wednesday

tuesday<>m29 ord(tuesday)=1

14. Пусть имеются описания

type

day = ( monday, tuesday, wednesday, thursday, friday, saturday, sunday);

pmonth = ( m28, m29, m30, m31 );

var

wday, weekday: day; kday: pmonth;

что будет напечатано в результате выполнения следующих операторов:

wday := succ( Friday );

if wday = sunday

then writeln( 'yes' ) else writeln( 'no' ); NO

15. Пусть имеются описания

type

day = ( monday, tuesday, wednesday, thursday, friday, saturday, sunday);

pmonth = ( m28, m29, m30, m31 );

var

wday, weekday: day;kday: pmonth;

что будет напечатано в результате выполнения следующих операторов: writeln( ord( monday ) ); 0

16. Пусть имеются описания

type

day = ( monday, tuesday, wednesday, thursday, friday, saturday, sunday);

pmonth = ( m28, m29, m30, m31 );

var

wday, weekday: day; kday: pmonth;

что будет напечатано в результате выполнения следующих операторов:

for wday := monday to friday do write( ord( wday ) ); 01234

17. Пусть имеются описания

type

day = ( monday, tuesday, wednesday, thursday, friday, saturday, sunday);

pmonth = ( m28, m29, m30, m31 );

var

wday, weekday: day; kday: pmonth; допустимы ли следующие операции ввода-вывода: writeln('sunday') writeln(ord(wednesday)) writeln('pmonth=',ord(m28))

18. Пусть имеются описания

type

day = ( monday, tuesday, wednesday, thursday, friday, saturday, sunday);

pmonth = ( m28, m29, m30, m31 );

var

wday, weekday: day; kday: pmonth; допустимы ли следующие заголовки цикла:

for wday:=monday to Saturday do, for wday:=sunday downto monday do, for kday:=m28 to m30 do

19. Дан фрагмент программы:

type

month = (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec);

var

m1, m2: month; t: boolean;

Присвоить переменной t значение true, если месяц m1 предшествует месяцу m2, и

значение false иначе. Месяцы m1 и m2 принадлежат одному году. t:=m1<m2

20. Верно ли, что ограниченный тип называется так же интервальным типом? ДА

21. Верно ли, что интервальный тип называется диапазоном? ДА

22. Верно ли, что интервальный тип используется тогда,

когда заранее по смыслу задачи известен диапазон изменения переменных? ДА

23. Могут ли константы, определяющие границы интервального типа, иметь тип real? НЕТ

24. Верно ли, что значение первой константы, определяющей интервальный тип данных,

должно быть меньше второй? ДА

25. Какие символы разделяют константы, определяющие тип диапазон? <..>

26. Можно ли границы диапазона задать не значениями констант,

а их именами, определенными в разделе описания констант? ДА

27. Какие значения могут принимать переменные типа диапазон? любые

28. Можно ли стандартные функции ord, succ, pred применять

к переменным интервального типа? ДА

29. Можно ли к переменным интервального типа применять процедуры ввода-вывода? ДА

30. Можно ли операцию, применимую к переменной некоторого типа,

применять к переменной, относящейся к соответствующему диапазону? ДА

31. Могут ли в одном выражении встречаться переменные,

относящиеся к различным диапазонам одного основного типа? НЕТ

32. Может ли переменная интервального типа фигурировать

в левой части оператора присваивания? ДА

33. Может ли переменная интервального типа фигурировать в правой части оператора

присваивания? ДА

34. Верно ли, что функции, определенные для базового скалярного типа,

могут применяться и к ограниченному типу?ДА

35. Пусть даны описания

type Days=1..31;

var

RabDay, BolnDay: Days;

t: boolean; k: integer;

может ли переменная RabDay принимать значения 1, 2, 30, 0? НЕТ

36. Пусть даны описания

type Days=1..31;

var

RabDay, BolnDay: Days;

t: boolean; k: integer;

могут ли значения переменных RabDay и BolnDay быть одинаковыми? ДА

37. Пусть даны описания

type Days=1..31;

var

RabDay, BolnDay: Days;

t: boolean; k: integer; допустимы ли следующие операторы?

RabDay:=25 BolnDay:=1 t:=RabDay=BolnDay for RabDay:=5 to 30 do k:=ord(Rabday)-2

38. Пусть даны описания:

var

z: 'a'..'z';

date: 1..31;

digit: '0'..'9';

month: 1..12; Допустимы ли операторы?

Date:=1;2;31 month:=ord(digit) month:=ord(month) for z:='a' to 'z' do read(month) writeln(z)

39. Пусть дано описание

var масштаб: ( дюйм, фут, стадия, миля );

Равнозначны ли фрагменты программ a и b:

a) for масштаб := дюйм to миля do преобразовать;

b)масштаб := дюйм;

while масштаб <= миля do

begin

преобразовать;

масштаб := succ( масштаб )

end; ДА

Оператор выбора

1. Верно ли, что выражение после служебного слова case называется селектором или переключателем? ДА

2. Верно ли, что список констант в операторе case называют списком меток? ДА

3. Может ли список констант в операторе case состоять из одной константы? ДА

4. Какой символ разделяет константы в списке констант оператора case? <,> <..>

5. Каким служебным словом заканчивается оператор case? end

6. Верно ли, что оператор case выполняется следующим образом: сначала вычисляется значение выражения селектора,

затем выполняется тот оператор, константа которого равна значению селектора? ДА

7. Какой тип может иметь селектор оператора case? целый символьный перечислимый

8. Верно ли, что все константы, предшествующие операторам-альтернативам

оператора case, должны иметь тип, совместимый с типом селектора? ДА

9. Могут ли в операторе case пересекаться метки, тип которых диапазон? НЕТ

10. Могут ли одинаковые метки быть в разных альтернативах оператора case? НЕТ

11. Сколько операторов может содержать каждая альтернатива оператора case? один

12. Каким символом заканчивается каждая альтернатива оператора case? <:>

13. Может ли альтернатива оператора case быть пустым оператором? ДА

14. Можно ли заменить вложенный условный оператор

if Ch = 'i' then N := 1 else оператором варианта

if Ch = 'j' then N := 5 else case Ch of

if Ch = 'k' then N := 10 else 'i': N := 1;

if Ch = 'l' 'j': N := 5;

then N := 100 'k': N := 10;

else begin 'l': N := 100;

N := 500; N:=N+1; N := 500; else N := N+1;

end; end;

ДА

15. Определить значения переменной d после выполнения операторов:

p := true;

d := 1;

case k mod 10 of

3, 2, 7, 5: d := k;

1:;

4, 8: begin

p := false; d := 2

end;

9, 6: begin

p := false; d := 3

end

end;

если переменная k имеет значение 235 235

16. Что будет напечатано в результате выполнения фрагмента программы

var season: ( winter, spring, summer, autumn );

begin

...

case season of

winter: writeln( 'Winter' );

spring: writeln( 'Spring' );

summer: writeln( 'Summer' );

autumn: writeln( 'Autumn' )

end end; если переменная season принимает значения

summer summer

11. Массивы. Регулярные типы

1. Верно ли, что статический массив - это структурированный тип данных,

состоящий из фиксированного числа элементов, имеющих один и тот же тип? ДА

2. Какие типы данных допустимы для элементов массива? real integer string любой

3. В каком разделе (разделах) программы допустимо

описание данных регулярного типа (типа массив)? const var type

4. Как описать массив А из 100 вещественных элементов? A:array[1..100]ofreal

5. Какой процедурой задается длина динамического массива? SetLength

6. Какая функция возвращает длину динамического массива? Lenght

7. Зависит ли размер статического массива от типа его индекса? ДА

8. Какие типы данных можно использовать при описании индекса? integer char перечислимый

9. Может ли левая граница индексов массива быть больше правой? НЕТ

10. Может ли левая граница индексов массива быть положительной? ДА

11. Может ли левая граница индексов массива быть равной нулю? ДА

12. Может ли левая граница индексов массива быть отрицательной? ДА

13. Дан массив A: array[0..100] of integer; Присвоить 11-ому по порядку элементу значение 13. A[11]:=13

14. Когда индекс элемента в массиве совпадает с порядковым номером этого элемента? левая граница равна 1

15. Верно ли, что название регулярный тип массивы получили за то, что в них объединены однородные элементы,

упорядоченные по индексам, определяющим положение каждого элемента в массиве? ДА

16. Верно ли, что могут существовать массивы массивов? ДА

17. Верно ли, что элементами массива могут быть данные любого типа, включая структурированные? ДА

18. Возникнет ли ошибка при трансляции, если индекс выходит за пределы, определенные

типом диапазон? ДА Не появится, если указаны соответствующие директивы компилятора

19. Может ли индекс быть выражением целого типа? ДА

20. Может ли индекс быть выражением вещественного типа? НЕТ

21. Может ли индекс быть выражением любого порядкового типа? ДА

22. Массивы могут быть одномерными, двумерными, N-мерными.

Есть ли ограничения на N? Размер массива должен быть не более 2GB

23. Верно ли, что одномерный массив соответствует понятию

линейной таблицы (вектора)? ДА

24. Верно ли, что двумерный массив соответствует понятию прямоугольной таблицы (матрицы, набору векторов)? ДА

25. Можно ли в описании массива использовать предварительно определенные константы? ДА

26. В какой последовательности располагаются в памяти элементы

одномерного массива? упорядочены по индексу, последовательно

27. Верно ли, что элементы с большими значениями индекса хранятся в больших адресах памяти? ДА

28. Верно ли, что двумерные массивы располагаются в памяти таким образом,

что второй индекс изменяется быстрее, чем первый? ДА

29. Верно ли, что двумерные массивы располагаются в памяти таким образом,

что первый индекс изменяется быстрее, чем второй? НЕТ

30. Верно ли, что матрица расположена в памяти по строкам? ДА

31. Всегда ли работа с массивом сводится к работе с его компонентами? НЕТ

32. Обязательно ли количество элементов массива должно быть фиксированным,

то есть должно определяться при трансляции программы? НЕТ

33. Может ли команда read(x) ввести весь массив x целиком? НЕТ

34. Можно ли с помощью стандартной процедуры write(x) вывести весь массив x целиком? НЕТ

35. Возможно ли следующее описание:

var a: array[integer] of byte? НЕТ

36. Возможно ли следующее описание: var a: array[char] of byte? ДА

37 В разделе описания констант описать массив А, содержащий три константы 1.1, 1.2, 1.3 A:array[1..3]ofreal=(1.1,1.2,1.3)

Процедуры, функции, модули

1. В каком разделе могут подключаться модули? В разделе описания программы, в разделе interface, в разделе implementation

2. При перекрестном подключении двух модулей модули могут подключаются

Наши рекомендации