Buscar

Algoritmos - Exercicios Aula 1 a 10

Prévia do material em texto

Disciplina: CCT0749 - ALGORITMOS 
 
 
 
 1a Questão 
 
 
Assinale a opção correta. 
 
 Programa é um conjunto de instruções escritas em uma linguagem de programação e que dizem o que o computador deve 
fazer. 
 
Um programa em C++ não tem variáveis. 
 
Um programa em C++ não precisa ser compilado. 
 
Programa é um algoritmo escrito em fluxograma. 
 
Programa é um conjunto de instruções escritas sem usar, necessariamente, uma linguagem de programação. É possível 
usar o Inglês para se escrever programas. 
Respondido em 17/03/2020 21:57:46 
 
 
Explicação: A resposta está no conteúdo online da aula 2. Todos os itens errados não dão margem a dúvidas. Importante entender a 
diferença de programa e algoritmo, entre outras. 
 
 
 
 
 2a Questão 
 
 
 Assinale a opção que mostra as formas possíveis e mais adequadas de se representar um algoritmo : 
 
 Linguagem gráfica e pseudolinguagem 
 
Apenas pseudolinguagem 
 
Linguagem natural, fluxograma e pseudolinguagem 
 
Linguagem natural e pseudolinguagem 
 
 Linguagem natural e linguagem gráfica 
Respondido em 17/03/2020 21:58:25 
 
 
Explicação: 
Por definição e aula de introdução e formas de representação de algoritmo. 
 
 
 
 
 3a Questão 
 
 
Com base nos conceitos de algoritmos, lógica de programação e linguagens de programação, é correto afirmar que: 
 
 
Lógica de programação corresponde à representação gráfica de um determinado algoritmo. 
 
Os algoritmos correspondem, estritamente, aos conjuntos de dados e informações que são tratados em um determinado processamento. 
 
As linguagens de programação possuem um conjunto de regras flexíveis para a representação dos comandos de um programa. 
 
Os três conceitos correspondem às únicas formas de representação da solução de um determinado problema. 
 As linguagens de programação possibilitam a codificação de um determinado algoritmo, de acordo com um conjunto de regras específico. 
Respondido em 17/03/2020 21:59:46 
 
 
Explicação: 
1ª. opção : Falso. As representações de algoritmos são linguagem natural, 
fluxograma e pseudocódigo. 
2ª. opção . Falso. Fluxograma corresponde à representação gráfica de algoritmos. 
3ª. opção. Verdadeira. De acordo com o ensinado na aula 1. 
4ª. opção. Falso. Em algoritmos se vê também os comandos, além dos dados. 
5ª. opção. Falso. As regras não são flexíveis. Temos que seguir corretamente a 
sintaxe das linguagens na criação de programas. 
 
 
 
 
 4a Questão 
 
 
Em Informática, os algoritmos costumam ser escritos em Portugol. Sobre o mesmo, podemos afirmar que: 
I. É uma linguagem intermediária entre a linguagem natural e a linguagem de programação; 
II. Costuma adotar o inglês como língua padrão para redação dos algoritmos computacionais; 
III. Adota algumas regras para fins de padronização e garantia de compreensão dos algoritmos; 
IV. Pode ser executado diretamente pelo computador, sem auxílio de nenhum software específico. 
São verdadeiras as assertivas: 
 
 I e III 
 
III e IV 
 
I e II 
 
I, II e III 
 
I, II, III e IV 
Respondido em 17/03/2020 22:01:03 
 
 
 
 
 5a Questão 
 
 
Observe o fluxograma a seguir e assinale a alternativa correta sobre o mesmo: 
 
 
 
 
 
Poderiam ser retirados do fluxograma os símbolos de terminação que delimitam, respectivamente, o início e o fim da 
solução. 
 
A simbologia empregada no recebimento de dados está equivocada e foi trocada por aquela que representa exibição de 
informações. 
 
No cálculo da idade, inverteram-se as posições dos anos e, por isso, a idade resultante será sempre negativa. 
 
O fluxograma está incompleto e errado, pois não exibe mensagens antes que a leitura de dados seja realizada. 
 O fluxograma é responsável por calcular a idade de um indivíduo a partir de seu ano de nascimento e do ano em que estamos. 
Respondido em 17/03/2020 22:02:07 
 
 
 
 
 6a Questão 
 
 
Sobre algoritmo, marque a opção correta. 
 
 É a solução teórica, passo a passo, de um problema. 
 
É uma forma de ensinar o computador. 
 
É uma linguagem de programação para computadores. 
 
É uma etapa posterior à programação da solução de um problema. 
 
É um hardware especifico para resolver problemas. 
Respondido em 17/03/2020 22:02:40 
 
 
Explicação: 
Falso. Algoritmo não é linguagem de programação. Exemplo de 
linguagem de programção : C++ 
É uma linguagem de 
programação para 
computadores. 
 
Falso. Algoritmo é um conjunto de passos sem ambiguidade que vão 
traduzir a solução de um problema. O algoritmo poderá virar um 
programa, que poderá ou não "ensinar" o computador. 
É uma forma de ensinar o 
computador. 
 
 Verdadeiro 
É a solução teórica, passo a 
passo, de um problema. 
 
Falso. É uma etapa anterior à programação, ou seja, à criação de programa. 
É uma etapa posterior à 
programação da solução de um 
problema. 
 
Falso. Algoritmo pode virar um programa. E programa é software e 
não hardware. 
É um hardware especifico para 
resolver problemas. 
 
 
 
 
 
 7a Questão 
 
 
Observe as assertivas a seguir acerca dos fluxogramas: 
I. Os mesmos são a representação gráfica dos algoritmos. 
II. Para desenhá-los, é preciso adotar uma simbologia padrão pré-determinada. 
III. Existem programas que permitem que os mesmos sejam desenhados no computador. 
Assinale a seguir a alternativa que indica as afirmações corretas: 
 
 
I e III 
 I, II e III. 
 
II e III. 
 
Todas são falsas. 
 
I e II. 
Respondido em 17/03/2020 22:03:23 
 
 
 
 
 8a Questão 
 
 
Considerando as afirmativas a seguir em relação a representação de algoritmos: 
 
I - O fluxograma utiliza diagramas para representar e facilitar o entendimento de um algoritmo; 
II - O pseudocódigo é um recurso muito utilizado para desenvolver programas complexos e representar graficamente o algoritmo; 
III - A linguagem de programação é a maneira utilizada de formalizar a solução de um problema do mundo real a partir dos 
algoritmos. 
 
Podemos afirmar que: 
 
 As alternativas I e III são CORRETAS 
 Apenas a alternativa I é CORRETA 
 
Nenhuma das opções anteriores 
 
Todas as alternativas são CORRETAS 
 
As alternativas II e III são INCORRETAS 
Respondido em 17/03/2020 22:04:26 
 
 
Explicação: 
Analisando cada afirmativa... 
 
I - O fluxograma utiliza diagramas para representar e facilitar o entendimento de um algoritmo; VERDADEIRO 
II - O pseudocódigo é um recurso muito utilizado para desenvolver programas complexos e representar graficamente o algoritmo; 
FALSO 
III - A linguagem de programação é a maneira utilizada de formalizar a solução de um problema do mundo real a partir dos 
algoritmos. VERDADEIRO 
 
Conclusão : As afirmativas I e III estão corretas. 
 
 
 
 
 1a Questão 
 
 
Assinale a opção correta. 
 
 Uma possível declaração de uma variável booleana em C++ : boolean x; 
 Uma possível declaração de uma variável inteira em C++ : x int; 
 Declarando e atribuindo um valor à uma variável booleana em C++ : 
 boolean x = true ; 
 As variáveis do tipo bool podem ser true ou false. 
 Declarando e atribuindo um valor à uma variável booleana em C++ : 
 bool x = "true"; 
Respondido em 04/05/2020 17:28:21 
 
 
Explicação: 
DE acordo com a sintaxe da linguagem C++ 
 
 
 
 
 2a Questão 
 
 
As palavras que fazem parte de um conjunto próprio da linguagem C++ são chamadas: 
 
 
palavras próprias 
 
palavras código 
 
palavras especiais 
 palavras reservadas 
 
palavras únicas 
Respondido em 04/05/2020 17:28:15 
 
 
Explicação: 
Não tem outra possibilidade com margem à dúvida. Por definição, é palavra reservada. 
 
 
 
 
 3a Questão 
 
 
Assinale a opção correta. O que quer dizer main ? 
 
 
algoritmo 
 
programa 
 
estruturado, de português estruturado 
 
portugol 
 principal 
Respondido em 04/05/2020 17:28:41 
 
 
Explicação: 
Basta saber a tradução. 
 
 
 
 
 4a QuestãoOs comentários são recursos que podem ser utilizados pelos programadores para: 
 
 
Inserir comandos que serão traduzidos pelo compilador 
 
Inserir textos explicativos apenas para o usuário 
 
Inserir comandos que serão executados pela máquina 
 
Inserir diretivas para o compilador 
 Inserir textos explicativos apenas para o programador 
Respondido em 04/05/2020 17:29:31 
 
 
Explicação: 
Falso. Comentário não é comando ou permite inserir 
comando. 
Inserir comandos que serão executados pela 
máquina 
 
Falso. Comentário não é comando ou permite inserir 
comando. 
Inserir comandos que serão traduzidos pelo 
compilador 
 
 Verdadeiro 
Inserir textos explicativos apenas para o 
programador 
 
Falso. O usuário não irá ler o programa. 
Inserir textos explicativos apenas para o 
usuário 
 
Falso. O compilador irá ignorar o texto explicativo dos 
comentários. 
Inserir diretivas para o compilador 
 
 
 
 
 
 5a Questão 
 
 
Assinale a opção que apresenta somente nomes válidos para variáveis em C++. 
 
 
Conta, Total1, DIA-MÊS-ANO 
 
CONTA, TOTAL1, 1DATA 
 
1conta, 2total, 3data 
 CONTA, TOTAL1, data 
 
Conta, Total, 5data 
Respondido em 04/05/2020 17:32:06 
 
 
Explicação: 
Falsa. Não se pode começar nome de variável com dígito. CONTA, TOTAL1, 1DATA 
 
Falsa. Não se pode começar nome de variável com dígito. Conta, Total, 5data 
 
Verdadeiro CONTA, TOTAL1, data 
 
Falsa. Não se pode pôr acento ou usar hífen em nome de variável. Conta, Total1, DIA-MÊS-ANO 
 
Falsa. Não se pode começar nome de variável com dígito. 1conta, 2total, 3data 
 
 
 
 
 
 6a Questão 
 
 
Faz parte do desenvolvimento de uma algoritmo declarar as variáveis que armazenarão dados a ser manipulados pelo algoritmo. De 
acordo com as regras para criação dos nomes para as variáveis, assinale a alternativa que possui um exemplo de nome INCORRETO: 
 
 
nota2 
 
num1 
 
nome_aluno 
 cad1- id 
 
salariofinal 
Respondido em 04/05/2020 17:35:21 
 
 
Explicação: 
 
