Baixe o app para aproveitar ainda mais
Prévia do material em texto
LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO ESTUDOS DISCIPLINARES 1ª QUESTÃO Enunciado Certo dia o professor de Johann Friederich Carl Gauss (aos 10 anos de idade) mandou que os alunos somassem os números de 1 a 100. Imediatamente Gauss achou a resposta – 5050 – aparentemente sem cálculos. Supõe-se que já aí, Gauss, houvesse descoberto a fórmula de uma soma de uma progressão aritmética. Agora você, com o auxílio dos conceitos de algoritmos e da pseudo-linguagem PORTUGOL, foram apresentados três propostas de algoritmos que realiza a soma de uma P.A. de N termos, com o primeiro a1 e o último an. Proposta A algoritmo "SomaGauss" // Seção de Declarações Var a1,an,n:inteiro soma:real Inicio // Seção de Comandos escreva("Entre com o a1 ") leia(a1) escreva("Entre com o n") leia(n) escreva("Entre com o a",n) leia(an) soma<-((a1+n)*an)/2 escreva("Soma ",soma) Fimalgoritmo Proposta B algoritmo "SomaGauss" // Seção de Declarações Var a1,an,n:inteiro soma:real Inicio // Seção de Comandos escreva("Entre com o a1 ") leia(a1) escreva("Entre com o n") leia(n) escreva("Entre com o a",n) leia(an) soma<-(a1+n)*an/2 escreva("Soma ",soma) Fimalgoritmo Proposta C algoritmo "SomaGauss" // Seção de Declarações Var a1,an,n:inteiro soma:real Inicio // Seção de Comandos escreva("Entre com o a1 ") leia(a1) escreva("Entre com o n") leia(n) escreva("Entre com o a",n) leia(an) soma<-a1+n*an/2 escreva("Soma ",soma) Fimalgoritmo Alternativas A) Apenas a proposta A está correta Justificativa: a única correta pois é onde a expressão matemática esta escrita corretamente seguindo a formula, na B e C elas não seguem a expressão matematica B) Apenas a proposta B está correta C) Apenas a proposta C está correta D) Mais de uma proposta correta E) Nenhuma das propostas está correta 2ª QUESTÃO Enunciado Considere que o número de uma placa de veículo é composto por quatro algarismos. foram apresentados três propostas de algoritmos em PORTUGOL que leia este número e apresente o algarismo correspondente à casa das dezenas. (considere % = mod e \ = div) Proposta A...... algoritmo "Placacarro" // Seção de Declarações Var a,d :inteiro inicio // Seção de Comandos escreva("Entre com o numero de 4 dígitos") leia(a) d<-a % 100 \ 10 escreva("O algarismo das dezenas é ",d) fimalgoritmo Proposta B algoritmo "Placacarro" // Seção de Declarações Var a,d :inteiro inicio // Seção de Comandos escreva("Entre com o numero de 4 dígitos") leia(a) d<-a % 1000 \ 100 escreva("O algarismo das dezenas é ",d) fimalgoritmo Proposta C algoritmo "Placacarro" // Seção de Declarações Var a,d :inteiro inicio // Seção de Comandos escreva("Entre com o numero de 4 dígitos") leia(a) d<-a \ 1000 escreva("O algarismo dos dezenas é ",d) fimalgoritmo Alternativas A) Apenas a proposta A está correta B) Apenas a proposta B está correta C) Apenas a proposta C está correta D) Mais de uma proposta está correta Justificativa: Tanto a A quando a B funcionam para para pegar apenas a casa das dezenas. A proposta A consegue fazer isso aplicando o operador % (resto da divisão) para pegar os dois últimos dígitos do número (a % 100), e em seguida é aplicado o operador \ (divisão inteira) para pegar o algarismo das dezenas (a % 100 \ 10). A proposta B é bem semelhante so que ele pega os 3 ultimos números e faz a divisão por 100 E) Nenhuma das prospostas está correta 3ª QUESTÃO Enunciado Dado o seguinte programa: Programa p1; var i,j,k:inteiro inicio leia(i) leia(j) leia(k) se (i>j) e (i>k) então escreva(i) senão se j>k ntão escreva(j) senao escreva(k) fimse fimse fim. Considere as entradas, faça o teste de mesa e assinale aquele em que a saída seja correta: Alternativas A) Entrada respectivamente 3 e 1 e 2 Saída: 3 2 1 B) Entrada respectivamente 1 e 3 e 2 Saída: 2 C) Entrada respectivamente 1 e 2 e 3 Saída: 6 D) Entrada respectivamente 3 e 2 e 1 Saída: 1 E) Entrada respectivamente 1 e 3 e 2 Saída: 3 Justificativa: primeiro o laço verifica a variável I se ela é maio que J e K, no caso I é 1, menor que as outras duas, depois verifica se J é maior que K, no caso essa afirmação é verdadeira para as entradas, então ele finaliza o laço. 4ª QUESTÃO Enunciado Para ocorrer a aprovação dos cursos de tecnologia na UNIP os alunos devem ter a média final maior ou igual a 5 (cinco). O cálculo da média segue a seguinte fórmula: Para auxiliar um aluno desenvolveu o seguinte programa: algoritmo "Ex" var B1,B2,PIM,MF:real inicio leia(B1) leia(B2) leia(PIM) MF<-4*B1 + 4*B2 + 2 * PIM /10 se MF >= 5 entao escreva("aprovado") senao escreva("Reprovado") fimse fimalgoritmo Acontece que um aluno tirou 1 (um) na B1, 2,5 (dois e meio) na B2 e 5 (cinco) no PIM, e o programa indicou erroneamente aprovação. Qual a explicação? Alternativas A) A expressão da condicional está invertida B) As variáveis estão declaradas com o tipo errado C) A distribuição dos pesos estão incorretas D) Não foi levada em consideração a hierarquia das operações E) O programa está correto e possivelmente houve um erro na digitação dos valores 5ª QUESTÃO Enunciado 1. Dado o seguinte algoritmo: Programa ProvaE01; Const Qt=’quente’; Fr=’Frio’; Kelvin=273; Var entrada,atual:inteiro; Inicio Leia(entrada); Atual<- Kelvin+entrada; Se atual>=283 entao Escreva(atual,’-‘,qt) Senão Escreva(atual,’-‘,fr); Fim. Assinale a correta: Alternativas A) Entrada: 0 Saída 273 -fr B) Entrada: -1 Saída 273 -frio C) Entrada: 230 Saída 283 -quente D) Entrada: 10 Saída 283 -qt E) Entrada: -10 Saída 263 -Frio Justificativa: é a única opção que tem a saída correta, que executa a operação matemática e traz o valor armazenado na variável ‘fr’ 6ª QUESTÃO Enunciado Qual a saída do programa abaixo? #include<stdio.h> #include<stdlib.h> void main() { int x; for(x=1;x<=19;x++) printf("%c",'*'); printf("\n"); for(x=0;x<=14;x=x+2) printf("%d ",x); printf("\n"); for(x=1;x<=19;x++) printf("%c",'*'); printf("\n"); system("pause"); } Alternativas A) 1,2,3,6,8,10,12,14 B) 0,2,4,5,8,11,12,14 C) 1,2,3,4,5,6,7,8,9 D) 0,2,4,6,8,10,12,14 Justificativa: o Segundo laço for ele inicializa X como 0 e vai adicionando de 2 em 2 ate 14, trazendo apenas os números pares de 0 a 14 E) 2,4,6,8,10,12,14,16 7ª QUESTÃO Enunciado O que o programa abaixo faz? #include <iostream.h> #include <stdlib.h> #include <stdio.h> #include <math.h> main() { char nome[30], sexo; int idade; printf("Informe seu nome: "); gets(nome); printf("Informe seu sexo: "); scanf("%c",&sexo); printf("Informe sua idade: "); scanf("%d",&idade); if (sexo == 'f' || sexo == 'F' && idade < 25) printf("\n%s. ACEITA.\n\n", nome); else printf("\nNAO ACEITA.\n\n"); system("PAUSE"); return 0; } Alternativas A) Lê o nome, sexo e idade. Verifica se sexo for feminino e idade menor que 25 o sistema imprime o nome da pessoa e a palavra ACEITA, caso contrario imprime NAO ACEITA. Justificativa: essa opção é a que melhor descreve o programa, no if ele verifica se o sexo é igual a ‘f’ ou ‘F’ e também se a idade é menor que 25, se essas condições forem verdadeiras ele vai imprimir o ‘ACEITA’,caso essa condição não foi verdadeira ele cai no else onde ele vai imprimir ‘NÃO ACEITA’ B) Lê o nome, sexo e idade. Verifica se sexo for masculino e idade menor que 25 o sistema imprime o nome da pessoa e a palavra ACEITA, caso contrario imprime NAO ACEITA. C) Lê o nome, sexo e idade. Verifica se sexo for masculino e idade maior que 25 o sistema imprime o nome da pessoa e a palavra ACEITA, caso contrario imprime NAO ACEITA. D) Lê o nome, sexo e idade. Verifica se sexo for feminino e idade maior que 25 o sistema imprime o nome da pessoa e a palavra ACEITA, caso contrario imprime NAO ACEITA. E) Lê o nome, sexo e idade. Verifica se sexo for feminino e idade menor que 25 o sistema imprime o nome da pessoa e a palavra NAO ACEITA, caso contrario imprime ACEITA. 8ª QUESTÃO Enunciado Qual é a saída o programa abaixo ? #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <math.h> void main() { float valor_produto; printf("Informe o valor do produto: "); scanf("%f", &valor_produto); if (valor_produto < 20) printf("O valor da venda eh %3.2f\n", valor_produto * 1.45); else printf("O valor da venda eh %3.2f\n", valor_produto * 1.30); system("pause"); } Alternativas A) Acrescenta um lucro de 145% se o valor da compra do produto pelo comerciante for maior que 20,00; caso contrário, o lucro será de 130%. O usuário deverá entrar com o valor do produto e imprimir o valor da venda. B) Acrescenta um lucro de 45% se o valor da compra do produto pelo comerciante for maior que 20,00; caso contrário, o lucro será de 30%. O usuário deverá entrar com o valor do produto e imprimir o valor da venda. C) Acrescenta um lucro de 45% se o valor da compra do produto pelo comerciante for menor que 20,00; caso contrário, o lucro será de 30%. O usuário deverá entrar com o valor do produto e imprimir o valor da venda. Justificativa: Essa opção é a que melhor descreve o programa por que no if ele verifica se o valor do produto é menor que 20, se for verdadeiro ele vai multiplicar o valor por 1.45, que representa o valor do produto + 45% do valor do produto, trazendo o lucro de 45%, caso contrario ele vai multiplicar o valor do produto por 1.30, trazendo 30% de lucro D) Acrescenta um lucro de 145% se o valor da compra do produto pelo comerciante for menor que 20,00; caso contrário, o lucro será de 130%. O usuário deverá entrar com o valor do produto e imprimir o valor da venda. E) Acrescenta um lucro de 30% se o valor da compra do produto pelo comerciante for maior que 20,00; caso contrário, o lucro será de 145%. O usuário deverá entrar com o valor do produto e imprimir o valor da venda. 9ª QUESTÃO Enunciado No que se refere a forma de declaração de um laço for, é correto afirmar: Alternativas A) for (i=1 ; i<5 ; i++) printf("O valor é %d ", i+4); Justificativa: Bom pela cara do código isso parece linguagem C, e essa alternativa é a que representa o laço for da maneira correta em C for (inicialização; condição; incremento/decremento) todas as outras tem problemas de sintaxe, seja que os termos estão separados por virgulas, ou o ponto e virgula no local errado. B) for(i=1 , i<5 , i++) printf(“O valor é: %d ”, i+4) C) for(i=1; i<5 , i ++) printf(“O valor é %d ” ; i+4); D) for(i=1 , i<5 , i++); printf(“O valor é %d”, i+4); E) for(i=1 ; i<5 ; i++); printf(“O valor é %d”, i+4); 10ª QUESTÃO Enunciado Como foi escrito : "Meu nome é Roberto tenho 23 anos e o meu aniversario é 02/01" aonde os sublinhados são variáveis Alternativas A) printf("Meu nome é %a tenho %s anos o meu aniversario é s/%d",Roberto,23,2,1) B) printf("Meu nome é %s tenho d anos o meu aniversario é d/%d","Roberto",23,2,1) C) printf("Meu nome é %s tenho %d anos o meu aniversario é %s/%s","Roberto",23,"02","01") Justificativa: Única opção que entrega as especificadores coretos para o tipo de dado e a sintaxe correta, os outros tem problemas em declaração de variável, formatação incorreta de data, especificadores inválidos D) printf("Meu nome é %s tenho %d anos o meu aniversario é s/%s","Roberto",23,2,1) E) printf("Meu nome é %s tenho %2 anos o meu aniversario é s/%s",Roberto,23,2,1) 11ª QUESTÃO Enunciado Qual a saída produzida deste programa? #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <math.h> #include <string.h> void main() { int x,tam; char nome[30]; printf("Digite um nome: "); gets(nome); tam = strlen(nome); for (x=1; x <= tam; x++) printf("\n%s",nome); printf("\n\n"); system("pause"); } Alternativas A) Recebe do teclado um nome qualquer e imprime uma quantidade fixa do nome digitado. B) Recebe do teclado um nome qualquer e imprime tantas vezes quantos forem seus caracteres. Justificativa: Nessa linha tam = strlen(nome); Ele verifica o tamanho da string, nesse laço for (x=1; x <= tam; x++) ele inicia a variável X com o valor 1 e vai adicionando mais um enquanto x for menor que o tamanho da string, e para cada vez que o retorno desse laço for é verdadeiro ele imprime o nome C) Recebe do teclado um nome qualquer e imprime 30 vezes o nome digitado. D) Recebe do teclado um nome qualquer e imprime todos os caracteres repetindo 30 vezes cada um. E) Recebe do teclado um nome qualquer e imprime todos os caracteres Uma vez. 12ª QUESTÃO Enunciado O que faz a função STRLEN no trecho do programa abaixo, marque a alternativa corre: void funcaoX( ) { int len; scanf ("%s", &palavra); len = strlen (palavra) printf (len); } Alternativas A) o programa concatena as expressões; B) o programa zera as expressões e permite a entrada de outros dados; C) o programa permite que o usuário entre c/ dados e mostre na tela o valor hexadecimal; D) o programa conta os caracteres que o usuário digitou e mostra a quantidade na tela; Justificativa: essa é a alternativa que melhor descreve a função strlen ele verifica a quantidade de caracteres de uma string e retorna a quantidade de caracteres na string E) o programa copia o que o usuário digitou para uma nova variável e a mostra na tela; 13ª QUESTÃO Enunciado typedef struct no{ float info; struct no* proximo; } No; typedef struct pilha{ No* primeiro; } Que tipo de valor armazenará a variável info? Alternativas A) Endereço de memória B) Estrutura No C) Estrutura pilha D) Número com ponto flutuante Justificativa: float é ponto flutuante e ele declara essa variável na segunda linha ‘float info;’ E) Número com ponto flutuante e um Endereço de memória 14ª QUESTÃO Enunciado A função abaixo recebe como parâmetros um vetor V com números reais [Vn, ...., Vo], um número real X e número inteiro n. A função retorna um valor do tipo real. Marque a alternativa correta, entre as alternativas a seguir, sobre a função e o algoritmo nela implementado. Alternativas A) O algoritmo calcula o valor de um polinômio de grau n, cujos coeficientes estão armazenados no vetor V. Justificativa: O algoritmo calcula um polinômio de grau n usando os coeficientes de V, onde x é a variável independente e j acumula o resultado. B) ) O algoritmo calcula e imprime o produto dos valores armazenados no vetor V por uma variável real x. C) O algoritmo entrará em loop infinito. D) O algoritmo calcula e imprime o somatório dos valores armazenados no vetor V. E) O algoritmo sempre retornará o mesmo valor, independentemente dos conteúdos de V, x e n. 15ª QUESTÃO Enunciado O que significa as operações push / pop em uma pilha e enqueue / dequeue numa fila, respectivamente?Alternativas A) Remove um dado na pilha / insere um dado na pilha e insere um elemento no final da fila / remove um elemento do início da fila. B) Insere um dado na pilha / remove um dado na pilha e remove um elemento no final da fila / insere um elemento do início da fila. C) Insere um dado na pilha / remove um dado na pilha e insere um elemento no final da fila / remove um elemento do início da fila. Justificativa: Descreve corretamente as operações push/pop em pilha e enqueue/dequeue em fila. D) Insere um dado na pilha / remove um dado na pilha e insere um elemento no início da fila / remove um elemento do final da fila. E) Insere um dado na fila / remove um dado na fila e insere um elemento no final da pilha / remove um elemento do início da pilha. 16ª QUESTÃO Enunciado Um programa faz as seguintes operações: I. Lê vários caracteres no teclado, e cada caractere lido é colocado dentro de uma pilha. II. Esvazia a pilha e coloca cada elemento, um depois do outro, dentro de uma fila. III. Esvazia a fila e coloca cada elemento, um depois do outro, dentro de uma outra pilha. IV. Esvazia a pilha e imprime cada elemento um depois do outro. Caso sejam introduzidos os valores 12 15 11 1 , serão impressos, ao final, os valores: Alternativas A) 1 11 15 12 Justificativa: Quando os valores são inseridos em uma pilha, eles entram na ordem em que são lidos, ao esvaziar ele utiliza o LIFO (Last in, first out) isso faz com que ele ele inverta a ordem de entrada resultando na opção A B) 12 12 15 15 11 11 1 1 C) 1 11 11 15 15 12 12 D) 12 15 11 1 E) 12 11 17ª QUESTÃO Com relação a filas, listas encadeadas e pilhas podemos afirmar: : Alternativas A) Filas seguem o conceito LIFO, ou seja, o primeiro elemento que entra na estrutura é o primeiro que sai, listas encadeadas seguem o conceito FIFO das pilhas, ou seja, o primeiro que entra é o primeiro que sai. B) Pilhas seguem o conceito FIFO, ou seja, o último elemento que entra na estrutura é o último que sai, listas encadeadas seguem o conceito LIFO das filas, ou seja, o último que entra é o primeiro que sai. C) Filas seguem o conceito FIFO, ou seja, o primeiro elemento que entra na estrutura é o último que sai, listas encadeadas não seguem o conceito LIFO das pilhas, ou seja, o último que entra é o último que sai. D) Filas seguem o conceito LIFO, ou seja, o último elemento que entra na estrutura é o último que sai, listas encadeadas não seguem o conceito FIFO das pilhas, ou seja, o primeiro que entra é o primeiro que sai. E) Pilhas seguem o conceito LIFO, ou seja, o último elemento que entra na estrutura é o primeiro que sai, filas seguem o conceito FIFO das filas, ou seja, o último que sai foi o último que entrou. Justificativa: essa é a única possível, pois LIFO é Last In First Out, traduzindo ultimo a entrar primeiro a sair, e FIFO First In First Out, traduzindo, primeiro a entrar primeiro a sair e pela logica ultimo a entrar oultimo a sair 18ª QUESTÃO Faça a associação: A) fila B) Pilha C) Lista Ligada 1 - Spool da impressora 2 - Arquivos no HD 3 - Chamada da funções Alternativas A) A-1, B-2, C-3 B) A-2, B-3, C1 C) A-1, B-3, C-2 Justificativa: Filas seguem o conceito de FIFO, e é o que ocorrem em impressões de arquivos. Pilhas seguem o conceito de LIFO, onde a função chamada é a primeira a ser encerrada. Listas ligadas não seguem conceitos nem de FIFO nem de LIFO e pode ser acessadas sem uma ordem especifica D) A-2, B-1, C-3 E) A-1, B-3, C-3 19ª QUESTÃO Enunciado Com relação a árvores binárias, assinale a afirmativa CORRETA: Alternativas A) A altura de uma árvore com um único nó raiz é zero e a altura de uma árvore vazia é negativa e vale 0 B) Por definição, uma sub-árvore de uma árvore binária é sempre especificada como sendo a sub-árvore esquerda ou a sub-árvore direita de uma árvore maior Justificativa: Uma sub-árvore é uma árvore menor que faz parte de uma árvore maior, e ela pode ser a sub-árvore esquerda ou direita de um nó pai na árvore maior. C) Uma propriedade fundamental de todas as árvores binárias é que existe mais de um caminho da raiz para qualquer nó D) Numa árvore binária, cada nó pode ter zero ou um filho E) Numa árvore binária o balanceamento é feito colocando-se os valores mais altos que a raiz na sub árvore esquerda 20ª QUESTÃO Enunciado 1. Dadas as seguintes afirmações em relação à Árvore Binária de Busca: I. Em uma árvore binária de busca, na inserção de um novo nó, compara-se a chave a ser inserida com a chave do nó analisado e, se a chave a ser inserida for menor que a chave do nó analisado, insere-se a chave na sub- árvore direita; e caso maior insere-se a chave na sub-árvore esquerda. II. A remoção na folha, o nó filho sobe para a posição do pai III. Uma das possibilidades da remoção de um nó com dois filhos, é substituindo-se o valor do nó a ser retirado pela chave do nó mais à direita da sub-árvore esquerda. Alternativas A) Apenas a afirmação I é correta B) Apenas a afirmação II é correta C) Apenas a afirmação III é correta D) Mais de uma afirmação correta Justificatriva: A afirmação I está correta porque em uma ABB, a inserção segue a regra de comparar e direcionar para a sub-árvore correta e a afirmação III tambem está correta porque, ao remover um nó com dois filhos, podemos substituir seu valor pelo valor do nó mais à direita da sub-árvore esquerda, agora a afirmação II está incorreta porque na remoção de um nó folha não há nenhum nó filho para subir para a posição do pai. E) Nenhuma das afirmações está correta
Compartilhar