Рубрики

ВОРОТА | Gate IT 2007 | Вопрос 34

Рассмотрим программу ниже на гипотетическом языке программирования, который допускает глобальные переменные и выбор статической или динамической области видимости.

int i ;

program main ()
{

    i = 10;

    call f();

}

  
procedure f()
{   

    int i = 20;

    call g ();

}
procedure g ()
{   

    print i;

}

Пусть x будет значением, напечатанным при статическом определении объема, а y будет значением, напечатанным при динамическом определении объема. Тогда х и у
(А) х = 10, у = 10
(В) х = 20, у = 10
(С) х = 10, у = 20
(D) х = 20, у = 20

Ответ: (с)
Пояснение: Статическая область видимости:

int i ;

program main ()
{

    i = 10;

    call f();

}

  
procedure f()
{   

    int i = 20;

    call g ();

}
procedure g ()
{   

    print i; // так как i = 20 находится в области видимости только внутри f (), то это будет указывать на глобальный i

}

  So, 10 is printed

Dynamic scoping:

int i ;

program main ()
{

    i = 10;

    call f();

}

  
procedure f()
{   

    int i = 20; // здесь глобальная область видоизменения

    call g ();

}
procedure g ()
{   

    print i; // глобальное значение изменилось так, я напечатал

Тест на этот вопрос
Пожалуйста, прокомментируйте ниже, если вы найдете что-то не так в вышеуказанном посте

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

ВОРОТА | Gate IT 2007 | Вопрос 34

0.00 (0%) 0 votes