2011-gre-cs-practice-book.pdf/Q40 — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
Строка 3: Строка 3:
  
 
Рассмотрим следующий псевдокод:
 
Рассмотрим следующий псевдокод:
<code-pascal>
+
 
 +
<code-с>
 
int i
 
int i
 
main ()
 
main ()
Строка 22: Строка 23:
 
     S ()
 
     S ()
 
}  
 
}  
</code-pascal>
+
</code-с>
  
 
Каков будет вывод программы, если псевдокод использует либо статическую (лексическую) область видимости, либо динамическую область видимости?(Область видимости [https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C_%D0%B2%D0%B8%D0%B4%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8#:~:text=%D0%9E%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C%20%D0%B2%D0%B8%D0%B4%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8%20(%D0%B0%D0%BD%D0%B3%D0%BB.,%D0%BF%D0%BE%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%BE%D0%BC%20%D1%81%D0%B5%D0%B1%D1%8F%20%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%B8%D1%82%D1%8C%D1%81%D1%8F%20%D0%BA%20%D0%BD%D0%B5%D0%B9.] )
 
Каков будет вывод программы, если псевдокод использует либо статическую (лексическую) область видимости, либо динамическую область видимости?(Область видимости [https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C_%D0%B2%D0%B8%D0%B4%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8#:~:text=%D0%9E%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C%20%D0%B2%D0%B8%D0%B4%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8%20(%D0%B0%D0%BD%D0%B3%D0%BB.,%D0%BF%D0%BE%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%BE%D0%BC%20%D1%81%D0%B5%D0%B1%D1%8F%20%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%B8%D1%82%D1%8C%D1%81%D1%8F%20%D0%BA%20%D0%BD%D0%B5%D0%B9.] )

Версия 21:14, 19 декабря 2024

Задача зарезервирована: Urmat A 15:01, 19 декабря 2024 (UTC)

Вопрос: Q40-08c765

Рассмотрим следующий псевдокод:

<code-с> int i main () {

   i = 3
   S ()
   R ()

} void S () {

   print i // prints the value of i on the current line of output
   print " " // prints a blank space on the current line of output

} void R () {

   int i
   i = 2
   S ()

} </code-с>

Каков будет вывод программы, если псевдокод использует либо статическую (лексическую) область видимости, либо динамическую область видимости?(Область видимости [1] )

Ответы

Статическая область видимости - Динамическая область видимости

  1. 3 2 3 2
  2. 3 3 2 2
  3. 3 3 2 3
  4. Правильный ответ: 3 3 3 2
  5. 3 3 3 3

Объяснение

Исходники — вопрос 40 на 34 странице книги «2011-gre-cs-practice-book.pdf»

  • В статической области определения S() будет искать i в своей области видимости. Поскольку S() не имеет своей локальной переменной i, она будет использовать глобальную i, которая равна 3. Поэтому будет 3 3.
  • В динамической области определения, когда S() вызывается из R(), она будет искать i в контексте последнего вызова функции. Поскольку R() имеет локальную переменную i, равную 2, S() увидит это значение. Поэтому будет 3 2.Check-me-animated.gif Решено: Urmat A 17:27, 19 декабря 2024 (UTC)