Falso, pois é nome possível ter letras e underscore nome_aluno 
 
Falso, pois é nome possível ter letra e dígito. num1 
 
 Verdadeiro, pois não se pode usar hífen em nome de variável. cad1- id 
 
Falso, pois é nome possível ter letras. salariofinal 
 
Falso, pois é nome possível ter letra e dígito. nota2 
 
 
 
 
 7a Questão 
 
 
Assinale a opção correta. 
 
 
O C++ é uma linguagem de alto nível na qual o uso de variáveis é opcional. 
 
Para programar em alto nível é preciso dominar a linguagem binária. 
 
O C++ não é uma linguagem de alto nível, pois usa palavras em Inglês que nem todos entendem. 
 
Dizemos que uma linguagem é de alto nível quando usa linguagem binária. 
 Dizemos que uma linguagem é de alto nível quando conseguimos ler e escrever usando palavras conhecidas por nós. 
Respondido em 04/05/2020 17:36:07 
 
 
Explicação: 
 
 
 
Dizemos que uma linguagem é de alto nível quando 
conseguimos ler e escrever usando palavras 
conhecidas por nós. 
 
Falso. Linguagem binária é com zeros e uns, o que é 
baixo nível. 
Dizemos que uma linguagem é de alto nível quando 
usa linguagem binária. 
 
Falso. C++ é uma linguagem de programação de alto 
nível e usa palavras em Inglês. 
O C++ não é uma linguagem de alto nível, pois usa 
palavras em Inglês que nem todos entendem. 
 
Falso. Não se tem que dominar a linguagem binária 
em hipótese alguma. 
Para programar em alto nível é preciso dominar a 
linguagem binária. 
 
FAlso. O C++ é uma linguagem de alto nível na qual 
o uso de variáveis é necessário para armazenarmos 
dados. 
O C++ é uma linguagem de alto nível na qual o uso 
de variáveis é opcional. 
 
 
 
 
 
 8a Questão 
 
 
Uma variável pode ser entendida como sendo: 
 
 Um elemento da unidade lógica de controle. 
 Um dispositivo de memória auxiliar. 
 Um endereço na memória principal. 
 Um dispositivo de entrada de dados. 
 Um dispositivo de saída de dados. 
Respondido em 04/05/2020 17:38:18 
 
 
Explicação: 
Analisando cada item : 
Falso. Variável ocupa espaço em memória e tem um endereço. 
Um dispositivo de entrada de dados é o teclado. 
Um dispositivo de entrada de dados. 
 
 
Falso. Variável ocupa espaço em memória e tem um endereço. Um dispositivo de memória auxiliar. 
 
Verdadeiro. 
 
Um endereço na memória principal. 
 
Falso. Variável ocupa espaço em memória e tem um endereço. 
Um dispositivo de saída de dados é o monitor. 
 
Um dispositivo de saída de dados. 
 
Falso. Variável ocupa espaço em memória e tem um endereço. Um elemento da unidade lógica de controle. 
 
 
 
 
 
 1a Questão 
 
 
Monte a tabela da verdade para a expressão A || B && C && !A. 
A B C !A B && C B && C && !A A || B && C && !A 
V V V F V F 
V V F F F F 
V F V F F F 
V F F F F F 
F V V V V V 
F V F V F F 
F F V V F F 
F F F V F F 
A sequência de valores que preenche a última coluna, de cima para baixo, é: 
 
 
F, F, F, F, F, V, V, V 
 V, V, V, V, V, F, F, F 
 
F, V, F, V, V, F, V, F 
 
V, V, F, F, V, V, F, F 
 
V, F, V, F, V, F, V, F 
Respondido em 04/05/2020 19:24:13 
 
 
 
 
 2a Questão 
 
 
Se você desejar escrever a expressão A|| B && C && !D em um algoritmo no Portugol Studio, como a mesma ficaria? 
 
 
A ou nao B e nao C e nao D 
 
A ou B e C e D 
 
A e B ou C ou nao D 
 
A e B ou C nao D 
 A ou B e C e nao D 
Respondido em 04/05/2020 19:25:16 
 
 
 
 
 3a Questão 
 
 
Observe a tabela da verdade para a expressão A && B || B || A. 
A B A && B A && B || B A && B || B || A 
V V V V 
V F F F 
F V F V 
F F F F 
Os valores que completam correta e sequencialmente a coluna A && B || B || A, de cima para baixo, são: 
 
 
F - V - V - F 
 V - V - V - F 
 
V - V - V - V 
 
F - F - V - F 
 
V - F - F - F 
Respondido em 04/05/2020 19:25:50 
 
 
 
 
 4a Questão 
 
 
Considerando os seguintes conteúdos para as variáveis: 
 a = 2, b = 5 e c = 4 
Determine qual das sentenças retornará verdadeiro. 
 
 ((b = 2) == a) 
 
a == c 
 
pow(c,a) > b * c 
 
(b % a) == 0 
 
(b + 2) > (a * c) 
Respondido em 04/05/2020 19:27:28 
 
 
Explicação: 
a == c --> falso, pois a é diferente c 
(b + 2) > (a * c) -> falso, pois 7 > 8 é falso 
((b = 2) == a) , verdade, pois a = 2 
 
 
 
 
 5a Questão 
 
 
Assinale a opção correta. 
 
 
São operadores lógicos : &&, ||, != 
 
As expressões lógicas retornam valores inteiros 
 Os operadores matemáticos são : +, - , *, / e %. 
 
os operadores matemáticos não tem precedência de uso 
 
São operadores relacionais : = , > , < 
Respondido em 04/05/2020 19:28:49 
 
 
Explicação: 
Os operadores matemáticos são : +, - , *, / e %. = VERDADE 
São operadores lógicos : &&, ||, != --> != não é operador lógico e sim relacional (diferente) --> FALSO 
São operadores relacionais : = , > , < ---> = não é operador relacional e sim comando de atribuição de valor a variável.--> FALSO 
As expressões lógicas retornam valores inteiros --> FALSO, retornam valores lógicos (V ou F) 
os operadores matemáticos não tem precedência de uso --: FALSO, há precedencia sim, o * tem preferencia sobre a soma e 
subtrção 
 
 
 
 
 
 
 6a Questão 
 
 
Assinale a alternativa que apresenta APENAS operadores relacionais. 
 
 
+, - e * 
 
&&, >= e || 
 <, > e >= 
 
=, > e || 
 
&&, || e ~ 
Respondido em 04/05/2020 19:29:30 
 
 
Explicação: 
 
<, > e >= 
 
&& e || são operadores lógicos na linguagem C++ 
 ~ é operador na lógica matemática para negação 
&&, || e ~ 
 
 = é atribuição 
 > relacional 
 || ou lógico 
=, > e || 
 
O único relacional é >= . Os outros dois são operadores lógicos. &&, >= e || 
 
 Operadores matemáticos +, - e * 
 
 
 
 
 7a Questão 
 
 
Os operadores lógicos servem para combinar resultados de expressões, retornando se o resultado final é verdadeiro ou falso. 
Marquea alternativa que contém o operador lógico que deve ser utilizado quando as duas proposições lógicas necessitam ser 
verdadeiras para que o resultado da combinação seja verdadeiro. 
 
 
((pontos>=10) % (pontos <=20)) 
 
((pontos>=10) || (pontos <=20)) 
 
((pontos>=10) ! (pontos <=20)) 
 
