11 PROVA ESPECÍFICA – Cargo 26 QUESTÃO 26 Considere que, no algoritmo em alto nível a seguir, todas as variáveis sejam inteiras: 1. 2. 3. 4. 5. 6. 7. X := 1; Y := 1; Z := 2; while (X < 50) do X := Y; Y := Z; Z := X + Y; end; write(Z); Na execução desse algoritmo, o valor impresso na linha 7 é: a) b) c) d) 55 89 144 233 QUESTÃO 27 Considere que, no algoritmo em alto nível a seguir, V seja um vetor de inteiros contendo 100 elementos indexados de 0 a 99, e todas as demais variáveis sejam inteiras. 1. 2. 3. 4. 5. 6. 7. C := 0; D := 1; while (D < 100) do if V[D] < V[C] then C := D; D := D + 1; end; write(V[C]); O objetivo desse algoritmo é: a) b) c) d) Imprimir o vetor V em ordem crescente. Imprimir o vetor V em ordem decrescente. Imprimir o maior valor armazenado no vetor V. Imprimir o menor valor armazenado no vetor V. 12 QUESTÃO 28 Considere que no algoritmo em alto nível a seguir, M seja uma matriz de booleanos contendo 8 linhas, indexadas de 0 a 7, e 3 colunas, indexadas de 0 a 2; X, Y e Z sejam variáveis inteiras; e todas as demais variáveis sejam booleanas. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. X := 0; Y := 0; Z := 0; while (X < 8) do P := M[X][0]; Q := M[X][1]; R := M[X][2]; B1 := (P and Q) or R; B2 := ((not P) or Q) and R; B3 := (P or (not Q)) or R; if B1 or B2 or B3 then Y := Y + 1; if B1 and B2 and B3 then Z := Z + 1; X := X + 1; end; write(Y); write(Z); Considere ainda que M seja a seguinte matriz: 0 1 2 3 4 5 6 7 0 1 2 true true true true false false false false true true false false true true false false true false true false true false true false Os valores impressos no fim da execução do algoritmo são: a) b) c) d) 0e5 4e4 7e3 8e8 13 QUESTÃO 29 Considere o seguinte problema: “atribuir zero a todas as posições que contêm elementos que ocorrem em posições anteriores em um vetor, de modo que cada valor (diferente de zero) ocorra em uma única posição”. Suponha que, na solução desse problema, um programador tenha escrito o seguinte algoritmo em alto nível, no qual V é um vetor de inteiro com 100 posições indexadas de 0 a 99, e as demais variáveis são inteiras: 1. 2. 3. 4. 5. 6. i := 1; while (i < 100) do if V[i] == V[i – 1] then V[i] := 0; i := i + 1; end Sobre esse algoritmo, avalie as seguintes afirmativas: I. O algoritmo produz resultado incorreto sempre que algum valor está armazenado em mais de duas posições do vetor V. II. O algoritmo produz resultado incorreto sempre que o primeiro e o último elementos do vetor são iguais. III. O algoritmo produz resultado incorreto sempre que todos os elementos do vetor são diferentes entre si. As afirmativas CORRETAS são: a) b) c) d) I e II, apenas. I e III, apenas. II e III, apenas. I, II e III. 14 QUESTÃO 30 Considere que, no algoritmo em alto nível a seguir: • • • 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. F seja uma fila contendo inicialmente os valores 1, 2, 3, 4, 5 e 6, nessa ordem; F1 e F2 sejam filas inicialmente vazias; P1 e P2 sejam pilhas inicialmente vazias; val seja uma variável inteira; enqueue(F,x): insere o valor x no fim da fila F; dequeue(F): retira e retorna o valor da frente da fila F; emptyq(F): retorna verdadeiro se a fila F estiver vazia, ou falso, caso contrário; push(P,x): insere o valor x no topo da pilha P; pop(P): retira e retorna o valor do topo da pilha P; emptys(P): retorna verdadeiro se a pilha P estiver vazia, ou falso, caso contrário. while not emptyq(F) do val := dequeue(F); push(P1, val); enqueue(F1, val); end; while not emptys(P1) do push(P2, pop(P1)); enqueue(F2, pop(P1)); end; while not emptyq(F2) do enqueue(F1, dequeue(F2)); while not emptys(P2) do enqueue(F1, pop(P2)); while not emptyq(F1) do write(dequeue(F1)); O resultado impresso durante a execução desse algoritmo é: a) b) c) d) 123456531246 642135654321 654321642135 654321123456 15 INSTRUÇÃO: Nas questões 31 e 32, considere que: • • • • NIL represente a referência nula; Node seja um tipo registro que representa um nodo de lista simplesmente encadeada com os campos value, representando o valor armazenado, e next, representando um apontador para o nodo seguinte na lista; List seja um tipo registro que representa uma lista simplesmente encadeada nãocircular com nodo sentinela (ou cabeça); neste registro, o campo sentinel representa o nodo sentinela da lista; newNode(x,n) cria um novo nodo cujo campo value contém o valor x e cujo campo next aponta para o nodo apontado por n; esta função retorna um apontador para o novo nodo criado. QUESTÃO 31 Considere que, no algoritmo em alto nível a seguir, L1 e L2 sejam apontadores para List, e A e B sejam apontadores para Node. Considere também que os valores em ambas as listas estejam em ordem crescente. 1. 2. 3. 4. 5. 6. 7. 8. 9. A := L1^.sentinel; B := L2^.sentinel^.next; while (A^.next NIL) and (B NIL) do if A^.next^.value < B^.value then A := A^.next; else if A^.next^.value > B^.value then B := B^.next; else A^.next := A^.next^.next; end; O objetivo desse algoritmo é: a) b) c) d) Remover da lista L2 todos os elementos que pertencem à lista L1. Remover da lista L1 todos os elementos que pertencem à lista L2. Remover da lista L1 todos os elementos que não pertencem à lista L2. Remover da lista L2 todos os elementos que não pertencem à lista L1. 16 QUESTÃO 32 Considere que, no algoritmo em alto nível incompleto a seguir, L1 e L2 sejam apontadores para List, de modo que L2 seja inicialmente vazia, e A, B e C sejam apontadores para Node: A := L1^.sentinel^.next; B := L2^.sentinel; while A NIL do [código que falta] end; Se o objetivo desse algoritmo for “fazer com que L2 seja uma cópia invertida da lista L1”, então o código representado por [código que falta] deve ser substituído por: a) b) c) d) C := newNode(A^.value, B^.next := C; A := A^.next; C := newNode(A^.value, B^.next := C; A := A^.next; B := C; C := newNode(B^.value, A^.next := C; A := A^.next; C := newNode(A^.value, A^.next := A; B := C; B^.next); B^.next); B^.next); A^.next); QUESTÃO 33 Sobre Tipos Abstratos de Dados (TAD) e a sua implementação em linguagens orientadas por objetos, considere as seguintes afirmativas: I. A definição de um TAD deve ser independente da estrutura de dados e da linguagem de implementação utilizadas. II. As operações de um TAD devem corresponder a métodos públicos da classe que o implementa. III. Todo TAD deve corresponder a uma classe que possui função construtora sem parâmetros. As afirmativas VERDADEIRAS são: a) b) c) d) I, II e III. I e II, apenas. I e III, apenas. II e III, apenas. 17 QUESTÃO 34 Considere que T1, T2 e T3 sejam tipos abstratos de dados implementados em uma linguagem orientada por objetos, de modo que T2 é supertipo de T3. Um exemplo de uso correto de herança e polimorfismo é: a) T1 possui uma operação F que recebe um argumento do tipo T3; um objeto do tipo T2 é passado como argumento para a função F. b) T1 possui uma operação F que recebe um argumento do tipo T2; um objeto do tipo T3 é passado como argumento para a função F. c) T1 possui uma operação F que retorna um valor do tipo T2; o resultado retornado por uma chamada à função F é atribuído a variável do tipo T3. d) T1 possui uma operação F que retorna um valor do tipo T1; o resultado retornado por uma chamada à função F é atribuído a variável do tipo T3. INSTRUÇÃO Para as questões 35 e 36, considere a modelagem orientada por objetos de um sistema de informação para uma empresa. Os funcionários dessa empresa estão organizados de forma hierárquica, tal que cada funcionário, com exceção do presidente da empresa, é diretamente subordinado a exatamente um funcionário; este funcionário é o seu supervisor. Funcionários que não são supervisores são denominados encarregados. O conjunto dos superiores de um funcionário é formado por seu supervisor, pelo supervisor de seu supervisor, e assim por diante, até se chegar ao presidente. Considere, ainda, que o sistema será modelado por meio de um dos dois diagramas de classe a seguir: Diagrama 1 Diagrama 2 A relação funcionarios entre as classes Empresa e Funcionario será implementada por meio de um lista de objetos da classe Funcionario na classe Empresa, e conterá referências a todos os funcionários da empresa. 18 QUESTÃO 35 Considere que a relação definida no Diagrama 1 seja implementada por meio de um atributo de nome supervisor na classe Funcionário, de modo que se F1 for supervisor de F2, então o atributo supervisor do objeto F2 referencia F1. Considere, ainda, que as seguintes operações devam ser implementadas na classe Empresa: I. Dado um funcionário, obter a lista de todos os seus superiores. II. Obter a lista de todos os encarregados da empresa. III. Dado um funcionário, obter a lista de todos os seus subordinados. Dentre essas operações, NÃO podem ser implementadas percorrendo-se uma única vez a lista de funcionários da classe Empresa: a) b) c) d) I e II, apenas. I e III, apenas. II e III, apenas. I, II e III. QUESTÃO 36 Considerando-se a relação definida no Diagrama 2, avalie as seguintes afirmativas: I. Dado um funcionário, é possível obter a lista de todos os seus superiores percorrendo-se a lista de funcionários da classe Empresa uma única vez. II. Não é necessário alterar o diagrama para se permitir que um mesmo funcionário tenha mais do que um supervisor. III. É possível obter a lista de todos os encarregados da empresa percorrendo-se a lista de funcionários da classe Empresa uma única vez. As afirmativas VERDADEIRAS são: a) b) c) d) I e II, apenas. I e III, apenas. II e III, apenas. I, II e III. 19 QUESTÃO 37 Considere as seguintes relações entre classes em um sistema orientado por objetos: Relação I Relação II Relação III Empresa oferece Serviço Cliente pode ser Pessoa Física Serviço possui Etapas As relações I, II e III são exemplos, respectivamente, de: a) b) c) d) Polimorfismo, herança e herança. Agregação, herança e composição. Agregação, agregação e composição. Composição, polimorfismo e herança. QUESTÃO 38 Analise as seguintes afirmativas sobre modelagem de dados: I. A normalização do modelo de dados tem o objetivo de eliminar redundâncias para evitar possíveis inconsistências em bases de dados criadas a partir desse modelo. II. Diagramas Entidade-Relacionamento representam os modelos de dados relacionais e são ferramentas úteis para os administradores de dados, pois permitem visualizar os esquemas (metadados) dos bancos de dados implementados. III. O modelo lógico está intimamente ligado à implementação do banco de dados, é dependente do SGBD e tem ênfase na eficiência de acesso. São VERDADEIRAS as afirmativas: a) b) c) d) I, apenas. I e II, apenas. II e III, apenas. I, II e III. 20 QUESTÃO 39 Analise as seguintes afirmativas sobre o Diagrama Entidade-Relacionamento: I. Através do DER podemos expressar todas as restrições de integridade necessárias de um domínio de aplicação. II. A cardinalidade mínima indica se a participação das ocorrências de entidades no relacionamento é obrigatória ou opcional. III. O DER é um modelo conceitual que independe de detalhes de implementação, é simples, portanto melhor compreendido por usuários leigos, e pode ser mapeado para qualquer modelo lógico de banco de dados relacional. São VERDADEIRAS as afirmativas: a) b) c) d) I, II e III. I e II apenas. I e III, apenas. II e III, apenas. QUESTÃO 40 Observe os modelos a seguir e identifique obrigatoriamente uma entidade associativa: a) b) c) d) qual relacionamento origina 21 QUESTÃO 41 Sobre o comando SQL a seguir, escolha a afirmativa correta: SELECT depto.nome, funcionario.nome FROM depto, funcionario WHERE depto.codigo = funcionário.depto_codigo AND funcionário.salario > 5000 AND depto.codigo = ‘Diretoria’ OR depto.codigo = ‘Tenologia’ a) Seleciona os funcionários da Diretoria e da Tecnologia que tenham salário maior que 5.000. b) Seleciona os funcionários da Diretoria com salário maior que 5.000 e todos os funcionários da Tecnologia, independente de salário. c) Seleciona os funcionários que fazem parte da Diretoria e da Tecnologia, simultaneamente, e que tenham salário maior que 5.000. d) Seleciona todos os funcionários com salário maior que 5.000 e ainda os funcionários da Diretoria e Tecnologia, independente de seus salários. QUESTÃO 42 Analise as seguintes afirmativas sobre a linguagem SQL: I. Usando a palavra-chave DISTINCT, podemos evitar que linhas duplicadas sejam apresentadas no resultado de um comando SELECT. II. Em um comando SELECT, a cláusula HAVING só poderá ser utilizada em conjunto com GROUP BY. III. Expressões aritméticas contendo um valor nulo terão sempre um resultado nulo. Por exemplo, o comando SELECT saldo + 100 FROM conta resultará em um valor nulo se a coluna saldo estiver nula. As afirmativas VERDADEIRAS são: a) b) c) d) I e II apenas. I e III, apenas. II e III, apenas. I, II e III. QUESTÃO 43 São funções agregadas da linguagem SQL padrão, EXCETO: a) b) c) d) SUM. MAX. DIFF. AVG. 22 QUESTÃO 44 Observe os comandos SQL a seguir e identifique qual apresentará ERRO ao ser executado: a) SELECT matricula, nome FROM funcionario WHERE sal = (SELECT MIN(sal) FROM funcionario GROUP BY departamento) b) INSERT INTO gerente (matricula, nome, sal) SELECT matricula, nome, sal FROM funcionario WHERE cargo = ‘gerente’ c) DELETE funcionario FROM gerente WHERE funcionario.matricula = gerente.matricula d) SELECT nome, cargo, sal as salario FROM funcionario QUESTÃO 45 Analise as seguintes afirmativas sobre a modelagem de Casos de Uso: I. Fluxo de eventos de um caso de uso é composto por um fluxo básico e zero ou mais fluxos alternativos. Estes descrevem desvios pré-definidos do fluxo básico. II. O fluxo básico (principal) descreve a funcionalidade básica do caso em que tudo corre bem, ou seja, quando nenhum desvio é tomado. III. Atores são entidades externas ao sistema computacional que participam de um ou mais casos de uso e que fornecem eventos de entrada ou recebem alguma resposta do sistema. São VERDADEIRAS as afirmativas: a) b) c) d) I e II, apenas. I e III apenas. II e III, apenas. I, II e III. 23 QUESTÃO 46 São diagramas estruturais da Unified Modeling Language (UML), EXCETO: a) b) c) d) Diagrama de objetos. Diagrama de classes. Diagrama de componentes. Diagrama de estados (máquina de estados). QUESTÃO 47 Marque a alternativa em que a senha do usuário é transmitida de forma criptografada (codificada) pela rede: a) b) c) d) ftp scp rlogin telnet QUESTÃO 48 Um administrador de rede deseja configurar o programa de correio eletrônico Outlook Express para acessar as mensagens de sua caixa postal na empresa, a partir de uma máquina instalada na sua casa, com acesso à internet em banda larga. Ao configurar o servidor POP3 e SMTP do leitor de e-mail, a ação de enviar um e-mail de teste retorna o erro: “A mensagem não pôde ser enviada porque o servidor recusou o endereço de email do remetente”. Ele consegue descarregar e ler os e-mails recebidos pelo servidor da empresa, mas não é capaz de enviar e-mails utilizando o servidor SMTP. Marque a possível razão do problema: a) O firewall da empresa recusa acessos via porta 25, utilizada pelo servidor SMTP, mas libera a porta 110, utilizada pelo servidor POP3. b) O servidor de proxy da empresa armazena as mensagens recebidas, mas o servidor de SMTP não pode ser acessado externamente à rede privada da empresa. c) O servidor da empresa exige autenticação POP3 via SSL para permitir o envio da mensagem. d) O filtro IP da empresa não permite que o endereço do remetente não utilize o domínio da empresa se a mensagem for enviada de uma máquina com IP não pertencente à empresa. 24 QUESTÃO 49 Sobre segurança de redes, assinale a afirmativa CORRETA: a) O conjunto de protocolos que implementam segurança em IP, IPSec, quando está no modo transporte (transport mode), todo o pacote é criptografado e encapsulado sobre um novo pacote IP. b) Tunelamento pode ser feito na camada de rede, como no caso do protocolo PPTP ou na camada de transporte como no caso do VPN/TP. c) Entre as diretrizes de segurança do LDAP está a possibilidade de se utilizar a pilha de protocolo TLS/SSL para realizar requisições do tipo BIND. d) Firewall de proxy (bastion hosts) implementa um protocolo de sessão que filtra os pacotes baseado em regras pré-estabelecidas, mantendo uma única sessão entre o remetente e o destinatário. QUESTÃO 50 Sobre serviços de rede, assinale a afirmativa INCORRETA: a) NIS (Network Information Service) é um serviço, desenvolvido pela Sun Microsystems, para distribuição de informações por uma rede, e é muito utilizado para a implementação de serviços de autenticação e gerenciamento de usuários em servidores Linux. b) O DNS (Domain Name System) é um sistema de gerenciamento de nomes hierárquico e distribuído, que permite resolução de nome de máquina (host name) para IP e de IP para nome de máquina. c) O NFS (Network File System) é um sistema de arquivos distribuído que, em sistemas como o Linux, permite montar automaticamente um diretório remoto na primeira necessidade de acesso. d) O IMAP e o POP3 são protocolos de correio eletrônico que têm como recurso básico a possibilidade de se compartilhar pastas públicas de contas de e-mail entre grupos de usuários. ATENÇÃO COM SUA ESCRITA HABITUAL, TRANSCREVA, PARA O ESPAÇO RESERVADO PELA COMISSÃO, NA FOLHA DE RESPOSTAS, A SEGUINTE FRASE: Responsabilidade social: é prioritário que todas as empresas sejam responsáveis pelo bem-estar de sua comunidade.