Questões de Concurso Comentadas para sugep - ufrpe

Foram encontradas 899 questões

Resolva questões gratuitamente!

Junte-se a mais de 4 milhões de concurseiros!

Q762250 Programação
Na linguagem de programação Java, o comando de repetição while tem a seguinte forma geral:
while (expressão) { comando(s); }
Analise as tentativas de se simular o comportamento do while, usando outros comandos de repetição. Marque V para as tentativas que funcionam, ou F para as que não funcionam – seja por estarem logicamente erradas, seja por causarem erros de compilação ou execução ( ) if (expressão) { do comando(s); while (expressão); } ( ) if (expressão) { do comando(s); while (!(expressão)); } ( ) for (;expressão;) { comando(s); }
A sequência correta, de cima para baixo, é:
Alternativas
Q762249 Programação

Correlacione os tipos de variáveis definidas pela linguagem de programação Java, listadas na primeira coluna, a sua descrição, na segunda coluna.

1) Variáveis de instância

2) Variáveis de classe

3) Variáveis locais

4) Variáveis parâmetros

( ) Qualquer campo declarado com o modificador static, que informa ao compilador que há exatamente uma cópia dessa variável em existência, independentemente de quantas vezes a classe foi instanciada. Adicionalmente pode vir com uma palavra-chave final para indicar que seu valor nunca mudará.

( ) Semelhante a como um objeto armazena seu estado em campos, um método, muitas vezes, armazena seu estado temporário nessas variáveis. A sintaxe para declarar esse tipo de variável é semelhante ao declarar um campo (por exemplo, int contador = 0;). Não há nenhuma palavra-chave especial que a designa; o que determina é o local em que a variável é declarada - que é entre o abre e fecha chaves de um método. Assim, essas variáveis são visíveis apenas para os métodos em que são declarados. Não são acessíveis ao resto da classe.

( ) Objetos armazenam seus estados individuais em “campos não estáticos”, isto é, campos declarados sem a palavra-chave estática. Seus valores são únicos para cada objeto.

( ) Compõem a assinatura dos métodos. São sempre classificados como “variáveis” não “campos”. Isso se aplica a outras construções que usam tais variáveis como construtores e manipuladores de exceção.

A sequência correta, de cima para baixo, é:

Alternativas
Q762248 Programação
Com respeito aos tipos e estruturas e dados da linguagem de programação Java, marque V para as afirmações verdadeiras, ou F para as falsas. ( ) Java é estaticamente tipada, o que significa que toda variável deve ser declarada antes de ser usada. ( ) Existem oito tipos primitivos, que não são objetos: boolean, byte, char, short, int, long, float e double. Não possuem valor default, e campos desses tipos devem ser inicializados. ( ) Além dos oito primitivos, Java provê suporte a cadeias de caracteres (strings), considerado um tipo primitivo especial. A sequência correta, de cima para baixo, é:
Alternativas
Q762247 Programação
Considere as afirmações abaixo, sobre os paradigmas de linguagens de programação. 1) As linguagens de programação Python, Ruby, C#, Cython e Lua são multiparadigmáticas e podem ser classificadas, pelo menos, nos paradigmas Orientado a Objetos, Funcional e Imperativo. 2) As linguagens de programação Object-Pascal (Delphi), Python, C++ e Java, embora deem suporte à Orientação a Objetos (OO), não são completamente orientadas a objetos. 3) As linguagens de programação Smalltalk e Ruby são completamente orientadas a objetos, uma vez que todo valor de dados é um objeto e todas as operações são vias chamadas de métodos. Está(ão) correta(s):
Alternativas
Q762246 Algoritmos e Estrutura de Dados
Suponha que T seja uma árvore binária de pesquisa inicialmente vazia, e considere a inserção dos elementos 30, 50, 60, 20, 40, 10 e 25 em T, exatamente nessa ordem. Qual das sequências abaixo corresponde a um percurso de T em pré- ordem?
Alternativas
Q762245 Algoritmos e Estrutura de Dados

Correlacione os algoritmos internos de ordenação de listas da coluna à esquerda com sua descrição, na coluna à direita.

