Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

1 
 
Algoritmos e Programação Estruturada: Algoritmos para Dev 
 
 
 
 
Questão 1 
Correta 
Deitel e Deitel (2011) afirma que as comparações entre valores faz parte do processamento de 
um programa e, a partir do resultado realizar novas ações. Na programação, para compararmos 
valores usamos operadores relacionais os operadores usados nas linguagens de programação. 
Para cálculos podemos utilizar os operadores matemáticos, com poucas adaptações. 
 
Assinale a alternativa que apresenta o valor que a variável result receberá considerando o 
seguinte comando result = (a * b + (c - b) / (a-c)+ (c/b) - b) e, os seguintes valores a= 8 ,b= 3,c= 
10. 
 
Sua resposta 
Correta 
 O valor em result será 21. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2 
 
Questão 2 
Correta 
Variáveis são usadas para armazenar dados na memória de trabalho e que esses dados podem ser 
de diferentes tipos (inteiro, decimal, caractere ou booleano), os quais são chamados de tipos 
primitivos. 
 
Veja um exemplo de comando para declaração de variáveis na linguagem C: 
 
int idade[3]; 
float altura[3] = {1,1.5,1.7} 
Assinale a alternativa que apresenta corretamente a função do comando exemplificado anterior. 
Sua resposta 
Correta 
Declaração de variáveis compostas do tipo vetor. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3 
 
Questão 3 
Correta 
Conforme Manzano (2015) toda vez que é necessário armazenar uma quantidade grande de 
valores do mesmo tipo, podemos utilizar as variáveis compostas ou seja um vetor. A melhor 
solução para armazenar diversos valores dentro de um mesmo contexto é utilizar variáveis 
compostas. O vetor, ao ser declarado, reserva um espaço na memória contíguo para armazenar 
seus elementos. 
 
Analise o programa a seguir. 
 
