Buscar

PROVA PRESENCIAL - 1 CHAMADA - ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

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 17 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 17 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 9, do total de 17 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

Prévia do material em texto

Questão 1 
Considere o seguinte trecho de um programa em português estruturado que 
utiliza estruturas lógicas. 
quantidade ← 0; 
x ← 0; 
escreva("Digite um valor numérico: "); 
leia(valor); 
enquanto (valor > 0) faca 
se (valor > x) entao 
x ← valor; 
quantidade ← 1; 
senao 
se (valor = x) entao 
quantidade ← quantidade + 1; 
fim_se; 
fim_se; 
escreva("Digite um novo valor:"); 
leia(valor); 
fim_enquanto; 
escreva ("x = ", x); 
escreva ("quantidade = ", quantidade); 
É correto dizer que: 
A) 
 
caso sejam lidos dois ou mais valores positivos, a 
variável quantidade sempre será maior que 1. 
B) 
 
se forem lidos vários valores positivos, a variável x armazena o maior deles 
e a variável quantidade conta quantas vezes ele se repetiu. 
C) 
 
se o primeiro valor lido for negativo, será impresso x = 0 e quantidade = 1. 
D) 
 
os comandos dentro da estrutura de repetição sempre serão executados 
pelo menos uma vez. 
E) 
 
o trecho utiliza estrutura condicional recursiva, pois há um 
comando se_então dentro de outro se_então. 
Questão 2 
As sub-rotinas são blocos de comandos que realizam tarefas específicas, ou 
seja, são conjuntos de instruções projetadas para cumprirem uma atividade 
singular. 
Neste contexto analise as afirmativas abaixo. 
I. Um procedimento é uma estrutura que agrupa um conjunto de comandos 
a ser executado quando ele for chamado. 
II. Um procedimento é um tipo especial de sub-rotina onde, depois de 
executada a sua chamada, o valor calculado por ele é retornado em seu 
nome, logo, ele passa a ser uma variável de uma expressão. 
III. Uma função é chamada dentro do corpo do programa principal como se 
fosse um comando e, após seu término, a execução continua a partir do 
ponto onde foi chamada. 
IV. Cada função tem acesso às variáveis do programa que o chamou 
(variáveis locais), e tem acesso às suas próprias variáveis (variáveis 
globais), que existem apenas durante sua chamada. 
Estão corretas: 
A) 
 
II e III, apenas. 
B) 
 
I e III, apenas. 
C) 
 
I e II, apenas. 
D) 
 
II e IV, apenas. 
E) 
 
I e IV, apenas. 
Questão 3 
As variáveis são muito úteis para o armazenamento de diversos tipos de 
dados. 
No contexto dos tipos de estruturas de dados, analise as afirmativas abaixo. 
I. A variável do tipo vetor possui a estrutura de uma tabela contendo 
apenas 1 coluna e N linhas ou N colunas e 1 linha. 
II. A variável do tipo matriz possui a estrutura de uma tabela contendo N 
colunas e M linhas. 
III. Ponteiro é um tipo de variável composta heterogênea. 
IV. Podemos manipular variáveis e outros recursos pelo endereço de 
memória utilizando registros. 
Assinale a alternativa correta. 
A) 
 
Somente as alternativas I e III estão corretas. 
B) 
 
Somente as alternativas I e II estão corretas. 
C) 
 
Somente a alternativa III está correta. 
D) 
 
Somente a alternativa I está correta. 
E) 
 
Somente a alternativa II está correta. 
Questão 4 
Analise as funções abaixo. 
(I): 
int fat(int n) 
{ 
if (n==0) 
return 1; 
else 
return n*fat(n-1); 
} 
(II): 
int fat(int n) 
{ 
int i = 0; 
int f = 1; 
for(i = 1; i <= n; i++) 
f = f*i; 
return f; 
} 
(III): 
int fib(int n) 
{ 
int f1 = 0; 
int f2 = 1; 
int f3, i; 
for (i = 1; i <= n; i++) 
{ 
f3 = f2 + f1; 
f1 = f2; 
f2 = f3; 
} 
return f1; 
} 
(IV): 
void torre (int n, char a, char b, cahr c) 
{ 
if (n > 0) 
{ 
torre(n – 1, a, b, c); 
printf("mover de %c para %c", a, b); 
torre(n – 1, c, b, a); 
} 
} 
São funções recursivas as funções dadas em: 
A) 
 
II e IV, apenas. 
B) 
 
II e III, apenas. 
C) 
 
I e II, apenas. 
D) 
 
I e III, apenas. 
E) 
 
I e IV, apenas. 
Questão 5 
Dada a estrutura abaixo: 
struct produto 
{ 
int codigo; 
char descricao[30]; 
float preco; 
}; 
Essa estrutura é considerada: 
A) 
 