1) Bubblesort. 

2) Ordenação por Seleção 

3) Ordenação por Inserção

4) Shellsort 

5) Quicksort 

( ) Escolhe-se um pivot e particiona-se a lista em duas sublistas: uma com os elementos menores que ele e outra com os maiores, que, ao serem ordenadas e combinadas com o pivot, geram uma lista ordenada. O processo é aplicado às partições para ordená-las. Embora tenha uma complexidade de pior caso de O(n2 ), no caso médio é de O(n log n). 

( ) Encontra-se o menor item do vetor. Troca-se com o item da primeira posição do vetor. Repetem-se essas duas operações com os n − 1 itens restantes, depois com os n − 2 itens, até que reste apenas um elemento. 
( ) Método preferido dos jogadores de cartas. A cada momento existem duas partes na lista: uma ordenada (destino) e outra não ordenada (fonte). Inicialmente a lista destino tem apenas o primeiro elemento, e a fonte os demais elementos. Em cada passo a partir de i=2, seleciona-se o i-ésimo item da lista fonte. Deve-se colocá-lo no lugar apropriado na lista destino, de acordo com o critério de ordenação. 

( ) É uma extensão de um outro algoritmo de ordenação conhecido e permite trocas de elementos distantes um do outro, não necessariamente adjacentes. Os itens separados de h posições são rearranjados. Todo h-ésimo item leva a uma lista ordenada. Tal lista é dita estar h-ordenada. 

( ) Varre-se a lista trocando-se de posição os elementos adjacentes fora de ordem. Varre-se a lista até que não haja mais trocas e, neste caso, a lista está ordenada.

A sequência correta, de cima para baixo, é: 

