Você está na página 1de 49

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.

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.
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<stdio.h>
int main()
{
int vetor[19],i;
for (i = 0; i <= 19; i++)
{ vetor[i] = 1;
}
for (i = 0; i <= 19; i++)
{ printf ("vetor[%d] = %d \n", i, vetor[i]);
}
return 0;
}

Considerando o programa apresentado, julgue as afirmações a seguir.


I. Na linha 5, o comando for é utilizado para inicializar o vetor com o número 1.
II. Na linha 8, o comando for é utilizado para imprimir os valores do vetor.
III.O programa não irá imprimir as informações do vetor corretamente porque estamos
atribuindo mais valores ao vetor do que foi declarado.
IV. Caso não seja inicializado o 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
Correta
I, II, III e IV.
Questão 4
Correta
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
Correta
As afirmativas I, II, III e IV estão corretas.

Questão 5
Correta

Analise o trecho de programa a seguir e responda:

#include <stdio.h> main() { int w; for ( w = 1; w <= 15; w++ ) { if ( w == 8 ) { break; } printf (
“%d “, w ); } printf( “\n \n Parar a condicao de repeticao w = %d \n”, w ); return 0; }

Observe que dentro de um laço “for” para uma determinada condição, existe um comando
forçando o término do laço. Que comando é esse?
Sua resposta
Correta
break.
Questão 1
Correta

O laço do-while executa, pelo menos uma vez, o que está dentro dele e só ao final da execução é
que ele faz o teste, usando o velho e conhecido laço while. Ou seja, tem-se a garantia que o laço
vai ser executado uma vez, sem precisar inicializar variável ou pedir dados ao usuário antes do
while. Vale lembra que do, em inglês e nesse contexto, do significa "faça" e while significa
"enquanto".

Fonte: Adaptado de cprogressivo.net.

Esse laço do-while quer dizer:


Sua resposta
Correta
"faça isso" -> código -> "enquanto essa condição for verdadeira, repita".

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 <stdio.h>
#include <stdlib.h>
int main ()
{
int cont, num;
printf("Entre com um número: ");
scanf("%d", &num);
for (cont=1; num < cont*(cont+1)*(cont+2); cont++);
if (cont*(cont+1)*(cont+2) == num)
printf("O numero %d e perfeito\n");
else
printf("O numero %d nao e perfeito\n");
system("pause");
return 0;
}
Muitos dos problemas em computação podem ser reduzidos a uma forma de "busca", onde o
computador gera todas as combinações possíveis até encontrar a solução desejada. De acordo
com o programa criado, como foi gerada todas as soluções?
Sua resposta
Correta
Basicamente, é preciso definir 3 coisas: início - qual o primeiro candidato a solução a ser
testado?; fim - a partir de que valor não é mais necessário procurar a solução?; e incremento -
como gerar a próxima solução a ser testada?

Questão 3
Correta
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<stdio.h>
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).
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 <stdio.h>
#include <conio.h>
int main(void)
{
int contador;
for(contador = 1; contador <= 10; contador++)
{
printf("%d ", contador);
}
getch();
return(0);
}

Considerando o código apresentado, julgue as afirmações que se seguem


I. Primeiramente o contador foi inicializado com um valor igual a 0.
II. Depois foi testado se a condição que envolve o contador é verdadeira (contador <= 10).
III. A cada nova repetição a variável do contador foi decrementada.
É correto apenas o que se afirma em:

Sua resposta
Correta
II.
Questão 5
Correta
Chama-se de estruturas de decisão encadeadas, quando uma estrutura de decisão está localizada
dentro do lado falso da outra. Este tipo de estrutura também é conhecida como seleção
“aninhada” ou seleção “encaixada”. Qualquer que seja o termo usado para identificar a estrutura,
o importante é que esse formato com uma estrutura de seleção dentro da outra permite fazer a
escolha de apenas um entre vários comandos possíveis. A figura 2 a seguir mostra uma tela após
execução de uma estrutura de decisão encadeada:

Figura 2 – tela após execução de uma estrutura de decisão encadeada

Em linguagem C usa-se estruturas if-else-if encadeadas para construir códigos equivalentes.


Analise o programa a seguir e complete as lacunas:

#include <stdio.h>
#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");
____________
}.
Assinale a alternativa que completa corretamente as lacunas:

Sua resposta
Correta
<stdlib.h> / scanf("%d", &N1); / if (N1 == N2) / else / return (0);

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”);
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 <stdio.h>
#include <conio.h>
int main(void)
{
int contador;
for(contador = 1; contador <= 10; contador++)
{
printf("%d ", contador);
}
getch();
return(0);
}