estrutura de dados encadeada. 
B) 
 
estrutura de dados recursiva. 
C) 
 
estrutura de dados heterogênea. 
D) 
 
estrutura de dados homogênea. 
E) 
 
estrutura de dados sequencial. 
Questão 6 
Considere o programa na linguagem C dado abaixo. 
#include < stdio.h > 
#include < math.h > 
int main() 
{ 
int valor; 
valor = 10; 
if (valor%2 == 0) 
{ 
printf("a"); 
} 
else 
{ 
printf("b"); 
} 
if (valor >= 12) 
{ 
printf("c"); 
} 
return 0; 
} 
Qual o resultado final do programa? 
A) 
 
a. 
B) 
 
b. 
C) 
 
bc. 
D) 
 
ac. 
E) 
 
c. 
Questão 7 
Para definir uma função, empregamos a seguinte forma básica: 
< tipo > < nome >([< tipo de parâmetros >][< parâmetros >]) 
} 
//declarações; 
//comandos; 
} 
De acordo com a forma de representação de uma função, analise as 
afirmativas abaixo. 
I. < tipo > refere-se ao tipo de entrada que a função receberá; este tipo 
deve ser void se a função não tiver valor de entrada; 
II. < nome > é o identificador da função no resto do programa; 
III. < parâmetros > 
é uma lista de variáveis que representam valores de entrada para a função; 
IV. Dentro do corpo da função, a primeira seção é destinada à declaração 
das variáveis globais. 
Estão corretas: 
A) 
 
I e IV, apenas. 
B) 
 
II e IV, apenas. 
C) 
 
I e III, apenas. 
D) 
 
I e II, apenas. 
E) 
 
II e III, apenas. 
Questão 8 
A estrutura de repetição para é utilizada quando se sabe o número de vezes 
em que um trecho do algoritmo deve ser repetido. 
Observe o algoritmo a seguir: 
Algoritmo_Prova; 
var 
inteiro: a, b, c, i; 
inicio 
a ← 0; 
b ← 1; 
c ← 1; 
para i ← 2 ate 6 passo 1 faca 
c ← a + b; 
a ← b; 
b ← c; 
fim_para; 
escreva(b); 
fim. 
Assinale a alternativa que contém o que será impresso. 
A) 
 
2. 
B) 
 
7. 
C) 
 
9. 
D) 
 
8. 
E) 
 
4. 
Questão 9 
A linguagem de programação é a linguagem de comunicação de ideias entre 
o computador e as pessoas. 
Neste contexto, analise as afirmativas abaixo marcando V para as 
verdadeiras e F para as falsas. 
( ) A linguagem de máquina apresenta vários inconvenientes pois todas as 
operações são escritas como conjuntos de uns e zeros para que possam 
ativar diretamente os dispositivos eletrônicos do computador. 
( ) Os ambientes em que escrevemos nosso código na linguagem C 
possuem um programa que é capaz de transformar esse código em um 
escrito em linguagem de máquina. Este programa é chamado interpretador. 
( ) Se existir erro de semântica em um código significa que algum comando 
ou instrução existente no programa foi escrito de maneira incorreta e o 
programa não poderá ser executado. 
( ) Quando existem erros de sintaxe em um código significa que alguma 
instrução não está fazendo o que queríamos que fizesse e os resultados 
apresentados pelo programa não serão corretos. 
Assinale a alternativa que apresenta a sequência correta. 
A) 
 
V – V – V – V. 
B) 
 
V – F – F – F. 
C) 
 
F – F – V – F. 
D) 
 
V – F – V – F. 
E) 
 
F – V – V – V. 
Questão 10 
As variáveis e as constantes são locais reservados na memória para 
armazenamento dos dados e cada uma possui um nome próprio para sua 
identificação. 
Sobre os conceitos de variáveis e constantes, analise as afirmativas abaixo. 
I. Em um algoritmo, uma constante é um espaço físico na memória, 
identificada por um nome, que pode sofrer alteração durante a execução do 
programa. 
II. Enquanto as variáveis só "existem" em tempo de execução, elas são 
associadas a "nomes", chamados identificadores, durante o tempo de 
desenvolvimento. 
III. O escopo de uma variável é definido pelos blocos onde a variável pode 
ser utilizada; variáveis diferentes declaradas no mesmo escopo não 
precisam ter nomes diferentes. 
IV. É uma boa prática de programação sempre inicializar as variáveis para 
evitar que recebam dados que estejam na memória. 
Assinale a alternativa correta. 
A) 
 
Apenas as afirmativas I e III estão corretas. 
B) 
 
Apenas as afirmativas II e IV estão corretas. 
C) 
 
Apenasas afirmativas I e II estão corretas. 
D) 
 
Todas as afirmativas estão corretas. 
E) 
 