Alternativas
Q762244 Algoritmos e Estrutura de Dados
Sobre as estruturas de dados lineares, analise as proposições abaixo. 1) Uma pilha é uma lista com acesso restrito a apenas uma das extremidades, tanto para inserir quanto para remover. 2) Uma fila é uma lista com acesso restrito a ambas as extremidades: uma apenas para inserção e a outra apenas para remoção. 3) Devido a sua característica dinâmica, uma lista não pode ser implementada em um arranjo. 4) Uma fila é mais eficientemente implementada, em uma lista simplesmente encadeada, se as remoções são realizadas na cabeça da lista, e as inserções na cauda da lista. Estão corretas:
Alternativas
Q762243 Algoritmos e Estrutura de Dados
A Complexidade Computacional é a área da Ciência da Computação que se ocupa, entre outros, do estudo e análise do custo de tempo de execução e espaço ocupado pelos algoritmos. Sobre Complexidade Computacional, marque V para as afirmações Verdadeiras, ou F para as Falsas. ( ) A função de complexidade de tempo de algoritmo indica o tempo necessário para executar o programa que implementa o algoritmo em função do tamanho da entrada. ( ) Se f é uma função de complexidade baseada na análise de pior caso, o custo de aplicar o algoritmo nunca é maior do que f(n). ( ) Na análise do caso médio toma-se a média aritmética do pior caso com o melhor caso. A sequência correta, de cima para baixo, é:
Alternativas
Q762242 Algoritmos e Estrutura de Dados
O comando condicional se-então-senão (if-then-else) pode-se pode ter seu comportamento simulado com o enquanto-que (while). Dado o trecho de pseudocódigo esquemático abaixo, assinale a alternativa em que se simula o comportamento do se-então-senão (if-thenelse) com o enquanto-que, onde S e T são sequências arbitrárias de comandos e C uma expressão boolena.  se C então faça  S senão faça  T fim-se
Alternativas
Q762241 Algoritmos e Estrutura de Dados
Com o comando de repetição repetir-até-que (repeatuntil) pode-se simular o comportamento do enquanto-que (while). Dado o trecho de pseudocódigo esquemático abaixo, assinale a alternativa em que se simula o comportamento do enquanto-que com o repetir-até-que, onde S é uma sequência arbitrária de comandos e C uma expressão boolena que incorpora a condição de parada do laço.
enquanto que C S fim-enquanto
Alternativas
Q762240 Algoritmos e Estrutura de Dados
Certas linguagens não possuem o comando de repetição repetir-até-que (repeat-until). Porém, pode-se simular seu comportamento com um enquanto-que (while). Dado o trecho de pseudocódigo esquemático abaixo, assinale a alternativa em que se simula o comportamento do repetir-até-que com o enquanto-que, onde S é uma sequência arbitrária de comandos e C uma expressão boolena que incorpora a condição de parada do laço.
repita S até que C
Alternativas
Q762239 Algoritmos e Estrutura de Dados
Considere o algoritmo em pseudocódigo abaixo, que computa, dados dois inteiros, uma sequência de inteiros. Leia(n,a) enquanto n!=1 faça:      imprima n      se (n mod 2)=0 então:          n:=n div 2      senão:          n:=a*n+1 imprima n
Sobre a sequência impressa, dados os valores de n e de a especificados, analise as proposições a seguir. 
1) Para n=6 e a=3, a sequência gerada é: 6 3 10 5 16 8 4 2 1. 2) Para n uma potência de 2, n=2k para algum k inteiro; para qualquer valor de a, a sequência gerada são as potências de 2 de 2k até 1. 3) Para n=9 e a=3, a sequência gerada é: 14 7 22 11 33 17 52 26 13 40 20 10 5 16 8 4 2 1. 4) Se n não for uma potência de 2, com a=2 o algoritmo não para, gerando uma sequência infinita. 5) Com a=5, se n=17 o programa fica em laço infinito na sequência 17 86 43 216 108 54 27 136 68 34. Estão corretas, apenas: 
Alternativas
Q762238 Engenharia de Software
Associe os diagramas UML listados abaixo às categorias: Diagramas Estruturais (E) ou Diagramas Comportamentais (C). ( ) Diagrama de Atividades ( ) Diagrama de Objeto ( ) Diagrama de Componente ( ) Diagrama de Casos de Uso ( ) Diagrama de Sequência ( ) Diagrama de Implantação A sequência correta, de cima para baixo, é:
Alternativas
Q762237 Engenharia de Software
Leia a descrição das propriedades de um tipo de diagrama UML, abaixo. São um diagrama estático; representam a visão estática de um aplicativo e são usados não só para visualizar, descrever e documentar diferentes aspectos de um sistema, mas também para construir código executável do aplicativo de software. São amplamente utilizados na modelagem de sistemas orientados a objetos, porque eles são os únicos diagramas UML que podem ser mapeados diretamente em linguagens orientadas a objeto. São também conhecidos como diagramas estruturais. Têm como finalidade modelar a visão estática de um aplicativo. São um modelo fundamental de uma especificação orientada a objetos. Produzem a descrição mais próxima da estrutura do código de um programa, por isso são os diagramas UML mais populares na comunidade de programadores. A descrição corresponde a:
Alternativas
Q762236 Engenharia de Software
Sobre o diagrama de atividades da UML, analise as proposições abaixo. 1) Diagrama de atividades descreve os aspectos dinâmicos do sistema. É basicamente um fluxograma para representar o fluxo de uma atividade a outra. Diagramas de atividades são sempre associados a uma Classe, uma Operação ou um Caso de Uso. 2) Uma atividade pode ser descrita como uma operação do sistema. Assim, o fluxo de controle é desenhado de uma operação para outra. Esse fluxo pode ser sequencial, ramificado ou concorrente. Diagramas de atividades lidam com todo tipo de controle de fluxo, utilizando elementos diferentes, como fork, join etc. 3) Entre os principais usos do diagrama de atividades podemos citar: modelagem de fluxo de trabalho usando atividades; requisitos de negócios de modelagem; compreensão de alto nível das funcionalidades do sistema; e investigação dos requisitos de negócios numa fase posterior. 4) Atividade é uma operação particular do sistema. Os diagramas de atividades não são utilizados apenas para a visualização de natureza dinâmica de um sistema, mas também para construir o sistema executável, usando as técnicas de engenharia progressiva e reversa. 5) O diagrama de atividades também indica o fluxo de mensagens. Ele exibe todo o fluxo de mensagens de uma atividade a outra. Diagrama de atividades é considerado como o fluxograma. Estão corretas, apenas:
Alternativas
Q762235 Engenharia de Software
Sobre o diagrama de casos de uso da UML, analise as proposições abaixo. 1) São usados em análise de requisitos e projetos de alto nível e modelam o contexto de um sistema, engenharia reversa e engenharia progressiva. 2) Quando desenha um diagrama de casos de uso devemos ter identificados: as funcionalidades a serem representadas como um caso de uso, os atores e os relacionamentos entre os casos de uso e os atores. 3) Diagramas de caso de uso especificam os eventos de um sistema e seus fluxos e descrevem como são implementados. Além disso, não apenas dizem o que o sistema deve fazer, mas também especificam como isso será conseguido. 4) Descrição do Caso de Uso são narrativas de texto do Caso de Uso. Elas usualmente tomam a forma de uma nota ou um documento que é, de alguma maneira, ligado ao Caso de Uso, e explanam o processo ou atividades que tomarão lugar no Caso de Uso. 5) Entre os propósitos dos diagramas de caso de uso temos: colher os requisitos de um sistema, ter uma visão externa do sistema, saber que fatores internos e externos influenciam o sistema e mostrar a interação entre os requisitos e atores. Estão corretas, apenas:
Alternativas
Q762234 Engenharia de Software
Acerca do conceito de polimorfismo na orientação a objetos, analise as afirmações abaixo. 1) No polimorfismo de nome ou de sobrecarga (overloading) a decisão do método a ser chamado é tomada em tempo de execução. 2) Com o polimorfismo, um objeto pode ser referenciado de várias formas distintas. 3) No polimorfismo dinâmico ou de sobrescrita (overriding) os métodos têm nome e assinatura, e na subclasse se redefine um método da superclasse. A decisão do método a ser chamado é tomada em tempo de execução. 4) Nas linguagens orientadas a objetos é comum encontrar três formas de polimorfismo: ad hoc (como a sobrecarga de operadores), paramétrico (sobrecarga de nome com assinaturas diferentes) e de herança (reescrita de método). Estão corretas:
Alternativas
Q762233 Engenharia de Software

