Baixe o app para aproveitar ainda mais
Prévia do material em texto
1a Questão (Ref.: 201502370902) Pontos: 0,1 / 0,1 As funções em programação permitem que se possa realizar a modularização do código diminuindo assim sua complexidade. Analise a função abaixo e assinale alternativa que descreve corretamente o tipo de função: int funcao (int x){ if(x == 0) return 0; else funcao(x-1); } Recursiva Igual a zero Passagem por referência Condicional de seleção Sequencial 2a Questão (Ref.: 201503008436) Pontos: 0,1 / 0,1 Supondo que um vetor de inteiros vet foi preenchido com a seguinte sequência de números 24, 11, 50, 45, 12, 34, 10, 53, 9, 29 . Qual o valor da variável temp, analisando o trecho de código abaixo desenvolvido em C? 1. int vet[10]; 2. int temp = vet[0]; 3. for (int i = 0; i < 10; i++) { 4. if(vet[i] >= temp ) { 5. vet[i] = temp; 6. } 7. } 8. printf("%d", temp); 24 29 50 53 0 3a Questão (Ref.: 201502948494) Pontos: 0,0 / 0,1 A forma correta para imprimir o valor do último elemento de um vetor v com n posições é: cin >> v[-1]; cout << v[n]; cout << v[ultimo]; cout << v[n+1]; cout << v[n-1]; 4a Questão (Ref.: 201503095332) Pontos: 0,1 / 0,1 o programa de computador necessita preencher uma lista de alunos (nome e nota) até que a lista esteja cheia. Sabe-se que a lista tem capacidade para 25 alunos. Utilizando agregados heterogêneos, qual o trecho de código que exibe a melhor forma de solucionar este problema? for (int i = 0; i <= 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; } int i = 0; while( i < 25) { cin >> lista[i].nome; cin >> lista[i].cargo; i ++; } for (int i = 0; i < 25; i++) { cin >> lista[i]->nome; cin >> lista[i]->nota; } for (int i = 0; i < 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; } for (int i = 0; i < 25; i++) { cin >> lista->nome; cin >> lista->nota; } 5a Questão (Ref.: 201503033895) Pontos: 0,1 / 0,1 O QUE IRÁ APARECER NA TELA APÓS A EXECUÇÃO DO PROGRAMA ABAIXO: 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1a Questão (Ref.: 201502438056) Pontos: 0,1 / 0,1 Assinale a opção certa. Quando não se escreve o protótipo de uma função ... A chamada da função poderá ser feita em qualquer hipótese. É preciso definir a função antes do programa principal. A definição da função deverá ser escrita, obrigatoriamente, após o programa principal. A chamada da função não poderá ser feita em qualquer hipótese. O programa não funcionará de forma alguma. Gabarito Comentado. 2a Questão (Ref.: 201502984449) Pontos: 0,1 / 0,1 Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, geralmente, agrupados sob uma lógica e associados por um nome. Esses elementos podem ser variáveis simples, matrizes ou ainda outras estruturas. Seja a definição de uma estrutura como: struct aluno { string nome; float nota; }; Suponha ainda que exista um vetor desta estrutura, definido como: aluno vet [100]; Marque a alternativa em que é atribuída de forma correta a nota 5.7 para o décimo primeiro elemento deste vetor. vet[10].aluno.nota=5.7 ; aluno.vet[10].nota=5.7; aluno.vet[10]=5.7; vet[10]=aluno.5.7; vet[10].nota=5.7; 3a Questão (Ref.: 201502601651) Pontos: 0,1 / 0,1 Considere a seguinte função: void dobro(int x) { x = 2 * x; } Qual valor será impresso na tela quando o seguinte programa principal for executado? int main() { int n; n = 5; dobro(n); cout << n; return 0; } Haverá um erro de compilação 20 0 10 5 4a Questão (Ref.: 201502370906) Pontos: 0,1 / 0,1 As estruturas de dados são importantes para a programação porque facilitam a pesquisa, pois permitem a ordenação dos dados de forma crescente ou decrescente. Dessa forma, assinale a alternativa correta que define um tipo de dado estruturado. Permitem agregar mais do que um valor em uma variável, existindo uma relação estrutural entre seus elementos. Podem armazenar apenas um valor de cada vez, se algum valor for atribuído o anterior é apagado. Consiste da definição do conjunto de valores (denominado domínio) que uma variável pode assumir ao longo da execução de um programa. São tipos de dados indivisíveis. Também são denominados tipos primitivos, não é possível decompor em partes menores. Gabarito Comentado. 5a Questão (Ref.: 201502961797) Pontos: 0,1 / 0,1 Os irmãos Silva irão viajar por vários países da Europa e por isso, traçaram no mapa o percurso que farão, de cidade a cidade. Qual a estrutura de dados mais adequada para modelar este problema ? Grafo Fila Lista Pilha Árvore 1a Questão (Ref.: 201502370349) Pontos: 0,1 / 0,1 Um apontador é uma variável que contém o endereço de outra variável. Apontadores são muito usados, em parte porque são, às vezes, a única forma de se expressar um processo de computação e, em parte, porque, normalmente, implicam um código mais compacto e eficiente que o obtido de outras formas. Considerando o uso de apontadores nas linguagens procedurais atuais, julgue os itens que se seguem com E se for errado e C se for certo. ( ) O uso de apontadores como argumentos de funções que realizem chamada por valor não permite alteração de seus conteúdos de memória na função. ( ) Com apontadores, é possível criar funções que retornem estruturas de dados complexas. ( ) Para recuperar o valor da variável apontada, basta que o apontador seja atribuído a uma variável de mesmo tipo. ( ) Arranjos de apontadores podem ser usados em funções que recebam como argumentos um número variável de cadeias de caracteres. ( ) Em geral, para que um arranjo seja percorrido por um ponteiro, para cada elemento do arranjo deve-se adicionar ao ponteiro o número de bytes que o elemento ocupa em memória. d) E - C - E - C - C b) C - C - E - E - E e) C - E - C - E - C c) E - E - C - C - E a) E - C - E - C - E Gabarito Comentado. 2a Questão (Ref.: 201503018431) Pontos: 0,1 / 0,1 q Considere int *p, *q, *r; int x = 10, y = 20; Após seguir cada instrução na ordem dada a seguir : p = &x; q = &y; *p = *p + *q; (*q)++; r = q; q = p; identifique a opção que fornece correta e respectivamente, os valores de *p, *q , *r , x e y : 30 21 21 10 20 30 20 0 30 21 30 30 21 30 21 30 30 21 10 20 30 20 20 10 20 3a Questão (Ref.: 201502940753) Pontos: 0,1 / 0,1 As estruturas de dados são utilizadas para manter dados ou informações organizados na memória, o que possibilita a otimização do uso destes dados. Porém, as estruturas guardam características especiais na manipulação destes dados, assim deve-se escolher a estrutura certa ou mais adequada para uma determinada aplicação. Portanto marque a opção que representa a melhor estrutura, quando se tem como requisitos principais a ordem reversa dos de armazenamento de dados e alocação destes de forma contínua na memória. Lista Sequencial PilhaSequencial Lista Encadeada Fila Sequencial Pilha Encadeada 4a Questão (Ref.: 201502933984) Pontos: 0,0 / 0,1 Estude atentamente o código a segir: int deciframe(int v[ ], int tam, int e){ int i = 0, f = tam -1, m; while ( i <= f ){ m = ( i + f ) / 2; if ( v[m] == e ) { return m; } if ( e < v[m] ) { f = m - 1; } else { i = m + 1; } } return -1; } Sabendo que a chamada da mesma foi feita com os parâmetros: v[10] = {0, 2, 4, 6, 8, 10, 20, 100} tam = 8 e = 6 É sabido que a mesma retornaria o valor 3, porque: Seria o retorno do while Porque ele não achou o elemento na coleção É a metade do valor de e É a posição do elemento e no vetor v Seria o retorno do segundo if 5a Questão (Ref.: 201502370888) Pontos: 0,1 / 0,1 Sistemas operacionais utilizam filas para gerenciar, tarefas, processos e recursos. Qual é a ordenação dos elementos armazenados aleatoriamente em uma lista do tipo LIFO? Primeiro que entra é o primeiro a sair Ordem crescente Posições aleatórias Ordem decrescente Ordem de entrada 1a Questão (Ref.: 201503019168) Pontos: 0,1 / 0,1 Diga, para o trecho do programa abaixo, qual a opção que representa a saída em tela. (Considere que o programa será compilado sem erros, e irá executar também sem problemas). void troca (int x, int *y){ int tmp; tmp = *y; *y = x; x = tmp; } int main() { int a = 13, b = 10; troca( a, &b ); cout<<"Valores: "<< a<<"\t"<< b< system("pause"); } Valores: 10 10 Valores: 13 10 Valores: 10 13 Valores: 31 01 Valores: 13 13 2a Questão (Ref.: 201502370787) Pontos: 0,1 / 0,1 Suponha que uma pilha, P1, esta descrita através de uma lista encadeada como apresentado na figura a seguir: Imagine uma segunda pilha, P2, inicialmente vazia. Suponha ainda que, a pilha P2 fosse preenchida com os elementos removidos de P1. Qual seria a saída apresentada na tela, caso o conteúdo da pilha P2 fosse sendo removido e, cada elemento retirado de P2, fosse apresentado na tela? Suponha agora que ao invés da pilha P2, uma fila F1 (inicialmente vazia) fosse usada. Assim, fila F1 fosse preenchida com os elementos removidos da pilha P1. Qual seria a saída apresentada na tela, caso o conteúdo da fila F1 fosse sendo removido e, cada elemento retirado de F1, fosse apresentado na tela? A resposta para cada uma das perguntas respectivamente seria. MARROCOS/SOCORRAM. SOCORRAM/SOCORRAM. SOCORRAM/MARROCOS. MARROCOS/MARROCOS. Nada seria apresentado, pois a pilha P2, assim como a fila F1 estão vazias. 3a Questão (Ref.: 201502984454) Pontos: 0,0 / 0,1 As estruturas de dados são utilizadas para manter dados ou informações organizados na memória, o que possibilita a otimização do uso destes dados. Porém, as estruturas guardam características especiais na manipulação destes dados, assim deve-se escolher a estrutura certa ou mais adequada para uma determinada aplicação. Portanto marque a opção que representa a melhor estrutura, quando se tem como requisitos principais o acesso aleatório aos dados e alocação destes de forma contínua na memória. Pilha Encadeada Lista Sequencial Pilha Sequencial Fila Sequencial Lista Encadeada 4a Questão (Ref.: 201503096218) Pontos: 0,0 / 0,1 Qual o valor de x no final do programa? int main() { int x, *p, y; x = 3; p = &x; y = *p; y = 7; (*p)++; (*p) += y; return(0); } Nenhuma das anteriores. O programa possui um erro de sintaxe. -4 7 11 3 5a Questão (Ref.: 201502933979) Pontos: 0,0 / 0,1 Estude atentamente o código a segir: int deciframe(int v[ ], int tam, int e){ int i = 0, f = tam -1, m; while ( i <= f ){ m = ( i + f ) / 2; if ( v[m] == e ) { return m; } if ( e < v[m] ) { f = m - 1; } else { i = m + 1; } }return -1; } Sabendo que a chamada da mesma foi feita com os parâmetros recebendo os seguintes valores, o que ela retornaria? v[10] = {0, 2, 4, 6, 8, 10, 20, 100} tam = 8 e = 6 4 -1 3 0 6
Compartilhar