((pontos>=10) # (pontos <=20)) 
 ((pontos>=10) && (pontos <=20)) 
Respondido em 04/05/2020 19:30:35 
 
 
Explicação: 
Pelo tabela verdade do operador e ( && em C++), as duas condições devem ser verdadeiras para toda a expressão ser verdadeira. 
Se for o ou (símbolo ||), basta uma condição se verdadeira para toda a expressão ser verdadeira. 
% é para cálculo de resto. 
# não tem efeito 
O operador ! é unário e inverte o valor lógico. Ou seja, se a expressão for verdadeira : ! expressão é falsa. 
 
 
 
 
 8a Questão 
 
 
Utilizando os operadores adequados, como pode ser reescrita a expressão abaixo? 
 A ou B e C e não D 
 
 
A || B ! C ! &&D 
 
A !! B && C && ||D 
 A || B && C && !D 
 
A && B || C || !D 
 
A && B && C && !D 
Respondido em 04/05/2020 19:31:31 
 
 
Explicação: 
A || B && C && !D 
|| = OU 
&& = E 
! = não 
 
 
 
 
 1a Questão 
 
 
Marque a opção correta quanto ao uso dos comandos de entrada e saída em C++ 
 
 
cout < lendo idade; cin > idade 
 
cout "lendo a idade"; cin idade; 
 
System.out.println("lendo idade"); System.out.println("lendo idade"); 
 cout << "lendo a idade"; cin >> idade; 
 
exiba "lendo a idade"; lendo idade; 
Respondido em 04/05/2020 21:10:50 
 
 
Explicação: 
Falso. Erro no cout e no cin. Os operadores são >> e <<. E 
ainda ?: variável não tem espaço em branco 
cout < lendo idade; cin > idade 
 
 VErdade cout << "lendo a idade"; cin >> idade; 
 
Falso. Faltam os operadores >> e << cout "lendo a idade"; cin idade; 
 
Falso. Em C++ não é exiba e lendo. exiba "lendo a idade"; lendo idade; 
 
Falso. Não é Java. Em C++ usam-se cout para saída de 
dados e cin para entrada de dados 
System.out.println("lendo idade"); 
System.out.println("lendo idade"); 
 
 
 
 
 2a Questão 
 
 
Observe o algoritmo a seguir: 
1 programa 
2 { 
3 inclua biblioteca Matematica --> mat 
4 funcao inicio() 
5 { 
6 real qtdeDin, valComb, qtdeLitros 
7 escreva("Quanto custa o litro do combustível? R$ ") 
8 leia(valComb) 
9 escreva("Quantos reais você tem? R$ ") 
10 leia(qtdeDin) 
11 qtdeLitros=qtdeDin/valComb 
12 escreva("Com R$ ", qtdeDin, " você consegue abastecer 
", mat.arredondar(qtdeLitros,2)," litros de combustível.") 
13 } 
14 } 
Sabendo que o valor do litro do combustível é R$ 3.90 e que você dispõe de R$ 200.00 para abastecer, qual mensagem seria exibida 
pelo computador na linha 12? 
 
 
"Você consegue abastecer 51.28 litros de combustível com R$ 200.00." 
 "Com R$ 200.00 você consegue abastecer 51.28 litros de combustível." 
 
"Com R$ 200.00 você consegue abastecer 51.287645 litros de combustível." 
 
"Com R$ qtdeDin você consegue abastecer mat.arredondar(qtdeLitros,2) litros de combustível." 
 
"Você consegue abastecer 51.28 litros de combustível." 
Respondido em 04/05/2020 21:12:04 
 
 
 
 
 3a Questão 
 
 
Utilizando as regras do Portugol Studio, imagine que você precisa escrever um algoritmo que receba o ano atual e o ano de nascimento 
de um usuário, calcule e exiba a sua idade através da mensagem "Você tem ou fará XX anos", onde XX é a idade calculada. Qual das 
alternativas a seguir mostra a instrução correta a ser utilizada na exibição da idade? 
 
 
leia("Você tem ou fará " / idade/ " anos") 
 
leia("Você tem ou fará ", idade, " anos") 
 escreva("Você tem ou fará ", idade, " anos") 
 
escreva("Você tem ou fará " /idade/ " anos") 
 
escreva("Você tem ou fará " * idade * " anos") 
Respondido em 04/05/2020 21:12:57 
 
 
 
 
 4a Questão 
 
 
Marque a opção correta para a declaração das variáveis conforme o trecho de código abaixo, que calcula a média de 3 notas de 1 
aluno: 
 printf (" nota 1 = "); 
 scanf("%f", nota1); 
 printf (" nota 2 = "); 
 scanf("%f", nota2); 
 printf (" nota 3 = "); 
 scanf("%f", nota3); 
 media=(nota1+nota2+nota3)/3; 
 printf ("media= %f",media); 
 
 
 
nota1, nota2, nota3 : float 
 float nota1, nota2, nota3, media; 
 
int nota1, nota2, nota3, media; 
 
float nota1..nota3, media; 
 
real nota1, nota2, nota3; 
Respondido em 04/05/2020 21:13:44 
 
 
Explicação: 
as 4 variáveis precisam ser float, para conterem valores com casas decimais 
 
 
 
 
 5a Questão 
 
 
No C++, para que os acentos sejam exibidos corretamente durante a execução de um programa, é preciso que sejam utilizadas a 
biblioteca _______________ e a função _______________. 
 
 
math - math.round 
 locale - setlocale 
 
locale - ptb 
 
iostream - ptb 
 
iostream - setlocale 
Respondido em 04/05/2020 21:14:06 
 
 
 
 
 6a Questão 
 
 
C++ é uma linguagem de programação compilada. Leia as assertivas a seguir e assinale Verdadeiro ou Falso conforme o que é dito 
sobre as funções do compilador: 
( ) Verificar erros de sintaxe no programa; 
( ) Produzir um outro programa em linguagem de máquina; 
( ) Executar o programa sem necessidade de conversão alguma. 
 
 
F - V - F 
 V - V - F 
 
V - V - V 
 
F - F - F 
 
V - F - F 
Respondido em 04/05/2020 21:14:53 
 
 
 
 
 7a Questão 
 
 
Imagine que você viajou para os Estados Unidos e está muito confuso com a forma como os americanos medem a temperatura, que 
é em Fahrenheit. Para ficar com menos dúvidas, você decide criar um algoritmo que, dada uma temperatura em Fahrenheit, exiba 
seu equivalente em graus Celsius. Com base na sintaxe do Portugol Studio, qual das alternativas a seguir apresenta o trecho da 
solução a ser escrito no lugar das interrogações a seguir? 
programa { 
 funcao inicio( ) { 
 ???????? 
 } 
} 
 
 
real tempF, tempC 
escreva("Temperatura em Fahrenheit: ") 
tempC=(tempF-32)/1.8 
escreva("Temperatura em graus Celsius: ", tempC) 
 
real tempF, tempC 
escreva("Temperatura em Fahrenheit: ") 
leia(tempF) 
tempC=(tempF-32)/1.8 
 real tempF, tempC 
escreva("Temperatura em Fahrenheit: ") 
leia(tempF) 
tempC=(tempF-32)/1.8 
escreva("Temperatura em graus Celsius: ", tempC) 
 
real tempF, tempC 
escreva("Temperatura em Fahrenheit: ") 
leia(tempF) 
escreva("Temperatura em graus Celsius: ", tempC) 
 
escreva("Temperatura em Fahrenheit: ") 
leia(tempF) 
tempC=(tempF-32)/1.8 
escreva("Temperatura em graus Celsius: ", tempC) 
Respondido em 04/05/2020 21:38:55 
 
 
 
 
 8a Questão 
 
 
Assinale a opção correta : 
 
 Para entrada de dados usamos cout com << e para saída de dados usamos 
cin com >> 
 Para entrada de dados usamos cin com << e para saída de dados usamos 
cout com >> 
 Para entrada de dados usamos cin com >> e para saída de dados usamos 
cout com << 
 Para entrada de dados usamos cout e para saída de dados usamos cin 
 Para entrada de dados usamos read e para saída de dados usamos write 
Respondido em 04/05/2020 21:39:30 
 
 
Explicação: 
Basta seguir as descrições na aula 2. 
 
 
 
 
 1a Questão 
 
 
Quando estudamos sobre a estrutura do se ... entao...senao, sempre nos é dito que, quando tivermos duas 
possibilidades de respostas, devemos escolher a estrutura do se composto ao invés de usar duas estruturas 
do se simples. 
Observe as afirmativas abaixo e, depois, escolha a resposta que respalda o uso do se composto pelo que foi dito 
acima ao invés do se simples. 
I Maior clareza no código, mas não influência na eficiência do mesmo 
II Maior eficiência porque diminui o número de testes no código 
III Maior eficiência somente porque o código fica mais legível, visto que o resultado final é o mesmo 
IV Somente uma escolha do desenvolvedor, visto que o resultado o resultado final é o mesmo 
 
 Somente a I está correta 
 A II E A III estão corretas 
 A II E IV estão corretas 
 Somentea IV está correta 
 Somente a II está correta 
Respondido em 04/05/2020 22:35:52 
 
 
Explicação: 
I Maior clareza no código, mas não influência na eficiência do mesmo . 
Comentário : Falso. Traz clareza e afeta a eficiência sim, pois acaba se fazendo testes desnecessários. 
II Maior eficiência porque diminui o número de testes no código 
Comentário : Correto. 
III Maior eficiência somente porque o código fica mais legível, visto que o resultado final é o mesmo. 
Comentário : Falso. Não é só legibilidade, mas é uma questão de eficiência, pois evita-se teste desnecessário. 
IV Somente uma escolha do desenvolvedor, visto que o resultado o resultado final é o mesmo 
Comentário : Falso. O desenvolvedor pode escolher sim, mas o uso adequado do condicional composto pode trazer maior eficiência 
para o código. 
Opção correta : 
 Somente a II está correta 
 
 
 
 
 2a Questão 
 
 
No C++, a estrutura seletiva if permite que sejam avaliadas condições para que, a partir do resultado dessa avaliação, o programa 
decida o trecho a ser executada. Imaginando que você precisa avaliar se um número armazenado na variável num é positivo, negativo, 
ou nulo, que alternativa apresenta o trecho da condição seletiva necessário para este teste? 
 
 else (num>0) 
{ cout <<"Este número é positivo!";} 
if (num<0) 
{ cout <<"Este número é negativo!";} 
else 
{ cout <<"Este número é nulo!";} 
 
if (num>0) 
{ cin <<"Este número é positivo!";} 
else if (num<0) 
{ cin <<"Este número é negativo!";} 
else 
{ cin <<"Este número é nulo!";} 
 
if (num<0) 
{ cout <<"Este número é positivo!";} 
else if (num>0) 
{ cout <<"Este número é negativo!";} 
else 
{ cout <<"Este número é nulo!";} 
 if (num>0) 
{ cout <<"Este número é positivo!";} 
else if (num<0) 
{ cout <<"Este número é negativo!";} 
else 
{ cout <<"Este número é nulo!";} 
 
if (num>0) 
{ cout <<"Este número é positivo!";} 
else (num<0) 
{ cout <<"Este número é negativo!";} 
else 
{ cout <<"Este número é nulo!";} 
Respondido em 04/05/2020 23:17:24 
 
 
 
 
 3a Questão 
 
 
Considere um programa em C++ que recebe um número inteiro qualquer e informe se ele é par ou ímpar. a estrutura seletiva 
adequada para teste do número é: 
 
 if (resto==0) 
 {cout <<"Este número é par!";} 
else 
 {cout <<"Este número é ímpar!";} 
 
if (resto=0) 
 {cout <<"Este número é par!";} 
if 
 {cout <<"Este número é ímpar!";} 
 
if (resto!=0) 
 {cout <<"Este número é par!";} 
else 
 {cout <<"Este número é ímpar!";} 
 
switch (resto==0) 
 {cout <<"Este número é par!";} 
case 
 {cout <<"Este número é ímpar!";} 
 
if (resto==0) then 
 {cout <<"Este número é par!";} 
elseif not 
 {cout <<"Este número é ímpar!";} 
Respondido em 04/05/2020 23:18:57 
 
 
 
 
 4a Questão 
 
 
Considere um programa em C++ que leia os valores A, B, C e informe se a soma dos dois primeiros termos é maior do que o terceiro. 
A estrutura seletiva adequada para esse teste é: 
 
 if ((A+B)>C) 
{ cout << "A soma de A e B é maior do que C!"; } 
 
do 
{ cout << "A soma de A e B é maior do que C!"; } 
while ((A+B)>C) 
 
switch ((A+B)>C) 
{ cout << "A soma de A e B é maior do que C!"; } 
 
while ((A+B)>C) 
{ cout << "A soma de A e B é maior do que C!"; } 
 
for ((A+B)>C) 
{ cout << "A soma de A e B é maior do que C!"; } 
Respondido em 04/05/2020 23:19:48 
 
 
 
 
 5a Questão 
 
 
Examine as afirmativas a seguir e marque a alternativa correta. 
I- A estrutura de decisão pode alterar ou desviar o fluxo natural de execução de um algoritmo. 
II- O uso de uma estrutura de decisão composta pode ser mais eficiente que o uso de duas estruturas de decisão simples, pois 
reduz o número de testes. 
III- Muitas vezes é possível combinar a condição de duas estruturas de decisão simples em apenas uma utilizando operadores 
lógicos. 
 
 
Apenas a alternativa ii está correta. 
 Todas as alternativas estão corretas. 
 
Todas as alternativas estão erradas. 
 
Apenas a alternativa iii está correta. 
 
Apenas a alternativa i está correta. 
Respondido em 04/05/2020 23:20:16 
 
 
Explicação: As estruturas de decisão realmente alteram o fluxo de um programa, uma estrutura composta é mais eficiente que duas 
simples, já que há menos testes e podemos usar operadores lógicos para combinar condições e reduzir o número de estruturas de 
decisão simples. Portanto todas as afirmativas estão corretas. 
 
 
 
 
 6a Questão 
 
 
Sobre a estrutura seletiva "se", pode-se afirmar que ela 
( ) permite que novas estruturas seletivas sejam definidas dentro dela; 
( ) restringe a execução de um trecho do código à veracidade, ou não, de uma ou mais condições; 
( ) não permite o teste de condições que combinem, na mesma expressão, operadores de tipos distintos; 
 
 
V - V - V 
 
F - V - F 
 V - V - F 
 
V - F - V 
 
F - F - F 
Respondido em 04/05/2020 23:25:08 
 
 
 
 
 7a Questão 
 
 
Analise o programa abaixo e selecione a alternativa que contenha a condição correta para que o número 27 seja mostrado na tela. 
 
#include 
using namespace std; 
int main() 
{ 
int N1, N2; 
N1= 27; 
N2= 54; 
if ( ______________ ) 
{ 
 cout<< N2; 
} 
else 
{ 
 cout<< N1; 
} 
return 0; 
} 
 
 N1 > N2 || N2 < 50 
 
N1 < N2 && N1 > 20 
 
N1 < N2 && N1 < 50 
 
N2 > N1 || N1 > 50 
 
N2 == N1 || N2 > 20 
Respondido em 04/05/2020 23:37:06 
 
 
 
 
 8a Questão 
 
 
Analise o código abaixo e marque as saídas corretas: 
 
#include < iostream > 
using namespace std; 
 
int main () { 
 
int x, i; 
x = 1; 
cout << x; 
i = 6; 
x = x + i; 
cout << x; 
 
if ( x <= 7) { 
 cout << x; 
 x = x + 10; 
} else { 
 cout << x; 
} 
retun 0; 
} 
 
 
0, 6 e 7 
 
1, 6 e 16 
 1, 7 e 7 
 
1, 6 e 7 
 
1, 7, 17 
Respondido em 04/05/2020 23:37:29 
 
 
Explicação: 
int x, i; 
x = 1; 
cout << x; 
i = 6; 
x = x + i; 
cout << x; 
 
if ( x <= 7) { 
 cout << x; 
 x = x + 10; 
} else { 
 cout << x; 
} 
Fazendo um teste de mesa, temos : 
x = 1 e depois é impresso o valor 1 
i recebe 6 e então, x recebe 1+6, que dá 7. Então, 7 é impresso. 
Chegamos na condição do if e testamos se 7 <= 7. É verdade ? Sim. Então, 7 é impresso e depois, x recebe 7 + 10, que dá 17. 
Ou seja, foi impresso 1 7 7 
 
 
 
1. 
 
 
 
A linguagem C++ possui estruturas de decisão, as quais podem mudar a sequência de execução dos comandos. Analise o trecho de programa 
abaixo e assinale a alternativa que corresponda a estrutura de decisão utilizada. 
int main() { 
int num; 
cout<<"Digite um número: "; 
cin>> num; 
(num > 0)?cout<< num : cout<<" Número negativo "; 
return 0; 
} 
 
 
Estrutura condicional de comando simples 
 
 
Estrutura condicional de comando composto 
 
 
Operador ternário 
 
 
aninhamento de if 
 
 
comando switch 
 
 
 
Explicação: 
Como dito no gabarito. O operador ? : equivale ao comando if ... else. 
 
 
 
 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
2. 
 
 
Imagine que você precisa escrever um programa que leia o nome, as 3 notas 
obtidas por um aluno nas 3 avaliações do semestre e a média dos exercícios 
que fazem parte da avaliação. O programa precisa calcular e exibir a média 
ponderada de aproveitamento e mostrar o conceito do aluno conforme as 
regras a seguir: 
Média de aproveitamento Conceito 
>= 9 A 
>= 7,5 e < 9 B 
>= 6 e < 7,5 C 
>= 4 e < 6 D 
< 4 E 
Qual das alternativas a seguir apresenta a estrutura seletiva que imprime o 
conceito do aluno? 
 
 
if (Media>=9) 
{ cin << "A"; } 
else (Media>=7.5 && Media<9) 
{ cin << "B"; } 
else (Media>= 6 && Media<7.5) 
{ cin << "C"; } 
else (Media>=4 && Media<6) 
{ cin << "D"; } 
else (Media<4) 
{ cin << "E"; } 
 
 
if (Media>=9) 
{ cin << "A"; } 
else if (Media>=7.5 && Media<9) 
{ cin << "B"; } 
else if (Media>= 6 && Media<7.5) 
{ cin << "C"; } 
else if (Media>=4 && Media<6) 
{ cin << "D"; } 
else if (Media<4){ cin << "E"; } 
 
 
if (Media>=9) 
{ cout << "A"; } 
else (Media>=7.5 && Media<9) 
{ cout << "B"; } 
else (Media>= 6 && Media<7.5) 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
{ cout << "C"; } 
else (Media>=4 && Media<6) 
{ cout << "D"; } 
else (Media<4) 
{ cout << "E"; } 
 
 
if (Media>=9) 
{ cout << "A"; } 
else if (Media>=7.5 || Media<9) 
{ cout << "B"; } 
else if (Media>= 6 || Media<7.5) 
{ cout << "C"; } 
else if (Media>=4 || Media<6) 
{ cout << "D"; } 
else if (Media<4) 
{ cout << "E"; } 
 
 
if (Media>=9) 
{ cout << "A"; } 
else if (Media>=7.5 && Media<9) 
{ cout << "B"; } 
else if (Media>= 6 && Media<7.5) 
{ cout << "C"; } 
else if (Media>=4 && Media<6) 
{ cout << "D"; } 
else if (Media<4) 
{ cout << "E"; } 
 
 
 
 
 
3. 
 
Considere o trecho de programa em C++ abaixo. O que é impresso na tela quando o número de entrada é 9 ? Assinale a opção 
correta. 
 int x; 
 cout << "Digite um numero: "; 
 cin >> x; 
 if (x % 2 == 0) 
 cout << x << "é divisível por 2"; 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
 
 else 
 if (x % 3 == 0 && x % 5 == 0) 
 cout << x << " é divisível por 3 e por 5"; 
 else 
 cout << x << " ### " ; 
 
 
 
Nada aparece, pois o trecho de programa possui erro. 
 
 
9 não é divisível por 2. 
 
 
Apenas 9 
 
 
9 ### 
 
 
9 é divisível por 3 e por 5. 
 
 
 
Explicação: 
Como a entrada foi 9 então o teste do 1o. if falha e entramos no 1o. else. 
Dentro do 1o. else temos uma conjunção, ou seja, um E. Como o 1o. teste do E é verdadeiro, mas o 2o. teste é falso, não 
entramos no bloco do 2o. if. Entramos então, no último else . Por isso, é impresso o valor de x e ###. Como x vale 9, a saída 
é 9### 
 
 
 
 
 
4. 
 
 
Considere que o trecho de código em C++ foi executado 2 vezes, sendo que na 1ª. execução o valor de entrada foi 10 e na 2ª. 
execução, o valor de entrada foi 5. Ao final das duas execuções, respectivamente, o que foi impresso na tela ? 
 
cout << "Digite um valor : "; 
cin >> z; 
switch(z) { 
case 5 : cout << 3 * z << " "; 
case 10 : cout << 11 /2 * z << " "; 
case 20 : cout << z * z - 10 << endl; 
break; 
default : cout << "Entrada invalida. " << endl; 
} 
 
 
 
15 25 15 50 90 
 
 
55 1 
 
 
15 27.5 15 55 90 
 
 
55 90 15 27.5 15 
 
 
50 90 15 25 15 
 
 
 
Explicação: 
O aluno deverá fazer um teste de mesa ou chinês para poder escolher a resposta certa. Tal questão envolve conhecimento de 
switch ... case com e sem break e de operadores aritméticos, como a divisão entre inteiros ocorrida no 2o. case. 
 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
 
 
 
5. 
 
 
Um aluno de Introdução a Programação precisa escrever um programa que leia um caracter equivalente a uma estação do ano 
imprima o nome equivalente considerando que P- Primavera, V - Verão, O - Outono e I - Inverno. Qual a estrutura básica em C++ 
que deve ser utilizada para fazer esta seleção múltipla? 
 
 
for 
 
 
while 
 
 
switch/case 
 
 
break 
 
 
do/while 
 
 
 
Explicação: 
 
Falso. Comando de repetição do/while 
 
Falso. Comando de repetição. for 
 
Verdadeiro. switch/case 
 
Falso. Comando de repetição. while 
 
Falso. Comando de interrupção. break 
 
 
 
 
 
 
6. 
 
 
Quero escrever um programa que leia o número equivalente a um dia da semana e retorne o nome equivalente considerando que 
1- Domingo, 2 - Segunda etc. Qual a estrutura básica em C++ que deve ser utilizada para fazer esta seleção múltipla? 
 
 
cout 
 
 
for 
 
 
do/while 
 
 
switch/case 
 
 
while 
 
 
 
Explicação: 
 
switch/case 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
 
É para repetição do/while 
 
É para repetição for 
 
É para impressão na tela cout 
 
É para repetição while 
 
 
 
 
 
 
7. 
 
 
Considere o trecho de programa em C++ abaixo. O que é impresso na tela quando o número de entrada é 7 ? Assinale a opção 
correta. 
 int num; 
 cout << "Digite um numero: "; 
 cin >> num; 
 if (num % 2 == 0) 
 cout << num << "é divisível por 2"; 
 else 
 if (num % 3 == 0 && num % 5 == 0) 
 cout << num << " é divisível por 3 e por 5"; 
 else 
 cout << num << " ### " ; 
 
 
 
7 é divisível por 3 e por 5. 
 
 
 
7 não é divisível por 2. 
 
 
 
Nada aparece, pois o trecho de programa possui erro. 
 
 
 
Apenas 7 
 
 
7 ### 
 
 
 
Explicação: 
Analisando o trecho em C++ e considerando a entrada 7 temos : 
num recebeu 7 na entrada. 
1o. teste : 7 % 2 é zero ? Falso. Então, entramos no else do 1o. if e testamos a condição do 2o. if 
2o. teste : 7 % 3 é zero ? Falso. Nem adianta testar a outra condição deste if, pois existe o &&. DAí, entramos no else do 2o. if, 
imprimindo na tela 
 7### 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
Logo, a resposta correta é 7### 
 
 
 
 
 
 
8. 
 
 
Uma lanchonete está disponibilizando para seus clientes um terminal através do qual poderão fazer seu pedido. Para que isso 
aconteça, o terminal deve exibir o menu de itens disponíveis conforme se vê a seguir: 
*** Cardápio *** 
100 - Hambúrguer - R$5,50 
101 - Cachorro-quente - R$4,50 
102 - Milkshake - R$7,00 
103 - Pizza brotinho - R$8,00 
104 - Cheeseburguer - R$8,50 
Informe o código do seu pedido: 
------------------------------------------------------------------- 
Uma vez que o cliente informe o código do item desejado, o terminal deverá perguntar a quantidade de itens que ele deseja pedir. 
Ao final, o usuário deverá informar o pedido do cliente e o valor a pagar. 
Considerando a sintaxe do Portugol Studio, um algoritmo que possa resolver o problema da lanchonete, utilizando a estrutura 
ESCOLHA, no trecho referente à compra de um milkshake seria: 
 
 
caso 102: 
 item="Milkshake" 
 valor=qtde*7 
pare 
 
 
escolha 102: 
 item="Milkshake" 
 valor=qtde*7 
pare 
 
 
se 102: 
 item="Milkshake" 
 valor=qtde*7 
pare 
 
 
enquanto (102) 
 item="Milkshake" 
 valor=qtde*7 
 
 
para (item==102) 
{ 
 item="Milkshake" 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
 valor=qtde*7 
} 
 
 
 
 
1. 
 
 
Imagine que você precisa escrever um programa em C++ que receba uma sequência de números e, para cada número informado, 
diga se ele é par ou ímpar. Essa sequência se encerra quando o usuário digitar 0 e você precisa utilizar uma estrutura repetitiva 
com pré-teste. Qual dos trechos a seguir atenderia essa solicitação? 
 
 
for (num==0; num!=0; num--) { 
 if (num%2==0) 
 { cout <<"Este número é par.\n"; } 
 else 
 { cout <<"Este número é ímpar.\n"; } 
 cout <<"Informe um número qualquer: "; 
 cin >>num; 
} 
 
 
for (num!=0) { 
 switch (num%2==0) 
 { cout <<"Este número é par.\n"; } 
 switch 
 { cout <<"Este número é ímpar.\n"; } 
 cout <<"Informe um número qualquer: "; 
 cin >>num; 
} 
 
 
do { 
 if (num%2==0) 
 { cout <<"Este número é par.\n"; } 
 else 
 { cout <<"Este número é ímpar.\n"; } 
 cout <<"Informe um número qualquer: "; 
 cin >>num; 
} while (num!=0) 
 
 
while (num!=0) { 
 if (num%2==0) 
 { cout <<"Este número é par.\n"; } 
 else 
 { cout <<"Este número é ímpar.\n"; } 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
 cout <<"Informe um número qualquer: "; 
 cin >>num; 
} 
 
 
while (num!=0) { 
 if (num%2==0) 
 { cin <<"Este número é par.\n"; } 
 else 
 { cin <<"Este número é ímpar.\n"; } 
 cin <<"Informe um número qualquer: "; 
 cout >>num; 
} 
 
 
 
 
 
2. 
 
 
Considere o trecho de programa em C++ abaixo. Marque a opção que, corretamente, mostra o que é impresso na tela. 
 
int x, y, z; 
x = 5; 
y = 20; 
while (x <= y) { 
z = x + y; 
x = x + 5; 
} 
cout << z << endl; 
 
 
 
25 
 
 
20 
 
 
35 
 
 
40 
 
 
30 
 
 
 
Explicação: 
Analisando passo a passo...x recebe 5 e y recebe 20 
1o. teste ... 5 <= 20 ? sim. Entra no loop e faz : 
 z recebe 25 
 x recebe 5+5, que dá 10 
2o. teste ... 10 <= 20 ? sim. Entra no loop e faz : 
 z recebe 30 
 x recebe 15 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
 
3o. teste ... 15 <= 20 ? sim. Entra no loop e faz : 
 z recebe 35 
 x recebe 20 
 
4o. . teste ... 20 <= 20 ? sim. Entra no loop e faz : 
 z recebe 40 
 x recebe 25 
5o. teste ... 25 <= 20 ? Falso. 
Depois do fim do while será impresso o valor de z que é 40. 
 
 
 
 
 
 
3. 
 
 
Comando de repetição é utilizado quando se deseja repetir determinados comandos. Marque a opção que representa o uso do 
comando while para implementar a estrutura de um contador corretamente. 
 
 
while (if cont =10){ } 
 
 
int cont = 0; while (cont <=10){ cout << "exibindo o número " << cont; cont++; } 
 
 
String cont = ""; { cont++; } while (cont!="") 
 
 
while () { cout << "exibindo o número"; } 
 
 
while (repita 10 vezes) { } 
 
 
 
Explicação: 
A estrutura geral do while quando se usa contador no teste do loop é a seguinte : 
while ( < condição... teste lógico ... com o contador > ) 
 { 
 < comandos> 
 alteração do contador 
} 
 
Analisando ... 
 Falsa. Faltou a condição ou teste lógico ou variável que pode ser 
true ou false. 
while () { cout << "exibindo o número"; } 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
 
 
Verdadeira. Pode se r encaixada na explicação no início. 
int cont = 0; while (cont <=10){ cout << "exibindo 
o número " << cont; cont++; } 
 
FAlsa. Não tem String em C++. Existe string, mas não String. 
Sintaxe incorreta no uso do while. 
String cont = ""; { cont++; } while (cont!="") 
 
Falsa. Sintaxe incorreta. Uso de repita sem sentido. while (repita 10 vezes) { } 
 
Falsa. Uso incorreto do if na parte relativa à condição do while. while (if cont =10){ } 
 
 
 
 
 
 
4. 
 
 
Qual a estrutura de repetição mais indicada para os casos em que é necessário que o bloco de código a ser repetido seja sempre 
repetido pelo menos uma vez? 
 
 
while do 
 
 
for{} 
 
 
while{} 
 
 
repeat until 
 
 
do{ }while 
 
 
 
Explicação: 
O comando do... while deixa fazer para depois testar. Logo, é feita apenas 1 vez. 
No caso do comando while ou for, é possível não entrarmos no bloco do loop nenhuma vez. 
 
 
 
 
 
 
5. 
 
Considere o trecho abaixo sabendo que num é um variável inteira. 
 
num = 11; 
do { 
 if (num % 2 == 0) 
 cout << num << "\n"; 
 num = num -1 ; 
} while (num != 0); 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
 
 
Assinale a opção correta : 
 
 
 
O trecho fornecido pára quando num for zero e os números exibidos são todos os pares de 10 até 0, nesta ordem. 
 
 
O trecho fornecido pára quando num for diferente de zero e o único número exibido é o 10. 
 
 
o trecho fornecido pára quando num for diferente de zero e são exibidos os valores 10 e 8, pelo menos. 
 
 
O trecho fornecido pára quando num for zero e os números exibidos são todos os pares de 10 até 2, nesta ordem. 
 
 
O trecho entra em loop. 
 
 
 
Explicação: 
1a. opção está correta. Veja o teste de mesa : 
num num % 2 é igual a zero ? 
num é 
diferente de 
zero ? 
 
11 11 % 2 é 1. Logo, é falso o teste do if. 
10 
10 diferente de 
0 ? sim 
 
 10 % 2 é zero ? sim. Imprime o 10 
9 
9 é diferente de 
0 ? sim 
 
 9 % 2 é zero ? Não 
8 
8 é diferente de 
zero ? sim 
 
 8 % 2 é zero ? Sim. Imprime o 8 
7 
7 é diferente de 
zero ? sim 
 
 7 % 2 é zero ? Não 
6 
 6 % 2 é zero ? Sim. Imprime o 6 e decrementa para 
5 valor de num 
6 é diferente de 
zero ? sim 
 
 
 E assim continua ... irá parar quando num for zero... 
Note que está imprimindo os pares de 10 até 2, pois 
quando decrementa num para zero, o teste 
do do...while falha. 
 
 
Imprimirá os números 10 8 6 4 2 , um embaixo do outro. 
 
2a. opção é falsa. Pára quando o valor de num for zero, mas não imprime o valor 0, justamente pelo já explicado no item 
anterior. 
3a. opção é falsa. Pára quando o valor de num for zero. Além disso, é um loop, então imprimem-se vários níumeros como 
mostrado na explicação da 1a. opção. 
4a. opção é falsa. Como mostrado no 1o. item, vários números são impressos : os números 10 8 6 4 2 , um embaixo do 
outro. 
5a. opção é falsa. Falso. Como mostrado no 1o. item, vários números são impressos : os números 10 8 6 4 2 , um embaixo 
do outro. Ocorre a parada do loop quando num for zero. 
 
 
 
 
 
 
6. 
 
 
Assinale a alternativa correta em relação a quantidade de vezes que a palavra "ALGORITMO" será impressa, no trecho de 
código abaixo: 
cont = 0; 
while( cont < 30 ) { 
 cout << "ALGORITMO" << endl; 
 cont = cont + 1; 
} 
 
 
15 
 
 
30 
 
 
31 
 
 
Nenhuma das alternativas. 
 
 
29 
 
 
 
Explicação: 
Fazendo passo a passo : 
cont = 0; 
while( cont < 30 ) { 
 cout << "ALGORITMO" << endl; 
 cont = cont + 1; 
} 
variável cont Teste cont < 30 ? Sim ou não ? 
0 0 < 30 ? sim 
1 1 < 30 ? sim 
2 2 < 30 ? Sim 
3 3 < 30 ? Sim 
4 4 < 30 ? Sim 
5 5 < 30 ? sim 
6 6 < 30 ? sim 
7 7 < 30 ? sim 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
continuando até 
29 
 29 < 30 ? Sim 
30 
30 < 30 ? Não. Falso. Não entra no while 
Note que entrou 30 vezes no corpo do while e a cada vez 
que entrou imprimiu ALGORITMO 
TELA 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
ALGORITMO 
>>>>>>>>>>>>>>>>>> Logo, imprimiu 30 vezes a palavra ALGORITMO 
 
 
 
 
 
 
7. 
 
 
Uma turma precisa escolher seu representante. Sabendo que existem apenas dois candidatos, identificados pelas letras A e B, 
imagine que você precisa escrever um programa em C++ que receba o número do aluno e o candidato por ele escolhido e contabilize 
os votos de cada um. A leitura de votos será finalizada quando o número do aluno informado for 0. Contabilize também os votos 
nulos, que são aqueles diferentes de A ou B. Ao final, é preciso exibir o candidato vencedor, os votos para o candidato A, os votos 
para o candidato B e os votos nulos. Qual das alternativas a seguir apresenta o trecho de código adequado à solução desse problema? 
 
 
cout<< "Digite o número do aluno: "; cin>> num; 
while (num!=0) { 
 cout<< "Digite a letra de seu candidato: "; cin>> voto; 
 if (voto == A) 
 { contA++; } 
 else if (voto == B) 
 { contB++; } 
 else 
 { contN++; } 
 cout<< "Digite o número do aluno: "; 
 cin>> num; 
} 
 
 
cout<< "Digite o número do aluno: "; cin>> num; 
do (num!=0) { 
 cout<< "Digite a letra de seu candidato: "; cin>> voto; 
 if (voto == A) 
 { contA++; } 
 else if (voto == B) 
 { contB++; } 
 else 
 { contN++; } 
 cout<< "Digite o número do aluno: "; 
 cin>> num; 
} 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
 
 
cout<< "Digite o número do aluno: "; cin>> num; 
for (num!=0) { 
 cout<< "Digite a letra de seu candidato: "; cin>> voto; 
 if (voto == A) 
 { contA++; } 
 else if (voto == B) 
 { contB++; } 
 else 
 { contN++; } 
 cout<< "Digite o número do aluno: "; 
 cin>> num; 
} 
 
 
cin<< "Digite o número do aluno: "; cout>> num; 
do while (num!=0) { 
 cin<< "Digite a letra de seu candidato: "; cout>> voto; 
 if (voto == A) 
 { contA++; } 
 else if (voto == B) 
 { contB++; } 
 else 
 { contN++; } 
 cin<<"Digite o número do aluno: "; 
 cout>> num; 
} 
 
 
cout<< "Digite o número do aluno: "; cin>> num; 
while (num!=0) { 
 cout<< "Digite a letra de seu candidato: "; cin>> voto; 
 case (voto == A) 
 { contA++; } 
 case (voto == B) 
 { contB++; } 
 case 
 { contN++; } 
 cout<< "Digite o número do aluno: "; 
 cin>> num; 
} 
 
 
 
 
 
8. 
 
 
Sobre a estrutura com pós-teste, julgue as assertivas a seguir Verdadeiras ou Falsas: 
( ) Avalia somente uma condição por vez, tendo essa que ser do tipo relacional ou matemático. 
( ) Trata-se de uma estrutura de seleção capaz de restringir a execução de determinado trecho do código; 
( ) É uma estrutura do tipo repetitiva, que precisa de uma condição que controle quando o trecho deve se repetir; 
 
 
 
F - F - F 
 
 
F - V - V 
 
 
V - F - V 
 
 
F - F - V 
 
 
V - F - F 
 
 
 
 
 
1. 
 
 
Ao fazer um programa de computador, algumas estruturas precisam ser utilizadas. Assinale a alternativa correta para que um 
programa repita 200 vezes um bloco de comandos através da estrutura de repetição FOR na linguagem C++. 
 
 
for (int i=0; i < 200; i++) 
 
 
for (int i=0; i =< 200; i++) 
 
 
for (int i=0, i <= 200, i++) 
 
 
for (int i=0; i <= 200; i++) 
 
 
for ( i=0; i <= 200; i++) 
 
 
 
Explicação: 
 
 Verdadeira for (int i=0; i < 200; i++) 
 
 Falsa. Entraremos 201 vezes no bloco do for, pois i começou de 0 e é <= no teste do 
for. 
for (int i=0; i <= 200; 
i++) 
 
 FAlsa. A variável i não foi declarada. for ( i=0; i <= 200; i++) 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
 Falsa. Não existe =< 
for (int i=0; i =< 200; 
i++) 
 
 Falsa. Uso indevido do for. Não se põe vírgula e sim ponto e vírgula. 
for (int i=0, i <= 200, 
i++) 
 
 
 
 
 
 
2. 
 
 
Marque a opção correta. Considere o trecho de programa feito em C++. O valor final de s e o valor final 
de num, são respectivamente: 
int conta, num=1, s=0; 
for(conta = 10; conta < = 40; conta= conta+10){ 
 s= s+num; 
 num= num +2; 
} 
 
 
 
50 e 16 
 
 
16 e 9 
 
 
50 e 9 
 
 
9 e 9 
 
 
o valor de s está indefinido e o valor de num é 7 
 
 
 
Explicação: 
Acompanhe o teste de mesa : 
num s conta conta <= 10 ? 
1 0 10 sim 
3 1 20 sim 
5 4 30 sim 
7 9 40 sim 
9 16 50 não 
Logo, s vale 16 e num vale 9 
 
 
 
 
 
 
 
3. 
 
Leia atentamente o trecho de código abaixo e diga o que ele retornaria ao usuário: 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
 
int main ( ) { 
 int i; 
 double x, y = 0; 
 for (i = 0; i < 10; i++){ 
 cout << "Digite um numero: "; 
 cin >> x; 
 y = y + x; 
 } 
 cout << "Numero: " << y << "\n"; 
 system("PAUSE"); 
 return 0; 
} 
 
 
A média dos elementos digitados 
 
 
A quantidade de elementos digitados 
 
 
O maior de todos os elementos digitados 
 
 
A soma de todos os elementos 
 
 
A soma dos elementos pares 
 
 
 
Explicação: 
Antes do loop é lido um valor e armazenado em x e a cada rodada o valor de x é acumulado em um somatório, indicado na linha 
: 
 y = y + x; 
Assim, ao final do for, teremos em y o somatório de todos os números que x armazenou. 
 
 
 
 
 
4. 
 
 
Após análise do código responda a questão: 
 
 
 
Ao ser compilado e executado, o programa irá exibir na tela: 
 
 
Os números ímpares entre 1 e 5 em ordem decrescente. 
 
 
Os valores entre 1 e 5 (inclusive) em ordem decrescente. 
 
 
Os números ímpares entre 1 e 5 (inclusive) em ordem decrescente. 
 
 
Os números pares entre 1 e 5 (inclusive) em ordem crescente. 
 
 
Os valores entre 1 e 5 (inclusive)em ordem crescente. 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
 
 
 
Explicação: 
 
 
Verdadeira, visto que o programa imprimirá : 
O valor de i e 5 
O valor de i e 3 
O valor de i e 1 
Portanto em ordem decrescente incluindo o 5 e o 1. 
Os números ímpares entre 1 e 5 (inclusive) em 
ordem decrescente. 
 
Falso. Não é entre apenas, pois inclui 5 e 1. 
Os números ímpares entre 1 e 5 em ordem 
decrescente. 
 
FAlso. É em ordem decrescente e imprime os ímpares e não os 
pares. 
Os números pares entre 1 e 5 (inclusive) em ordem 
crescente. 
 
FAlso. Não é qualquer valor, mas apenas os ímpares de 5 a 1, 
incluindo 5 e 1. 
Os valores entre 1 e 5 (inclusive) em ordem 
decrescente. 
 
FAlso. Não é qualquer valor, mas apenas os ímpares em ordem 
decrescente de 5 a 1. 
Os valores entre 1 e 5 (inclusive)em ordem 
crescente. 
 
 
 
 
 
 
5. 
 
 
Leia atentamente o trecho de código abaixo e diga o que ele retornaria ao usuário: 
int main ( ) { 
 int i = 0; 
 double x, y = 0; 
 cout << "Digite um numero: "; 
 cin >> x; 
 while (x != 0){ 
 i = i + 1; 
 y = y + x; 
 cout << "Digite um numero: "; 
 cin >> x; 
 } 
 y = y / i; 
 cout << "Numero: " << y << "\n"; 
 system("PAUSE"); 
 return 0; 
} 
 
 
O menor de todos os elementos digitados 
 
 
A média dos elementos digitados 
 
 
A quantidade de elementos digitados 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
 
 
A quantidade de elementos pares 
 
 
O maior de todos os elementos digitados 
 
 
 
Explicação: 
 int i = 0; //inicializa a quantidade de elementos digitados diferentes de zero 
 double x, y = 0; // y inicializa o somatorio dos valores de entrada 
 cout << "Digite um numero: "; 
 cin >> x; //Lê o primeiro valor 
 while (x != 0){ //Enquanto o valor de entrada não for zero 
 i = i + 1; //conta mais um número lido 
 y = y + x; //acumula o valor de x em y, gerando o somatório dos números lidos e armazenados em x 
 cout << "Digite um numero: "; 
 cin >> x; //Lê o proóximo número 
 } 
 y = y / i; //Divide a soma dos números lidos não nulos por i ( i é o total de números lidos não nulos) 
 cout << "Numero: " << y << "\n"; //Imprime a média armazenada em y 
Logo : O programa calcula a média dos números digitados (diferente de zero) 
 
 
 
 
 
6. 
 
 
Imagine que você precisa escrever um programa em C++ que receba o sexo de 100 pessoas (F para Feminino ou M para Masculino). 
Ao final da leitura dos sexos, o programa precisa exibir as seguintes informações: quantidade de mulheres, quantidade de homens, 
percentual de mulheres e percentual de homens. 
Observações: 1. O programa deve funcionar com "F" e "M" maiúsculos ou minúsculos; 2. A estrutura de repetição a ser utilizada 
deve ser FOR. 
Sabendo disso, qual seria o trecho de repetição adequado para esse programa? 
 
 
for (int cont=1;cont<=100;cont++) { 
 cin <<"Qual o sexo? "; 
 cout >>qtdeF; 
 if (sexo==F && sexo==f) 
 { qtdeF++; } 
 else if (sexo==M || sexo==m) 
 { qtdeM++; } 
} 
 
 
for (int cont=1;cont>=100;cont--) { 
 cout <<"Qual o sexo? "; 
 if (sexo==F && sexo==f) 
 { qtdeF++; } 
 else if (sexo==M &&| sexo==m) 
 { qtdeM++; } 
} 
 
 
for (int cont=1;cont>=100;cont--) { 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
 cout <<"Qual o sexo? "; 
 cin >>sexo; 
 if (sexo==F && sexo==f) 
 { qtdeF++; } 
 else if (sexo==M || sexo==m) 
 { qtdeM++; } 
} 
 
 
for (int cont=1;cont<=100;cont++) { 
 cout <<"Qual o sexo? "; 
 cin >>qtdeF; 
 if (sexo==F && sexo==f) 
 { qtdeF--; } 
 else if (sexo==M || sexo==m) 
 { qtdeM--; } 
} 
 
 
for (int cont=1;cont<=100;cont++) { 
 cout <<"Qual o sexo? "; 
 cin >>sexo; 
 if (sexo==F || sexo==f) 
 { qtdeF++; } 
 else if (sexo==M || sexo==m) 
 { qtdeM++; } 
} 
 
 
 
 
 
7. 
 
 
Analise o trecho do código abaixo, e indique a saída obtida se for lido o valor 5 para n: 
 
cin>>n; 
total=0; 
for (i=15; i>n; i-=2) 
{ 
 total+=i; 
} 
cout < < total;<total;< p=""> </total;<> 
 
 
63 
 
 
55 
 
 
48 
http://simulado.estacio.br/bdq_simulados_exercicio.asp39 
 
 
60 
 
 
 
Explicação: 
Considerando o trecho e n sendo 5 : 
cin>>n; 
total=0; 
for (i=15; i>n; i-=2) 
{ 
 total+=i; 
} 
cout < < total; 
temos o teste de mesa : 
n total i 
5 0 15 
 0 + 15 que é 15 13 
 15 + 13 que é 28 11 
 28 + 11 que é 39 9 
 39 + 9 que é 48 7 
 48 + 7 que é 55 5 ( 5 > 5 dá falso) 
Logo, total é 55 
 
 
 
 
 
8. 
 
 
 Marque a opção correta. O que é impresso na tela ? 
 int conta, x = 1, r = 1; 
 for (conta = 2; conta >= 0; conta--) { 
 r = r * x + 1; 
 x += 2; 
 cout << "r= " << r << " x = " << x << endl; 
 } 
 
 
 
 
 r = 2 x = 3 
r = 7 x = 5 
 
 
 r = 2 x = 3 
r = 7 x = 5 
r = 36 x = 7 
 
 
 r = 3 x = 4 
r = 8 x = 6 
r = 37 x = 7 
 
 
 
 r = 36 x = 7 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
 
 
 r = 3 x = 2 
r = 5 x = 7 
 
 
 
Explicação: 
 int conta, x = 1, r = 1; 
 for (conta = 2; conta >= 0; conta--) { 
 r = r * x + 1; 
 x += 2; 
 cout << "r= " << r << " x = " << x << endl; 
 } 
 
conta conta >= 0 x r 
2 sim 1 1 
 3 2 
1 sim 5 7 
 
0 sim 7 36 
 
-1 
 
 
TELA 
r = 2 x = 3 
r = 7 x = 5 
r = 36 x = 7 
 
 
 
 
 
1. 
 
 
 
 
 
-1 0 1 2 3 4 5 4 3 2 1 
 
 
0 1 2 3 4 5 4 3 2 1 0 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
 
 
-1 0 1 2 3 4 5 6 7 8 
 
 
0 1 2 3 4 5 6 7 8 9 
 
 
-1 0 1 2 3 4 4 3 2 1 
 
 
 
Explicação: 
O primeiro for preenche o vetor v[]= {0,1,2,3,4,5,6,7,8,9) 
O segundo for é executado de traz para frente por 4 vezes, até i=6 alterando valores do vetor. 
v[]= {0,1,2,3,4,5,4,3,2,1) 
No terceiro for, ele começa na posição 5, pois o anterior, executou até o 6 e voltou mais uma para encerrar. 
Logo este for vai variar de 5 até a zero, pois o valor inicial não foi declarado, ficando vazio e a cada valor da posição 5 até 0 será 
diminuído de uma unidade, ficando assim: 
v[]= {-1,0,1,2,3,4,4,3,2,1) 
O último for, apenas imprime o vetor completo. 
 
 
 
 
 
2. 
 
 
Você está escrevendo um programa no qual utiliza um vetor de 15 elementos do tipo caractere denominado LETRAS e precisa contar 
quantas posições do vetor armazenam a letra "A" ou a letra "E" e guardar o total na variável QuantAE. O trecho de código capaz de 
realizar essa contagem é: 
 
 
for (i=0;i<=14;i++) 
{ 
 if (LETRAS[i] == "A" or LETRAS[i] == "E") 
 { QuantAE=1; } 
} 
 
 
for (i=1;i<=15;i++) 
{ 
 if (LETRAS[i] == "A" && LETRAS[i] == "E") 
 { QuantAE+=1; } 
} 
 
 
for (i=0;i=14;i++) 
{ 
 if (LETRAS[i] == ¿A¿ !! LETRAS[i] == ¿E¿) 
 { QuantAE+=1; } 
} 
 
 
for (i=0;i<=14;i++) 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
{ 
 if (LETRAS[i] == "A" || LETRAS[i] == "E") 
 { QuantAE+=1; } 
} 
 
 
for (i=1;i<=14;i++) 
{ 
 if (LETRAS[i] == "A" || LETRAS[i] == "E") 
 { QuantAE+=; } 
} 
 
 
 
 
 
3. 
 
 
Analise o código abaixo e assinale o item que corresponde aos valores finais do vetor v. 
int a = 2; 
int v[] = {2, 3, 1}; 
v[0] = v[a]; 
v[1] = v[0] + v[0]; 
v[2] = v[0] + v[1]; 
 
 
1, 2, 3 
 
 
2, 3, 1 
 
 
1, 3, 2 
 
 
2, 1, 3 
 
 
3, 2, 1 
 
 
 
Explicação: 
Comentando linha a linha, a resposta será encontrada. 
int a = 2; 
int v[ ] = {2, 3, 1}; 
v[0] = v[a]; //v[0] recebe v[2], que é 1 
v[1] = v[0] + v[0]; // v[1] recebe 1 + 1, que dá 2 
v[2] = v[0] + v[1]; //v[2] recebe o valor 1+2, que dá 3 
 
 
 
 
 
 
4. 
 
 
Os chamados vetores e matrizes podem ser considerados como: 
 
 
 
Estruturas de dados homogêneas 
 
 
Comandos de seleção 
 
 
Comandos de seleção composta 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
 
 
Comandos de repetição 
 
 
Estruturas de dados heterogêneas 
 
 
 
Explicação: 
 Verdadeira Estruturas de dados homogêneas 
 
FAlsa. Em vetores e matrizes os dados são todos do mesmo tipo. Estruturas de dados heterogêneas 
 
Falso. Comandos de seleção são if, if/else e switch Comandos de seleção 
 
Falso. Comandos de repetição são for, while e do/while Comandos de repetição 
 
Falso. Comando if/else e não vetor ou matriz. Comandos de seleção composta 
 
 
 
 
 
 
5. 
 
 
Um vetor é uma estrutura _____________ e _____________ para armazenamento de um _____________ que deve ser 
_____________. 
 
 
bidimensional - homogênea - único valor - do mesmo tipo 
 
 
unidimensional - heterogênea - único valor - de tipos variados 
 
 
unidimensional - homogênea - conjunto de valores - do mesmo tipo 
 
 
unidimensional - homogênea - único valor - de tipos variados 
 
 
bidimensional - heterogênea - conjunto de valores - do mesmo tipo 
 
 
 
 
 
6. 
 
 
Observe as declarações abaixo e assinale a opção correta. 
 
I int idades[]={5,16,27,19}; 
II float CR[3]={6.1, 8.9, 9.3}; 
III char letras[]={"A", "E", "I", "O", "U"}; 
IV char letras[]={"ALGORITMOS"}; 
 
 
As declarações I , II e IV estão corretas 
 
 
A declaração I está errada e a declaração II está correta 
 
 
Somente as declarações I e II estão corretas 
 
 
As declarações III e IV estão erradas 
 
 
As declarações I , II e III estão corretas 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
 
 
Explicação: 
A afirmativa III está incorreta porque cada caracter deve estar entre aspas simples e não duplas. 
 
 
 
 
 
7. 
 
 
Em C++, se você precisasse escrever um programa que recebesse o sexo e a altura de 25 pessoas e armazenasse nos 
vetores Sexo e Altura, respectivamente, e, em seguida, calculasse e exibisse a média de altura das mulheres e a média de altura 
dos homens, que trecho utilizaria para recebimento de valores via teclado e para as somas necessárias na obtenção da média das 
alturas? 
Atenção às variáveis utilizadas: 
quantF - Quantidade de pessoas do sexo feminino; 
somaAF - Soma das alturas do sexo feminino; 
quantM - Quantidade de pessoas do sexo masculino; 
somaAM - Soma das alturas do sexo masculino. 
 
 
for (ind=24;ind<=24;ind++) { 
 cout <<"Informe o sexo: "; 
 cin >>Sexo[ind]; 
 cout <<"Informe a altura: "; 
 cin >>Altura[ind]; 
 if (Sexo[ind]==F || Sexo[ind]==f) 
 { quantF+=ind; somaAF+=Altura[ind]; } 
 else if (Sexo[ind]==M || Sexo[ind]==m) 
 { quantM+=ind; somaAM+=Altura[ind]; } 
} 
 
 
for (ind=0;ind<=24;ind++) { 
 cout <<"Informe o sexo: "; 
 cin >>Sexo; 
 cout <<"Informe a altura: "; 
 cin >>Altura; 
 if (Sexo[ind]==F || Sexo[ind]==f) 
 { quantF++; somaAF+=[ind]; } 
 else if (Sexo[ind]==M || Sexo[ind]==m) 
 { quantM++; somaAM+=[ind]; } 
} 
 
 
for (ind=0;ind>=24;ind--) { 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
 cout <<"Informe o sexo: "; 
 cin >>Sexo[ind]; 
 cout <<"Informe a altura: "; 
 cin >>Altura[ind]; 
 if (Sexo[ind]==F || Sexo[ind]==f) 
 { quantF++; somaAF=Altura[ind]; } 
 else if (Sexo[ind]==M || Sexo[ind]==m) 
 { quantM++; somaAM=Altura[ind]; } 
} 
 
 
for (ind=0;ind<=24;ind+=2) { 
 cout <<"Informe o sexo: "; 
 cin >>Sexo[ind]; 
 cout <<"Informe a altura: "; 
 cin >>Altura[ind]; 
 if (Sexo[ind]==F && Sexo[ind]==f) 
 { quantF++; somaAF+=Altura[ind]; } 
 else if (Sexo[ind]==M && Sexo[ind]==m) 
 { quantM++; somaAM+=Altura[ind]; } 
} 
 
 
for (ind=0;ind<=24;ind++) { 
 cout <<"Informe o sexo: "; 
 cin >>Sexo[ind]; 
 cout <<"Informe a altura: "; 
 cin >>Altura[ind]; 
 if (Sexo[ind]==F || Sexo[ind]==f) 
 { quantF++; somaAF+=Altura[ind]; } 
 else if (Sexo[ind]==M || Sexo[ind]==m) 
 { quantM++; somaAM+=Altura[ind]; } 
} 
 
 
 
 
 
8. 
 
 
Você deseja armazenar na variável SOMA a adição entre todos os elementos de um vetor com 10 número reais chamado NUM. O 
trecho de código que apresenta a estrutura repetitiva que permite que isso seja feito é:for (i=0;i<=9) 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
{ SOMA=NUM[i]; } 
 
 
for (i=0;i<=9;i++) 
{ SOMA+=NUM[i]; } 
 
 
for (i=0;i=9;i++) 
{ SOMA=NUM[i] } 
 
 
for (i=1;i<=10;i++) 
{ SOMA+=NUM[i]; } 
 
 
for (i=0;i<=9;i++) 
{ SOMA=SOMA[i]+NUM } 
 
 
 
 
 
 
1. 
 
 
Considere as regras do Portugol Studio e imagine que você precisa escrever um 
algoritmo que receba uma matriz 3x2 e exiba a quantidade de elementos ímpares 
armazenados nas linhas pares. A estrutura de repetição capaz de realizar o 
recebimento dos elementos da matriz M1 e a contagem descrita é: 
 
 
para (lin=0;lin<=2;lin++) { 
 para (col=0;col<=1;col++) { 
 escreva("Informe a posição [",lin+1,",",col+1,"]: ") 
 leia(M1[lin][col]) 
 se (lin%2!=0){ 
 se (M1[lin][col]%2!=0) 
 { qtdeImpares++ } 
 } 
 } 
} 
 
 
para (lin=0;lin<=2;lin++) { 
 para (col=0;col<=1;col++) { 
 escreva("Informe a posição [",lin+1,",",col+1,"]: ") 
 leia(M1) 
 se (lin%2){ 
 se (M1%2!=0) 
 { qtdeImpares++ } 
 } 
 } 
} 
 
 
para (lin=0;lin<=2;lin++) { 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
 para (col=0;col<=1;col++) { 
 escreva("Informe a posição [",lin+1,",",col+1,"]: ") 
 leia(M1[lin][col]) 
 se (lin%2==0){ 
 se (M1[lin][col]%2!=0) 
 { qtdeImpares-- } 
 } 
 } 
} 
 
 
para (lin=0;lin<=2;lin++) { 
 para (col=0;col<=1;col++) { 
 escreva("Informe a posição [",lin+1,",",col+1,"]: ") 
 leia(M1[lin][col]) 
 se (lin%2==0){ 
 se (M1[lin][col]%2==0) 
 { qtdeImpares++ } 
 } 
 } 
} 
 
 
para (lin=0;lin<=2;lin++) { 
 para (col=0;col<=1;col++) { 
 escreva("Informe a posição [",lin+1,",",col+1,"]: ") 
 leia(M1[lin][col]) 
 se (lin%2==0){ 
 se (M1[lin][col]%2!=0) 
 { qtdeImpares++ } 
 } 
 } 
} 
 
 
 
 
 
2. 
 
Considere os seguintes valores de entrada: 1, 2, 3, 4, 5, 6, 7, 8 e 9 e ainda, o 
programa abaixo. Marque a resposta que mostra o que será exibido na tela. 
#include < iostream > 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
 
using namespace std; 
int main() 
{ 
 int lin, col, mat[3][3]; 
 for (lin=0; lin<3; lin++) 
 for(col=0; col<3; col++) 
 { 
 cout<< "\nEntre com o elemento da matriz:"; 
 cin>> mat[lin][col]; 
 } 
 for (lin=0; lin<3; lin++) 
 cout << mat[lin][lin]<<"\n"; 
system("pause"); 
return 0; 
} 
 
 
1 2 3 4 5 6 7 8 9 
 
 
1 2 3 
 
 
1 5 9 
 
 
1 3 5 7 9 
 
 
2 4 6 8 
 
 
 
Explicação: 
Considerando a entrada 1, 2, 3, 4, 5, 6, 7, 8 e 9 e o trecho do programa abaixo, veja o comentado ao fim de cada trecho. 
int lin, col, mat[3][3]; 
 for (lin=0; lin<3; lin++) 
 for(col=0; col<3; col++) 
 { 
 cout<< "\nEntre com o elemento da matriz:"; 
 cin>> mat[lin][col]; 
 } 
O trecho acima montará a matriz com 3 linhas e 3 colunas, a saber : 
1 2 3 
4 5 6 
7 8 9 
Já o trecho a seguir : 
 for (lin=0; lin<3; lin++) 
 cout << mat[lin][lin]<<"\n"; 
imprimirá os elementos da matriz em que a linha e a coluna são iguais. Ou seja, imprimirá os elementos da diagonal principal, 
que estão destacados em amarelo. 
1 2 3 
4 5 6 
7 8 9 
Impressos : 1 5 9 
 
 
 
 
 
3. 
 
 
Um estudante do curso Sistemas de Informação precisa declarar uma matriz 
bidimensional para armazenar o valor dos 12 salários de 45 funcionários. 
Qual das opções abaixo o estudante deverá declarar? 
 
 
 
float funcionario[45][45]; 
 
 
float funcionario[12],[12]; 
 
 
char funcionario[12][12]; 
 
 
int salario[45], funcionario[12]; 
 
 
float funcionario[45][12]; 
 
 
 
Explicação: 
Um estudante do curso Sistemas de Informação precisa declarar uma matriz bidimensional para armazenar o valor dos 
12 salários de 45 funcionários. 
Então, teremos 45 linhas, uma para cada funcionário. E para cada linha ou funcionário, teremos 12 colunas, uma 
coluna para o salário de um mês. Com relação a salário devemos usar o tipo de dados float e não int e nem 
char. Logo : float funcionario[45][12]; 
 
Falso. Erro no número de linhas, colunas e uso indevido de vírgula float funcionario[12],[12]; 
 
Falso. Erro no número de colunas. float funcionario[45][45]; 
 
Falso. Erro no número de linhas, colunas e no tipo de dados. char funcionario[12][12]; 
 
Falso. Não se tem aqui matriz bidimensional, como solicitado. int salario[45], funcionario[12]; 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
VErdadeiro. float funcionario[45][12]; 
 
 
 
 
 
 
4. 
 
 
Em uma aplicação em C/C++, a matriz ESTOQUE [3][4] armazena, em 
cada uma de suas linhas, a quantidade estocada de produtos no último 
quadrimestre (4 meses). Sabendo-se que a declaração de uma matriz em C/C++ 
se dá da forma: 
< tipo de dado> nome [nºde linhas][nºde colunas]; 
 Para obter o total estocado no primeiro mês do quadrimestre, o programa 
deverá: 
 
 
Somar todas as colunas da linha índice 0. 
 
 
Somar todas as colunas da linha índice 1 
 
 
Somar todas as linhas da coluna índice 0. 
 
 
Somar todas as linhas da coluna índice 1. 
 
 
Somar todas as linhas de todas as colunas. 
 
 
 
Explicação: 
Como a 1a. coluna (coluna 0) é relativa ao 1o. mês, então é preciso somar todas as linhas da coluna 0. 
Analisando as opções : 
 Verdadeira Somar todas as linhas da coluna índice 0. 
 
Falso. Tem que somar todas as linhas da coluna 0 Somar todas as colunas da linha índice 0. 
 
Falso. O 1o. mês é relativo à 1a. coluna, que tem índice zero. Somar todas as linhas da coluna índice 1. 
 
Falso. Tem que somar todas as linhas, cuja coluna tem índice 0. Somar todas as colunas da linha índice 1 
 
FAlso. Se quer apenas o 1o. mês, que está na 1a. coluna. Somar todas as linhas de todas as colunas. 
 
 
 
 
 
 
5. 
 
 
Analise a seguinte afirmação: 
"Um edifício tem 8 andares, cada andar tem 5 apartamentos." 
Como poderíamos escrever uma declaração de matriz na linguagem C++, 
seguindo a afirmação acima, sabendo que os dados seriam do tipo int ? 
 
 
int edificio[40][1]; 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
 
 
int edificio[5][8]; 
 
 
int edificio[8][5]; 
 
 
int edificio[40][5]; 
 
 
int edificio[1][40]; 
 
 
 
Explicação: 
Analisando ... 
 "Um edifício tem 8 andares, cada andar tem 5 apartamentos." 
Cada andar pode ser visto como uma linha da matriz. E em cada linha ou andar, podemos ter 5 apartamentos ou 5 colunas. 
Dessa forma temos : 
 int edificio[8][5]; 
 
 porque no 1o. par de parênteses temos o total de linhas e no 2o. par de colchetes temos o total de colunas 
Veja que em todas as opções temos a variável de nome edificio. 
 
 
 
 
 
 
6. 
 
Analise o código em C++ mostrado abaixo e assinale a alternativa que 
descreve corretamente a sua execução: 
#include < iostream > 
using namespace std; 
int main() 
{ 
 int p, num[50]; 
 
 for (p = 0; p <= 49; p++) 
 { 
 cout << "Digite um valor : "; 
 cin >> num[p]; 
 } 
 
 for (p = 0; p <= 49; p++) 
 { 
 if (num[p] % 2 == 0 && num[p] > 30) 
 cout << num[p] << "\t"; 
 } 
 
 system("pause"); 
 return 0; 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
 
} 
 
 
 
O código armazenará em um vetor 50 números inteiros e imprimirá somente os números pares e que sejam maiores que 
30. 
 
 
O código armazenará em um vetor 50 números inteiros e imprimirá todos os 50 números. 
 
 
O código armazenará em um vetor 50 números inteiros e imprimirá todos os números que sejam maiores que 30. 
 
 
O código armazenará em um vetor 50 números inteiros e imprimirá somente os números ímpares e que sejam maiores 
que 30. 
 
 
O código armazenará em um vetor 50 números inteiros e imprimirá somente os números pares e que sejammenores 
que 30. 
 
 
 
Explicação: 
Analisando o programa temos que : 
O 1o. for lê valores inteiros e os armazena em um vetor com capacidade para 30 elementos. Depois, no 2o. for, testa cada 
elemento do vetor e verifica se é par e se é maior que 30. Apenas satisfazendo as 2 condições é que o elemento de v será 
impresso. 
Analisando cada opção : 
O código armazenará em um vetor 50 números inteiros e imprimirá todos os 50 números. é falso. Nâo imprime todos os 
números 
O código armazenará em um vetor 50 números inteiros e imprimirá todos os números que sejam maiores que 30. é falso. Tem 
que ser par e maior que 30 para ser impresso. 
 
O código armazenará em um vetor 50 números inteiros e imprimirá somente os números ímpares e que sejam maiores que 30. é 
falso. Imprime os pares maiores que 30 e não os ímpares. 
O código armazenará em um vetor 50 números inteiros e imprimirá somente os números pares e que sejam menores que 30. é 
falso. Tem que ser par e maior que 30 para ser impresso. 
O código armazenará em um vetor 50 números inteiros e imprimirá somente os números pares e que sejam maiores que 
30. Verdadeira 
 
 
 
 
 
 
7. 
 
 
Se você precisar escrever um programa em C++ que receba uma matriz de 
elementos inteiros dispostos em 3 linhas e 4 colunas e exiba a quantidade de 
números múltiplos de 5 armazenados na matriz vai precisar de 
 
 
Duas estruturas seletivas: uma controlando as linhas e variando de 1 a 5, e outra controlando as colunas e variando de 
1 a 3. 
 
 
Duas estruturas repetitivas: uma controlando as linhas e variando de 0 a 2, e outra controlando as colunas e variando 
de 0 a 3. 
 
 
Duas estruturas seletivas: uma controlando as linhas e variando de 0 a 2, e outra controlando as colunas e variando de 
0 a 3. 
 
 
Duas estruturas seletivas: uma controlando as linhas e variando de 0 a 2, e outra controlando os múltiplos de 5 e 
variando de 0 a 5 . 
 
 
Duas estruturas repetitivas: uma controlando as linhas e variando de 0 a 2, e outra controlando os múltiplos de 5 e 
variando de 0 a 5 . 
 
 
 
 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
8. 
 
 
Imagine que você precisa escrever um algoritmo que receba uma matriz 4x4 de 
números inteiros, gere e exiba uma segunda matriz na qual as linhas são as 
colunas da matriz 1, e as colunas são as linhas da matriz 1. Qual das alternativas 
a seguir apresenta o código da estrutura de repetição que recebe os elementos da 
primeira matriz e gera a segunda? 
 
 
para (lin=0;lin<=3;lin++) { 
 para (col=0;col<=3;col++) { 
 escreva("Informe a posição [",lin+1,",",col+1,"]: ") 
 leia(M1[lin][col]) 
 M2[lin][col]=M1[lin][col] 
 } 
} 
 
 
para (lin=0;lin<=3;lin++) { 
 para (col=0;col<=3;col++) { 
 escreva(M2[lin][col]," ") 
 } 
} 
 
 
para (lin=0;lin<=3;lin++) { 
 escreva("Informe a posição [",lin+1,",",col+1,"]: ") 
 leia(M1[lin][lin]) 
 M2[lin][lin]=M1[lin][lin] 
} 
 
 
enquanto (lin=0;lin<=3;lin++) { 
 enquanto (col=0;col<=3;col++) { 
 escreva("Informe a posição [",lin+1,",",col+1,"]: ") 
 leia(M1[lin][col]) 
 M2[col][lin]=M1[lin][col] 
 } 
} 
 
 
para (lin=0;lin<=3;lin++) { 
 para (col=0;col<=3;col++) { 
 escreva("Informe a posição [",lin+1,",",col+1,"]: ") 
 leia(M1[lin][col]) 
 M2[col][lin]=M1[lin][col] 
 } 
} 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp

Continue navegando