Considerando o código apresentado, julgue as afirmações que se seguem


I. Primeiramente o contador foi inicializado com um valor igual a 0.
II. Depois foi testado se a condição que envolve o contador é verdadeira (contador <= 10).
III. A cada nova repetição a variável do contador foi decrementada.
É correto apenas o que se afirma em:

Sua resposta
Correta
II.
Questão 3
Correta
Questão com problema?
O comando while executa repetições com teste no início enquanto uma condição verdadeira for
verificada. Somente após a sua negativa essa condição será interrompida. Analise a aplicação do
comando while no trecho a seguir:

#include <stdio.h>
#include <stdlib.h>
main()
{
int cont=0;
while (cont < 20)
{
printf("PROVA \n");
cont++;
}
system("PAUSE");
return 0;
}
O trecho de programa do texto é um exemplo de aplicação do comando while para:

Sua resposta
Correta
mostrar a palavra “PROVA” vinte vezes.

Questão 4
Correta
Questão com problema?

O laço do-while executa, pelo menos uma vez, o que está dentro dele e só ao final da execução é
que ele faz o teste, usando o velho e conhecido laço while. Ou seja, tem-se a garantia que o laço
vai ser executado uma vez, sem precisar inicializar variável ou pedir dados ao usuário antes do
while. Vale lembra que do, em inglês e nesse contexto, do significa "faça" e while significa
"enquanto".

Fonte: Adaptado de cprogressivo.net.

Esse laço do-while quer dizer:


Sua resposta
Correta
"faça isso" -> código -> "enquanto essa condição for verdadeira, repita".
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.

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.

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 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 <nome>{
<tipo> <nome_da_variavel1>;
<tipo> <nome_da_variavel2>;
...
};

De acordo com a sintaxe apresentada, julgue as afirmações que se seguem


I. <nome> é 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.
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.
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
1. Compiladores
da arquitetura que realizará a execução final, porém,
necessita de um interpretador específico para sua
geração.

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 2. Interpretadores
executadas. O código é interpretado e executado em
tempo real, sem a geração de código executável.

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
3. Tradutores
necessite de alterações, o código fonte deverá ser
editado e executado em máquinas de mesma
arquitetura.
Assinale a alternativa que apresenta a associação correta.
Sua resposta
Correta
I - 3; II - 2; III - 1.
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<stdio.h>
int main()
{
int vetor[19],i;
for (i = 0; i <= 19; i++)
{ vetor[i] = 1;
}
for (i = 0; i <= 19; i++)
{ printf ("vetor[%d] = %d \n", i, vetor[i]);
}
return 0;
}

Considerando o programa apresentado, julgue as afirmações a seguir.


I. Na linha 5, o comando for é utilizado para inicializar o vetor com o número 1.
II. Na linha 8, o comando for é utilizado para imprimir os valores do vetor.
III.O programa não irá imprimir as informações do vetor corretamente porque estamos
atribuindo mais valores ao vetor do que foi declarado.
IV. Caso não seja inicializado o 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
Correta
I, II, III e IV.
Questão 1
Respondida

Segundo Mizrahi (2008) uma matriz de uma dimensão é conhecida como vetor. Da
mesma maneira que as variáveis, os vetores podem ser inicializados, podemos inicializar
utilizando as chaves, observe: int vetor [4] = { 1, 2, 3, 4}; outra forma poderá ser:
vetor[0]= 1; vetor[0]= 2; vetor[0]= 3; vetor[0]= 4. Caso seja utilizado caracteres,
podemos utilizar o \n como final do vetor, devemos inclusive acrescentar e contar o \n
como um integrante do vetor. Analise o programa a seguir. #include <stdio.h> 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.

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).

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:
#include <stdio.h> 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
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.

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.

Questão 5
Respondida

Observe o trecho de programa a seguir e julgue as afirmações que se


seguem. #include <stdio.h> 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.

Questão 6
Respondida

Analise o trecho de programa a seguir e responda:

#include <stdio.h> main() { int w; for ( w = 1; w <= 15; w++ ) { if ( w == 8 ) { break; }


printf ( “%d “, w ); } printf( “\n \n Parar a condicao de repeticao w = %d \n”, w ); return 0;
}

Observe que dentro de um laço “for” para uma determinada condição, existe um
comando forçando o término do laço. Que comando é esse?

Sua resposta
break.

