Главная /
Программирование на языке Pascal
Программирование на языке Pascal - ответы на тесты Интуит
Учебный курс, направленный на практическое изучение языка Pascal и основ алгоритмики.
Список вопросов:
- # Свойство алгоритма, позволяющее в каждый момент его исполнения однозначно определить оператор, который будет выполнен следующим, называется:
- # Свойство алгоритма, обязывающее его в той или иной форме сообщать итоги своей работы, называется:
- # Свойство алгоритма, позволяющее ему решать множество однотипных задач, различающихся лишь входными данными, называется:
- # Какие последовательности символов являются правильными идентификаторами (с точки зрения компилятора языка Pascal)?
- # Какие последовательности символов являются правильными идентификаторами (с точки зрения компилятора языка Pascal)?
- # Какие последовательности символов являются правильными идентификаторами (с точки зрения компилятора языка Pascal)?
- # Идентификатор, описанный после ключевого слова label, является именем:
- # Идентификатор, описанный после ключевого слова var, является именем:
- # Идентификатор, описанный после ключевого слова const, является именем:
- # Строка, начинающаяся символами {$, является:
- # Строка, начинающаяся символами {*, является:
- # Строка, начинающаяся символoм {, может являться:
- # К каким типам относится описанная ниже константа? const a: integer = 1000
- # К каким типам относится описанная ниже константа? const a: real = 10.00
- # К каким типам относится описанная ниже константа? const a = 100000000000
- # Какое значение будет храниться в переменной а:shortint после выполнения следующего программного отрывка?{b: char; p: ^shortint} b:= ‘Б’; p:= addr(b); a:= p^;
- # Какое значение будет храниться в переменной а:integer после выполнения следующего программного отрывка?{b: string; p: ^integer} b:= ‘БББ’; p:= addr(b[1]); a:= p^;
- # Какое значение будет храниться в переменной а:integer после выполнения следующего программного отрывка?{b: string; p: ^word} b:= ‘ААББВВГГДД’; p:= addr(b[7]); a:= p^;
- # Для работы с типизированными указателями предназначены процедуры
- # Для выделения памяти в процессе работы программы предназначены процедуры
- # Для освобождения памяти в процессе работы программы предназначены процедуры
- # Двусвязный линейный список задан указателем на голову 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;
- # Какой оператор нужно вставить вместо [???], чтобы приведенный ниже отрывок программы правильно менял местами третий и четвертый элементы двусвязного линейного списка, заданного указателем на голову 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;
- # Какой оператор нужно вставить вместо [???], чтобы приведенный ниже отрывок программы правильно создавал двусвязный линейный список, получая значения из непустого текстового файла 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;
- # На сколько компонент связности распадается граф, содержащий семь вершин, если он задан таким списком ребер?a b a c b c c h f d
- # На сколько компонент связности распадается граф, содержащий семь вершин, если он задан таким списком ребер?a g a d b c c h f b f c
- # Какие вершины орграфа, заданного этим списком смежности, принадлежат ко второму уровню относительно вершины a?a: b c b: c c: g d: c g f: d h: b
- # Какие вершины орграфа, заданного этим списком смежности, принадлежат к третьему уровню относительно вершины b?a: d b: a c f c: d d: h g f: d
- # Какие вершины орграфа, заданного этим списком смежности, принадлежат ко второму уровню относительно вершины a?a: d f g b: d d: c f g: h h: f
- # Какие вершины взвешенного графа, заданного этой матрицей смежности, принадлежат к 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
- # Какие вершины взвешенного графа, заданного этой матрицей смежности, принадлежат к 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
- # Какие вершины взвешенного графа, заданного этой матрицей смежности, принадлежат к 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
- # В дереве 15 вершин. Сколько в нем ребер?
- # В несвязном графе, каждая компонента связности которого является деревом, содержится 15 вершин и 10 ребер. Сколько в нем компонент связности?
- # В дереве 10 ребер. Сколько в нем вершин?
- # Сколько терминальных вершин содержится в полном бинарном дереве высоты 3?
- # Сколько листьев содержится в полном бинарном дереве высоты 2?
- # Сколько нетерминальных вершин содержится в полном бинарном дереве высоты 3?
- # Какую высоту будет иметь дерево синтаксического анализа для выраженияx*(a+b*c–g)+((m-n)*t*d/(s-y))*z
- # Какую высоту будет иметь дерево синтаксического анализа для выражения(a-b)*(c+(x-y)/d)+(k*m-(n/s+t))
- # Какую высоту будет иметь дерево синтаксического анализа для выражения(a+b)*(c*d-k)-((m+n)/s*(t+y)*(z-x))
- # Постройте дерево бинарного поиска (дерево сортировки) для входной последовательности чисел 7 2 5 1 8 3 6 4 9 13 11 10 12, а затем распечатайте вершины этого дерева в порядке обратного обхода. Какая последовательность чисел получится
- # Постройте дерево бинарного поиска (дерево сортировки) для входной последовательности чисел 7 2 5 1 8 3 6 4 9 13 11 10 12, а затем распечатайте вершины этого дерева в порядке обхода в ширину. Какая последовательность чисел получится?
- # Постройте дерево бинарного поиска (дерево сортировки) для входной последовательности чисел 7 2 5 1 8 3 6 4 9 13 11 10 12, а затем распечатайте вершины этого дерева в порядке прямого обхода. Какая последовательность чисел получится?
- # В какой последовательности распечатает вершины графа, заданного этим списком смежности, процедура обхода в ширину? (Обход начинается с вершины a, производится в алфавитном порядке.)a: b d b: d f f: c d g d: h g h: g
- # В какой последовательности распечатает вершины графа, заданного этим списком смежности, процедура прямого обхода? (Обход начинается с вершины a, производится в алфавитном порядке.)a: b d b: d f f: c d g d: h g h: g
- # В какой последовательности распечатает вершины графа, заданного этим списком смежности, процедура обратного обхода? (Обход начинается с вершины a, производится в алфавитном порядке.)a: b d b: d f f: c d g d: h g h: g
- # Какой алгоритм реализует приведенная ниже программа?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.
- # Какой алгоритм реализует приведенная ниже программа?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.
- # Какой алгоритм реализует приведенная ниже программа?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.
- # Какой раздел модуля содержит операторы, которые будут выполнены перед стартом основной программы?
- # Какой раздел модуля содержит объявления всех констант, переменных, типов данных и подпрограмм, которыми могут пользоваться остальные модули программы?
- # Какой раздел модуля содержит описания тех подпрограмм, которые были объявлены как доступные другим модулям?
- # Какие переменные может объявить секция внешних связей модуля А?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?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?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;
- # Для того, чтобы скомпилировать все без исключения модули программы, нужно воспользоваться командой:
- # Для того, чтобы скомпилировать только текст одного модуля, нужно воспользоваться командой:
- # Для того, чтобы скомпилировать только те модули программы, которые оказались затронуты внесенными изменениями, нужно воспользоваться командой:
- # Какие процедуры и функции стандартного модуля Crt отвечают за очистку строк и областей ввода/вывода?
- # Какие процедуры и функции стандартного модуля Crt отвечают за цвета и звуки?
- # Какие процедуры и функции стандартного модуля Crt отвечают за позиционирование курсора в активной области ввода/вывода?
- # Какой цвет текста получится на экране, если использоватьlightmagenta * blue - brown
- # Какой цвет текста получится на экране, если использоватьbrown * lightcyan + blue
- # Какой цвет текста получится на экране, если использоватьlightgreen * brown + magenta
- # Заставка – это:
- # Меню – это:
- # Приглашение – это:
- # Какое из приведенных ниже сообщений о неправильном вводе лучше всего подходит для организации дружественного интерфейса?
- # Какое из приведенных ниже приглашений к вводу лучше всего подходит для организации дружественного интерфейса?
- # Какое из приведенных ниже подтверждений прерывания работы программы лучше всего подходит для организации дружественного интерфейса?
- # Какие имена переменных являются наиболее предпочтительными с точки зрения надежного программирования?
- # Какие имена переменных являются наиболее предпочтительными с точки зрения надежного программирования?
- # Какие имена переменных являются наиболее предпочтительными с точки зрения надежного программирования?
- # Какие из приведенных ниже отрывков программ хорошо структурированы?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) 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;
- # Полный тестовый набор для переменной целого типа, значение которой по условию решаемой задачи лежит в диапазоне [0..100], может включать тесты со следующими значениями этой переменной:
- # Полный тестовый набор для переменной вещественного типа, значение которой по условиям решаемой задачи лежит в диапазоне [0..100], может включать тесты со следующими значениями этой переменной:
- # Процесс поиска и исправления синтаксических и логических ошибок в программе называется
- # Процесс изменения текста программы с целью повышения ее эффективности называется
- # Процесс выполнения программы на специально подобранных входных данных и сравнения полученных результатов с эталонными называется
- # Тип данных real является
- # Тип данных integer является
- # Тип данных boolean является
- # Типы данных byte и shortint являются:
- # Типы данных double и real являются:
- # Типы данных real и integer являются:
- # Какой тип будет иметь результат выражения a+b при a:word, b:integer?
- # Какой тип будет иметь результат выражения a+b при a:byte, b:shortint?
- # Какой тип будет иметь результат выражения a+b при a:shortint, b:word?
- # Какие из вариантов расстановки скобок в выражении a and b shr c mod a + c * a shl - b div a не меняют порядок выполнения операций?
- # Какой из вариантов расстановки скобок в выражении a + b or c shl a * c - a mod b > a не меняет порядок выполнения операций?
- # Какие из вариантов расстановки скобок в выражении a * b + not c > a mod c * a shl b xor a не меняют порядок выполнения операций?
- # Какие значения будет принимать переменная z, в зависимости от значений переменной а? z:= -10; if a>0 then if a>100 then if a>200 then z:=0 else z:= 20 else z:=100;
- # Какие значения будет принимать переменная z, в зависимости от значений переменной а? z:= 0; if a>10 then if a>100 then if a>1000 then z:= 1 else z:= -1 else z:= 10;
- # Какие значения будет принимать переменная z, в зависимости от значений переменной а? z:= -1; if a<100 then if a<10 then if a<1 then z:=0 else z:= 10 else z:= 100;
- # К каким типам данных может относиться переменная-переключатель, служащая для выбора одной из ветвей оператора case?
- # К каким типам данных может относиться переменная-переключатель, служащая для выбора одной из ветвей оператора case?
- # К каким типам данных может относиться переменная-переключатель, служащая для выбора одной из ветвей оператора case?
- # Какие описания массивов являются правильными с точки зрения компилятора языка Pascal?
- # Какие описания массивов являются правильными с точки зрения компилятора языка Pascal?
- # Какие описания массивов являются правильными с точки зрения компилятора языка Pascal?
- # Сколько операций сложения будет произведено при выполнении этого цикла, если k = 10? for i:= k to k+10 do a:= a+2
- # Сколько операций умножения будет произведено при выполнении этого цикла, если k = 10? for i:= 2*k to 5*k do a:= a*2
- # Какие циклы будут работать "бесконечно"?
- # Какие циклы будут работать "бесконечно"?
- # Какие циклы будут работать "бесконечно"?
- # Метод сортировки бинарными вставками является:
- # Метод сортировки простым выбором является:
- # Метод сортировки простыми вставками с барьером является:
- # Метод быстрой сортировки является:
- # Метод сортировки Шелла является:
- # Пирамидальный метод сортировки является:
- # Какой метод сортировки реализует этот фрагмент программы? 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;
- # Какой метод сортировки реализует этот фрагмент программы? 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;
- # Какой метод сортировки реализует этот фрагмент программы? 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;
- # Какой стандартной функции или процедуре обработки строк эквивалентен следующий программный отрывок? {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];
- # Какой стандартной функции или процедуре обработки строк эквивалентен следующий программный отрывок? {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];
- # Какой стандартной функции или процедуре обработки строк эквивалентен следующий программный отрывок? {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];
- # Какие из приведенных ниже последовательностей строк и символов упорядочены по убыванию?
- # Какие из приведенных ниже последовательностей строк и символов упорядочены по возрастанию?
- # Какие из приведенных ниже описаний констант являются правильными с точки зрения Pascal-компилятора?
- # Какие из приведенных ниже описаний констант являются правильными с точки зрения Pascal-компилятора?
- # Какие из приведенных ниже описаний констант являются правильными с точки зрения Pascal-компилятора?
- # Какую операцию реализует приведенный ниже программный отрывок? for i:= 1 to N do set_res[i]:= (set1[i] or set2[i])and not set2[i]
- # Какую операцию реализует приведенный ниже программный отрывок? for i:= 1 to N do set_res[i]:= set1[i] or set2[i]
- # Какую операцию реализует приведенный ниже программный отрывок? for i:= 1 to N do set_res[i]:= set1[i] and set2[i]
- # Чтобы иметь возможность считывать информацию из текстового файла, его нужно открыть при помощи команды
- # Чтобы иметь возможность записывать информацию в текстовый файл, его нужно открыть при помощи команд
- # 1. Чтобы иметь возможность добавлять информацию в конец текстового файла, его нужно открыть при помощи команды
- # Какие значения будут храниться в переменных s и k после считывания из текстового файла f строки 'Иванов Иван Иванович 1945' при помощи команды readln(f,s,k); {s: string[22], k:byte =0}
- # Какие значения будут храниться в переменных s и k после считывания из текстового файла f строки 'Петров Петр Петрович 1956' при помощи команды readln(f,s,k); {s: string[22], k:shortint =0}
- # Какие значения будут храниться в переменных s и k после считывания из текстового файла f строки 'Олегов Олег Олегович 1962' при помощи команды readln(f,s,k); {s: string[22], k:byte =0}
- # Переменные каких типов можно выводить в текстовый файл при помощи команд write() или writeln()
- # Переменные каких типов можно выводить в текстовый файл при помощи команд write() или writeln()?
- # Переменные каких типов можно выводить в текстовый файл при помощи команд write() или writeln()
- # В текстовом файле f указатель находится в самом конце предпоследней строки, а последняя строка - пустая. Какие из перечисленных ниже функций вернут TRUE в этой ситуации?
- # В текстовом файле f указатель находится в начале последней строки, состоящей только из пробельных символов. Какие из перечисленных ниже функций вернут TRUE в этой ситуации?
- # В текстовом файле f указатель находится перед концевым пробелом в предпоследней строке, а последняя строка - пустая. Какие из перечисленных ниже функций вернут FALSE в этой ситуации?
- # Сколько полей содержится в записи 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;
- # Сколько полей содержится в записи 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;
- # Сколько полей содержится в записи 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;
- # Какое значение будет храниться в поле 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.
- # Какое значение будет храниться в поле 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.
- # Какое значение будет храниться в поле 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.
- # С текстовыми файлами могут работать файловые переменные, описанные следующим образом:
- # С типизированными файлами могут работать файловые переменные, описанные следующим образом:
- # С бинарными файлами могут работать файловые переменные, описанные следующим образом:
- # Чтобы иметь возможность считывать информацию из бинарного файла, его нужно открыть при помощи команды
- # Чтобы иметь возможность записывать информацию в бинарный файл, его нужно открыть при помощи команды
- # Чтобы иметь возможность одновременно считывать информацию из текстового файла и записывать ее туда, файл нужно открыть при помощи команды
- # Какая последовательность символов будет содержаться в файле 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);
- # Какая последовательность символов будет содержаться в файле 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);
- # Какая последовательность символов будет содержаться в файле 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);
- # Какие вызовы процедуры procedure p(var a: byte; const b: char; x: real); являются неправильными с точки зрения компилятора языка Pascal?
- # Какие вызовы функции function f(const a:byte; var s:real; t:boolean):real; являются неправильными с точки зрения компилятора языка Pascal?
- # Какие вызовы процедуры procedure p(x:real; const c: byte; var d: integer); являются неправильными с точки зрения компилятора языка Pascal?
- # После завершения работы подпрограммы значение переданной в нее переменной-аргумента не может измениться, если соответствующий параметр был:
- # Какие переменные будут существовать во время выполнения подпрограммы 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;
- # Какие переменные будут существовать во время выполнения подпрограммы 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;
- # Какие переменные будут существовать во время выполнения подпрограммы 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;
- # После завершения работы подпрограммы значение переданной в нее переменной-аргумента может измениться, если соответствующий параметр был:
- # В качестве аргумента при вызове подпрограммы возможно использовать арифметическое выражение, если соответствующий параметр был
- # Какое значение получит переменная 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.
- # Какое значение получит переменная 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.
- # Какое значение получит переменная 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.
- # Какое из объявлений открытого параметра-массива является правильным?
- # Какое из объявлений нетипизированного параметра является правильным?
- # Какое из объявлений открытого параметра-строки является правильным?
- # Динамическая структура данных, у которой в каждый момент времени доступны первый и последний элементы, причем добавлять новые элементы можно только в конец структуры, а удалять - только из ее начала, называется:
- # Динамическая структура данных, у которой в каждый момент времени доступны первый и последний элементы, причем и добавлять, и удалять элементы можно как на конце структуры, так и в ее начале, называется:
- # Динамическая структура данных, у которой в каждый момент времени доступен только последний элемент, причем добавлять и удалять элементы можно только на конце структуры, называется:
- # Описанные ниже подпрограммы 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;
- # Описанные ниже подпрограммы 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;
- # Описанные ниже подпрограммы 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;
- # Имеется набор натуральных чисел, быть может, с повторениями. Необходимо разделить его на два поднабора так, чтобы разность сумм весов была минимальной. Эта задача решается рекурсивным методом полного перебора с отсечением (см. ниже). На вход были поданы числа 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;
- # Имеется набор натуральных чисел, быть может, с повторениями. Необходимо разделить его на два поднабора так, чтобы разность сумм весов была минимальной. Эта задача решается рекурсивным методом полного перебора с отсечением (см. ниже). На вход были поданы числа 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;
- # Имеется набор натуральных чисел, быть может, с повторениями. Необходимо разделить его на два поднабора так, чтобы разность сумм весов была минимальной. Эта задача решается рекурсивным методом полного перебора с отсечением (см. ниже). На вход были поданы числа 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;
- # Какие из приведенных ниже подпрограмм вычисляют функцию двойного факториала (n!!), определяемую следующим образом: 0!! =1 1!! = 1 n!! = n*(n-2)!!, для любого натурального n.
- # Какие из приведенных ниже подпрограмм вычисляют биномиальный коэффициент (Сnk = n!/k!(n-k)!) определяемый следующим образом: Сnk = 0, если k > n; Сnk = 1, если k = 0 или k = n; Сnk = Сn-1k + Сn-1k-1 в остальных случаях.
- # Какие из приведенных ниже подпрограмм вычисляют k-e число Фибоначчи, определяемое следующим образом: fib1 = 1; fib2 = 1; fibn = fibn-1+ fibn-2, для всех n>2.