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.
algoritmo "SomaGauss"
// Seção de Declarações
Var
a1,an,n:inteiro
soma:real
Inicio
// Seção de Comandos
escreva("Entre com o a1 ")
Proposta A 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
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
RESPOSTA: A alternativa correta é a alternativa ‘E’, nenhuma das propostas está correta.
Pois a proposta ‘A’ está errada, pois está somando a1+na1 + na1+n em vez de a1+ana1 +
ana1+an. Logo, a proposta ‘A’ está incorreta. Proposta ‘B’ está errada, pois está somando
a1+na1 + na1+n ao invés de a1+ana1 + ana1+an. Assim, a proposta ‘B’ está incorreta.
Proposta ‘C’ está errada pois na fórmula, n×ann \times ann×an é calculado antes da soma
com a1a1a1, o que não corresponde à fórmula correta. Portanto, a proposta ‘C’ está
incorreta.
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
algoritmo "Placacarro"
// Seção de Declarações
Var
a,d :inteiro
inicio
// Seção de Comandos
Proposta B
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
E)
Nenhuma das prospostas está correta
RESPOSTA: Apenas a Proposta A está correta, pois isola corretamente o algarismo das
dezenas. Nesse código o operador “% 100” extrai os dois últimos dígitos do número, e o
operador “\ 10” pega o valor das dezenas. Para um número como 1234:
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
RESPOSTA: A alternativa E está correta, com a saída "3" para as entradas 1,3,2
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
RESPOSTA: A alternativa D está correta pois a hierarquia não foi levada em consideração
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
RESPOSTA: A alternativa A está correta, com a saída "273 - Frio" para a entrada 0.
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
E)
2,4,6,8,10,12,14,16
RESPOSTA: A única alternativa que corresponde à sequência de números
gerada no segundo laço é a alternativa D
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.
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.
RESPOSTA: Alternativa A está correta, pois descreve o comportamento do programa. O programa lê
o nome (com a função gets()), o sexo (com scanf("%c", &sexo)) e a idade (com scanf("%d", &idade)).
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.
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.
RESPOSTA: Alternativa C está correta. O programa acrescenta um lucro de 45% para
produtos menores que 20,00 e um lucro de 30% para produtos com valor maior ou
igual a 20,00.
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);
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);
RESPOSTA: A alternativa correta é a A. Esta alternativa está correta. A sintaxe do for está correta:
os parâmetros estão separados por ponto e vírgula (;), e a função printf está formatada
corretamente. A expressão i+4 será impressa a cada iteração.
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")
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)
RESPOSTA: A alternativa C é a correta. Correto: %s é usado corretamente para "Roberto", %d
para a idade 23, e as datas foram formatadas como strings ("02" e "01").
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.
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.
RESPOSTA: A alternativa B é a correta. O nome é impresso tantas vezes quanto o número de
caracteres da string.
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;
E)
o programa copia o que o usuário digitou para uma nova variável e a mostra na tela;
RESPOSTA: A alternativa D é a correta. Correto: strlen conta o número de caracteres da string e o
programa imprime esse valor.
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
E)
Número com ponto flutuante e um Endereço de memória
RESPOSTA: A alternativa D é a correta. Correto: info armazena um número do tipo float, que é
um número em ponto flutuante.
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.
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.
REPOSTA: A alternativa A é a correta. Correto: O algoritmo aplica o Método de Horner para calcular o
valor do polinômio.
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.
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.
RESPOSTA: Resposta correta C. Correto: Descreve corretamente as operações para pilhas e filas.
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
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
RESPOSTA: Resposta correta: D) 12 15 11 1.
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.
RESPOSTA: Resposta correta E. Pilhas seguem o conceito LIFO (Last In, First Out), ou seja, o último a
entrar é o primeiro a sair. Filas seguem o conceito FIFO (First In, First Out), ou seja, o primeiro a
entrar é o primeiro a sair.
18ª QUESTÃO
Faça a associação:
A) fila 1 - Spool da impressora
B) Pilha 2 - Arquivos no HD
C) Lista Ligada 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
D)
A-2, B-1, C-3
E)
A-1, B-3, C-3
RESPOSTA: Resposta correta C. A associação correta é: Fila - Spool da impressora (A-1); Pilha -
Chamada de funções (B-3); Lista ligada - Arquivos no HD (C-2)
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
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
RESPOSTA: Resposta correta B. Em árvores binárias, cada nó pode ter no máximo duas sub-árvores,
que são chamadas de sub-árvore esquerda e sub-árvore direita. Isso é uma característica essencial de
uma árvore binária.
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
E)
Nenhuma das afirmações está correta
RESPOSTA: Resposta correta C. Verdadeira, pois somente a afirmação III está correta.