A resposta certa é a alternativa b). Observe que dentro de um laço “for” para uma determinada
condição, existe um comando forçando o término do laço. Esse comando chama-se break.
Questão 7
Respondida

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
variáveis compostas.

CORRETO ao indicar variáveis compostas.

Questão 8
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.

Sua resposta
As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.

CORRETO

Questão 9
Respondida

O comando while executa a repetição de um bloco de instruções enquanto uma


condição é verdadeira. Analise o trecho de programa a seguir. #include <stdio.h>
#include <conio.h> int main(void) { int contador = 1; while (contador <= 10) {
printf("%d ", contador); contador++; } getch(); return 0; } Agora, julgue as afirmações
que se seguem. I. A variável de controle denominada contador foi declarada e
inicializada com 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. 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 é decrementado. III. Depois do
decremento, a condição é testada novamente e enquanto for verdadeira, os comandos
são executados até que a condição se torne falsa. IV. A condição falsa faz com que o
laço seja encerrado.
É correto apenas o que se afirma em:

Sua resposta
I e IV.

A resposta certa é a alternativa d).


I - VERDADEIRA - A variável de controle denominada contador foi declarada e inicializada
com 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.

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 <nome>{
<tipo> <nome_da_variavel1>;
<tipo> <nome_da_variavel2>;
...
};

De acordo com a sintaxe apresentada, julgue as afirmações que se seguem


I. <nome> é 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 - <nome> é 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.

Questão 2
Incorreta
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<stdio.h>
int main()
{
int vetor[19],i;
for (i = 0; i <= 19; i++)
{ vetor[i] = 1;
}
for (i = 0; i <= 19; i++)
{ printf ("vetor[%d] = %d \n", i, vetor[i]);
}
return 0;
}

Considerando o programa apresentado, julgue as afirmações a seguir.


I. Na linha 5, o comando for é utilizado para inicializar o vetor com o número 1.
II. Na linha 8, o comando for é utilizado para imprimir os valores do vetor.
III.O programa não irá imprimir as informações do vetor corretamente porque estamos
atribuindo mais valores ao vetor do que foi declarado.
IV. Caso não seja inicializado o 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
Incorreta
II, III e IV.

Solução esperada

I, II, III e IV.

Comentário

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 <= 19; i++) estamos excedendo o valor do vetor. O correto seria: for (i =
0; i < 19; i++). I. Na linha 5, o comando for é utilizado para inicializar o vetor com o número
1. (Correto)
II. Na linha 8, o comando for é utilizado para imprimir os valores do vetor. (Correto)
III.O programa não irá imprimir as informações do vetor corretamente porque estamos
atribuindo mais valores ao vetor do que foi declarado. (Correto)
IV. Caso não seja inicializado o 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)
Questão 3
Incorreta
Questão com problema?
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
Incorreta
Apenas as afirmativas I, II e IV estão corretas.

Solução esperada

As afirmativas I, II, III e IV estão corretas.


Questão 4
Correta
Questão com problema?
Salvetti e Barbosa (1998) afirmam que devemos utilizar os parênteses para ter certeza de que a
ordem de precedência das operações seja realizada e os cálculos não sofrerem alterações nos seus
valores.

Considerando o contexto, avalie o programa a seguir:

#include <stdio.h>
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.
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
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:

#include<stdio.h>
int main( )
{
1.
int i, j, matriz[2][2] =
2.
{10,20,30,40};
3.
for (i = 0; i <= 1; i++)
4.
{ for (j = 0; j <=1;
5.
j++)
6.
{ printf
7.
("matriz[%d][%d] =
8.
%d\n", i,j,
9.
matriz[i][j]);
10.
} }
return 0;
}
Após a execução do programa é será impresso em tela

Sua resposta
Correta
matriz [0][0] = 10
matriz [0][1] = 20
matriz [1][0] = 30
matriz [1][1] = 40

Comentário

A frase corretamente preenchida é:


matriz [0][0] = 10
matriz [0][1] = 20
matriz [1][0] = 30
matriz [1][1] = 40
Assim que o programa for compilado irá imprimir a posição da matriz e o valor que recebeu,
após irá pular uma linha para imprimir o próximo valor de matriz e assim por diante.
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 <= 10; x--,y++)

De acordo com a representação, analise as asserções a seguir:

I. x = 10,y = 0 – Neste trecho, “x” tem o seu valor encerrado em “10” e “y” encerrado em “0”.
II. x >= 0, y <= 10 – Neste trecho, o laço se repetirá enquanto x for menor ou igual a zero e
enquanto y for maior ou igual a “10”.
III. x--,y++ - Ao final da execução dos comandos do laço de repetição, x será decrementado de 1
e y será incrementado de 1.
É correto apenas o que se afirma em:

