Главная /
Программирование /
Программирование на языке Pascal
Программирование на языке Pascal - ответы на тесты Интуит
Правильные ответы выделены зелёным цветом.
Все ответы: Учебный курс, направленный на практическое изучение языка Pascal и основ алгоритмики.
Все ответы: Учебный курс, направленный на практическое изучение языка Pascal и основ алгоритмики.
Свойство алгоритма, позволяющее в каждый момент его исполнения однозначно определить оператор, который будет выполнен следующим, называется:
(1) массовостью
(2) результативностью
(3) определенностью
Какое значение будет храниться в переменной {b: char; p: ^shortint}
b:= ‘Б’;
p:= addr(b);
a:= p^;
а:shortint
после выполнения следующего программного отрывка?
(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:= -10;
if a>0
then if a>100
then if a>200
then z:=0
else z:= 20
else z:=100;
z
, в зависимости от значений переменной а
?
(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)
Сколько полей содержится в записи 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;
man
?
(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: b c
b: c
c: g
d: c g
f: d
h: b
a
?
(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'
Какие значения будут храниться в переменных readln(f,s,k); {s: string[22], k:byte =0}
s
и k
после считывания из текстового файла f
строки 'Иванов Иван Иванович 1945' при помощи команды
(1) s = 'Иванов Иван Иванович', k = 1945
(2) s = 'Иванов Иван Иванович ', k = 1945
(3) s = 'Иванов Иван Иванович 1', k = 945
(4) s = 'Иванов Иван Иванович 1', k = 177
(5) s = 'Иванов Иван Иванович 1945', k = 0
Какое значение будет храниться в поле 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.
a
записи r1
после выполнения следующего блока?
(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-периферии относительно вершины
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
c
?
(1) a
(2) b
(3) c
(4) d
(5) f
В какой последовательности распечатает вершины графа, заданного этим списком смежности, процедура обхода в ширину? (Обход начинается с вершины a: b d
b: d f
f: c d g
d: h g
h: g
a
, производится в алфавитном порядке.)
(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
Какие переменные будут существовать во время выполнения подпрограммы 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;
p2
?
(1) prog.a
(2) p1.a
(3) p2.a
(4) f.a
Имеется набор натуральных чисел, быть может, с повторениями. Необходимо разделить его на два поднабора так, чтобы разность сумм весов была минимальной. Эта задача решается рекурсивным методом полного перебора с отсечением (см. ниже). На вход были поданы числа {массив а хранит веса всех предметов, в порядке их ввода,
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;
18 32 5 5 6 2 78 4 56 5 2
. При какой глубине стека контекстов произойдет завершение работы программы (обращение к завершающей процедуре out()
)?
(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) определенностью
Какое значение будет храниться в переменной {b: string; p: ^integer}
b:= ‘БББ’;
p:= addr(b[1]);
a:= p^;
а:integer
после выполнения следующего программного отрывка?
(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:= 0;
if a>10
then if a>100
then if a>1000
then z:= 1
else z:= -1
else z:= 10;
z
, в зависимости от значений переменной а
?
(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)
Сколько полей содержится в записи 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;
person
?
(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()
Какие вершины орграфа, заданного этим списком смежности, принадлежат к третьему уровню относительно вершины a: d
b: a c f
c: d
d: h g
f: d
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;
B
?
(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) 'Россия', 'родина', 'слонов'
Какие значения будут храниться в переменных readln(f,s,k); {s: string[22], k:shortint =0}
s
и k
после считывания из текстового файла f
строки 'Петров Петр Петрович 1956' при помощи команды
(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
Какие переменные будут существовать во время выполнения подпрограммы 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;
f
?
(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 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
a
?
(1) a
(2) b
(3) c
(4) d
(5) f
В какой последовательности распечатает вершины графа, заданного этим списком смежности, процедура прямого обхода? (Обход начинается с вершины a: b d
b: d f
f: c d g
d: h g
h: g
a
, производится в алфавитном порядке.)
(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
) Имеется набор натуральных чисел, быть может, с повторениями. Необходимо разделить его на два поднабора так, чтобы разность сумм весов была минимальной. Эта задача решается рекурсивным методом полного перебора с отсечением (см. ниже). На вход были поданы числа {массив а хранит веса всех предметов, в порядке их ввода,
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;
36 72 45 2 38 96 15 2 2
. При какой глубине стека контекстов произойдет завершение работы программы (обращение к завершающей процедуре out()
)?
(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
Сколько операций умножения будет произведено при выполнении этого цикла, если for i:= 2*k to 5*k do a:= a*2
k = 10
?
(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) определенность
Какое значение будет храниться в переменной {b: string; p: ^word}
b:= ‘ААББВВГГДД’;
p:= addr(b[7]);
a:= p^;
а:integer
после выполнения следующего программного отрывка?
(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:= -1;
if a<100
then if a<10
then if a<1
then z:=0
else z:= 10
else z:= 100;
z
, в зависимости от значений переменной а
?
(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)
Сколько полей содержится в записи 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;
employee
?
(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: d f g
b: d
d: c f
g: h
h: f
a
?
(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;
C
?
(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
Какие значения будут храниться в переменных readln(f,s,k); {s: string[22], k:byte =0}
s
и k
после считывания из текстового файла f
строки 'Олегов Олег Олегович 1962' при помощи команды
(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
Какие переменные будут существовать во время выполнения подпрограммы 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;
p1
?
(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) константы
Какой оператор нужно вставить вместо [???], чтобы приведенный ниже отрывок программы правильно создавал двусвязный линейный список, получая значения из непустого текстового файла {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;
f
?
(1) p^.next:= p
(2) p^.next^.prev:= p
(3) p^.prev:= p
(4) p^.prev ^.next:= p
Какие вершины взвешенного графа, заданного этой матрицей смежности, принадлежат к 10-периферии относительно вершины
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
a
?
(1) a
(2) b
(3) c
(4) d
(5) f
В какой последовательности распечатает вершины графа, заданного этим списком смежности, процедура обратного обхода? (Обход начинается с вершины a: b d
b: d f
f: c d g
d: h g
h: g
a
, производится в алфавитном порядке.)
(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
) Имеется набор натуральных чисел, быть может, с повторениями. Необходимо разделить его на два поднабора так, чтобы разность сумм весов была минимальной. Эта задача решается рекурсивным методом полного перебора с отсечением (см. ниже). На вход были поданы числа {массив а хранит веса всех предметов, в порядке их ввода,
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;
45 48 32 12 12 15 46 2 2 3 15
. При какой глубине стека контекстов произойдет завершение работы программы (обращение к завершающей процедуре out()
)?
(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)