Baixe o app para aproveitar ainda mais
Prévia do material em texto
23/11/2020 Teste: Atividade para avaliação - Semana 6 https://cursos.univesp.br/courses/3181/quizzes/13240/take 1/5 1 ptsPergunta 1 Posição de memória; Área de Código; Memória Estática; Memória dinâmica. Área de Dados; Em um programa fonte, uma variável declarada possui um identificador, um conteúdo e uma localização, que durante a execução a memória alocada será caracterizada como: respectivamente: 1 ptsPergunta 2 Alocação de valor e alocação de instrução; Alocação otimizada e alocação dinâmica; Alocação otimizada e não otimizada; Alocação dinâmica e alocação estática; Alocação estática e alocação dinâmica; Quanto a alocação de memória para dados, pode ser realizada na fase de compilação do programa fonte ou na fase execução. Estes tipos de alocação são respectivamente: 1 ptsPergunta 3 São estruturas simples de linguagem da área de dados; Alocados na área de dados para armazenar informações em tempo de execução São instruções que surgem do gerenciamento de memória da área de dados; Um programa fonte possui instruções executáveis que são carregadas na memória em tempo de execução. Esta área de memória é chamada área de código. Em relação aos subprogramas é correto afirmar: 23/11/2020 Teste: Atividade para avaliação - Semana 6 https://cursos.univesp.br/courses/3181/quizzes/13240/take 2/5 São carregados em áreas de dados, para armazenamento das informações; São ativados e desativados em tempo de execução; 1 ptsPergunta 4 A memória alocada para variáveis é feita em tempo de execução do programa; Não poderá ocorrer para variáveis locais; A memória alocada para variáveis não locais poderá ser acessada por um subprograma através da passagem de parâmetro por valor; A alocação poderá ser estática; São alocadas na área de código; Em relação a alocação de memória dinâmica de memória para armazenamento de informações É correto afirmar: 1 ptsPergunta 5 É o tipo mais simples de ambiente; Cada subprograma possui um único registro de ativação alocado em tempo de execução. As variáveis locais dos subprogramas são alocadas dinamicamente; Não há separação entre área de dados e área de código. Os valores das variáveis locais são modificados; A alocação estática de memória possui vantagens, pois não há necessidade de código de gerenciamento de memória durante a execução. Dentre as vantagens, é correto afirmar: 1 ptsPergunta 6 Considere a linhas de código fonte em Java abaixo: public class Fatorial { public int fat (int n) { 23/11/2020 Teste: Atividade para avaliação - Semana 6 https://cursos.univesp.br/courses/3181/quizzes/13240/take 3/5 Variáveis locais recebem as mesmas posições de memória a cada alocação; Um mesmo subprograma tenha vários registros de ativação; A área de dados tenha tamanho variável; A pilha e a área de heap tenham tamanhos fixos. A área de código tenha tamanho variável; if (n==0) return 1; else return (n*fat(n-1)); } public static void main(String[] args) { // TODO Auto-generated method stub Fatorial x = new Fatorial(); System.out.println("Fatorial: "+ x.fat(4)); } } A classe de objetos Fatorial, possui um método fat, que calcula o fatorial de inteiro n, de forma recursiva. Este método, é um subprograma que deverá ter sua alocação em memória de pilha. Assim, ambientes de execução baseados em pilhas permitem que: 1 ptsPergunta 7 Após a execução os registros são armazenados; A ordem das chamadas é determinada pela execução do programa; Os registros de ativação são destruídos quando desempilhados; Os registros de ativação são criados no momento do empilhamento; Os registros de ativação possuem informações sobre: o estado do contador de programa; uma área de dados para variáveis locais; uma área para parâmetros e o controle da pilha; Quando um subprograma é implementado de forma recursiva, a alocação em memória de pilha é realizada pelo empilhar e desempilhar registros de ativação. Sobre estes registros de ativação é INCORRETO afirmar: 23/11/2020 Teste: Atividade para avaliação - Semana 6 https://cursos.univesp.br/courses/3181/quizzes/13240/take 4/5 1 ptsPergunta 8 É uma variável local que recebe o valor na passagem de parâmetro e usará diferentes posições de memória quando do empilhamento do método recursivo; É uma variável local que recebe uma referência na passagem de parâmetro e usará diferentes posições de memória quando do empilhamento do método recursivo; É uma variável local que recebe uma referência na passagem de parâmetro e usará a mesma posição de memória quando do empilhamento do método recursivo; É uma variável global que recebe o valor na passagem de parâmetro e usará diferentes posições de memória quando do empilhamento do método recursivo; É uma variável global que recebe uma referência na passagem de parâmetro e usará diferentes posições de memória quando do empilhamento do método recursivo; Considere a linhas de código fonte em Java abaixo: public class Fatorial { public int fat (int n) { if (n==0) return 1; else return (n*fat(n-1)); } public static void main(String[] args) { // TODO Auto-generated method stub Fatorial x = new Fatorial(); System.out.println("Fatorial: "+ x.fat(4)); } } A variável n do método fat(n), recebe o valor 4 do método principal. Em relação a alocação de memória desta variável, podemos afirmar que: 23/11/2020 Teste: Atividade para avaliação - Semana 6 https://cursos.univesp.br/courses/3181/quizzes/13240/take 5/5 Nenhum dado novo para salvar. Última verificação às 20:36 1 ptsPergunta 9 Em cada instância da função, só são diretamente acessíveis os parâmetros criados para esta instância, não sendo diretamente acessíveis os parâmetros de outras instâncias. Em cada instância da função, só são diretamente acessíveis os parâmetros criados para outra instância, não sendo diretamente acessíveis os parâmetros de mesma instância. Uma estrutura em árvore, chamada árvore de ativação é criada, definindo a ordem de empilhamento e desempilhamento das instruções O tempo de vida de uma ativação, refere-se ao ciclo empilhar e desempilhar dos registros de ativação. Cada vez que uma função é chamada de forma recursiva, é alojado e guardado uma cópia dos seus parâmetros de forma a não perder os valores dos parâmetros das chamadas anteriores. Na alocação de memória das variáveis de um subprograma/função recursivo NÃO é correto afirmar: 1 ptsPergunta 10 A instrução if C<D then X≔Y+Z else X≔Y-Z será armazenada em uma área de memória de código em tempo de execução a partir de código intermediário e respectiva tabela de símbolos; Na instrução if C<D then X≔Y+Z else X≔Y-Z as variáveis C, D serão armazenada em uma área de memória de código junto da instrução if e as variáveis , X, Y e Z em uma área de dados; Na instrução if C<D then X≔Y+Z else X≔Y-Z as variáveis C, D, X, Y e Z serão armazenada em uma área de memória de código alocada dinamicamente; Na instrução if C<D then X≔Y+Z else X≔Y-Z as variáveis C, D, X, Y e Z serão armazenada em uma área de memória de código junto da instrução if; Na instrução if C<D then X≔Y+Z else X≔Y-Z as variáveis C, D, X, Y e Z serão armazenada em uma área de memória de código alocada estaticamente; Considere a seguinte expressão: . Podemos afirmar que: Enviar teste
Compartilhar