Sua resposta
Correta
III.

Questão 2
Incorreta
Questão com problema?
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 <stdio.h>
#include <stdlib.h>
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
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.


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
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.

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 <stdio.h>
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.

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”);

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.

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 corretamente a função do comando exemplificado anterior.

Sua resposta
Correta
Declaração de variáveis compostas do tipo vetor.

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.

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:

#include<stdio.h>
int main( )
{
1.
int i, j, matriz[2][2] =
2.
{10,20,30,40};
3.
for (i = 0; i <= 1; i++)
4.
{ for (j = 0; j <=1;
5.
j++)
6.
{ printf
7.
("matriz[%d][%d] =
8.
%d\n", i,j,
9.
matriz[i][j]);
10.
} }
return 0;
}
Após a execução do programa é será impresso em tela

Sua resposta
Correta
matriz [0][0] = 10
matriz [0][1] = 20
matriz [1][0] = 30
matriz [1][1] = 40
Questão 5
Correta
Questão com problema?

Analise o trecho de programa a seguir e responda:

#include <stdio.h> main() { int w; for ( w = 1; w <= 15; w++ ) { if ( w == 8 ) { break; } printf (
“%d “, w ); } printf( “\n \n Parar a condicao de repeticao w = %d \n”, w ); return 0; }

Observe que dentro de um laço “for” para uma determinada condição, existe um comando
forçando o término do laço. Que comando é esse?
Sua resposta
Correta
break.

Questão 1
Respondida
Chama-se de estruturas de decisão encadeadas, quando uma estrutura de decisão está localizada
dentro do lado falso da outra. Este tipo de estrutura também é conhecida como seleção
“aninhada” ou seleção “encaixada”. Qualquer que seja o termo usado para identificar a estrutura,
o importante é que esse formato com uma estrutura de seleção dentro da outra permite fazer a
escolha de apenas um entre vários comandos possíveis. A figura 2 a seguir mostra uma tela após
execução de uma estrutura de decisão encadeada:

Figura 2 – tela após execução de uma estrutura de decisão encadeada


Em linguagem C usa-se estruturas if-else-if encadeadas para construir códigos equivalentes.
Analise o programa a seguir e complete as lacunas:

#include <stdio.h>
#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");
____________
}.
Assinale a alternativa que completa corretamente as lacunas:
• <stdlib.h> / scanf("%d", &N1); / if (N1 == N2) / else / return (0);

• h> / scanf("%d", &N1); / else (N1 == N2) / else / return (0);

• <stdlib.h> / scanf("%d", %N1); / if (N1 == N2) / if / return (0);

• <stdlib.h / ("%d", &N1); / if (N1 == N2) / else / return (0);

• <stdlib.h> / scan("&d", &N1); / else (N1 == N2) / if / return (0);

Sua resposta
<stdlib.h> / scanf("%d", &N1); / if (N1 == N2) / else / return (0);

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.

• Declaração de variáveis simples do tipo vetor.

• Declaração de variáveis compostas do tipo matriz.

• Declaração de variáveis simples do tipo matriz.


• Declaração de variáveis simples de tipos primitivos.
• Declaração de variáveis compostas do tipo vetor.
Sua resposta
Declaração de variáveis simples do tipo vetor.

INCORRETO, porque deveria indicar que é declaração de vetor.

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<stdio.h>
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:

• float nota1=0,nota2=1,media=0 / do / media = (nota1 + nota2)/2 / scanf("%s", &resp) /


}while (resp==1).
• float nota1=0,nota2=0,media=0 / while / media = (nota1 + nota2)/2 / scanf("%d", &resp)
/ }do (resp==1).

• float nota1=0,nota2=0,media=0 / do / media = (nota1 * nota2)/2 / scanf("%f", &resp) /


}while (resp==0).

• float nota1=0,nota2=0,media=0 / do / media = (nota1 + nota2)/2 / scanf("%d", &resp) /


}while (resp==1).

• float nota1=0,nota2=1,media=0 / while / media = (nota1 + nota2)/2 / scanf("%d", &resp)


/ }do (resp==0).