Apenas as afirmativas II e III estão corretas. 
Questão 11 
Considere o código-fonte abaixo, desenvolvido na linguagem de 
programação "portugol". 
Algoritmo_Prova; 
var 
 inteiro: x, y, z, k, resultado; 
inicio 
 x ← 2; 
 y ← 4; 
 z ← 9; 
 k ← 3; 
 resultado ← 0; 
 se ((x < y + k) e (k*2 > 4) e (z + k < 12)) entao 
 resultado ← 1; 
 senao 
 se ((y + 10 < z) ou (z > 12)) entao 
 resultado ← 2; 
 senao 
 se ((x + 2) >= (y – 4)) entao 
 resultado ← 3; 
 senao 
 resultado ← 4; 
 fim_se; 
 fim_se; 
 fim_se; 
 escreva(resultado); 
fim 
O número impresso ao final da execução deste código-fonte é: 
A) 
 
0. 
B) 
 
2. 
C) 
 
4. 
D) 
 
1. 
E) 
 
3. 
Questão 12 
A atribuição se refere ao ato de atribuir um(a) valor/informação a uma 
variável. 
Analise o algoritmo abaixo. 
Algoritmo_Prova; 
var 
inteiro: x, z, y; 
caracter: c; 
inicio 
x ← 15; 
y ← 40; 
z ← x; 
x ← y; 
y ← z; 
c ← ‘x’; 
escreva(x, y, c); 
fim. 
Quais os valores de x, y e c, respectivamente, que serão impressos na tela 
ao término da execução do algoritmo? 
A) 
 
15, 40, 15. 
B) 
 
40, 15, 40. 
C) 
 
40, 40, x. 
D) 
 
15, 40, x. 
E) 
 
40, 15, x. 
Questão 13 
Variáveis podem armazenar conjuntos de informações em vetores e/ou 
matrizes desde que os elementos desses conjuntos sejam do mesmo tipo, 
mas, em muitos casos, é necessário trabalhar com um conjunto de dados 
de tipos distintos.Para resolver esse problema, poderá ser usada uma 
estrutura de dados chamada de registro. 
De acordo com o contexto acima, analise as afirmativas abaixo. 
I. Um registro reúne uma informação de vários objetos. 
II. Cada informação é considerada um tipo de dado ou campo de registro. 
III. Registros são estruturas de dados heterogêneas. 
Assinale a alternativa correta: 
A) 
 
Somente as afirmativas I e III estão corretas. 
B) 
 
Somente as afirmativas I e II estão corretas. 
C) 
 
Somente a afirmativa II está correta. 
D) 
 
Somente a afirmativa III está correta. 
E) 
 
Somente a afirmativa I está correta. 
Questão 14 
As estruturas de dados homogêneas permitem agrupar diversas 
informações dentro de uma mesma variável. Este agrupamento ocorre 
obedecendo sempre ao mesmo tipo de dado. 
Considere o seguinte algoritmo: 
Algoritmo_Prova; 
var 
inteiro: x[20]; 
inicio 
para i ← 1 ate 10 passo 1 faca 
x[i] ← i*3; 
fim_para; 
fim. 
Assinale a alternativa que contém os dados armazenados em cada posição 
do vetor, da primeira até a última, respectivamente, após a execução do 
código. 
A) 
 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10. 
B) 
 
0, 1, 2, 3, 4, 5, 6, 7, 8, 9. 
C) 
 
3, 4, 5, 6, 7, 8, 9, 10, 11, 12. 
D) 
 
3, 6, 9, 12, 15, 18, 21, 24, 27, 30. 
E) 
 
2, 4, 6, 8, 10, 12, 14, 16, 18, 20. 
Questão 15 
Quando uma sub-rotina não retorna um valor para o programa que a 
chamou, ela é declarada como: 
A) 
 
void. 
B) 
 
float. 
C) 
 
char. 
D) 
 
int. 
E) 
 
double. 
Questão 16 
A atribuição se refere ao ato de atribuir um(a) valor/informação a uma 
variável. 
Analise o algoritmo abaixo. 
Algoritmo_Prova; 
var 
 inteiro: x, z, y; 
inicio 
 x ← 5; 
 y ← 30; 
 z ← y – x*2; 
 escreva(z); 
 x ← 20; 
 y ← x – z/2; 
 escreva(y); 
fim. 
Quais os valores que serão impressos para z e y, respectivamente? 
A) 
 
10 e 10. 
B) 
 
20 e 0. 
C) 
 
20 e 20. 
D) 
 
20 e 10. 
E) 
 
0 e 20 
 
	Questão 1
	Questão 2
	Questão 3
	Questão 4
	Questão 5
	Questão 6
	Questão 7
	Questão 8
	Questão 9
	Questão 10
	Questão 11
	Questão 12
	Questão 13
	Questão 14
	Questão 15
	Questão 16

Continue navegando