Рубрики

Принцип языков программирования | Комплект 1

Следующие вопросы были заданы на экзамене GATE CS.

1. Наиболее подходящее соответствие для следующих пар

X: Indirect addressing                  1: Loops
Y: Immediate addressing                 2: Pointers
Z: Auto decrement addressing            3. Constants

есть (GATE CS 2000)
(а) Х-3, Y-2, Z-1
(б) X-1, Y-3, Z-2
(в) Х-2, Y-3, Z-1
(d) X-3 Y-1 Z-2

Ответ (с)

Ссылка:
http://en.wikipedia.org/wiki/Addressing_mode
http://www.cs.nmsu.edu/~pfeiffer/classes/273/notes/immdirext.html

2. Псевдоним в контексте языков программирования относится к (GATE CS 2000)
(а) несколько переменных, имеющих одну и ту же ячейку памяти
(б) несколько переменных, имеющих одинаковое значение
(c) несколько переменных, имеющих одинаковый идентификатор
(d) многократное использование одной и той же переменной

Ответ (а)
Псевдоним описывает ситуацию, в которой местоположение данных в памяти может быть доступно через различные символические имена в программе.

Ссылка
http://en.wikipedia.org/wiki/Aliasing_%28computing%29


3. Что выводят операторы print в программе P1, предполагающие передачу по ссылочному параметру? (GATE CS 2001)

Program Pl() 

{

  х = 10;

  у = 3;

  func1 (y, x, x);

  печать х;

  печать у;

}
func1 (x, y, z) 
{

   у = у + 4;

   z = x + y + z;

} 

а) 10, 3
б) 31,3
в) 27, 7
г) ничего из вышеперечисленного

Ответ (б)
Обратите внимание на порядок, в котором передаются параметры. Внутри func1 () x на самом деле ссылается на y из main (); и y и z будут ссылаться на x из main (). Утверждение y = y + 4; приведет к 14, а выражение z = x + y + z сделает z = 3 + 14 + 14 = 31 (потому что y и z указывают на одну и ту же переменную x в main). Поскольку z ссылается на x main (), main напечатает 31.


4. Рассмотрим следующую программу

Program P2 

    var n: int: 

     procedure W(var x: int) 

     begin 

         x=x+1

         print x;   

     end 

  

     procedure

     begin  

         var n: int; 

         n=3

         W(n);  

     end 

begin // beginP2

  n=10

  D; 

end 

Если язык имеет динамическую область видимости и параметры передаются по ссылке, что будет напечатано программой? (GATE CS 2001)
а) 10
б) 11
в) 3
г) ничего из вышеперечисленного

Ответ (г)
Программа напечатает 4.

5. Результаты, возвращаемые функциями в соответствии с соглашениями о передаче значения-результата и ссылочных параметров (GATE CS 2002)

а) не отличаются
б) Отличаются наличием петель
в) Отличаются во всех случаях
г) Может отличаться наличием исключений

Ответ (г)
При оценке по ссылке функция получает неявную ссылку на аргумент, а не копию его значения. Как правило, это означает, что функция может изменить аргумент — то, что увидит ее вызывающая сторона. Обратите внимание, что C не поддерживает вызов по ссылке, но вызов по ссылке может быть реализован с помощью указателей.

Результат вызова по значению использует комбинацию вызова по значению и вызова по ссылке. Результат вызова по значению работает путем создания локальных версий переданных параметров. Однако значения в этих локальных версиях копируются обратно в исходные аргументы после окончания процедуры.

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

  int addTwo(a, b)
  {
     a = a + b;
     b = a + b;
     return b;
  }

Если используется call-by-value-result, то вызов addTwo (x, x) вернет 3x (объяснение см. Ниже).

     a = a + b; will result in a = x + x
     b = a + b; will result in  b = 2x + x 

Если используется вызов по ссылке, то addTwo (x, x) вернет 4x (объяснение см. Ниже).

     a = a + b; will result in a = x + x
     b = a + b; will result in  b = 2x + 2x 

Ссылки:
http://c2.com/cgi/wiki?CallByValueResult
http://en.wikipedia.org/wiki/Evaluation_strategy

Пожалуйста, смотрите GATE Corner для всех документов / решений / объяснений предыдущего года, учебных планов, важных дат, заметок и т. Д.

Пожалуйста, пишите комментарии, если вы найдете какие-либо из приведенных выше ответов / объяснений неверными или хотите поделиться дополнительной информацией по темам, обсужденным выше.

Рекомендуемые посты:

Принцип языков программирования | Комплект 1

0.00 (0%) 0 votes