Sua resposta
float nota1=0,nota2=0,media=0 / do / media = (nota1 + nota2)/2 / scanf("%d", &resp) / }while
(resp==1).

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
1. Compiladores
da arquitetura que realizará a execução final, porém,
necessita de um interpretador específico para sua
geração.
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 2. Interpretadores
executadas. O código é interpretado e executado em
tempo real, sem a geração de código executável.

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
3. Tradutores
necessite de alterações, o código fonte deverá ser
editado e executado em máquinas de mesma
arquitetura.
Assinale a alternativa que apresenta a associação correta.

• II - 3; III - 2; I - 1.

• I - 2; II - 3; III - 1.

• II - 1; III - 2; I - 3.

• I - 3; II - 2; III - 1.

• III - 3; II - 1; I - 2.

Sua resposta
I - 3; II - 2; III - 1.

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<stdio.h>
int main()
{
int vetor[19],i;
for (i = 0; i <= 19; i++)
{ vetor[i] = 1;
}
for (i = 0; i <= 19; i++)
{ printf ("vetor[%d] = %d \n", i, vetor[i]);
}
return 0;
}

Considerando o programa apresentado, julgue as afirmações a seguir.


I. Na linha 5, o comando for é utilizado para inicializar o vetor com o número 1.
II. Na linha 8, o comando for é utilizado para imprimir os valores do vetor.
III.O programa não irá imprimir as informações do vetor corretamente porque estamos
atribuindo mais valores ao vetor do que foi declarado.
IV. Caso não seja inicializado o 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:

• II, III e IV.

• I, III e IV.

• I, II e III.

• I, II e IV.
• I, II, III e IV.

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 <= 19; i++) estamos excedendo o valor do vetor. O correto seria: for (i =
0; i < 19; i++). I. Na linha 5, o comando for é utilizado para inicializar o vetor com o número
1. (Correto)
II. Na linha 8, o comando for é utilizado para imprimir os valores do vetor. (Correto)
III.O programa não irá imprimir as informações do vetor corretamente porque estamos
atribuindo mais valores ao vetor do que foi declarado. (Correto)
IV. Caso não seja inicializado o 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)

Questão 7
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.

• Este algoritmo armazena as notas em variáveis para depois realizar um calculo onde o
restado final é armazenado em N1 e por fim é exibido.

• Este algoritmo não armazena as notas em variáveis, o calculo é realizado diretamente em


N1 e o restado final é armazenado em X e por fim é exibido.

• Este algoritmo não armazena as notas em variáveis, o calculo é realizado diretamente


em X e o restado final é armazenado em N1 e por fim é exibido.

• Este algoritmo não exibi nenhum resultado.

• Este algoritmo armazena as notas em variáveis para depois realizar um calculo onde o
restado final é armazenado em X e por fim é exibido.

Sua resposta
Este algoritmo armazena as notas em variáveis para depois realizar um calculo onde o restado
final é armazenado em N1 e por fim é exibido.

INCORRETO, porque o correto seria: 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);

Questão 8
Sem resposta
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:

• variáveis simples.
• constantes compostas.
• constantes simples.
• arquivo texto.
• variáveis compostas.

Sua resposta
variáveis compostas.

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<stdio.h>
int main()
{
int vetor[19],i;
for (i = 0; i <= 19; i++)
{ vetor[i] = 1;
}
for (i = 0; i <= 19; i++)
{ printf ("vetor[%d] = %d \n", i, vetor[i]);
}
return 0;
}

Considerando o programa apresentado, julgue as afirmações a seguir.


I. Na linha 5, o comando for é utilizado para inicializar o vetor com o número 1.
II. Na linha 8, o comando for é utilizado para imprimir os valores do vetor.
III.O programa não irá imprimir as informações do vetor corretamente porque estamos
atribuindo mais valores ao vetor do que foi declarado.
IV. Caso não seja inicializado o 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:

• II, III e IV.

• I, III e IV.

• I, II e III.

• I, II e IV.

• I, II, III e IV.

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 <= 19; i++) estamos excedendo o valor do vetor. O correto seria: for (i =
0; i < 19; i++). I. Na linha 5, o comando for é utilizado para inicializar o vetor com o número
1. (Correto)
II. Na linha 8, o comando for é utilizado para imprimir os valores do vetor. (Correto)
III.O programa não irá imprimir as informações do vetor corretamente porque estamos
atribuindo mais valores ao vetor do que foi declarado. (Correto)
IV. Caso não seja inicializado o 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)
Questão 10
Sem resposta
Observe o trecho de programa a seguir e julgue as afirmações que se seguem.

#include <stdio.h>
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:

• I.

• II.

• I e IV.

• III e IV.

• II e III.

Sua resposta
I.

Você também pode gostar