Buscar

Linguagens de Programação e Estruturas de Dados PROVA II

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

1Tipos de dados abstratos (TAD) representam um conjunto de dados e as respectivas operações executadas sobre eles. Os TAD podem ser considerados uma metodologia de desenvolvimento de algoritmos onde se reduz o tamanho do código através da abstração. Com relação aos tipos de dados abstratos, classifique V para as sentenças verdadeiras e F para as falsas: ( ) A principal característica dos TAD é a finalidade das operações. ( ) Vetores, abstrato ponto e abstrato matriz são os três tipos de dados abstratos. ( ) Os TAD ficam externos ao módulo onde são criados, facilitando a visualização e a manipulação. ( ) Um programador não pode alterar os dados armazenados quando a implementação usa TAD. ( ) TAD é um tipo de dados que esconde a implementação de quem faz a manipulação. Assinale a alternativa que apresenta a sequência CORRETA:
A
F - F - V - F - F.
B
V - F - F - F - V.
C
V - F - V - F - V.
D
V - V - F - V - V.
2
Ponteiros são definidos como variáveis e possuem a responsabilidade de armazenar endereços na memória de um programa de computador. Ao realizar o processo de armazenamento de endereços na memória do programa é possível  que sejam incluídos valores, bem como, também, podem ser utilizados. Sobre os ponteiros, analise as afirmativas a seguir: 
I- Ao realizar a declaração do ponteiro, também são indicados ao compilador a quantidade de espaço da memória que se  necessita fazer o armazenamento dos valores.
II- Uma característica muito interessante que deve ser observada ao realizar a declaração de um ponteiro é: precisa-se especificar para qual localização e qual tipo de variável que este ponteiro será apontado.
III- Geralmente, os ponteiros são declarados através do seguinte operador ( # ), utilizado antes do nome da variável  ao qual deverá ser apontado.
IV- Os ponteiros possuem algumas vantagens muito interessantes e  importantes, como possibilitam que se tenha passagem para os parâmetros de funções por referência, além de alocar endereço na memória.
Assinale a alternativa CORRETA:
A
As afirmativas I e III estão corretas.
B
As afirmativas III e IV estão corretas.
C
As afirmativas I, II e III estão corretas.
D
As afirmativas I, II e IV estão corretas.
3As variáveis são responsáveis por armazenar os dados utilizados pela lógica. Em alguns casos, é necessário trabalhar com um conjunto de dados de variados tipos, por exemplo, para armazenar dados de alunos de uma turma, como seu nome, CPF e data de nascimento. Para agrupar mais de uma variável em um único registro, é utilizado o conceito de registros. No anexo, é apresentada a declaração de um registro. Sobre os registros, analise as sentenças a seguir: 01 type ALUNO: record 02 NOME: texto[60]; 03 NOTA: real; 04 end; I- Para ler o nome de um aluno na variável interna NOME, pode-se utilizar a sintaxe " leia ALUNO.NOME; ". II- Para exibir a nota de um aluno, é utilizada a sintaxe " escreva ALUNO.NOTA; ". III- Todos os alunos de uma turma podem ser armazenados em uma única variável, declarando um vetor com a sintaxe " LISTAALUNOS[100]: ALUNOS;". IV- A expressão "end" determina que as variáveis internas do registro terminaram de ser declaradas. Assinale a alternativa CORRETA:
A
As sentenças I, II e IV estão corretas.
B
As sentenças I, II e III estão corretas.
C
As sentenças II e III estão corretas.
D
As sentenças III e IV estão corretas.
4
Os ponteiros de variáveis também fazem parte da estrutura de dados, sendo estas que cumprem um papel muito importante dentro dessa estrutura, pois os ponteiros possuem como responsabilidade armazenar espaço na memória do programa para elementos e valores. 
Com base no momento em que é feito o procedimento de armazenamento de espaço de memória, assinale a alternativa CORRETA:
A
Após a declaração da variável.
B
Antes da declaração da variável.
C
No momento da execução do programa.
D
Antes da execução do programa.
5Foi solicitada a criação de um algoritmo que faça a leitura de três notas, apresentando uma mensagem com a maior nota. Com base nessa solicitação e no algoritmo anexo, analise as sentenças a seguir: I- O algoritmo não funciona, pois não pode ordenar valores do tipo real. II- O algoritmo não funciona, pois as variáveis utilizadas não foram declaradas. III- O algoritmo não está com a lógica correta para o que foi solicitado. IV- O algoritmo está certo e apresentará a maior nota de três. Assinale a alternativa CORRETA:
A
As sentenças I, II e III estão corretas.
B
As sentenças II e III estão corretas.
C
As sentenças II e IV estão corretas.
D
As sentenças II, III e IV estão corretas.
6As cadeias de caracteres são estruturas que possuem uma grande importância no desenvolvimento de programas, pois permitem a representação de variáveis que contenham palavras, frases e até mesmo textos. As linguagens de programação em geral abstraem do programador o controle das cadeias de caracteres, realizando-o internamente e disponibilizando um tipo de variável pronto para utilização. No que se refere às características das cadeias de caracteres na linguagem de programação C, assinale a alternativa CORRETA:
A
As strings são compostas por vetores de caracteres e marcadas por um caracter especial que sinaliza o seu início.
B
Os caracteres são armazenados no computador através de codificações numéricas.
C
Não é possível colocar um caracter que represente um número em uma variável do tipo string.
D
A string BOMDIA seria armazenada em um vetor de caracteres de 6 posições.
7
“O significado de um operador – é uma operação que realiza e tipo de resultado – depende dos tipos dos seus operandos. Até que se conheça o tipo de operando(s), não se pode conhecer o significado da  expressão” (AGUILAR, 2008, p. 12). “Os operadores podem ser classificados quanto ao número de operadores em unários, binários e ternários (PINHEIRO, 2012, p. 112). Podemos encontrar vários tipos de operadores e cada um possui sua finalidade e especificidade.
Com base no operador, assinale a alternativa INCORRETA:
FONTE: AGUILAR, Luis J. Fundamentos de programação – 3 ed.: Algoritmos, estruturas de dados e objetos. Tradução: VALLE, Paulo H. C. Revisão Técnica: SILVA, Flavio S. C. Dados Eletrônicos. Porto Alegre: AMGH, 2011.
PINHEIRO, Francisco A. C. P. Elementos de programação em C. Dados Eletrônicos. Porto Alegre: Bookman, 2012.
A
Operadores Lógicos.
B
Operadores de Arrays.
C
Operadores Aritméticos.
D
Operadores de Controle de fases.
8Uma empresa deseja manter seu pequeno estoque em uma matriz, com quatro linhas por três colunas. Após o cadastro, o algoritmo deve permitir a busca por código. Crie um algoritmo que solicite valores e preencha uma matriz de ordem 4 x 3 (4 linhas por 3 colunas). Em seguida, o algoritmo deverá solicitar mais um valor para procurá-lo na matriz. O algoritmo deverá informar, no fim, em que linha x coluna está o valor. Caso o código não for encontrado, enviar um aviso informando que o produto não está cadastrado. Algoritmo busca_vetor; var mat : vetor [1..4,1..3] de real; procurar : real; l, c : inteiro; encontrou : lógica; início Para l <- 1 até 4 faça início Para c <- 1 até 3 faça início escreva('Valor: '); Leia(mat[l,c]); Fim; Fim; escreva('Valor para busca: '); Leia(procurar); encontrou <- falso; Se (not encontrou) então início escreva('Não tem na matriz: ',procurar); Fim; Fim. Baseado nessa solicitação e no código apresentado, analise as sentenças a seguir: I- O algoritmo está correto e vai buscar um valor dentro do vetor. II- O algoritmo não está selecionando um valor dentro do vetor. III- O algoritmo está com a declaração de variáveis incorreto. IV- O algoritmo solicita e armazena corretamente os valores. Assinale a alternativa CORRETA:
A
As sentenças II e IV estão corretas.
B
As sentenças II e III estão corretas.
C
As sentenças I, III e IV estão corretas.
D
As sentenças I, II e III estão corretas.
9A classe CountOccurrence escrita na linguagem Java tem por objetivo localizar e contar quantas ocorrências de um determinado valor existem em um conjunto predeterminado de valores, retornando a quantidade de vezes que um determinado valor serepete no conjunto. public class CountOccurrence { public boolean hasValue(int searchValue, int[] array, int i) { if (i >= array.length) return false; if (array[i] == searchValue) return true; else return hasValue(searchValue, array, i + 1); } public int count(int countValue, int[] array, int i) { if (!hasValue(countValue, array, i) '' i >= array.length) return 0; int c = 0; if (array[i] == countValue) c++; c += count(countValue, array, i+1); return c; } public static void main(String[] args) { int[] array = {2, 3, 5, 6, 9, 7, 8, 8, 9}; CountOccurrence co = new CountOccurrence(); System.out.println(co.count(5, array, 0)); } } Considerando o requisito proposto e o código apresentado, avalie as asserções a seguir e a relação proposta entre elas: I- Para que o algoritmo funcione corretamente, deve-se alterar a linha 21, de c += count( countValue, array, i ); para c += count(countValue, array, i + 1); PORQUE II- Da forma como o código está escrito, o código não compilará por estar chamando o mesmo método dentro dele indefinidamente. Assinale a alternativa CORRETA:
A
As duas asserções são proposições verdadeiras, mas a segunda não é uma justificativa correta da primeira.
B
As duas asserções são proposições falsas.
C
A primeira asserção é uma proposição verdadeira, e a segunda, uma proposição falsa.
D
A primeira asserção é uma proposição falsa, e a segunda, uma proposição verdadeira.
10
Uma linguagem verbosa é uma linguagem que necessita de muitas palavras e/ou palavras muito longas ou até mesmo muitos símbolos para descrever um programa. Isso tem pontos positivos e pontos negativos. Muitos que dizem que uma linguagem mais verbosa está mais próxima da nossa linguagem natural, devido a isso seria mais legível. Porém, como vemos hoje em dia, as linguagens tornam-se cada vez menos verbosas. Tipicamente quanto menos verboso, mais fácil/rápido é de compreender o código (embora não seja regra). 
Dentre as linguagens de programação, assinale a alternativa CORRETA que corresponde a uma linguagem verbosa:
A
Visual Basic da Microsoft.
B
Python.
C
Java da Oracle.
D
Ruby.

Outros materiais