#include 
int main() 
{ 
int vetor[19],i; 
for (i = 0; i main() { int w; for ( w = 1; w código -> "enquanto essa condição for verdadeira, repita". 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7 
 
Questão 2 
Correta 
Diz-se que um número é triangular se ele é produto de três números naturais consecutivos (e.g.: 
120 é triangular pois 120 = 4*5*6). Dado um natural n, determinar se n é triangular. O trecho de 
programa a seguir demonstra esse conceito: 
 
#include 
#include 
int main () 
{ 
int cont, num; 
printf("Entre com um número: "); 
scanf("%d", &num); 
for (cont=1; num 
int main(void) 
{ 
____________; 
int resp; 
____________ 
{ 
printf("Digite a primeira nota: "); 
scanf("%f",&nota1); 
printf("Digite a segunda nota: "); 
scanf("%f",&nota2); 
____________; 
printf("Media do aluno = %f\n",media); 
printf("Digite 1 para continuar ou 2 para sair\n"); 
____________; 
_____________; 
return 0; 
} 
Assinale a alternativa que completa corretamente as lacunas: 
 
Sua resposta 
Correta 
float nota1=0,nota2=0,media=0 / do / media = (nota1 + nota2)/2 / scanf("%d", &resp) / }while 
(resp==1). 
 
 
 
 
 
 
 
 
 
 
 
 
9 
 
Questão 4 
Correta 
O laço for é uma estrutura de repetição muito utilizada nos programas em C. É muito útil quando 
se sabe de antemão quantas vezes a repetição deverá ser executada. Este laço utiliza uma variável 
para controlar a contagem do loop, bem como seu incremento. O trecho de programa a seguir 
exemplifica o comando: 
 
#include 
#include 
int main(void) 
{ 
int contador; 
for(contador = 1; contadorfonte, transforma em 
código binário e executa, repete esse processo até que 
todas as instruções do código fonte sejam executadas. 
O código é interpretado e executado em tempo real, sem 
a geração de código executável. 
2. Interpretadores 
III. É gerado um código executável sem a necessidade 
de interpretar comando por comando. Sua vantagem é a 
execução mais rápida, porém, caso necessite de 
alterações, o código fonte deverá ser editado e 
executado em máquinas de mesma arquitetura. 
3. Tradutores 
Assinale a alternativa que apresenta a associação correta. 
 
Sua resposta 
I - 3; II - 2; III - 1. 
 
A frase corretamente preenchida é: I - 3; II - 2; III - 1. Tradutores: São gerados códigos 
intermediários, onde não exige tanto espaço de memórias quanto realizado pelo código fonte. 
Interpretadores: Lê uma instrução do código fonte, transforma em código binário e executa, 
repete esse processo até que todas as instruções do código fonte sejam executadas. 
Compiladores: É gerado um código executável sem a necessidade de interpretar comando por 
comando. 
 
 
 
69 
 
Questão 8 
Sem resposta 
Pseudocódigos é considerado uma ferramenta que pode auxiliar a programação, ela 
pode ser escrita em palavras similares ao inglês ou português para facilitar a 
interpretação e desenvolvimento de um programa. Neste contexto, analise o seguinte 
algoritmo escrito em pseudocódigo. var real: v1, v2, v3, v4, N1, x; Início escreva (“Digite 
Nota 1:”); leia v1; escreva (“Digite Nota 2:”); leia v2; escreva (“Digite Nota 3:”); leia v3; 
escreva (“Digite Nota 4:”); leia v4; N1 ← v1 + v2 + v3 + v4; x ← N1 / 4; 
escreva(“Resultado = ”, x); Fim. 
Agora, assinale a alternativa correta. 
 
 
Sua resposta 
Este algoritmo armazena as notas em variáveis para depois realizar um calculo onde o restado 
final é armazenado em X e por fim é exibido. 
 
CORRETO, porque: Este algoritmo armazena as notas em variáveis: escreva (“Digite Nota 1:”); 
leia v1; escreva (“Digite Nota 2:”); leia v2; escreva (“Digite Nota 3:”); leia v3; escreva (“Digite 
Nota 4:”); leia v4; ...para depois realizar um calculo: N1 ← v1 + v2 + v3 + v4; ...onde o 
restado final é armazenado em X: x ← N1 / 4; ...e por fim é exibido: escreva(“Resultado = ”, 
x); 
 
 
 
 
 
 
 
 
 
 
 
 
70 
 
 
Questão 9 
Sem resposta 
Conforme Manzano (2015) toda vez que é necessário armazenar uma quantidade 
grande de valores do mesmo tipo, podemos utilizar as variáveis compostas ou seja um 
vetor. A melhor solução para armazenar diversos valores dentro de um mesmo contexto 
é utilizar variáveis compostas. O vetor, ao ser declarado, reserva um espaço na memória 
contíguo para armazenar seus elementos. Analise o programa a 
seguir. #include 
int main() 
{ 
int vetor[19],i; 
for (i = 0; ifoi inicializado com um valor igual a 0. 
II. Depois foi testado se a condição que envolve o contador é verdadeira (contador 
#include ____________ 
int main (void) 
{ 
 int N1, N2 ; 
 printf("Digite o primeiro numero: "); 
 _____________ 
 printf("Digite o segundo numero: "); 
 scanf("%d", &N2); 
 
 _____________ 
 printf("Os numeros são iguais!"); 
 else 
 if (N1 > N2) 
 printf("O maior valor e = %d", N1); 
 ____________ 
 printf("O maior valor e = %d", N2); 
 
 printf("\n"); 
 system("pause"); 
 ____________ 
}. 
11 
 
Assinale a alternativa que completa corretamente as lacunas: 
 
Sua resposta 
Correta 
 / scanf("%d", &N1); / if (N1 == N2) / else / return (0); 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12 
 
Questão 1 
Correta 
Conforme Forbellone e Eberspächer (2000), os operadores relacionais são utilizados para realizar 
comparações entre dois valores de um mesmo tipo. Esses valores podem ser representados por 
variáveis ou constantes. A uma comparação realizada utilizando um operador relacional dá-se o 
nome de relação. O resultado obtido de uma relação é sempre um valor lógico, ou seja, o valor 
será verdadeiro ou falso. 
 
Observe o trecho de um programa que demonstra o uso de dois if’s sequenciais ou encadeados. 
 
if (num>=0) 
 if(num%2==0) 
 printf(“O número é par e é positivo. 
\n”); 
Os operadores lógicos podem ser utilizados para otimizar os comandos de seleção, levando em 
consideração o trecho de programa apresentado, a alternativa que otimiza o comando if com a 
utilização de operadores lógicos é: 
Sua resposta 
Correta 
Revisar Questão 
if ((num>=0) && (num%2==0)) printf (“O número é positivo e é par. \n”); 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13 
 
Questão 2 
Correta 
Questão com problema? 
O laço for é uma estrutura de repetição muito utilizada nos programas em C. É muito útil quando 
se sabe de antemão quantas vezes a repetição deverá ser executada. Este laço utiliza uma variável 
para controlar a contagem do loop, bem como seu incremento. O trecho de programa a seguir 
exemplifica o comando: 
 
#include 
#include 
int main(void) 
{ 
int contador; 
for(contador = 1; contador 
#include 
main() 
{ 
int cont=0; 
while (cont código -> "enquanto essa condição for verdadeira, repita". 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16 
 
Questão 5 
Incorreta 
Questão com problema? 
Segundo Soffner (2013 p. 64), o programa “não executará nenhuma repetição (e as ações que ali 
dentro estiverem programadas) sem antes testar uma condição”. Em alguns casos, quando se 
utiliza o teste no início, pode ocorrer o famoso loop (laço) infinito (quando um processo é 
executado repetidamente). Para que isso não aconteça, é possível utilizar os seguintes recursos: 
contador, incremento e decremento, acumulador e condição de parada. Baseado nestes recursos, 
julgue as afirmações que se seguem: 
I. Contador – é utilizado para contar as repetições quando não são determinadas. 
II. Incremento e decremento – trabalha o número do contador, seja ele, aumentado ou diminuído. 
III. Acumulador somará as entradas de dados de cada iteração da repetição, gerando um 
somatório a ser utilizado quando iniciar a repetição. 
IV. Condição de parada – utilizada para determinar o momento de parar quando não se tem um 
valor exato desta repetição. 
É correto apenas o que se afirma em: 
 
Sua resposta 
Incorreta 
I, II e III. 
Solução esperada 
II e IV. 
 
 
 
 
 
 
 
 
 
 
 
 
 
17 
 
Questão 1 
Correta 
Questão com problema? 
Linguagem de programação são métodos padronizados que determinam instruções para uma 
máquina ou computador. Segundo Tucker (2010), podemos dizer que a linguagem Assembly é 
uma forma mais viável de conseguir ler a linguagem de máquina, lembrando que a linguagem 
Assembly é voltada para máquina, ou seja, trabalha diretamente nas memórias e registros do 
computador, elas são executadas diretamente pelo processador. 
 
Com base nas afirmações sobre a linguagem de programação, avalie as seguintes asserções e a 
relação proposta entre elas: 
 
I. Existem dois tipos de linguagens de programação: as de baixo nível e as de alto nível. Os 
computadores interpretam tudo como números em base binária, ou seja, só entendem zero e um. 
 
PORQUE 
 
II. A linguagem de baixo nível está mais próxima à linguagem de máquina. Assim compreendem 
as características da arquitetura do computador. Por utilizar somente as instruções do 
processador é necessário conhecer os registradores da máquina. Uma linguagem de alto nível 
está muito mais próxima do programador do que do dispositivo, ou seja, é uma linguagem muito 
mais intuitiva. 
 A respeito dessas asserções, assinale a alternativa correta. 
 
Sua resposta 
Correta 
As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I. 
 
 
 
 
 
 
 
 
 
 
18 
 
Questão 2 
Correta 
Questão com problema? 
Pode-se otimizar o uso de variáveis usando as estruturas compostas (vetor e matriz), porém só se 
pode armazenar valores de um mesmo tipo. Além das estruturas homogêneas, as linguagens de 
programação oferecem um tipo de variável composta heterogênea chamadade estruturas 
(structs), ou ainda de registros por alguns autores (SOFFNER, 2013). Assim como se associa os 
vetores e matrizes com tabelas, pode-se associar uma estrutura a uma ficha de cadastro com 
diversos campos. 
 
Na linguagem C, a criação de uma estrutura deve ser feita antes da função main() e deve possuir 
a seguinte sintaxe: 
 
struct { 
 ; 
 ; 
... 
}; 
 
De acordo com a sintaxe apresentada, julgue as afirmações que se seguem 
I. é o nome da variável. 
II. As variáveis internas dessa estrutura são os campos que se deseja guardar. 
III. Uma estrutura funciona como um “tipo de dado”.IV. O uso da estrutura sempre será atribuído 
à uma ou mais variáveis. 
É correto apenas o que se afirma em: 
 
Sua resposta 
Correta 
II, III e IV. 
 
 
 
 
 
 
 
 
 
 
19 
 
Questão 3 
Correta 
Questão com problema? 
Pseudocódigos é considerado uma ferramenta que pode auxiliar a programação, ela pode ser 
escrita em palavras similares ao inglês ou português para facilitar a interpretação e 
desenvolvimento de um programa. Neste contexto, analise o seguinte algoritmo escrito em 
pseudocódigo. 
 
var 
real: v1, v2, v3, v4, N1, x; 
Início 
escreva (“Digite Nota 1:”); 
leia v1; 
escreva (“Digite Nota 2:”); 
leia v2; 
escreva (“Digite Nota 3:”); 
leia v3; 
escreva (“Digite Nota 4:”); 
leia v4; 
N1 ← v1 + v2 + v3 + v4; 
x ← N1 / 4; 
escreva(“Resultado = ”, x); 
Fim. 
Agora, assinale a alternativa correta. 
Sua resposta 
Correta 
Este algoritmo armazena as notas em variáveis para depois realizar um calculo onde o restado 
final é armazenado em X e por fim é exibido. 
 
 
 
 
 
 
 
 
 
 
 
20 
 
Questão 4 
Correta 
Questão com problema? 
Segundo Manzano (2015), os algoritmos criados por você deverão ser convertidos em linguagens 
de alto nível, como por exemplo: a linguagem Java, Pascal, C, C++ entre outras conceituadas 
nesta seção. Você deverá escrever os códigos fontes na linguagem escolhida para que os mesmos 
se tornem executáveis, porém, cada linguagem adota um método particular para gerar o código 
executável. 
 
Considerando o contexto apresentado, faça a correta associação entre as Colunas. 
 
COLUNA A COLUNA B 
I. São gerados códigos intermediários, onde não 
exige tanto espaço de memórias quanto realizado 
pelo código fonte. Sua vantagem é ter independência 
da arquitetura que realizará a execução final, porém, 
necessita de um interpretador específico para sua 
geração. 
1. Compiladores 
II. Lê uma instrução do código fonte, transforma em 
código binário e executa, repete esse processo até 
que todas as instruções do código fonte sejam 
executadas. O código é interpretado e executado em 
tempo real, sem a geração de código executável. 
2. Interpretadores 
III. É gerado um código executável sem a 
necessidade de interpretar comando por comando. 
Sua vantagem é a execução mais rápida, porém, caso 
necessite de alterações, o código fonte deverá ser 
editado e executado em máquinas de mesma 
arquitetura. 
3. Tradutores 
Assinale a alternativa que apresenta a associação correta. 
Sua resposta 
Correta 
I - 3; II - 2; III - 1. 
 
 
 
 
 
21 
 
Questão 5 
Correta 
Questão com problema? 
Conforme Manzano (2015) toda vez que é necessário armazenar uma quantidade grande de 
valores do mesmo tipo, podemos utilizar as variáveis compostas ou seja um vetor. A melhor 
solução para armazenar diversos valores dentro de um mesmo contexto é utilizar variáveis 
compostas. O vetor, ao ser declarado, reserva um espaço na memória contíguo para armazenar 
seus elementos. 
 
Analise o programa a seguir. 
 
#include 
int main() 
{ 
int vetor[19],i; 
for (i = 0; i int 
main ( ) { char mensagem[17] = {'V','a','m','o','s',' ', 'P', 'r', 'o', 'g', 
'r', 'a', 'm', 'a','r','!' ,'\n' }; int indice; for (indice=0 ; 
mensagem[indice] != '\n' ; indice++) printf("%c", mensagem[indice]); } 
Após execução do programa será impresso, 
 
Sua resposta 
 Vamos Programar! 
 
 
A frase corretamente preenchida é: Vamos Programar! Observe que precisamos sempre deixar um 
valor reservado par o caractere '\0' que representa o final da string e poderemos utilizar o \n dentro 
da string. 
 
 
 
 
 
 
 
 
 
 
 
 
23 
 
Questão 2 
Respondida 
No contexto da programação de computadores, um paradigma é uma forma ou um 
estilo de se programar. Segundo Tucker (2010), um paradigma de programação está 
relacionado a um padrão de soluções de problemas, onde por sua vez estão 
relacionados a uma determinada linguagem de programação. Considerando o 
contexto, avalie as afirmativas a seguir: I - A Programação Imperativa é considerada o 
paradigma mais antigo, a programação imperativa pode armazenar o programa e suas 
variáveis, as atribuições, as sequências, os laços e os comandos condicionais. 
II - A Programação Orientada a Objeto é considerado uma coleção de objetos onde se 
inter-relacionam, facilitando assim a programação. III - A Programação Funcional são 
caraterizadas por possuírem atuação matemática, cada uma com um espaço de entrada 
(domínio) e resultado (faixa). 
IV- A Programação Lógica é considerada uma programação declarativa, onde um 
programa pode modelar uma situação problema declarando qual resultado o programa 
deve obter, em vez de como ele deve ser obtido. 
Agora, assinale a alternativa correta. Revisar Questão 
 
Sua resposta 
 As afirmativas I, II, III e IV estão corretas. 
 
 
A frase corretamente preenchida é: As afirmativas I, II, III, IV e V estão corretas. O tipo 
caractere pode armazenar somente um único valor, qualquer caractere da tabela ASCII. O tipo 
inteiro não possui parte fracionária e pode ser positivo ou negativo, O tipo real pode possuir 
parte fracionária e pode ser positivo ou negativo, permitindo o uso de números inteiros. Os dados 
do tipo literal podem conter sequências de letras, dígitos ou símbolos especiais, ideais para 
textos. O tipo lógico possui somente dois valores possíveis: V (Verdadeiro) ou F (Falso) ou 
(True – False). 
 
 
 
 
 
 
24 
 
Questão 3 
Respondida 
O comando switch precisa que a variável a qual está guardado o valor e que será 
avaliada pelo case, fique entre parênteses. Após, é necessário a utilização das chaves para 
abrir o bloco de comandos cases. Após cada case, é obrigatório utilizar os dois pontos 
(:). Observe atentamente o programa que demonstra o comando switch: 
#includeint main ( ) { int num1, num2, 
result; float operador; printf("Digite o 1o valor: 
"); scanf("%d",&num1); printf("Digite o 2o valor: 
"); scanf("%d",&num2); printf("Escolha: 1-
Somar"); printf("Escolha: 2-
Subtração"); printf("Escolha: 3- 
Multiplicação"); scanf("%f",&operador); switch 
(operador){ case 1: result=num1+num2; printf("A 
Soma é: %d ",result); break; case 2: result=num1-
num2; printf("A Subtração é: %d 
",result); break; case 3: 
result=num1+num2; printf("O Produto é: %d 
",result); break; default: 
printf("Escolha Errada"); } return 0; } 
Ao compilar o programa foi constato um erro que impediu o seu funcionamento. 
Assinale a alternativa correta que aponta o erro do programa. 
 
Sua resposta 
O erro do programa é a variável operador que foi declarada como float, o comando switch 
precisa que a variável seja do tipo int ou char. 
 
A frase corretamente preenchida é: O erro do programa é a variável operador que foi declarada 
como float, o comando switch precisa que a variável seja inteira ou caractere. Não é permitido 
utilizar o float na estrutura de seleção switch. Os operadores precisam ser inteiros ou 
caracteres para não ocasionar dúvidas sobre a entrada no case. 
 
 
 
 
 
 
 
25 
 
Questão 4 
Respondida 
Segundo Soffner (2013 p. 64), o programa “não executará nenhuma repetição (e as 
ações que ali dentro estiverem programadas) sem antes testar uma condição”. Em 
alguns casos, quando se utiliza o teste no início, pode ocorrer o famoso loop (laço) 
infinito (quando um processo é executado repetidamente). Para que isso não aconteça, 
é possível utilizar os seguintes recursos: contador, incremento e decremento, 
acumulador e condição de parada. Baseado nestes recursos, julgue as afirmações que se 
seguem: I. Contador – é utilizado para contar as repetições quando não são 
determinadas. 
II. Incremento e decremento – trabalha o número do contador, seja ele, aumentado ou 
diminuído. 
III. Acumulador somará as entradas de dados de cada iteração da repetição, gerando 
um somatório a ser utilizado quando iniciar a repetição. IV. Condição de parada – 
utilizada para determinar o momento de parar quando não se tem um valor exato desta 
repetição. 
É correto apenas o que se afirma em: 
 
 
Sua resposta 
I, II e III. 
 
A resposta certa é a alternativa c). 
I - FALSA - Contador: é utilizado para CONTROLAR AS REPETIÇÕES QUANDO ESTA É 
DETERMINADA. 
II - VERDADEIRA - Incremento e decremento: trabalha o número do contador, seja ele, 
aumentado ou diminuído. 
III - FALSA - Acumulador: que segundo Soffner (2013), somará as entradas de dados de cada 
iteração da repetição, gerando um somatório a ser utilizado quando DA SAÍDA DA 
REPETIÇÃO. IV - VERDADEIRA - Condição de parada: utilizada para determinar o momento 
de parar quando não se tem um valor exato desta repetição. 
 
 
 
 
26 
 
Questão 5 
Respondida 
Observe o trecho de programa a seguir e julgue as afirmações que se 
seguem. #include void main () { int num[5]; printf(“Entre com um 
numero\n”); scanf(“%d”, &num[0]); printf(“O valor digitado foi: %d”, num [0]*2); 
getchar(); } 
I. Segundo Manzano (2010), vetor (array) é um tipo especial de variável capaz de 
armazenar diversos valores “ao mesmo tempo”. 
II. O vetor usa vários endereços na memória. 
III. Por armazenar diversos valores, também é chamado de variável aleatória, ou ainda, 
estrutura de matricial de valores. IV. A sintaxe para utilização de vetores homogêneos é: 
tipo variavel [n]. Na sintaxe, “[n]” representa a quantidade de vetores alocados. 
É correto apenas o que se afirma em: 
 
Sua resposta 
I e IV. 
 
 
A resposta certa é a alternativa a). 
I - VERDADEIRA - Segundo Manzano (2010), vetor (array) é um tipo especial de variável 
capaz de armazenar diversos valores “ao mesmo tempo”. 
II - FALSA - O vetor usa UM MESMO ENDEREÇO na memória. 
III - FALSA - Por armazenar diversos valores, também é chamado de VARIÁVEL 
COMPOSTA, ou ainda, estrutura de MATRICIAL DE DADOS. IV - FALSA - A sintaxe para 
utilização de vetores homogêneos é: tipo variavel [n]. Na sintaxe, “[n]” representa a quantidade 
de colunas E DE LINHAS. 
 
 
 
 
 
 
 
 
27 
 
Questão 6 
Respondida 
Analise o trecho de programa a seguir e responda: 
#include main() { int w; for ( w = 1; w 
#include int main(void) { int contador = 1; while (contadorcom o valor 1. O teste da condição while é realizado, e como o contador é menor ou igual 10, 
então a condição é verdadeira. 
II - FALSA - Como a condição é verdadeira, o programa entra dentro do corpo do laço e executa 
o printf, exibindo o valor da variável contador. Após executar o comando printf, o contador é 
INCREMENTADO. 
III - FALSA - Depois do INCREMENTO, a condição é testada novamente e enquanto for 
verdadeira, os comandos são executados até que a condição se torne falsa. IV - VERDADEIRA - 
A condição falsa faz com que o laço seja encerrado. 
 
 
 
 
 
 
 
31 
 
Questão 1 
Correta 
Questão com problema? 
Pode-se otimizar o uso de variáveis usando as estruturas compostas (vetor e matriz), porém só se 
pode armazenar valores de um mesmo tipo. Além das estruturas homogêneas, as linguagens de 
programação oferecem um tipo de variável composta heterogênea chamada de estruturas 
(structs), ou ainda de registros por alguns autores (SOFFNER, 2013). Assim como se associa os 
vetores e matrizes com tabelas, pode-se associar uma estrutura a uma ficha de cadastro com 
diversos campos. 
 
Na linguagem C, a criação de uma estrutura deve ser feita antes da função main() e deve possuir 
a seguinte sintaxe: 
 
struct { 
 ; 
 ; 
... 
}; 
 
De acordo com a sintaxe apresentada, julgue as afirmações que se seguem 
I. é o nome da variável. 
II. As variáveis internas dessa estrutura são os campos que se deseja guardar. 
III. Uma estrutura funciona como um “tipo de dado”.IV. O uso da estrutura sempre será atribuído 
à uma ou mais variáveis. 
É correto apenas o que se afirma em: 
 
Sua resposta 
Correta 
II, III e IV. 
Comentário 
Resposta correta : Apenas as afirmações II, III e IV estão corretas. 
I - FALSA - é o nome da ESTRUTURA. 
II - VERDADEIRA - As variáveis internas dessa estrutura são os campos que se deseja guardar. 
III - VERDADEIRA - Uma estrutura funciona como um “tipo de dado”.IV - VERDADEIRA - O 
uso da estrutura sempre será atribuído à uma ou mais variáveis. 
 
 
 
 
 
 
 
32 
 
Questão 2 
Incorreta 
Conforme Manzano (2015) toda vez que é necessário armazenar uma quantidade grande de 
valores do mesmo tipo, podemos utilizar as variáveis compostas ou seja um vetor. A melhor 
solução para armazenar diversos valores dentro de um mesmo contexto é utilizar variáveis 
compostas. O vetor, ao ser declarado, reserva um espaço na memória contíguo para armazenar 
seus elementos. 
 
Analise o programa a seguir. 
 
#include 
int main() 
{ 
int vetor[19],i; 
for (i = 0; i 
int main( ) 
{ 
 float C, F; 
 printf("Escreva a Temperatura em graus Celsius: "); 
 scanf("%f", &C); 
 F = ((9 * C) / 5) + 32; 
 printf("Temperatura Fahrenheit = %.2f .\n", F); 
 return 0; 
} 
Analisando o programa proposto, caso o valor da variável C receber o valor igual a 10, o 
comando printf irá imprimir: 
 
Sua resposta 
Correta 
Temperatura Fahrenheit = 50.00 . 
 
Comentário 
A frase corretamente preenchida é: Temperatura Fahrenheit = 50.00 . O uso dos parênteses 
garante com eficiência o resultado de uma expressão matemática. Neste caso a conversão da 
temperatura, primeiramente é executada a multiplicação, após a divisão e por último a soma. 
 
 
 
 
 
 
 
 
 
 
 
 
35 
 
Questão 5 
Incorreta 
Questão com problema? 
Os operadores aritméticos podem ser classificados em unário ou binário (MANZANO, 2015). Os 
binários são operadores que usam dois componentes e os operadores unários usam apenas um 
componente. É o caso dos operadores aritméticos de incremento (++) e decremento (--). Esses 
operadores acrescentam ou diminuem “um” ao valor de uma variável e podem ser usados de 
duas formas: 
 
Após a variável: x++ . Nesse caso, é adicionado um após a primeira execução. 
Após a variável: x-- .Nesse caso, é decrementado um após a primeira execução. 
Antes da variável: ++x. Nesse caso, é adicionado um antes da primeira execução. 
Antes da variável: --x.Nesse caso, é decrementado um antes da primeira execução. 
Baseado no conceito de operadores unários, complete as lacunas do quadro 2 a seguir: 
 
Operador Exemplo Descrição Resultado 
++ x++ x + 1 
++ ++x x + 1 
-- x-- x - 1 
-- --x x - 1 
Assinale a alternativa que contém a sequência correta: 
 
Sua resposta 
Incorreta 
Pós incremento / pré decremento / pós decremento / pré incremento. 
Solução esperada 
Pós incremento / pré incremento / pós decremento / pré decremento. 
Comentário 
A resposta certa é a alternativa c). 
Operador Descrição Exemplo Resultado 
++ Pós incremento x++ x + 1 
++ Pré incremento ++x x + 1 
-- Pós decremento x-- x - 1 
-- Pré decremento --x x - 1 
 
36 
 
Questão 2 
Correta 
Questão com problema? 
Mizrahi (2008) afirma que uma matriz de duas dimensões são inicializadas na mesma maneira 
que vetor. Precisamos sempre observar que todos os valores que serão armazenados na matriz 
sejam do mesmo tipo. 
 
Analise o programa a seguir: 
 
1. 
2. 
3. 
4. 
5. 
6. 
7. 
8. 
9. 
10. 
#include 
int main( ) 
{ 
int i, j, matriz[2][2] = 
{10,20,30,40}; 
for (i = 0; iCorreta 
matriz [0][0] = 10 
matriz [0][1] = 20 
matriz [1][0] = 30 
matriz [1][1] = 40 
 
 
 
 
 
 
 
 
 
 
 
37 
 
Questão 1 
Correta 
Questão com problema? 
Na repetição com variáveis de controle, ou seja, usando o laço “for”, o comando iterativo “for” 
que em português significa “para”, segundo Mizrahi (2008), é geralmente usado para repetir uma 
informação por um número fixo de vezes, isto é, pode-se determinar quantas vezes acontecerá a 
repetição. Para facilitar ainda mais, veja a seguinte representação: 
 
for(x = 10,y = 0; x >= 0, y = 0, y 
#include 
main() 
{ 
float s=0, v; 
int op; 
do 
{ 
printf("\n Digite sua Operacao"); 
printf("\n 1. Deposito"); 
printf("\n 2. Saque"); 
printf("\n 3. Saldo"); 
printf("\n 4. Sair"); 
printf("\n Opcao? "); 
scanf("%d", &op); 
switch(op) 
{ 
case 1: printf("\n Valor do deposito? "); 
scanf("%f", &v); s=s+v; 
break; 
case 2: printf("\n Valor do saque? "); 
scanf("%f", &v); s=s-v; 
break; 
case 3: printf("\n Saldo atual = R$ %.2f \n", s); 
break; 
default: if(op!=4) 
printf("\n Opcao Invalida! \n"); 
} 
} 
while (op!=4); 
printf("Fim das transacoes. \n\n"); 
system("pause"); 
return 0; 
} 
Foi utilizado o laço do-while para implementar o menu do programa, onde a função desejada é 
executada pelo menos uma vez dentro do laço, isto é: 
 
 
 
39 
 
Sua resposta 
Incorreta 
foi comparada uma estrutura de repetição com uma de condição. 
Solução esperada 
foi aplicada uma estrutura de repetição usando comparativo. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40 
 
Questão 3 
Incorreta 
Questão com problema? 
Uma forma de estrutura seletiva é a estrutura de seleção switch. Dentro dos switch há o case. 
Este comando é muito parecido com o comando if com várias possibilidades, mas com algumas 
diferenças importantes. 
 
Na figura a seguir é apresentado o fluxograma da execução dos cases, de uma estrutura switch. 
 
 
 
Com base no contexto apresentado, avalie as seguintes asserções e a relação proposta entre 
elas: 
 
I. No comando switch, os cases não aceitam operadores lógicos. Portanto, não é possível fazer 
uma comparação. Isso limita o case a utilizar apenas valores definidos. 
 
 
PORQUE 
 
 
II. O comando switch executa seu bloco em cascata. Ou seja, se a variável indicar para o 
primeiro case e dentro do switch tiver 3 comandos cases, o switch executará todos os outros 2 
41 
 
comandos cases a não ser que, for utilizado o comando para sair da estrutura switch e que é 
o break. 
Analise atentamente as asserções e assinale a alternativa correta. 
 
Sua resposta 
Incorreta 
A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. 
Solução esperada 
As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42 
 
Questão 4 
Correta 
Questão com problema? 
O comando switch precisa que a variável a qual está guardado o valor e que será avaliada 
pelo case, fique entre parênteses. Após, é necessário a utilização das chaves para abrir o bloco 
de comandos cases. Após cada case, é obrigatório utilizar os dois pontos (:). 
 
Observe atentamente o programa que demonstra o comando switch: 
 
#include 
int main ( ) 
{ 
int num1, num2, result; 
float operador; 
 printf("Digite o 1o valor: "); 
 scanf("%d",&num1); 
 printf("Digite o 2o valor: "); 
 scanf("%d",&num2); 
 printf("Escolha: 1-Somar"); 
 printf("Escolha: 2-Subtração"); 
 printf("Escolha: 3- Multiplicação"); 
 scanf("%f",&operador); 
 switch (operador){ 
 case 1: result=num1+num2; 
 printf("A Soma é: %d ",result); 
 break; 
 case 2: result=num1-num2; 
 printf("A Subtração é: %d ",result); 
 break; 
 case 3: result=num1+num2; 
 printf("O Produto é: %d ",result); 
 break; 
 default: printf("Escolha Errada"); 
} 
return 0; 
} 
Ao compilar o programa foi constato um erro que impediu o seu funcionamento. Assinale a 
alternativa correta que aponta o erro do programa. 
 
Sua resposta 
Correta 
O erro do programa é a variável operador que foi declarada como float, o comando switch 
precisa que a variável seja do tipo int ou char. 
 
43 
 
Questão 5 
Correta 
Questão com problema? 
Conforme Forbellone e Eberspächer (2000), os operadores relacionais são utilizados para realizar 
comparações entre dois valores de um mesmo tipo. Esses valores podem ser representados por 
variáveis ou constantes. A uma comparação realizada utilizando um operador relacional dá-se o 
nome de relação. O resultado obtido de uma relação é sempre um valor lógico, ou seja, o valor 
será verdadeiro ou falso. 
 
Observe o trecho de um programa que demonstra o uso de dois if’s sequenciais ou encadeados. 
 
if (num>=0) 
 if(num%2==0) 
 printf(“O número é par e é positivo. 
\n”); 
Os operadores lógicos podem ser utilizados para otimizar os comandos de seleção, levando em 
consideração o trecho de programa apresentado, a alternativa que otimiza o comando if com a 
utilização de operadores lógicos é: 
Sua resposta 
Correta 
Revisar Questão 
if ((num>=0) && (num%2==0)) printf (“O número é positivo e é par. \n”); 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44 
 
Questão 1 
Correta 
Questão com problema? 
Os operadores aritméticos podem ser classificados em unário ou binário (MANZANO, 2015). Os 
binários são operadores que usam dois componentes e os operadores unários usam apenas um 
componente. É o caso dos operadores aritméticos de incremento (++) e decremento (--). Esses 
operadores acrescentam ou diminuem “um” ao valor de uma variável e podem ser usados de 
duas formas: 
 
Após a variável: x++ . Nesse caso, é adicionado um após a primeira execução. 
Após a variável: x-- .Nesse caso, é decrementado um após a primeira execução. 
Antes da variável: ++x. Nesse caso, é adicionado um antes da primeira execução. 
Antes da variável: --x.Nesse caso, é decrementado um antes da primeira execução. 
Baseado no conceito de operadores unários, complete as lacunas do quadro 2 a seguir: 
 
Operador Exemplo Descrição Resultado 
++ x++ x + 1 
++ ++x x + 1 
-- x-- x - 1 
-- --x x - 1 
Assinale a alternativa que contém a sequência correta: 
 
Sua resposta 
Correta 
Pós incremento / pré incremento / pós decremento / pré decremento. 
 
 
 
 
 
 
 
 
 
 
 
 
 
45 
 
Questão 2 
Correta 
Questão com problema? 
Variáveis são usadas para armazenar dados na memória de trabalho e que esses dados podem ser 
de diferentes tipos (inteiro, decimal, caractere ou booleano), os quais são chamados de tipos 
primitivos. 
 
Veja um exemplo de comando para declaração de variáveis na linguagem C: 
 
int idade[3]; 
float altura[3] = {1,1.5,1.7} 
Assinale a alternativa que apresenta corretamentea função do comando exemplificado anterior. 
Sua resposta 
Correta 
Declaração de variáveis compostas do tipo vetor. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
46 
 
Questão 3 
Correta 
Questão com problema? 
As variáveis são usadas para armazenar dados na memória de trabalho e que esses dados podem 
ser de diferentes tipos (inteiro, decimal, caractere ou booleano), os quais são chamados de tipos 
primitivos. Podemos armazenar a idade de uma pessoa em uma variável do tipo int, a altura em 
um tipo float, e assim por diante, mas e se fosse necessário armazenar quinze medidas da 
temperatura de um dispositivo? 
A melhor solução para armazenar diversos valores dentro de um mesmo contexto é utilizar: 
Sua resposta 
Correta 
variáveis compostas. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47 
 
Questão 4 
Correta 
Questão com problema? 
Mizrahi (2008) afirma que uma matriz de duas dimensões são inicializadas na mesma maneira 
que vetor. Precisamos sempre observar que todos os valores que serão armazenados na matriz 
sejam do mesmo tipo. 
 
Analise o programa a seguir: 
 
1. 
2. 
3. 
4. 
5. 
6. 
7. 
8. 
9. 
10. 
#include 
int main( ) 
{ 
int i, j, matriz[2][2] = 
{10,20,30,40}; 
for (i = 0; i main() { int w; for ( w = 1; w 
#include ____________ 
int main (void) 
{ 
 int N1, N2 ; 
 printf("Digite o primeiro numero: "); 
 _____________ 
 printf("Digite o segundo numero: "); 
 scanf("%d", &N2); 
 
 _____________ 
 printf("Os numeros são iguais!"); 
 else 
50 
 
 if (N1 > N2) 
 printf("O maior valor e = %d", N1); 
 ____________ 
 printf("O maior valor e = %d", N2); 
 
 printf("\n"); 
 system("pause"); 
 ____________ 
}. 
Assinale a alternativa que completa corretamente as lacunas: 
 
Sua resposta 
 / scanf("%d", &N1); / if (N1 == N2) / else / return (0); 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51 
 
Questão 3 
Respondida 
Variáveis são usadas para armazenar dados na memória de trabalho e que esses dados podem ser 
de diferentes tipos (inteiro, decimal, caractere ou booleano), os quais são chamados de tipos 
primitivos. 
 
Veja um exemplo de comando para declaração de variáveis na linguagem C: 
 
int idade[3]; 
float altura[3] = {1,1.5,1.7} 
Assinale a alternativa que apresenta corretamente a função do comando exemplificado anterior. 
Sua resposta 
Declaração de variáveis simples do tipo vetor. 
 
INCORRETO, porque deveria indicar que é declaração de vetor. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
52 
 
Questão 4 
Respondida 
O comando do-while é uma estrutura de repetição que garante que o bloco de instruções seja 
executado no mínimo uma vez, já que a condição que controla o laço é testada apenas no final do 
comando. Ou seja, usando do-while, o bloco de comandos é executado pelo menos uma vez de 
forma obrigatória, independente do resultado da expressão lógica. 
 
Analise o trecho de programa a seguir e complete corretamente as lacunas: 
#include 
int main(void) 
{ 
____________; 
int resp; 
____________ 
{ 
printf("Digite a primeira nota: "); 
scanf("%f",&nota1); 
printf("Digite a segunda nota: "); 
scanf("%f",&nota2); 
____________; 
printf("Media do aluno = %f\n",media); 
printf("Digite 1 para continuar ou 2 para sair\n"); 
____________; 
_____________; 
return 0; 
} 
Assinale a alternativa que completa corretamente as lacunas: 
 
Sua resposta 
float nota1=0,nota2=0,media=0 / do / media = (nota1 + nota2)/2 / scanf("%d", &resp) / }while 
(resp==1). 
 
 
 
 
 
 
 
 
 
 
 
 
53 
 
Questão 5 
Respondida 
Segundo Manzano (2015), os algoritmos criados por você deverão ser convertidos em linguagens 
de alto nível, como por exemplo: a linguagem Java, Pascal, C, C++ entre outras conceituadas 
nesta seção. Você deverá escrever os códigos fontes na linguagem escolhida para que os mesmos 
se tornem executáveis, porém, cada linguagem adota um método particular para gerar o código 
executável. 
 
Considerando o contexto apresentado, faça a correta associação entre as Colunas. 
 
COLUNA A COLUNA B 
I. São gerados códigos intermediários, onde não 
exige tanto espaço de memórias quanto realizado 
pelo código fonte. Sua vantagem é ter independência 
da arquitetura que realizará a execução final, porém, 
necessita de um interpretador específico para sua 
geração. 
1. Compiladores 
II. Lê uma instrução do código fonte, transforma em 
código binário e executa, repete esse processo até 
que todas as instruções do código fonte sejam 
executadas. O código é interpretado e executado em 
tempo real, sem a geração de código executável. 
2. Interpretadores 
III. É gerado um código executável sem a 
necessidade de interpretar comando por comando. 
Sua vantagem é a execução mais rápida, porém, caso 
necessite de alterações, o código fonte deverá ser 
editado e executado em máquinas de mesma 
arquitetura. 
3. Tradutores 
Assinale a alternativa que apresenta a associação correta 
 
Sua resposta 
I - 3; II - 2; III - 1. 
 
 
 
 
 
 
 
 
54 
 
Questão 6 
Sem resposta 
Conforme Manzano (2015) toda vez que é necessário armazenar uma quantidade grande de 
valores do mesmo tipo, podemos utilizar as variáveis compostas ou seja um vetor. A melhor 
solução para armazenar diversos valores dentro de um mesmo contexto é utilizar variáveis 
compostas. O vetor, ao ser declarado, reserva um espaço na memória contíguo para armazenar 
seus elementos. 
 
Analise o programa a seguir. 
 
#include 
int main() 
{ 
int vetor[19],i; 
for (i = 0; io vetor, como foi feito no comando for da linha 5, será impresso 
os valores que estão na memória do computador, esses valores são conhecidos como “lixo de 
memória”. 
É correto apenas o que se afirma em: 
 
 
Sua resposta 
I, III e IV. 
 
 
A frase corretamente preenchida é: As afirmativas I, II, III e IV estão corretas. Todas as 
afirmativas estão corretas. Devemos sempre inicializar um vetor para evitar que ao executar o 
programa, um lixo de memória seja utilizado. Observe que há um problema no programa, no 
comando: for (i = 0; i 
int main() 
{ 
int vetor[19],i; 
for (i = 0; i 
void main () 
{ 
int num[5]; 
printf(“Entre com um numero\n”); 
scanf(“%d”, &num[0]); 
printf(“O valor digitado foi: %d”, num [0]*2); 
getchar(); 
} 
 
I. Segundo Manzano (2010), vetor (array) é um tipo especial de variável capaz de armazenar 
diversos valores “ao mesmo tempo”. 
II. O vetor usa vários endereços na memória. 
III. Por armazenar diversos valores, também é chamado de variável aleatória, ou ainda, estrutura 
de matricial de valores. 
IV. A sintaxe para utilização de vetores homogêneos é: tipo variavel [n]. Na sintaxe, “[n]” 
representa a quantidade de vetores alocados. 
É correto apenas o que se afirma em: 
 
 
Sua resposta 
I. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61 
 
Questão 1 
Respondida 
No contexto da programação de computadores, um paradigma é uma forma ou um 
estilo de se programar. Segundo Tucker (2010), um paradigma de programação está 
relacionado a um padrão de soluções de problemas, onde por sua vez estão 
relacionados a uma determinada linguagem de programação. Considerando o 
contexto, avalie as afirmativas a seguir: I - A Programação Imperativa é considerada o 
paradigma mais antigo, a programação imperativa pode armazenar o programa e suas 
variáveis, as atribuições, as sequências, os laços e os comandos condicionais. 
II - A Programação Orientada a Objeto é considerado uma coleção de objetos onde se 
inter-relacionam, facilitando assim a programação. III - A Programação Funcional são 
caraterizadas por possuírem atuação matemática, cada uma com um espaço de entrada 
(domínio) e resultado (faixa). 
IV- A Programação Lógica é considerada uma programação declarativa, onde um 
programa pode modelar uma situação problema declarando qual resultado o programa 
deve obter, em vez de como ele deve ser obtido. 
Agora, assinale a alternativa correta. Revisar Questão 
 
Sua resposta 
 As afirmativas I, II, III e IV estão corretas. 
 
 
A frase corretamente preenchida é: As afirmativas I, II, III, IV e V estão corretas. O tipo 
caractere pode armazenar somente um único valor, qualquer caractere da tabela ASCII. O tipo 
inteiro não possui parte fracionária e pode ser positivo ou negativo, O tipo real pode possuir 
parte fracionária e pode ser positivoou negativo, permitindo o uso de números inteiros. Os dados 
do tipo literal podem conter sequências de letras, dígitos ou símbolos especiais, ideais para 
textos. O tipo lógico possui somente dois valores possíveis: V (Verdadeiro) ou F (Falso) ou 
(True – False). 
 
 
 
 
 
 
 
 
62 
 
Questão 2 
Respondida 
Pode-se otimizar o uso de variáveis usando as estruturas compostas (vetor e matriz), 
porém só se pode armazenar valores de um mesmo tipo. Além das estruturas 
homogêneas, as linguagens de programação oferecem um tipo de variável composta 
heterogênea chamada de estruturas (structs), ou ainda de registros por alguns autores 
(SOFFNER, 2013). Assim como se associa os vetores e matrizes com tabelas, pode-se 
associar uma estrutura a uma ficha de cadastro com diversos campos. Na linguagem C, 
a criação de uma estrutura deve ser feita antes da função main() e deve possuir a 
seguinte sintaxe: struct { ; 
; ... }; De acordo com a sintaxe apresentada, julgue as afirmações 
que se seguem 
I. é o nome da variável. 
II. As variáveis internas dessa estrutura são os campos que se deseja guardar. 
III. Uma estrutura funciona como um “tipo de dado”.IV. O uso da estrutura sempre será 
atribuído à uma ou mais variáveis. 
É correto apenas o que se afirma em: 
 
Sua resposta 
II, III e IV. 
 
Resposta correta : Apenas as afirmações II, III e IV estão corretas. 
I - FALSA - é o nome da ESTRUTURA. 
II - VERDADEIRA - As variáveis internas dessa estrutura são os campos que se deseja guardar. 
III - VERDADEIRA - Uma estrutura funciona como um “tipo de dado”.IV - VERDADEIRA - O 
uso da estrutura sempre será atribuído à uma ou mais variáveis. 
 
 
 
 
 
 
 
63 
 
Questão 3 
Respondida 
Uma forma de estrutura seletiva é a estrutura de seleção switch. Dentro dos switch há 
o case. Este comando é muito parecido com o comando if com várias possibilidades, mas 
com algumas diferenças importantes. Na figura a seguir é apresentado o fluxograma da 
execução dos cases, de uma 
estrutura switch. Com base no 
contexto apresentado, avalie as seguintes asserções e a relação proposta entre elas: I. No 
comando switch, os cases não aceitam operadores lógicos. Portanto, não é possível fazer 
uma comparação. Isso limita o case a utilizar apenas valores definidos. 
PORQUE II. O comando switch executa seu bloco em cascata. Ou seja, se a variável 
indicar para o primeiro case e dentro do switch tiver 3 comandos cases, o switch executará 
todos os outros 2 comandos cases a não ser que, for utilizado o comando para sair da 
estrutura switch e que é o break. 
Analise atentamente as asserções e assinale a alternativa correta. 
 
64 
 
Sua resposta 
As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I. 
 
A frase corretamente preenchida é: As asserções I e II são proposições verdadeiras, mas a II não 
é uma justificativa da I. A asserção II está complementando as informações sobre o 
funcionamento da estrutura de seleção switch e informando a necessidade de utilizar 
o break para sair da estrutura, toda vez que um case for executado. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65 
 
Questão 4 
Respondida 
Mizrahi (2008) afirma que uma matriz de duas dimensões são inicializadas na mesma 
maneira que vetor. Precisamos sempre observar que todos os valores que serão 
armazenados na matriz sejam do mesmo tipo. Analise o programa a seguir: 
1. 
2. 
3. 
4. 
5. 
6. 
7. 
8. 
9. 
10. 
#include 
int main( ) 
{ 
int i, j, matriz[2][2] = 
{10,20,30,40}; 
for (i = 0; i void main () { int num[5]; printf(“Entre com um 
numero\n”); scanf(“%d”, &num[0]); printf(“O valor digitado foi: %d”, num [0]*2); 
getchar(); } 
I. Segundo Manzano (2010), vetor (array) é um tipo especial de variável capaz de 
armazenar diversos valores “ao mesmo tempo”. 
II. O vetor usa vários endereços na memória. 
III. Por armazenar diversos valores, também é chamado de variável aleatória, ou ainda, 
estrutura de matricial de valores. IV. A sintaxe para utilização de vetores homogêneos é: 
tipo variavel [n]. Na sintaxe, “[n]” representa a quantidade de vetores alocados. 
É correto apenas o que se afirma em: 
 
 
Sua resposta 
I. 
 
A resposta certa é a alternativa a). 
I - VERDADEIRA - Segundo Manzano (2010), vetor (array) é um tipo especial de variável 
capaz de armazenar diversos valores “ao mesmo tempo”. 
II - FALSA - O vetor usa UM MESMO ENDEREÇO na memória. 
III - FALSA - Por armazenar diversos valores, também é chamado de VARIÁVEL 
COMPOSTA, ou ainda, estrutura de MATRICIAL DE DADOS. IV - FALSA - A sintaxe para 
utilização de vetores homogêneos é: tipo variavel [n]. Na sintaxe, “[n]” representa a quantidade 
de colunas E DE LINHAS. 
 
 
 
 
 
 
 
 
 
 
 
67 
 
Questão 6 
Sem resposta 
Analise a aplicação da estrutura de repetição condicional realizando um programa que 
simula uma conta bancária (tela de opções das transações), adaptado do livro do 
Soffner (2013). Ele escreve um programa que repete uma entrada de dados até que 
determinada condição de saída seja atingida e, em seguida, acumule os valores 
digitados. #include #include main() { float s=0, v; int op; do { 
printf("\n Digite sua Operacao"); printf("\n 1. Deposito"); printf("\n 2. Saque"); printf("\n 
3. Saldo"); printf("\n 4. Sair"); printf("\n Opcao? "); scanf("%d", &op); switch(op) { case 1: 
printf("\n Valor do deposito? "); scanf("%f", &v); s=s+v; break; case 2: printf("\n Valor do 
saque? "); scanf("%f", &v); s=s-v; break; case 3: printf("\n Saldo atual = R$ %.2f \n", s); 
break; default: if(op!=4) printf("\n Opcao Invalida! \n"); } } while (op!=4); printf("Fim das 
transacoes. \n\n"); system("pause"); return 0; } 
Foi utilizado o laço do-while para implementar o menu do programa, onde a função 
desejada é executada pelo menos uma vez dentro do laço, isto é: 
 
 
Sua resposta 
foi aplicada uma estrutura de repetição usando comparativo. 
 
A resposta certa é a alternativa "E" Foi utilizado o laço do-while para implementar o menu do 
programa, onde a função desejada é executada pelo menos uma vez dentro do laço, isto é, foi 
aplicada uma estrutura de repetição usando comparativo. 
 
 
 
 
 
 
 
 
 
68 
 
 
Questão 7 
Sem resposta 
Segundo Manzano (2015), os algoritmos criados por você deverão ser convertidos em 
linguagens de alto nível, como por exemplo: a linguagem Java, Pascal, C, C++ entre 
outras conceituadas nesta seção. Você deverá escrever os códigos fontes na linguagem 
escolhida para que os mesmos se tornem executáveis, porém, cada linguagem adota 
um método particular para gerar o código executável. Considerando o contexto 
apresentado, faça a correta associação entre as Colunas. 
COLUNA A COLUNA B 
I. São gerados códigos intermediários, onde não exige 
tanto espaço de memórias quanto realizado pelo código 
fonte. Sua vantagem é ter independência da arquitetura 
que realizará a execução final, porém, necessita de um 
interpretador específico para sua geração. 
1. Compiladores 
II. Lê uma instrução do código

Mais conteúdos dessa disciplina