Главная / Программирование / Программирование на языке Pascal

Программирование на языке Pascal - ответы на тесты Интуит

Правильные ответы выделены зелёным цветом.
Все ответы: Учебный курс, направленный на практическое изучение языка Pascal и основ алгоритмики.
Свойство алгоритма, позволяющее в каждый момент его исполнения однозначно определить оператор, который будет выполнен следующим, называется:
(1) массовостью
(2) результативностью
(3) определенностью
Какое значение будет храниться в переменной а:shortint после выполнения следующего программного отрывка?{b: char; p: ^shortint} b:= ‘Б’; p:= addr(b); a:= p^;
(1) 'Б'
(2) 'б'
(3) 129
(4) -127
На сколько компонент связности распадается граф, содержащий семь вершин, если он задан таким списком ребер?a b a c b c c h f d
(1) 1
(2) 2
(3) 3
(4) 4
(5) 5
Какую высоту будет иметь дерево синтаксического анализа для выраженияx*(a+b*c–g)+((m-n)*t*d/(s-y))*z
(1) 3
(2) 5
(3) 6
(4) 8
(5) 11
Какой раздел модуля содержит операторы, которые будут выполнены перед стартом основной программы?
(1) секция внешних связей (interface)
(2) секция реализации (implementation)
(3) секция инициализации (begin)
Какие процедуры и функции стандартного модуля Crt отвечают за очистку строк и областей ввода/вывода?
(1) clreol
(2) clrscr
(3) delline
(4) gotoxy()
(5) insline
(6) nosound
(7) sound()
(8) textbackground()
(9) textcolor()
(10) wherex
(11) wherey
(12) window()
Какие имена переменных являются наиболее предпочтительными с точки зрения надежного программирования?
(1) z1, z2
(2) rasst, cena1
(3) rasstojanie, cena_za_1_kilometr
Тип данных real является
(1) арифметическим
(2) базовым
(3) конструируемым
(4) порядковым
(5) структурированным
Какие значения будет принимать переменная z, в зависимости от значений переменной а? z:= -10; if a>0 then if a>100 then if a>200 then z:=0 else z:= 20 else z:=100;
(1) a <= 0 : 100 0 < a <= 100 : 20 100 < a <= 200 : 0 200 < a : -10
(2) a <= 0 : -10 0 < a <= 100 : 100 100 < a <= 200 : 20 200 < a : 0
(3) a <= 0 : 100 0 < a <= 100 : 0 100 < a <= 200 : -10 200 < a : 20
Метод сортировки бинарными вставками является:
(1) простой сортировкой
(2) улучшенной сортировкой
(3) внутренней сортировкой
(4) внешней сортировкой
(5) сортировкой, имеющей эффективность порядка N2
(6) сортировкой, имеющей эффективность порядка N3/2
(7) сортировкой, имеющей эффективность порядка N*log N
Какой стандартной функции или процедуре обработки строк эквивалентен следующий программный отрывок? {s: string; i,k,t: byte} res:= ''; t:= length(s); if i > t then i:= t+1; for j:= 1 to i-1 do res:= res + s[j]; for j:= i+k-1 to t do res:= res + s[j];
(1) copy(s,i,k)
(2) delete(s,i,k)
(3) insert(s1,s2,i)
Чтобы иметь возможность считывать информацию из текстового файла, его нужно открыть при помощи команды
(1) append(f)
(2) close(f)
(3) reset(f)
(4) rewrite(f)
Сколько полей содержится в записи man? type data = record day: 1..31; month: 1..12; year: 1900.. 2100; end; man = record name: string[20]; date_birth: data; case citizen: boolean of true: (birth_place: string[20]); false: (country: string[20]; date_came: data); end;
(1) 5
(2) 6
(3) 10
(4) 3 или 4, в зависимости от значения citizen
(5) 4 или 5, в зависимости от значения citizen
(6) 6 или 9, в зависимости от значения citizen
Какие вызовы процедуры procedure p(var a: byte; const b: char; x: real); являются неправильными с точки зрения компилятора языка Pascal?
(1) p(10,'c',0.5)
(2) p(z,inc('f',3),17); {var z:integer}
(3) p(x+y, min('c',s),15/3); {var x,y:byte; const s = 'a'}
(4) p(k,c,x); {var k:shortint; c:char; x:real}
(5) p(j,'abc',0.001); {var j:byte}
Динамическая структура данных, у которой в каждый момент времени доступны первый и последний элементы, причем добавлять новые элементы можно только в конец структуры, а удалять - только из ее начала, называется:
(1) стеком
(2) очередью
(3) деком
Какие последовательности символов являются правильными идентификаторами (с точки зрения компилятора языка Pascal)?
(1) i am an identifier
(2) я-идентификатор
(3) NewIdent
(4) Record
(5) _zzz
(6) 123zyx
(7) x1y2z3
(8) result-of-count
(9) i'm_ident!
(10) ja_identifikator
Для работы с типизированными указателями предназначены процедуры
(1) addr()
(2) dispose()
(3) freemem()
(4) getmem()
(5) new()
Какие вершины орграфа, заданного этим списком смежности, принадлежат ко второму уровню относительно вершины a?a: b c b: c c: g d: c g f: d h: b
(1) a
(2) b
(3) c
(4) d
(5) f
(6) g
(7) h
Постройте дерево бинарного поиска (дерево сортировки) для входной последовательности чисел 7 2 5 1 8 3 6 4 9 13 11 10 12, а затем распечатайте вершины этого дерева в порядке обратного обхода. Какая последовательность чисел получится
(1) 7 2 5 1 8 3 6 4 9 13 11 10 12
(2) 7 2 1 5 3 4 6 8 9 13 11 10 12
(3) 10 12 7 2 5 1 8 4 9 13 11 3 6
(4) 7 2 8 1 5 9 3 6 13 4 11 10 12
(5) 1 2 3 4 5 6 7 8 9 10 11 12 13
(6) 1 4 3 6 5 2 10 12 11 13 9 8 7
(7) 13 12 11 10 9 8 7 6 5 4 3 2 1
Какие переменные может объявить секция внешних связей модуля А?unit A; unit C; unit F; interface interface interface uses C,D; uses D,F; var f; var a; var c; implementation implementation implementation uses A; uses F; uses B; var ff; var aa; var cc; end; end; end; unit B; unit D; interface interface uses C; var d; var b; implementation implementation uses B; uses D; var dd; var bb; end; end;
(1) a
(2) aa
(3) b
(4) bb
(5) c
(6) cc
(7) d
(8) dd
(9) f
(10) ff
Какой цвет текста получится на экране, если использоватьlightmagenta * blue - brown
(1) black
(2) blue
(3) green
(4) cyan
(5) red
(6) magenta
(7) brown
(8) lightgray
Какие из приведенных ниже отрывков программ хорошо структурированы?1) procedure step(v,k: byte; r: longint); var j: byte; begin if r < min then if k = N-1 then min:= r else for j:= 1 to N do if (sm[v,j]<>0)and(mark[j]=0) then begin mark[j]:= 1; step(j,k+1,r+sm[v,j]); mark[j]:= 0 end; end; 2) for i:= 1 to N-1 do begin for x:= 1 to N do if (sm[last,x]<>0)and(not done[x]) then dist[x]:= min(dist[x],dist[last]+sm[last,x]); min_dist:= MaxLongInt; for x:= 1 to N do if (not done[x])and(min>dist[x]) then begin min_dist:= dist[x]; last:= x; end; done[last]:= true; end; 3) while head<>nil do begin with head^.e^ do if from^.dist+len < toward^.dist then begin toward^.dist:= from^.dist + len; enqueue(toward,queue,head); end; next_head:= head ^.next; dispose(head); head:= next_head end; 4) procedure infix(var p: ukaz); begin read(c); case c of '(' : begin new(p); infix(p^.left) end; '+','-',*','/' : begin p^.symbol:= c; infix(p^.right) end; ')' : {ничего не делаем}; else begin p^.symbol:= c; p^.right:= nil; p^.left:= nil; end; end; end;
(1) 1
(2) 2
(3) 3
(4) 4
Типы данных byte и shortint являются:
(1) эквивалентными
(2) совместимыми
(3) совместимыми по присваиванию
К каким типам данных может относиться переменная-переключатель, служащая для выбора одной из ветвей оператора case?
(1) byte
(2) word
(3) longint
(4) string
(5) double
(6) boolean
(7) array
(8) text
Метод быстрой сортировки является:
(1) простой сортировкой
(2) улучшенной сортировкой
(3) внутренней сортировкой
(4) внешней сортировкой
(5) сортировкой, имеющей эффективность порядка N2
(6) сортировкой, имеющей эффективность порядка N3/2
(7) сортировкой, имеющей эффективность порядка N*log N
Какие из приведенных ниже последовательностей строк и символов упорядочены по убыванию?
(1) '9', '82', '4569', '135'
(2) '99', '52', '8'
(3) 'season', 'sea', 'Son'
(4) 'Шекспир', 'пьеса', 'Гамлет'
(5) 'Анна', 'АННА', 'anna', 'Anna', 'ANNA'
Какие значения будут храниться в переменных s и k после считывания из текстового файла f строки 'Иванов Иван Иванович 1945' при помощи команды readln(f,s,k); {s: string[22], k:byte =0}
(1) s = 'Иванов Иван Иванович', k = 1945
(2) s = 'Иванов Иван Иванович ', k = 1945
(3) s = 'Иванов Иван Иванович 1', k = 945
(4) s = 'Иванов Иван Иванович 1', k = 177
(5) s = 'Иванов Иван Иванович 1945', k = 0
Какое значение будет храниться в поле a записи r1 после выполнения следующего блока? var a: integer; r1: record a: byte; ... end; r2: record a: shortint; ... end; begin a:= 0; with r1 do begin r2.a:= -10; with r2 do begin a:= 100; r1.a:= -a; end end; a:= 100; end.
(1) -100
(2) -10
(3) 0
(4) 10
(5) 100
(6) 156
(7) 246
После завершения работы подпрограммы значение переданной в нее переменной-аргумента не может измениться, если соответствующий параметр был:
(1) параметром-значением (без предиката)
(2) параметром-константой (с предикатом const)
(3) параметром-переменной (с предикатом var)
Описанные ниже подпрограммы function C: boolean; forward; function D: boolean; forward; procedure A; begin x:= c(x); y:= d(y); end; function B: boolean; begin a; end; function C; begin z:= b(z); end; function D; begin z:= b(z); end;
(1) реализуют прямую рекурсию
(2) реализуют косвенную рекурсию
(3) не рекурсивны
Идентификатор, описанный после ключевого слова label, является именем:
(1) переменной
(2) метки
(3) константы
Двусвязный линейный список задан указателем на голову head и указателем на хвост tail. Какой оператор необходимо вставить вместо [???], чтобы приведенный ниже отрывок программы правильно удалял из этого списка все элементы со значением 0?{type ssylka = ^spisok; spisok = record znach: integer; next,prev: ssylka end; var head,p,q: ssylka; } while (head<>nil)and(head^.znach =0)do begin p:= head; head:= head^.next; dispose(p); end; if head<>nil then begin head^.prev:= nil; p:= head; while p^.next <> nil do if p^.next^.znach = 0 then begin q:= p^.next; p^.next:= q^.next; if p <> tail then [???]; dispose(q); end else p:= p^.next; end else tail:= nil;
(1) p^.next:= p
(2) p^.next^.prev:= p
(3) p^.prev:= p
(4) p^.prev ^.next:= p
Какие вершины взвешенного графа, заданного этой матрицей смежности, принадлежат к 10-периферии относительно вершины c? a b c d f a 0 12 5 12 3 b 12 0 15 0 7 c 5 15 0 10 20 d 12 0 10 0 2 f 3 7 20 2 0
(1) a
(2) b
(3) c
(4) d
(5) f
В какой последовательности распечатает вершины графа, заданного этим списком смежности, процедура обхода в ширину? (Обход начинается с вершины a, производится в алфавитном порядке.)a: b d b: d f f: c d g d: h g h: g
(1) a b c d f g h
(2) a b d f g h c
(3) a b d f c g h
(4) c h g f d b a
(5) h g f d c b a
Для того, чтобы скомпилировать все без исключения модули программы, нужно воспользоваться командой:
(1) Compile | Build
(2) Compile | Compile
(3) Compile | Make
Заставка – это:
(1) предоставление пользователю информации о формате ожидаемых данных
(2) предоставление пользователю информации о программе в целом
(3) предоставление пользователю возможности выбора из предложенных вариантов
Полный тестовый набор для переменной целого типа, значение которой по условию решаемой задачи лежит в диапазоне [0..100], может включать тесты со следующими значениями этой переменной:
(1) -1
(2) 0
(3) 20
(4) 100
(5) 1000
(6) 10.0
(7) ‘c’
Какой тип будет иметь результат выражения a+b при a:word, b:integer?
(1) byte
(2) word
(3) shortint
(4) integer
(5) longint
Какие описания массивов являются правильными с точки зрения компилятора языка Pascal?
(1) var a2: array[100..-100] of real
(2) const n: byte = 200; var a5: array[1..n] of word
(3) const m1 = 20; m2 = m1 - 100; var a6: array[m2..m1] of 'A'..'z'
(4) type mass = array[1..100] of boolean; var a7: array[1..100] of mass
(5) var a8: array[integer] of -1..1,10
(6) var a9: array[1.0..20.0] of byte
Какой метод сортировки реализует этот фрагмент программы? for i:= 2 to N do begin x:= a[i] for j:= i-1 downto 1 do if a[j]>x then a[j+1]:= a[j] else break a[j+1]:= x; end;
(1) сортировка простыми вставками
(2) сортировка простыми вставками с барьером
(3) сортировка бинарными вставками
(4) сортировка простым выбором
Какие из приведенных ниже описаний констант являются правильными с точки зрения Pascal-компилятора?
(1) с1 = #67
(2) c2 = #(2*13)
(3) c3 = 't'
(4) st1 = ''''+'Сhar'+''''
(5) st2 = ''
(6) s2 = [1..10,5..15]
(7) s3 = ['a'..'z',0..9]
(8) s5 = [-128..128]
Переменные каких типов можно выводить в текстовый файл при помощи команд write() или writeln()
(1) порядковые
(2) целые
(3) логические
(4) символьные
(5) вещественные
(6) массивы
С текстовыми файлами могут работать файловые переменные, описанные следующим образом:
(1) var f: text
(2) var f: file of <тип_элементов>
(3) var f: file
Какие переменные будут существовать во время выполнения подпрограммы p2? program prog; var a: byte; procedure p1; var a: byte; begin ... end; procedure p2; function f: boolean; var a: byte; begin ... end; var a: byte; begin ... end;
(1) prog.a
(2) p1.a
(3) p2.a
(4) f.a
Имеется набор натуральных чисел, быть может, с повторениями. Необходимо разделить его на два поднабора так, чтобы разность сумм весов была минимальной. Эта задача решается рекурсивным методом полного перебора с отсечением (см. ниже). На вход были поданы числа 18 32 5 5 6 2 78 4 56 5 2. При какой глубине стека контекстов произойдет завершение работы программы (обращение к завершающей процедуре out())? {массив а хранит веса всех предметов, в порядке их ввода, half - "большая" половина суммы всех весов, dif - отклонение текущей найденной суммы от half} procedure rec(k: byte; sum: longint; var dif: longint); var i: byte; begin if sum+a[k]<=half then for i:= k+1 to n do rec(i,sum+a[k],dif) else if half-sum<dif then begin dif:= half-sum; if dif<2 then out(dif){печать и завершение} end end;
(1) 0
(2) 1
(3) 5
(4) 9
(5) 11
Строка, начинающаяся символами {$, является:
(1) оператором
(2) ключевым словом
(3) комментарием
(4) директивой компилятора
В дереве 15 вершин. Сколько в нем ребер?
(1) 14
(2) 15
(3) 16
Какой алгоритм реализует приведенная ниже программа?const nnn = 10000; type uk = ^ukk; ukk = record v: integer; next: uk; end; var head: array[1..nnn] of uk; a: array[1..nnn] of integer; ii,i,j,k,n: integer; q,p: uk; f: text; procedure dob(ii,jj: integer); {добавление ребра} var pp,qq: uk; begin new(qq); qq^.v:=jj; qq^.next:=nil; if head[ii]=nil then head[ii]:=qq {вставка первого} else begin {вставка остальных} pp:=head[ii]; while pp^.next<>nil do pp:=pp^.next; pp^.next:=qq; end; end; begin {------- считывание графа ------------} ... readln(f,n); {кол-во вершин в графе} while not eof(f) do begin read(f,i,j); if i<>j then begin dob(j,i); dob(i,j); end; end; {--------- инициация массива ---------} for i:=1 to n do begin head[i]:=nil; a[i]:=0; end; {------- основная часть -------------} k:=0; i:=1; repeat k:=k+1; a[i]:=k; p:=head[i]; while p<>nil do begin j:=p^.v; a[j]:=k; if (head[j]<>nil) and (i<>j) then begin q:=p; while q^.next<>nil do q:=q^.next; q^.next:=head[j]; head[j]:=nil; end; p:=p^.next; end; i:=i+1; while (head[i]=nil) and (i<=n) do i:=i+1; until i=n+1; for i:=1 to n do if a[i]=0 then k:=k+1; writeln(k); {выдача результата} end.
(1) подсчет количества компонент связности
(2) нахождение минимального каркаса в связном графе
(3) нахождение кратчайшего пути между двумя выделенными вершинами
Какое из приведенных ниже сообщений о неправильном вводе лучше всего подходит для организации дружественного интерфейса?
(1) i = ?
(2) хочу целое число!
(3) повторите ввод
(4) количество заявок не должно быть дробным. Пожалуйста, введите целое число
Процесс поиска и исправления синтаксических и логических ошибок в программе называется
(1) отладкой
(2) тестированием
(3) оптимизацией
Какие из вариантов расстановки скобок в выражении a and b shr c mod a + c * a shl - b div a не меняют порядок выполнения операций?
(1) (((a and b)shr c)mod a)+(c*((a shl(-b))div a))
(2) a and b shr c mod a +(((c*a)shl(-b))div a)
(3) ((a and b)shr c)mod a+c*(a shl -b div a)
(4) (a and(b shr(c mod a)))+(c*(a shl(-(b div a))))
(5) a and b shr c mod a+(c*(a shl((-b)div a)))
(6) a and b shr c mod a+((c*a) shl(-(b div a)))
Сколько операций сложения будет произведено при выполнении этого цикла, если k = 10? for i:= k to k+10 do a:= a+2
(1) 11
(2) 12
(3) 23
(4) 34
Какую операцию реализует приведенный ниже программный отрывок? for i:= 1 to N do set_res[i]:= (set1[i] or set2[i])and not set2[i]
(1) объединение двух множеств, заданных битовым массивом
(2) пересечение двух множеств, заданных битовым массивом
(3) разность двух множеств, заданных битовым массивом
В текстовом файле f указатель находится в самом конце предпоследней строки, а последняя строка - пустая. Какие из перечисленных ниже функций вернут TRUE в этой ситуации?
(1) eof(f)
(2) eoln(f)
(3) seekeof(f)
(4) seekeoln(f)
Чтобы иметь возможность считывать информацию из бинарного файла, его нужно открыть при помощи команды
(1) append(f)
(2) close(f)
(3) reset(f)
(4) rewrite(f)
Какое значение получит переменная a после выполнения такой программы? var a: byte; proc p1(k: byte); proc p2(var t: byte); begin t:= t*2 end; var a: byte; begin a:= 1; k:= 5; p2(a); end; begin a:= 10; p1(a); end.
(1) 1
(2) 2
(3) 5
(4) 10
(5) 20
Какие из приведенных ниже подпрограмм вычисляют функцию двойного факториала (n!!), определяемую следующим образом: 0!! =1 1!! = 1 n!! = n*(n-2)!!, для любого натурального n.
(1) function f(n,k:longint):longint; var ff: longint; begin if (k=0)or(k=n) then f:= 1 else if k>n then f:= 0 else begin ff:= f(n-1,k-1)+f(n-1,k); f:= ff end; end;
(2) function f(c:longint):longint; var a: array[1..1000]of longint; i: integer; begin a[1]:= 1; a[2]:= 1; for i:= 3 to c do a[i]:= a[i-1]+a[i-2]; f:= a[c] end;
(3) function f(c:longint):longint; begin if (c=0)or(c=1) then f:= 1 else f:= f(c-2)*c end;
(4) function f(c:longint):longint; begin if c =1 then f:= 1 else f:= f(c-1)+f(c-2) end;
(5) function f(n,k:longint):longint; var a: array[0..n]of longint; i,j,t,tt: longint; begin if k>n then f:= 0 else if (k=n)or(k=0) then f:= 1 else begin a[0]:= 1; a[1]:= 1; for i:= 2 to k do a[i]:= 0; for i:= 2 to n do begin t:= 1; for j:= 1 to i-1 do begin tt:= a[j]+t; t:= a[j]; a[j]:= tt; end; a[i]:= 1; end end; f:= a[k] end;
(6) function f(c:longint):longint; var ff: longint; begin ff:= 1; while c >1 do begin ff:= ff*c; dec(c,2); end; f:= ff end;
К каким типам относится описанная ниже константа? const a: integer = 1000
(1) неименованная константа
(2) типизированная константа
(3) нетипизированная константа
Сколько терминальных вершин содержится в полном бинарном дереве высоты 3?
(1) 6
(2) 8
(3) 9
Какие циклы будут работать "бесконечно"?
(1) while true do k:=k+1
(2) while false do k:=k+1
(3) repeat k:=k+1 until true
(4) repeat k:=k+1 until false
(5) k:=0; repeat k:=k+1 until k<0; {k:byte}
(6) k:=0; repeat k:=k+1 until k<0; {k:integer}
(7) k:=1; while k>=0 do k:=k+1; {k:word}
(8) k:=1; while k>=0 do k:=k+1; {k:shortint}
(9) for i:=1 to i+1 do k:=k+1
(10) for i:='x' downto 'z' do dec(i)
Какая последовательность символов будет содержаться в файле f: file of char после выполнения следующего отрывка программы: rewrite(f); for c:= 'a' to 'p' do write(f,c); {c: char} seek(f,10); read(f,c); write(f,c); seek(f,15); truncate(f); write(f,c);
(1) abcdefghijklmnop
(2) abcdefghijklmno
(3) abcdefghijkkmnok
(4) abcdefghijklmnopk
Какое из объявлений открытого параметра-массива является правильным?
(1) procedure p(a: array of real)
(2) procedure p(var a: array of real)
(3) procedure p(const a: array of real)
Свойство алгоритма, обязывающее его в той или иной форме сообщать итоги своей работы, называется:
(1) массовостью
(2) результативностью
(3) определенностью
Какое значение будет храниться в переменной а:integer после выполнения следующего программного отрывка?{b: string; p: ^integer} b:= ‘БББ’; p:= addr(b[1]); a:= p^;
(1) ‘ББ’
(2) ‘бб’
(3) –32383
(4) 33153
На сколько компонент связности распадается граф, содержащий семь вершин, если он задан таким списком ребер?a g a d b c c h f b f c
(1) 1
(2) 2
(3) 3
(4) 4
(5) 5
Какую высоту будет иметь дерево синтаксического анализа для выражения(a-b)*(c+(x-y)/d)+(k*m-(n/s+t))
(1) 3
(2) 4
(3) 5
(4) 8
(5) 10
Какой раздел модуля содержит объявления всех констант, переменных, типов данных и подпрограмм, которыми могут пользоваться остальные модули программы?
(1) секция внешних связей (interface)
(2) секция реализации (implementation)
(3) секция инициализации (begin)
Какие процедуры и функции стандартного модуля Crt отвечают за цвета и звуки?
(1) clreol
(2) clrscr
(3) delline
(4) gotoxy()
(5) insline
(6) nosound
(7) sound()
(8) textbackground()
(9) textcolor()
(10) wherex
(11) wherey
(12) window()
Какие имена переменных являются наиболее предпочтительными с точки зрения надежного программирования?
(1) dl, sh
(2) dlina, shirina
(3) dlina_priamougolnika, shirina_priamougolnika
Тип данных integer является
(1) арифметическим
(2) базовым
(3) конструируемым
(4) порядковым
(5) структурированным
Какие значения будет принимать переменная z, в зависимости от значений переменной а? z:= 0; if a>10 then if a>100 then if a>1000 then z:= 1 else z:= -1 else z:= 10;
(1) a <= 10 : 10 10 < a <= 100 : 0 100 < a <= 1000 : -1 1000 < a : 1
(2) a <= 10 : 10 10 < a <= 100 : -1 100 < a <= 1000 : 1 1000 < a : 0
(3) a <= 10 : 0 10 < a <= 100 : 10 100 < a <= 1000 : -1 1000 < a : 1
Метод сортировки простым выбором является:
(1) простой сортировкой
(2) улучшенной сортировкой
(3) внутренней сортировкой
(4) внешней сортировкой
(5) сортировкой, имеющей эффективность порядка N2
Какой стандартной функции или процедуре обработки строк эквивалентен следующий программный отрывок? {s1,s2: string; i,j,t1,t2: byte} i:=0; res:= ''; t1:= byte(s1[0]); t2:= byte(s2[0]); if i > t2 then i:= t2+1; for j:= 1 to i-1 do res:= res + s2[j]; for j:= 1 to t1 do res:= res + s1[j]; for j:= i to t2 do res:= res + s2[j];
(1) copy(s,i,k)
(2) delete(s,i,k)
(3) insert(s1,s2,i)
Чтобы иметь возможность записывать информацию в текстовый файл, его нужно открыть при помощи команд
(1) append(f)
(2) close(f)
(3) reset(f)
(4) rewrite(f)
Сколько полей содержится в записи person? type data = record day: 1..31; month: 1..12; year: 1900.. 2100; end; person = record name: string[20]; date_birth: data; case family_status: char of 'm': (wedding_date: data; spouse_name: string[20]); 's': (church_celibate: boolean); 'd': (date_divorce: data;); 'w': (date_of_spouse_death: data); end;
(1) 4
(2) 5
(3) 8
(4) 3 или 4, в зависимости от значения family_status
(5) 4 или 5, в зависимости от значения family_status
(6) 8 или 9, в зависимости от значения family_status
Какие вызовы функции function f(const a:byte; var s:real; t:boolean):real; являются неправильными с точки зрения компилятора языка Pascal?
(1) x:= f(c,0.175,true); {var c:byte; x:real}
(2) x:= f(35*100,c,false); {var x:real; const c:real=10.0}
(3) x:= f(k,s,a>b); {var k,a,b:shortint; s,x:real}
(4) x:= f(10,s,odd(k)); {var s:double; k:integer; x:real}
(5) x:= f(0,s1+s2,s3<s4); {var x,s1,s2,s3,s4:real}
Динамическая структура данных, у которой в каждый момент времени доступны первый и последний элементы, причем и добавлять, и удалять элементы можно как на конце структуры, так и в ее начале, называется:
(1) стеком
(2) очередью
(3) деком
Какие последовательности символов являются правильными идентификаторами (с точки зрения компилятора языка Pascal)?
(1) peremennaja
(2) ja-peremennaja
(3) i_ja_peremennaja
(4) shirina+dlina
(5) NikomuNeNuzhnajaPeremennaja
(6) 99xxx66
(7) vse my tut peremennye
(8) переменная
Для выделения памяти в процессе работы программы предназначены процедуры
(1) addr()
(2) dispose()
(3) freemem()
(4) getmem()
(5) new()
Какие вершины орграфа, заданного этим списком смежности, принадлежат к третьему уровню относительно вершины b?a: d b: a c f c: d d: h g f: d
(1) a
(2) b
(3) c
(4) d
(5) f
(6) g
(7) h
Постройте дерево бинарного поиска (дерево сортировки) для входной последовательности чисел 7 2 5 1 8 3 6 4 9 13 11 10 12, а затем распечатайте вершины этого дерева в порядке обхода в ширину. Какая последовательность чисел получится?
(1) 7 2 5 1 8 3 6 4 9 13 11 10 12
(2) 7 2 1 5 3 4 6 8 9 13 11 10 12
(3) 10 12 7 2 5 1 8 4 9 13 11 3 6
(4) 7 2 8 1 5 9 3 6 13 4 11 10 12
(5) 1 2 3 4 5 6 7 8 9 10 11 12 13
(6) 1 4 3 6 5 2 10 12 11 13 9 8 7
(7) 13 12 11 10 9 8 7 6 5 4 3 2 1
Какие переменные может использовать секция внешних связей модуля B?unit A; unit C; unit F; interface interface interface uses C,D; uses D,F; var f; var a; var c; implementation implementation implementation uses A; uses F; uses B; var ff; var aa; var cc; end; end; end; unit B; unit D; interface interface uses C; var d; var b; implementation implementation uses B; uses D; var dd; var bb; end; end;
(1) a
(2) aa
(3) b
(4) bb
(5) c
(6) cc
(7) d
(8) dd
(9) f
(10) ff
Какой цвет текста получится на экране, если использоватьbrown * lightcyan + blue
(1) black
(2) blue
(3) green
(4) cyan
(5) red
(6) magenta
(7) brown
(8) lightgray
Типы данных double и real являются:
(1) эквивалентными
(2) совместимыми
(3) совместимыми по присваиванию
К каким типам данных может относиться переменная-переключатель, служащая для выбора одной из ветвей оператора case?
(1) char
(2) integer
(3) shortint
(4) real
(5) record
(6) file
Метод сортировки Шелла является:
(1) простой сортировкой
(2) улучшенной сортировкой
(3) внутренней сортировкой
(4) внешней сортировкой
(5) сортировкой, имеющей эффективность порядка N2
(6) сортировкой, имеющей эффективность порядка N3/2
(7) сортировкой, имеющей эффективность порядка N*log N
Какие из приведенных ниже последовательностей строк и символов упорядочены по возрастанию?
(1) 'мама', 'мыла', 'раму'
(2) 'ZZzz', 'zZzZ', 'zzZZ'
(3) '1', '5', '10', '15'
(4) '12', '125', '234', '48'
(5) 'Россия', 'родина', 'слонов'
Какие значения будут храниться в переменных s и k после считывания из текстового файла f строки 'Петров Петр Петрович 1956' при помощи команды readln(f,s,k); {s: string[22], k:shortint =0}
(1) s = 'Петров Петр Петрович', k = 1956
(2) s = 'Петров Петр Петрович ', k = 1956
(3) s = 'Петров Петр Петрович 1', k = 956
(4) s = 'Петров Петр Петрович 1', k = -68
(5) s = 'Петров Петр Петрович 1956', k = 0
Какое значение будет храниться в поле a записи r1 после выполнения следующего блока? var a: longint; r1: record a: word; ... end; r2: record a: integer; ... end; begin a:= 0; with r1 do begin a:= 1000; with r2 do begin a:= 1000; r1.a:= -a; end; r2.a:= -100; end; a:= 100; end.
(1) -1000
(2) -100
(3) 0
(4) 100
(5) 1000
(6) 64536
(7) 65436
Какие переменные будут существовать во время выполнения подпрограммы f? program prog; var a: byte; procedure p1; var a: byte; begin ... end; procedure p2; function f: boolean; var a: byte; begin ... end; var a: byte; begin ... end;
(1) prog.a
(2) p1.a
(3) p2.a
(4) f.a
Описанные ниже подпрограммы function C: boolean; forward; function D: boolean; forward; procedure A; begin x:= c(x); y:= d(y); end; function B: boolean; begin z:= d(z); end; function C; begin z:= b(z); end; function D; begin z:= b(z); end;
(1) реализуют прямую рекурсию
(2) реализуют косвенную рекурсию
(3) не рекурсивны
Идентификатор, описанный после ключевого слова var, является именем:
(1) переменной
(2) метки
(3) константы
Какой оператор нужно вставить вместо [???], чтобы приведенный ниже отрывок программы правильно менял местами третий и четвертый элементы двусвязного линейного списка, заданного указателем на голову head?{type ssylka = ^spisok; spisok = record znach: array[1..1000]of integer; next,prev: ssylka end; var head,p: ssylka; } p:= head^.next^.next; p^.prev^.next:= p^.next; p^.next:= p^.next^.next; p^.prev^.next^.next:= p; p^.next^.prev^.prev:= p^.prev; [???]; p^.prev:= p^.prev^.next;
(1) p^.next:= p
(2) p^.next^.prev:= p
(3) p^.prev:= p
(4) p^.prev ^.next:= p
Какие вершины взвешенного графа, заданного этой матрицей смежности, принадлежат к 10-периферии относительно вершины a? a b c d f a 0 3 10 0 0 b 3 0 5 0 0 c 10 5 0 2 4 d 0 0 2 0 2 f 0 0 4 2 0
(1) a
(2) b
(3) c
(4) d
(5) f
В какой последовательности распечатает вершины графа, заданного этим списком смежности, процедура прямого обхода? (Обход начинается с вершины a, производится в алфавитном порядке.)a: b d b: d f f: c d g d: h g h: g
(1) a b c d f g h
(2) a b d f g h c
(3) a b d f c g h
(4) c h g f d b a
(5) h g f d c b a
Для того, чтобы скомпилировать только текст одного модуля, нужно воспользоваться командой:
(1) Compile | Build
(2) Compile | Compile
(3) Compile | Make
Меню – это:
(1) предоставление пользователю информации о формате ожидаемых данных
(2) предоставление пользователю информации о программе в целом
(3) предоставление пользователю возможности выбора из предложенных вариантов
Какой тип будет иметь результат выражения a+b при a:byte, b:shortint?
(1) byte
(2) word
(3) shortint
(4) integer
(5) longint
Какие описания массивов являются правильными с точки зрения компилятора языка Pascal?
(1) var a1: array[-1000..50] of integer;
(2) var a2: array[200..-111] of real;
(3) const n: byte = 0; var a5: array[-1000..n] of word;
(4) const m1 = 20; m2 = m1*100; var a6: array[m1..m2] of -200..200;
(5) type mass = array[1..100] of char; var a7: array[0..99] of mass;
(6) var a9: array[0.0..20000.0] of byte;
Какой метод сортировки реализует этот фрагмент программы? for i:= 1 to n-1 do begin x:= a[i+1]; l:= 1; r:= i; while l<=r do begin s:= (l+r)div 2; if a[s]<x then l:= s+1 else r:= s-1; end; for j:= i downto 0 do a[j]:= a[j+1]; a[l]:= x; end;
(1) сортировка простыми вставками
(2) сортировка простыми вставками с барьером
(3) сортировка бинарными вставками
(4) сортировка простым выбором
Какие из приведенных ниже описаний констант являются правильными с точки зрения Pascal-компилятора?
(1) st2 = ''fgh''
(2) c3 = #1000
(3) st1 = #56+'xyz'
Переменные каких типов можно выводить в текстовый файл при помощи команд write() или writeln()?
(1) целые
(2) логические
(3) строковые
(4) перечисляемые
(5) вещественные
(6) файлы
С типизированными файлами могут работать файловые переменные, описанные следующим образом:
(1) var f: text
(2) var f: file of <тип_элементов>
(3) var f: file
После завершения работы подпрограммы значение переданной в нее переменной-аргумента может измениться, если соответствующий параметр был:
(1) параметром-значением (без предиката)
(2) параметром-константой (с предикатом const)
(3) параметром-переменной (с предикатом var)
Имеется набор натуральных чисел, быть может, с повторениями. Необходимо разделить его на два поднабора так, чтобы разность сумм весов была минимальной. Эта задача решается рекурсивным методом полного перебора с отсечением (см. ниже). На вход были поданы числа 36 72 45 2 38 96 15 2 2. При какой глубине стека контекстов произойдет завершение работы программы (обращение к завершающей процедуре out())? {массив а хранит веса всех предметов, в порядке их ввода, half - "большая" половина суммы всех весов, dif - отклонение текущей найденной суммы от half} procedure rec(k: byte; sum: longint; var dif: longint); var i: byte; begin if sum+a[k]<=half then for i:= k+1 to n do rec(i,sum+a[k],dif) else if half-sum<dif then begin dif:= half-sum; if dif<2 then out(dif){печать и завершение} end end;
(1) 0
(2) 1
(3) 4
(4) 7
(5) 9
Строка, начинающаяся символами {*, является:
(1) оператором
(2) ключевым словом
(3) комментарием
(4) директивой компилятора
В несвязном графе, каждая компонента связности которого является деревом, содержится 15 вершин и 10 ребер. Сколько в нем компонент связности?
(1) 4
(2) 5
(3) 6
Какой алгоритм реализует приведенная ниже программа?const nnn=10000; type s1 = ^s2; s2 = record n,k,v: integer; next: s1; end; var f: text; head,p,q: s1; x,i,kr,vr,nxt,kol_ver: integer; a: array[1..nnn] of integer; begin assign(f,'in'); reset(f); readln(f,kol_ver); new(head); with head^ do readln(f,n,k,v); head^.next:= nil; while not eof(f) do begin new(q); with q^ do readln(f,n,k,v); q^.next:= nil; if q^.v <= head^.v then begin q^.next:= head; head:= q; continue end; p:= head; while p^.next<>nil do begin if q^.v > p^.next^.v then p:= p^.next else begin q^.next:= p^.next; p^.next:= q; break; end; end; if p^.next = nil then p^.next:= q; end; close(f); p:=head; while p<>nil do begin write(p^.v,' '); p:=p^.next; end; writeln('*'); for i:= 1 to kol_ver do a[i]:= 0; kr:= 0; vr:= 0; nxt:= 0; p:= head; while (p^.next <> nil)and(kr<kol_ver)do with p^ do begin if a[n]=0 then if a[k]=0 then begin inc(kr); inc(vr,v); inc(nxt); a[n]:= nxt; a[k]:= nxt; end else begin a[n]:= a[k]; inc(vr,v); end else if a[k]=0 then begin a[k]:= a[n]; inc(vr,v); end else if a[n]<>a[k] then begin x:= a[k]; for i:= 1 to kol_ver do if a[i]=x then a[i]:=a[n]; inc(vr,v) end; p:= next end; writeln(vr) end.
(1) подсчет количества компонент связности
(2) нахождение минимального каркаса в связном графе
(3) нахождение кратчайшего пути между двумя выделенными вершинами
Какое из приведенных ниже приглашений к вводу лучше всего подходит для организации дружественного интерфейса?
(1) введите m и n:
(2) напечатайте значения размерностей:
(3) введите горизонтальную и вертикальную размерности массива (целые числа из диапазона [1..100], разделенные пробелом):
(4) пора ввести размерности нашего массива!
Процесс изменения текста программы с целью повышения ее эффективности называется
(1) отладкой
(2) тестированием
(3) оптимизацией
Какой из вариантов расстановки скобок в выражении a + b or c shl a * c - a mod b > a не меняет порядок выполнения операций?
(1) a+(((b or c)shl a)*c)-(a mod b)>a
(2) a+(b or((c shl a)*c))-a mod(b>a)
(3) a+(b or((c shl a)*c))-(a mod b)>a
(4) (a+b or c shl a*c-a mod b)>a
(5) (a+b or c shl a*c(-a)mod b)>a
Сколько операций умножения будет произведено при выполнении этого цикла, если k = 10? for i:= 2*k to 5*k do a:= a*2
(1) 32
(2) 33
(3) 61
(4) 63
Какую операцию реализует приведенный ниже программный отрывок? for i:= 1 to N do set_res[i]:= set1[i] or set2[i]
(1) объединение двух множеств, заданных битовым массивом
(2) пересечение двух множеств, заданных битовым массивом
(3) разность двух множеств, заданных битовым массивом
В текстовом файле f указатель находится в начале последней строки, состоящей только из пробельных символов. Какие из перечисленных ниже функций вернут TRUE в этой ситуации?
(1) eof(f)
(2) eoln(f)
(3) seekeof(f)
(4) seekeoln(f)
Чтобы иметь возможность записывать информацию в бинарный файл, его нужно открыть при помощи команды
(1) append(f)
(2) close(f)
(3) rewrite(f)
Какое значение получит переменная a после выполнения такой программы? var a: byte; proc p1(var k: byte); proc p2(t: byte); begin t:= t*2 end; var a: byte; begin a:= 1; k:= 5; p2(k); end; begin a:= 10; p1(a); end.
(1) 1
(2) 2
(3) 5
(4) 10
(5) 20
Какие из приведенных ниже подпрограмм вычисляют биномиальный коэффициент nk = n!/k!(n-k)!) определяемый следующим образом: Сnk = 0, если k > n; Сnk = 1, если k = 0 или k = n; Сnk = Сn-1k + Сn-1k-1 в остальных случаях.
(1) function f(n,k:longint):longint; var ff: longint; begin if (k=0)or(k=n) then f:= 1 else if k>n then f:= 0 else begin ff:= f(n-1,k-1)+f(n-1,k); f:= ff end; end;
(2) function f(c:longint):longint; var a: array[1..1000]of longint; i: integer; begin a[1]:= 1; a[2]:= 1; for i:= 3 to c do a[i]:= a[i-1]+a[i-2]; f:= a[c] end;
(3) function f(c:longint):longint; begin if c =1 then f:= 1 else f:= f(c-1)+f(c-2) end;
(4) f(n,k:longint):longint; var a: array[0..nnn]of longint; i,j,t,tt: longint; begin if k>n then f:= 0 else if (k=n)or(k=0) then f:= 1 else begin a[0]:= 1; a[1]:= 1; for i:= 2 to k do a[i]:= 0; for i:= 2 to n do begin t:= 1; for j:= 1 to i-1 do begin tt:= a[j]+t; t:= a[j]; a[j]:= tt; end; a[i]:= 1; end end; f:= a[k] end;
К каким типам относится описанная ниже константа? const a: real = 10.00
(1) неименованная константа
(2) типизированная константа
(3) нетипизированная константа
Сколько листьев содержится в полном бинарном дереве высоты 2?
(1) 3
(2) 4
(3) 6
Какие циклы будут работать "бесконечно"?
(1) while true do k:=k*2
(2) while false do k:=k*2
(3) repeat k:=k*2 until true
(4) repeat k:=k*2 until false
(5) c:='h'; for i:='a' to 'c' do inc(c,2)
Какая последовательность символов будет содержаться в файле f: file of char после выполнения следующего отрывка программы: rewrite(f); for c:= 'а' to 'р' do write(f,c); {c: char} seek(f,10); read(f,c); truncate(f); seek(f,15); write(f,c);
(1) абвгдежзийклмноп
(2) абвгдежзийклмнок
(3) абвгдежзийлмнопрк
(4) абвгдежзийклмнопк
Какое из объявлений нетипизированного параметра является правильным?
(1) procedure p(a)
(2) procedure p(var a)
(3) procedure p(const a)
Свойство алгоритма, позволяющее ему решать множество однотипных задач, различающихся лишь входными данными, называется:
(1) массовость
(2) результативность
(3) определенность
Какое значение будет храниться в переменной а:integer после выполнения следующего программного отрывка?{b: string; p: ^word} b:= ‘ААББВВГГДД’; p:= addr(b[7]); a:= p^;
(1) ‘ГГ’
(2) ‘гг’
(3) –31869
(4) 33667
Какую высоту будет иметь дерево синтаксического анализа для выражения(a+b)*(c*d-k)-((m+n)/s*(t+y)*(z-x))
(1) 4
(2) 5
(3) 6
(4) 10
(5) 12
Какой раздел модуля содержит описания тех подпрограмм, которые были объявлены как доступные другим модулям?
(1) секция внешних связей (interface)
(2) секция реализации (implementation)
(3) секция инициализации (begin)
Какие процедуры и функции стандартного модуля Crt отвечают за позиционирование курсора в активной области ввода/вывода?
(1) clreol
(2) clrscr
(3) delline
(4) gotoxy()
(5) insline
(6) nosound
(7) sound()
(8) textbackground()
(9) textcolor()
(10) wherex
(11) wherey
(12) window()
Какие имена переменных являются наиболее предпочтительными с точки зрения надежного программирования?
(1) k,v
(2) kol, ves
(3) kolichestvo, obshij_ves
Тип данных boolean является
(1) арифметическим
(2) базовым
(3) конструируемым
(4) структурированным
Какие значения будет принимать переменная z, в зависимости от значений переменной а? z:= -1; if a<100 then if a<10 then if a<1 then z:=0 else z:= 10 else z:= 100;
(1) 1) a < 1 : 0 1 <= a < 10 : 10 10 <= a < 100 : -1 100 <= a : 100
(2) 2) a < 1 : 0 1 <= a < 10 : -1 10 <= a < 100 : 10 100 <= a : 100
(3) 3) a < 1 : 0 1 <= a < 10 : 10 10 <= a < 100 : 100 100 <= a : -1
Метод сортировки простыми вставками с барьером является:
(1) простой сортировкой
(2) улучшенной сортировкой
(3) внутренней сортировкой
(4) внешней сортировкой
(5) сортировкой, имеющей эффективность порядка N2
(6) сортировкой, имеющей эффективность порядка N3/2
(7) сортировкой, имеющей эффективность порядка N*log N
Какой стандартной функции или процедуре обработки строк эквивалентен следующий программный отрывок? {s: string; i,k,t: byte} res:= ''; t:= byte(s[0]); if k+i > t+1 then k:= t-i; if i <= t then for j:= i to i+k do res:= res + s[j];
(1) copy(s,i,k)
(2) delete(s,i,k)
(3) insert(s1,s2,i)
1. Чтобы иметь возможность добавлять информацию в конец текстового файла, его нужно открыть при помощи команды
(1) append(f)
(2) close(f)
(3) reset(f)
(4) rewrite(f)
Сколько полей содержится в записи employee? type data = record day: 1..31; month: 1..12; year: 1900.. 2100; end; employee = record name: string[20]; date_entering: data; case trade_union: boolean of true: (date_enter: data; leader: boolean); false: (manager: boolean); end;
(1) 3
(2) 4
(3) 10
(4) 3 или 4, в зависимости от значения trade_union
(5) 4 или 5, в зависимости от значения trade_union
(6) 5 или 8, в зависимости от значения trade_union
Какие вызовы процедуры procedure p(x:real; const c: byte; var d: integer); являются неправильными с точки зрения компилятора языка Pascal?
(1) p(100,t,s);
(2) p(z*2.5,t,s); {const s:integer =0; t:shortint = -1; var z:longint}
(3) p(i,j,k); {var i,j,k:byte}
(4) p(z,a or b,0); {var z:double; a,b:longint}
(5) p(0,0,round(k/2)); {var k: integer}
Динамическая структура данных, у которой в каждый момент времени доступен только последний элемент, причем добавлять и удалять элементы можно только на конце структуры, называется:
(1) стеком
(2) очередью
(3) деком
Какие последовательности символов являются правильными идентификаторами (с точки зрения компилятора языка Pascal)?
(1) pointer
(2) address
(3) 12_34_56
(4) я переменная!
(5) _9876543210_
(6) name for variable
(7) new_variable
(8) MyOwnIdentifier
(9) vysota*10
(10) _
Для освобождения памяти в процессе работы программы предназначены процедуры
(1) addr()
(2) dispose()
(3) freemem()
(4) getmem()
(5) new()
Какие вершины орграфа, заданного этим списком смежности, принадлежат ко второму уровню относительно вершины a?a: d f g b: d d: c f g: h h: f
(1) a
(2) b
(3) c
(4) d
(5) f
(6) g
(7) h
Постройте дерево бинарного поиска (дерево сортировки) для входной последовательности чисел 7 2 5 1 8 3 6 4 9 13 11 10 12, а затем распечатайте вершины этого дерева в порядке прямого обхода. Какая последовательность чисел получится?
(1) 7 2 5 1 8 3 6 4 9 13 11 10 12
(2) 7 2 1 5 3 4 6 8 9 13 11 10 12
(3) 10 12 7 2 5 1 8 4 9 13 11 3 6
(4) 7 2 8 1 5 9 3 6 13 4 11 10 12
(5) 1 2 3 4 5 6 7 8 9 10 11 12 13
(6) 1 4 3 6 5 2 10 12 11 13 9 8 7
(7) 13 12 11 10 9 8 7 6 5 4 3 2 1
Какие переменные может использовать секция внешних связей модуля C?unit A; unit C; unit F; interface interface interface uses C,D; uses D,F; var f; var a; var c; implementation implementation implementation uses A; uses F; uses B; var ff; var aa; var cc; end; end; end; unit B; unit D; interface interface uses C; var d; var b; implementation implementation uses B; uses D; var dd; var bb; end; end;
(1) a
(2) aa
(3) b
(4) bb
(5) c
(6) cc
(7) d
(8) dd
(9) f
(10) ff
Какой цвет текста получится на экране, если использоватьlightgreen * brown + magenta
(1) black
(2) blue
(3) green
(4) cyan
(5) red
(6) magenta
(7) brown
(8) lightgray
Какие из приведенных ниже отрывков программ хорошо структурированы?1) while not eof(f) do begin inc(n); read(f,a[n]); inc(obsh_ves,a[n]); end; close(f); min:= MaxLongInt; 2) while head<>nil do begin with head^.e^ do if from^.dist+len < toward^.dist then begin toward^.dist:= from^.dist + len; enqueue(toward,queue,head); end; next_head:= head ^.next; dispose(head); head:= next_head end; 3) while left<=right do begin sred:= (left+right)div 2; if a[sred]<x then left:= sred+1 else begin right:= sred-1; inc(k); end; end; for j:= i-1 downto left do a[j+1]:= a[j]; 4) while p<>nil do begin j:=p^.v; a[j]:=k; if (head[j]<>nil) and (i<>j) then begin q:=p; while q^.next<>nil do q:=q^.next; q^.next:=head[j]; head[j]:=nil; end; p:=p^.next; end;
(1) 1
(2) 2
(3) 3
(4) 4
Типы данных real и integer являются:
(1) эквивалентными
(2) несовместимыми
(3) совместимыми по присваиванию
К каким типам данных может относиться переменная-переключатель, служащая для выбора одной из ветвей оператора case?
(1) byte
(2) boolean
(3) longint
(4) string[2]
(5) extended
(6) set
(7) word
(8) file of integer
Пирамидальный метод сортировки является:
(1) простой сортировкой
(2) улучшенной сортировкой
(3) внутренней сортировкой
(4) внешней сортировкой
(5) сортировкой, имеющей эффективность порядка N2
(6) сортировкой, имеющей эффективность порядка N3/2
(7) сортировкой, имеющей эффективность порядка N*log N
Какие значения будут храниться в переменных s и k после считывания из текстового файла f строки 'Олегов Олег Олегович 1962' при помощи команды readln(f,s,k); {s: string[22], k:byte =0}
(1) s = 'Олегов Олег Олегович', k = 1962
(2) s = 'Олегов Олег Олегович ', k = 1962
(3) s = 'Олегов Олег Олегович 1', k = 962
(4) s = 'Олегов Олег Олегович 1', k = 194
(5) s = 'Олегов Олег Олегович 1962', k = 0
Какое значение будет храниться в поле a записи r2 после выполнения следующего блока? var a: integer; r1: record a: longint; ... end; r2: record a: byte; ... end; begin a:= 0; with r2 do begin a:= 10; with r1 do begin a:= -r2.a; r2.a:= 100; end; a:= r1.a; end; a:= -100; end.
(1) -100
(2) -10
(3) 0
(4) 10
(5) 100
(6) 156
(7) 246
Какие переменные будут существовать во время выполнения подпрограммы p1? program prog; var a: byte; procedure p1; function f: boolean; var a: byte; begin ... end; var a: byte; begin ... end; procedure p2; var a: byte; begin ... end;
(1) prog.a
(2) p1.a
(3) p2.a
(4) f.a
Описанные ниже подпрограммы function C: boolean; forward; function D: boolean; forward; procedure A; begin x:= c(x); y:= d(y); end; function B: boolean; begin x:= c(x); end; function C; begin z:= c(z); end; function D; begin z:= d(z); end;
(1) реализуют прямую рекурсию
(2) реализуют косвенную рекурсию
(3) не рекурсивны
Идентификатор, описанный после ключевого слова const, является именем:
(1) переменной
(2) метки
(3) константы
Какой оператор нужно вставить вместо [???], чтобы приведенный ниже отрывок программы правильно создавал двусвязный линейный список, получая значения из непустого текстового файла f?{type ssylka = ^spisok; spisok = record znach: integer; next,prev: ssylka end; var head,p: ssylka; } new(head); read(f,head^.znach); head^.prev:= nil; p:= head; while not eof(f) do begin new(p^.next); read(f,p^.next^.znach); [???]; end; p^.next:= nil; p:= tail;
(1) p^.next:= p
(2) p^.next^.prev:= p
(3) p^.prev:= p
(4) p^.prev ^.next:= p
Какие вершины взвешенного графа, заданного этой матрицей смежности, принадлежат к 10-периферии относительно вершины a? a b c d f a 0 5 0 7 0 b 5 0 8 4 0 c 0 8 0 6 0 d 7 4 6 0 3 f 0 0 0 3 0
(1) a
(2) b
(3) c
(4) d
(5) f
В какой последовательности распечатает вершины графа, заданного этим списком смежности, процедура обратного обхода? (Обход начинается с вершины a, производится в алфавитном порядке.)a: b d b: d f f: c d g d: h g h: g
(1) a b c d f g h
(2) a b d f g h c
(3) a b d f c g h
(4) c h g f d b a
(5) h g f d c b a
Для того, чтобы скомпилировать только те модули программы, которые оказались затронуты внесенными изменениями, нужно воспользоваться командой:
(1) Compile | Build
(2) Compile | Compile
(3) Compile | Make
Приглашение – это:
(1) предоставление пользователю информации о формате ожидаемых данных
(2) предоставление пользователю информации о программе в целом
(3) предоставление пользователю возможности выбора из предложенных вариантов
Полный тестовый набор для переменной вещественного типа, значение которой по условиям решаемой задачи лежит в диапазоне [0..100], может включать тесты со следующими значениями этой переменной:
(1) -1.09
(2) 0.0
(3) 10.54
(4) 50
(5) 100.0
(6) 1000
(7) ‘c’
Какой тип будет иметь результат выражения a+b при a:shortint, b:word?
(1) byte
(2) word
(3) shortint
(4) integer
(5) longint
Какие описания массивов являются правильными с точки зрения компилятора языка Pascal?
(1) var a1: array[-1..-5000] of integer
(2) var a2: array[-100..0] of char
(3) var a3: array[char,4..5,boolean] of word
(4) const n: byte = -10; var a5: array[1..-2*n] of byte
(5) const m1:= -10; m2:= m1 + 10; var a6: array[m2..m1] of 'A'..'z'
(6) type mass = array[-10..10] of double; var a7: array[-10..10] of mass
(7) var a8: array[longint] of -1..1,10
(8) var a9: array[-100.0..20.0] of char
Какой метод сортировки реализует этот фрагмент программы? for i:= 2 to n do begin min:= a[i-1]; for j:= i to n do if a[j]<= min then begin min:= a[j]; k:=j end; x:= a[i-1]; a[i-1]:= a[k]; a[k]:= x; end;
(1) сортировка простыми вставками
(2) сортировка простыми вставками с барьером
(3) сортировка бинарными вставками
(4) сортировка простым выбором
Какие из приведенных ниже описаний констант являются правильными с точки зрения Pascal-компилятора?
(1) c1 = 'f'
(2) c2: char = ''
(3) c3 = #-100
(4) st1 = #67+'''муся'
(5) st2 = ''
(6) s1 = [0..128, -128..0]
(7) s2 = ['a'..'t','z','0..9']
Переменные каких типов можно выводить в текстовый файл при помощи команд write() или writeln()
(1) порядковые
(2) логические
(3) символьные
(4) строковые
(5) множества
С бинарными файлами могут работать файловые переменные, описанные следующим образом:
(1) var f: text
(2) var f: file of <тип_элементов>
(3) var f: file
В качестве аргумента при вызове подпрограммы возможно использовать арифметическое выражение, если соответствующий параметр был
(1) параметром-значением (без предиката)
(2) параметром-константой (с предикатом const)
(3) параметром-переменной (с предикатом var)
Имеется набор натуральных чисел, быть может, с повторениями. Необходимо разделить его на два поднабора так, чтобы разность сумм весов была минимальной. Эта задача решается рекурсивным методом полного перебора с отсечением (см. ниже). На вход были поданы числа 45 48 32 12 12 15 46 2 2 3 15. При какой глубине стека контекстов произойдет завершение работы программы (обращение к завершающей процедуре out())? {массив а хранит веса всех предметов, в порядке их ввода, half - "большая" половина суммы всех весов, dif - отклонение текущей найденной суммы от half} procedure rec(k: byte; sum: longint; var dif: longint); var i: byte; begin if sum+a[k]<=half then for i:= k+1 to n do rec(i,sum+a[k],dif) else if half-sum<dif then begin dif:= half-sum; if dif<2 then out(dif){печать и завершение} end end;
(1) 0
(2) 1
(3) 4
(4) 7
(5) 11
Строка, начинающаяся символoм {, может являться:
(1) оператором
(2) ключевым словом
(3) комментарием
В дереве 10 ребер. Сколько в нем вершин?
(1) 9
(2) 10
(3) 11
Какой алгоритм реализует приведенная ниже программа?type vertices = ^vertex; edges = ^edge; vertex = record id,dist: integer; incidence: edges; next: vertices; end; edge = record from,toward: vertices; len: integer; next: edges; end; ptr_edges = ^ptr_edge; ptr_edge = record e: edges; next: ptr_edges; end; var i,j,len,source_id: integer; g,source: vertices; queue,head,next_head: ptr_edges; f: text; function new_vertex(i: integer; g: vertices): vertices; var v: vertices; begin new(v); v^.id:= i; v^.dist:= maxint; v^.incidence:= nil; v^.next:= g; new_vertex:= v end; function find_vertex(i: integer; g: vertices): vertices; var v: vertices; begin v:= g; while (v<>nil)and(v^.id<>i) do v:= v^.next; find_vertex:= v end; function find_edge(j: integer; n: edges): edges; var e: edges; begin e:= n; while (e<>nil)and(e^.toward^.id<>j) do e:= e^.next; find_edge:= e end; procedure new_edge(i,j,len: integer; var g: vertices); var vi,vj: vertices; eij: edges; begin vi:= find_vertex(i,g); if vi = nil then begin g:= new_vertex(i,g); vi:= g end; vj:= find_vertex(j,g); if vj = nil then begin g:= new_vertex(j,g); vj:= g end; eij:= find_edge(j,vi^.incidence); if eij = nil then begin new(eij); eij^.from:= vi; eij^.toward:= vj; eij^.len:= len; eij^.next:= vi^.incidence; vi^.incidence:= eij end end; procedure enqueue(v: vertices; var q,h: ptr_edges); var e: edges; pe: ptr_edges; begin e:= v^.incidence; while e<>nil do begin new(pe); pe^.e:= e; pe^.next:= nil; if q = nil then h:= pe else q^.next:= pe; q:= pe; e:= e^.next end end; procedure print_vertices(g: vertices); var v: vertices; begin v:= g; while v<>nil do begin writeln(source_id,' -> ',v^.id,' : ',v^.dist); v:= v^.next end end; procedure dispose_edges(n: edges); var e,e_next: edges; begin e:= n; while e<>nil do begin e_next:= e^.next; dispose(e); e:= e_next end end; procedure dispose_vertices(g: vertices); var v,v_next: vertices; begin v:= g; while v<>nil do begin v_next:= v^.next; dispose_edges(v^.incidence); dispose(v); v:= v_next; end; end; begin assign(f,'in'); reset(f); readln(f,source_id); {в первой строке записана начальная вершина} g:= nil; while not eof(f) do begin readln(f,i,j,len); {граф задан списком ребер: от, до, длина} new_edge(i,j,len,g); new_edge(j,i,len,g); end; source:= find_vertex(source_id,g); source^.dist:= 0; queue:= nil; head:= nil; enqueue(source,queue,head); while head<>nil do begin with head^.e^ do if from^.dist+len < toward^.dist then begin toward^.dist:= from^.dist + len; enqueue(toward,queue,head); end; next_head:= head ^.next; dispose(head); head:= next_head end; print_vertices(g); dispose_vertices(g); end.
(1) подсчет количества компонент связности
(2) нахождение минимального каркаса в связном графе
(3) нахождение кратчайшего пути от выделенной вершины до всех остальных вершин связного неориентированного графа
Какое из приведенных ниже подтверждений прерывания работы программы лучше всего подходит для организации дружественного интерфейса?
(1) завершить работу? Y/N
(2) вы уверены, что хотите завершить работу программы? Все не сохраненные данные будут потеряны. Нажмите Y или Д, чтобы все-таки завершить или любую другую клавишу, чтобы продолжить работу
(3) хочешь выйти? Да или нет?
(4) до новых встреч!
Процесс выполнения программы на специально подобранных входных данных и сравнения полученных результатов с эталонными называется
(1) отладкой
(2) тестированием
(3) оптимизацией
Какие из вариантов расстановки скобок в выражении a * b + not c > a mod c * a shl b xor a не меняют порядок выполнения операций?
(1) a*b+(not c)>(((a mod c)*a)shl b)xor a
(2) a*b+(not c)>(a mod((c*a)shl b))xor a
(3) ((((a*(b+not c)>a)mod c)*a)shl b)xor a
(4) (a*b+not c)>(a mod c*a shl b)xor a
(5) (a*b)+(not c)>(a mod c)*(a shl b)xor a
(6) (a*b)+(not c)>(a mod (c*(a shl(b xor a))))
Какую операцию реализует приведенный ниже программный отрывок? for i:= 1 to N do set_res[i]:= set1[i] and set2[i]
(1) объединение двух множеств, заданных битовым массивом
(2) пересечение двух множеств, заданных битовым массивом
(3) разность двух множеств, заданных битовым массивом
В текстовом файле f указатель находится перед концевым пробелом в предпоследней строке, а последняя строка - пустая. Какие из перечисленных ниже функций вернут FALSE в этой ситуации?
(1) eof(f)
(2) eoln(f)
(3) seekeof(f)
(4) seekeoln(f)
Чтобы иметь возможность одновременно считывать информацию из текстового файла и записывать ее туда, файл нужно открыть при помощи команды
(1) append(f)
(2) close(f)
(3) reset(f)
(4) rewrite(f)
Какое значение получит переменная a после выполнения такой программы? var a: byte; proc p1(var t: byte); begin t:= t*2 end; proc p2(var k: byte); var a: byte; begin a:= 1; k:= 5; p1(k); end; begin a:= 10; p2(a); end.
(1) 1
(2) 2
(3) 5
(4) 10
(5) 20
Какие из приведенных ниже подпрограмм вычисляют k-e число Фибоначчи, определяемое следующим образом: fib1 = 1; fib2 = 1; fibn = fibn-1+ fibn-2, для всех n>2.
(1) function f(n,k:longint):longint; var ff: longint; begin if (k=0)or(k=n) then f:= 1 else if k>n then f:= 0 else begin ff:= f(n-1,k-1)+f(n-1,k); f:= ff end; end;
(2) function f(c:longint):longint; var a: array[1..1000]of longint; i: integer; begin a[1]:= 1; a[2]:= 1; for i:= 3 to c do a[i]:= a[i-1]+a[i-2]; f:= a[c] end;
(3) function f(c:longint):longint; begin if c =1 then f:= 1 else f:= f(c-1)+f(c-2) end;
(4) function f(n,k:longint):longint; var a: array[0..nnn]of longint; i,j,t,tt: longint; begin if k>n then f:= 0 else if (k=n)or(k=0) then f:= 1 else begin a[0]:= 1; a[1]:= 1; for i:= 2 to k do a[i]:= 0; for i:= 2 to n do begin t:= 1; for j:= 1 to i-1 do begin tt:= a[j]+t; t:= a[j]; a[j]:= tt; end; a[i]:= 1; end end; f:= a[k] end;
К каким типам относится описанная ниже константа? const a = 100000000000
(1) именованная константа
(2) неименованная константа
(3) типизированная константа
(4) нетипизированная константа
Сколько нетерминальных вершин содержится в полном бинарном дереве высоты 3?
(1) 6
(2) 8
(3) 9
Какие циклы будут работать "бесконечно"?
(1) while true do k:=k-10
(2) while false do k:=k-10
(3) repeat k:=k-10 until true
(4) repeat k:=k-10 until false
(5) k:=0; repeat k:=k-10 until k<0; {k:byte}
(6) k:=0; repeat k:=k-10 until k<0; {k:longint}
(7) k:=100; while k>=0 do k:=k-10; {k:word}
(8) k:=100; while k>=0 do k:=k-10; {k:shortint}
(9) for i:=1 to 10*n do n:=n+1
Какая последовательность символов будет содержаться в файле f: file of char после выполнения следующего отрывка программы: rewrite(f); for c:= '0' to '9' do write(f,c); {c: char} seek(f,5); read(f,c); write(f,c); seek(f,3); truncate(f); seek(f,9); write(f,c);
(1) 0123456785
(2) 0123455789
(3) 0123455785
(4) 0123456789
Какое из объявлений открытого параметра-строки является правильным?
(1) procedure p(s: string)
(2) procedure p(var s: string)
(3) procedure p(const s: string)