Associe as características listadas abaixo aos conceitos de Interface (I) ou Classe Abstrata (A).

( ) Não tem implementação, mas tem de ser implementada.

( ) Seus métodos podem ter suas próprias implementações padrão, podem ser estendidos e podem funcionar, independente da classe herdeira (subclasse).

( ) Só pode ter declaração de método (implicitamente público e abstrato) e propriedades (implicitamente estático e público).

( ) Seus métodos podem ser implementados se declarados abstratos.

( ) Pode herdar mais de uma interface.

( ) Pode implementar mais de uma interface, mas pode herdar apenas uma classe.

( ) Aumenta a segurança, escondendo a implementação.

A sequência correta, de cima para baixo, é:

Alternativas
Q762232 Engenharia de Software
Leia a descrição no quadro abaixo. Esconder os dados internos do mundo exterior e acessá-los apenas através de métodos expostos publicamente. Assinale a alternativa que corresponde a essa propriedade da orientação a objetos.
Alternativas
Q762231 Engenharia de Software
Acerca do conceito de métodos em orientação a objetos, marque V para as afirmações verdadeiras, ou F para as falsas. ( ) Uma classe pode ter dois ou mais métodos com mesmo nome, mas assinaturas diferentes. Isso é chamado de ‘polimorfismo de nome’. ( ) Polimorfismo de nome não pode ocorrer no construtor da classe. ( ) Um método representa um comportamento ou uma propriedade. Métodos que representam comportamento são chamados de procedimentos, enquanto os que representam propriedades são chamados de atributos. ( ) Métodos destrutores são aqueles acionados para remoção de objetos. A sequência correta, de cima para baixo, é:
Alternativas
Respostas
681: D
682: B
683: E
684: A
685: D
686: B
687: C
688: D
689: D
690: C
691: D
692: D
693: E
694: C
695: A
696: D
697: B
698: C
699: C
700: E