игра брюс 2048
Главная / Программирование / Программирование на языке Pascal / Тест 10

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

Упражнение 1:
Номер 1
Какое значение будет храниться в переменной а:shortint после выполнения следующего программного отрывка?{b: char; p: ^shortint}
b:= ‘Б’;
p:= addr(b);
a:= p^;

Ответ:

 (1) 'Б' 

 (2) 'б' 

 (3) 129 

 (4) -127 


Номер 2
Какое значение будет храниться в переменной а:integer после выполнения следующего программного отрывка?{b: string; p: ^integer}
b:= ‘БББ’;
p:= addr(b[1]);
a:= p^;

Ответ:

 (1) ‘ББ’ 

 (2) ‘бб’ 

 (3) –32383 

 (4) 33153 


Номер 3
Какое значение будет храниться в переменной а:integer после выполнения следующего программного отрывка?{b: string; p: ^word}
b:= ‘ААББВВГГДД’;
p:= addr(b[7]);
a:= p^;

Ответ:

 (1) ‘ГГ’ 

 (2) ‘гг’ 

 (3) –31869 

 (4) 33667 


Упражнение 2:
Номер 1
Для работы с типизированными указателями предназначены процедуры

Ответ:

 (1) addr() 

 (2) dispose() 

 (3) freemem() 

 (4) getmem() 

 (5) new() 


Номер 2
Для выделения памяти в процессе работы программы предназначены процедуры

Ответ:

 (1) addr() 

 (2) dispose() 

 (3) freemem() 

 (4) getmem() 

 (5) new() 


Номер 3
Для освобождения памяти в процессе работы программы предназначены процедуры

Ответ:

 (1) addr() 

 (2) dispose() 

 (3) freemem() 

 (4) getmem() 

 (5) new() 


Упражнение 3:
Номер 1
Двусвязный линейный список задан указателем на голову 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 


Номер 2
Какой оператор нужно вставить вместо [???], чтобы приведенный ниже отрывок программы правильно менял местами третий и четвертый элементы двусвязного линейного списка, заданного указателем на голову 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 


Номер 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 




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