Baixe o app para aproveitar ainda mais
Prévia do material em texto
1a Questão Verifique as afirmações abaixo e assinale a alterna�va correta: I )Fluxograma é o esboço de um projeto em programação de computadores. II) Algoritmo serve para representar o raciocínio, independentemente de detalhes computacionais. III) Algoritmo é a representação gráfica da solução de um problema. Somente a III está correta. Somente a I está correta. Somente a II e III estão corretas. Somente a I e II estão corretas. Somente a II está correta. Explicação: I )Fluxograma é o esboço de um projeto em programação de computadores. VERDADEIRO II) Algoritmo serve para representar o raciocínio, independentemente de detalhes computacionais. VERDADEIRO III) Algoritmo é a representação gráfica da solução de um problema. FALSO. Ref.: 201512824974 2a Questão Assinale a opção que corresponde à condição da estrutura de repetição que faz com que o programa abaixo imprima 4 vezes a expressão Bom dia. int a = 8; while ( ____ ) { cout << "Bom dia\n"; a = a -2; } a == 0 a < 0 a >= 0 a <= 0 a > 0 Explicação: Analisando o trecho temos que : a variável a funciona como contador e começa com 8. a variável a varia de 2 em 2. Assim : quando a é 8 imprime-se Bom dia quando a é 6 imprime-se Bom dia quando a é 4 imprime-se Bom dia quando a é 2 imprime-se Bom dia quando a for zero não se pode mais imprimir Bom dia, pois já se imprimiu 4 vezes, como visto acima. Logo, a opção certa é : a > 0, pois quando a for zero, a repetição irá terminar. Ref.: 201510738984 3a Questão Assinale a opção correta. Dispositivos de entrada e saída de dados compreendem pendrives, memória RAM e HD. A memória, conhecida como RAM, pode ser apenas lida. A Unidade de Aritmética e Lógica é a responsável pelos cálculos e seus controles. A Unidade de controle realiza controles, finalizando os cálculos. A memória RAM serve para realizar os cálculos dos dados fornecidos pelos usuários. Explicação: Como indicado na aula online 1 : A Unidade de Aritmética e Lógica é a responsável pelos cálculos e seus controles. Os outros itens não atendem por razões indicadas na mesma aula. Ref.: 201510702200 4a Questão A fim de possibilitar a implementação de algoritmos estudamos algumas estruturas básicas, como estrutura de desvio de fluxo, estrutura de repetição etc. Entre as estrutura de repetição há uma na qual uma ação será executada pelo menos uma vez, antes da avaliação da condição. Esta estrutura é implementada em C++ pelo comando básico: for/while while do/for for do/while Explicação: O comando do...while faz para depois testar. Então, o bloco a ser repetido será executado pelo menos uma vez antes de testarmos a condição. Os comando for ou while, temos que testar antes de fazer. Ref.: 201510701701 5a Questão Qual dos símbolos abaixo representa a entrada de valores para as variáveis? Explicação: Só tem uma possibilidade. É a apresentada no gabarito. Vejamos as outras : 1a. opção : preparação 2a. opção : teste condicional 3a. opção : é a resposta certa 4a. opção : para início ou fim do programa 5a. opção : saída de dados Ref.: 201510701723 6a Questão Qual dos comandos abaixo permite que um bloco de comandos seja executado enquanto a variável num seja diferente de 0? while (num != 0) enquanto (num > 0) for ( i = 0; i == num; i++) for (i = num; i > 0; i++) while (num == 0) Explicação: verdadeira while (num != 0) FAlsa. Diferente é !=. Nesta opção está "enquanto num é igual a zero." while (num == 0) FAlsa. Nesta opção está "enquanto num for maior que zero" enquanto (num > 0) Falsa. Teste incorreto no for. == é para teste de igualdade. for ( i = 0; i == num; i++) FAlsa. Não inicializa ou testa corretamente. for (i = num; i > 0; i++) Ref.: 201510738991 7a Questão Assinale a opção correta: A forma mais comum de escrever um algoritmo é em Inglês. A forma mais comum de escrever um algoritmo é em Português. A forma mais comum de escrever um algoritmo é em fluxograma. A forma mais comum de escrever um algoritmo é em portugol. A forma mais comum de escrever um algoritmo é usar um bom software. Explicação: Indicado na aula online no. 1 que portugol é a forma mais comum para escrever algoritmo. Não se deve usar Português, Inglês, fluxograma e nem softwares. Ref.: 201510702291 8a Questão Assinale a alternativa correta em relação a quantidade de vezes que a palavra "PAZ" será impressa, no trecho de código abaixo: x = 50; do{ y = 8; do{ cout<<"PAZ \n"; y++; } while ( y <10); x--; }while ( x > 48); 8 vezes 7 vezes 4 vezes 5 vezes 6 vezes Explicação: Analisando passo a passo o trecho dado : x = 50; do{ y = 8; do{ cout<<"PAZ \n"; y++; } while ( y <10); x--; } while ( x > 48); x y 50 8 49 9 48 (48 > 48 ? ) Falso 10 ... 10 < 10 ? FALSO 8 9 10 ... 10 < 10 ? Falso PAZ PAZ PAZ PAZ Ref.: 201510701621 9a Questão A representação gráfica dos algoritmos, em que cada símbolo apresentado representa uma operação a ser realizada é chamada de: Linguagem de Programação Pseudocódigo Fluxograma Algoritmo Diagrama Explicação: Falso. Não usa representação gráfica Pseudocódigo Falso. Algoritmo não é representação de algoritmo Algoritmo FAlso. Linguagem de programação é usada para escrever programa. Linguagem de Programação Fluxograma FAlso. Que diagrama ? Diagrama Ref.: 201510702244 10a Questão 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? do{ }while while do while{} for{} repeat until 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. Ref.: 201512852691 11a Questão Sobre fluxograma, assina a opção correta. É uma forma de se escrever programas em qualquer linguagem de programação. É uma forma de se representar graficamente algoritmos e que não dá margem à ambiguidade . É uma forma de se representar o uso de hardware no programa. É usado na escrita de pseudolinguagens, como o Portugol. É uma representação gráfica de algoritmos que dá margem à dupla interpretação ou ambiguidades. Explicação: É uma forma de se representar graficamente algoritmos e que não dá margem à ambiguidades, como ensinado na aula 1 online. Ref.: 201510702020 12a Questão As estruturas de repetição permitem executar mais de uma vez um mesmo trecho de código. Trata-se de uma forma de executar blocos de comandos somente sob determinadas condições, mas com a opção de repetir o mesmo bloco quantas vezes forem necessárias. As estruturas de repetição são úteis, por exemplo, para repetir uma série de operações semelhantes que são executadas para todos os elementos de uma lista ou de uma tabela de dados, ou simplesmente para repetir um mesmo processamento até que uma certa condição seja satisfeita. Sejam as seguintes afirmativas: I - Toda estrutura de repetição apresenta um teste no início e um na saída. II - Toda estrutura de repetição pode ser substituída por um conjunto de estruturas de decisão, onde não haja testes ou condições. III - Toda estrutura de repetição apresenta um critério de parada. IV- Toda estrutura de repetição apresenta fluxo de execução invertido devido a diversas iterações. Marque a alternativa que representa apenas as afirmativas CORRETAS: II, III e IV IIII e III I I e IV Explicação: I - Toda estrutura de repetição apresenta um teste no início e um na saída. Falso. Ou no início ou no fim. II - Toda estrutura de repetição pode ser substituída por um conjunto de estruturas de decisão, onde não haja testes ou condições. Falso. São estruturas diferentes. III - Toda estrutura de repetição apresenta um critério de parada. Verdadeiro. IV- Toda estrutura de repetição apresenta fluxo de execução invertido devido a diversas iterações. Falso. Ref.: 201512861304 13a Questão Sobre Português Estruturado, assinale a opção correta : É igual ao fluxograma É igual à linguagem natural ou narrativa É igual à linguagem de programação na língua portuguesa O português estruturado é uma simplificação da nossa linguagem natural, na qual usamos frases simples e estruturas que possuem um significado muito bem definido. É igual a uma carta para um encarregado Explicação: Definição direta e objetiva dada na aula 1. Ref.: 201510702309 14a Questão Para que a palavra "AMOR" seja escrita na tela 5 vezes, qual condição apropriada deve ser colocada no trecho de código abaixo? Marque a opção correta. x = 1; while ( _________ ) { cout<<"AMOR \n"; x = x + 2; } x > 10 x <= 11 x <= 5 x < 10 x < 5 Explicação: Analisando : x = 1; while ( _________ ) { cout<<"AMOR \n"; x = x + 2; } Note que x é um contador que é inicializado com 1 e que varia de 2 em 2. Logo, é preciso testar x < 10. Veja que entraremos no loop quando : x vale 1 x vale 3 x vale 5 x vale 7 x vale 9 E quando x for para 11, o teste do loop falhará. Então, teremos entrado 5 vezes no bloco do while. Ref.: 201510702276 15a Questão Analise 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: Apenas as alternativas I e II são CORRETAS Apenas a alternativa I é CORRETA Todas as alternativas são CORRETAS Apenas as alternativas II e III são INCORRETAS Apenas as alternativas I e III são CORRETAS Explicação: Analisando cada afirmativa : I - O fluxograma utiliza diagramas para representar e facilitar o entendimento de um algoritmo; Verdadeira. O fluxograma usa símbolos para E/S, atribuição e outros comandos. II - O pseudocódigo é um recurso muito utilizado para desenvolver programas complexos e representar graficamente o algoritmo; Falsa. Pseudocódigo não tem nada de representação gráfica. III - A linguagem de programação é a maneira utilizada de formalizar a solução de um problema do mundo real a partir dos algoritmos. VErdadeira. Através de alguma linguagem de programação, escrevemos programas. 1a Questão As palavras que fazem parte de um conjunto próprio da linguagem C++ são chamadas: palavras reservadas palavras especiais palavras próprias palavras código palavras únicas Explicação: Não tem outra possibilidade com margem à dúvida. Por definição, é palavra reservada. Ref.: 201510702273 2a Questão Assinale a opção que apresenta somente nomes válidos para variáveis em C++. 1conta, 2total, 3data Conta, Total1, DIA-MÊS-ANO CONTA, TOTAL1, data Conta, Total, 5data CONTA, TOTAL1, 1DATA 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 Ref.: 201510735591 3a Questão Em programação, como se chama o processo de converter um arquivo de texto, escrito em uma linguagem de programação, em códigos binários pertencentes a uma plataforma de execução? Conversão Transformação Compilação Indexação Ligação Explicação: Por definição, de acordo com o conteúdo online. Ref.: 201510735516 4a Questão O computador não entende o conteúdo do arquivo de texto contendo o seu programa. Ele precisa ser convertido em uma linguagem que o computador entende, para poder executar o programa. Este processo é chamado de: Tradução Execução Compilação Programação Depuração Explicação: A compilação é o processo de conversão dos códigos fontes em executáveis, que possibilita a execução dos programas pelo processador Ref.: 201510702374 5a Questão Necessita de espaço na memória e define o tipo de dado a ser armazenado Comando Enquanto-Faça Variável Comando PARA Variável de Controle Estrutura de Seleção Explicação: Por definição, uma variável ocupa espaço em memória e irá armazenar dados de algum tipo compatível com sua declaração. Em C++, pelo menos. Ref.: 201510701721 6a Questão Os comentários são recursos que podem ser utilizados pelos programadores para: Inserir diretivas para o compilador Inserir textos explicativos apenas para o usuário Inserir comandos que serão executados pela máquina Inserir comandos que serão traduzidos pelo compilador Inserir textos explicativos apenas para o programador 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 apenaspara o usuário Falso. O compilador irá ignorar o texto explicativo dos comentários. Inserir diretivas para o compilador Ref.: 201510743411 7a Questão Precisamos ficar atentos a algumas exigências da linguagem C++. Leia com atenção as afirmativas abaixo e, depois, escolha a opção correta. I Devemos tomar cuidado para não declarar uma variável de nome Nota e não usar no programa nota. II Foram declaradas duas variáveis com os seguintes nomes: Idade e auto. O programa foi compilado sem problemas. III A declaração de variáveis globais é fora de todas as funções IV Existe somente o delimitador // para fazer comentários Somente a afirmativa IV está errada Todas as afirmativas estão corretas Somente as afirmativas II e III estão corretas Somente a afirmativa III está errada Somente as afirmativas I e III estão corretas Explicação: A linguagem é Case Sensitive - elimina a II Tem dois delimitadores para comentários - elimina a IV Ref.: 201510702288 8a Questão Assinale a opção correta. Considerando o conceito de programa é correto afirmar que ... Um programa é um algoritmo escrito em linguagem natural, mas sem ambiguidades. Ou seja, é um conjunto de comandos que representam tarefas que serão compreendidas por um computador. Um programa é um algoritmo codificado em uma linguagem de gráfica (ex: fluxograma), isto é, um conjunto de instruções que representam tarefas que serão apenas interpretadas por um computador. Um programa é um algoritmo codificado em uma pseudolinguagem, isto é, um conjunto de instruções/funções que representam tarefas que serão interpretadas e executadas por um computador. Um programa é um algoritmo codificado em uma linguagem de programação, isto é, um conjunto de instruções/funções que representam tarefasque serão interpretadas e executadas por um computador. Um programa é um algoritmo codificado em uma pseudolinguagem, isto é, um conjunto de instruções/funções que representam tarefas que serão apenas executadas por um computador. 1a Questão Normalmente um programa de computador é composto de muitas linhas de código o que dificulta, por vezes, a manutenção quando ocorre algum erro lógico. Desta forma, o programador, após identificar o possível trecho da ocorrência. Para isso, o Dev C++ dispõe de um dispositivo que interrompe a execução do programa, passando para o programador o controle da execução. A linha onde o programa é interrompido fica destacada em vermelho. Qual o nome deste dispositivo? Breakpoint StopPoint ExecPoint ContinuePoint CompilePoint Explicação: Não há outra possível resposta. Ref.: 201510743417 2a Questão Uma IDE (integrated development environment ou ambiente de desenvolvimento integrado) reúne várias facilidades para o programador. Assinale a opção onde está presente o programa que possibilita acompanhar a execução do programa e verificar erros. Compilador Linkeditor Editor Corretor Depurador Explicação: A própria resposta Ref.: 201510701971 3a 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; cout "lendo a idade"; cin idade; exiba "lendo a idade"; lendo idade; System.out.println("lendo idade"); System.out.println("lendo idade"); 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"; lendoidade; 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"); Ref.: 201510701746 4a Questão Para exibir o valor da variável x do �po inteiro em C++ deve ser u�lizado o comando: cout >>x; cout >> "Valor de x: " , x; cout >> "Valor de x: " >> x; cout << "Valor de x: " >> x; cout << x; Explicação: Para impressão na tela usamos o cout com o operador << Nâo confundir com >> que é usado com cin, que é para entrada de dados. Ref.: 201510735530 5a Questão Uma IDE é um conjunto de programas úteis ao programador reunidos em um mesmo ambiente, a fim de facilitar o trabalho de desenvolvimento. Dentre suas funcionalidades temos a depuração. marque a alternativa que descreve este processo. é uma atividade que permite ao programador executar o programa. E observar o resultado final é uma atividade que permite ao programador executar o programa passo a passo. Desta forma, ele pode verificar os valores das variáveis e descobrir qual é a execução natural de um programa. é uma atividade que permite ao programador escrever o programa passo a passo. Desta forma, ele pode verificar os valores das variáveis e descobrir qual é a forma natural de um programa. é uma atividade que permite ao programador traduzir o programa. E permite a execução do mesmo. é uma atividade que permite ao programador compilar o programa. Desta forma, ele pode executar os valores das variáveis e descobrir qual é a forma natural de um programa. Explicação: A depuração é uma atividade que permite ao programador executar o programa passo a passo. Desta forma, ele pode verificar os valores das variáveis e descobrir qual é a execução natural de um programa. Ref.: 201510739011 6a Questão Asssinale a opção correta. Uma IDE é um software que tem a função de colocar e integrar, em um mesmo ambiente, vários outros programas que ajudam um programador a criar seus programas. IDE é apenas um editor de textos que nos dá a possíbildade de na linha de comando compilar nosso programa. Para executar um programa em uma IDE não temos que compilá-lo previamente. O C++ é uma IDE na qual posso compilar meus programas. IDE é apenas um editor de textos que nos dá a possíbildade de na linha de comando executar nosso programa. 1a Questão Assinale a alternativa que apresenta APENAS os exemplos de operadores relacionais. &&, >= e || =, > e || +, - e * &&, || e ~ <, > e >= Explicação: <, > e >= Falso. Nenhum é relacional &&, || e ~ Falso. O único relacional é o > =, > e || Falso. O único relacional é o >= &&, >= e || Falso. Nenhum relacional +, - e * Ref.: 201510702072 2a Questão Sendo X = 1, Y = 2 e Z = 5, assinale a alternativa correta, dentre as relacionadas abaixo, que corresponde aos questionamentos realizados em relação à expressão: X * X + Y > Z. Questionamentos: - Esta expressão é VERDADEIRA ou FALSA? - O valor do termo X * X + Y é igual a qual valor ? A expressão é FALSA, e o valor de X * X + Y = 4. A expressão é VERDADEIRA, e o valor de X * X + Y = 3. A expressão é FALSA, e o valor de X * X + Y = 3. A expressão é FALSA, e o valor de X * X + Y = 6. A expressão é VERDADEIRA, e o valor de X * X + Y = 5. Explicação: Questionamentos: - Esta expressão é VERDADEIRA ou FALSA? A expressão é Falsa. - O valor do termo X * X + Y é igual a qual valor ? O resultado da expressão é 3 Resolvendo a expressão : X * X + Y > Z 1 * 1 + 2 dá 1 + 2 que é 3 3 > Z, sendo que Z vale 5 ? FAlsa. Ref.: 201510702210 3a Questão Qual dos fragmentos de código calcula um preço de um produto com desconto de 7,5% ? PRECO_DESC = PRECO - PRECO * 7.5 /100; PRECO_DESC = PRECO * 7.5 / 100; PRECO_DESC = PRECO * 7.5%; PRECO_DESC = PRECO * 0.075; PRECO_DESC = PRECO * 0.75; Explicação: Verdadeiro PRECO_DESC = PRECO - PRECO * 7.5 /100; Falso. Não dá o novo preço. Para isso, tinha que subtrair do preco. PRECO_DESC = PRECO * 7.5 / 100; Falso. Não dá o novo preço. Para isso, tinha que subtrair do preco. Além disso, calcula 75% e não o valor do enunciado. PRECO_DESC = PRECO * 0.75; Falso. Não dá o novo preço. Para isso, tinha que subtrair do preco. Além disso, calcula outra porcentagem e não o valor do enunciado. PRECO_DESC = PRECO * 0.075; Falso. Não dá o novo preço. Para isso, tinha que subtrair do preco. Além disso, usa % incorretamente. Na Matemática o símbolo % indica porcentagem, mas em C++ representa o resto da divisão inteira. PRECO_DESC = PRECO * 7.5%; Ref.: 201510702203 4a Questão A declaração de variáveis permite reservar um espaço na memória para que possa armazenar os dados de um programa. Indique os nomes de variáveis que são válidos em C++. us# , tempo 8situacao, numero mumero2Casa, idade preço, medida double, int Explicação: Falso. Não se usa # us# , tempo Falso. Não se usa cedilha. preço, medida Falso. Não se pode começar com dígito. 8situacao, numero Verdadeiro mumero2Casa, idade Falso. São palavras reservadas para tipos de dados. double, int Ref.: 201510701738 5a Questão Qual dos trechos abaixo solicita e admite corretamente a idade de um usuário? real idade; cout << "Idade: "; cin >> idade; int idade; cin << "Idade: " >> idade; real idade; cin << "Idade: " >> idade; int idade; cout >> "Idade: "; cin << idade; int idade; cout << "Idade: "; cin >> idade; Explicação: Verdadeira int idade; cout << "Idade: "; cin >> idade; Falso. Uso indevido de >> e << int idade; cout >> "Idade: "; cin << idade; Falso. O tipo de dados é int e não realreal idade; cout << "Idade: "; cin >> idade; Falso. Uso indevido de cin . int idade; cin << "Idade: " >> idade; Falso. Uso indevido de cin e declaração incorreta da variável idade. real idade; cin << "Idade: " >> idade; Ref.: 201510702054 6a Questão Assinale a alternativa que apresenta APENAS operadores relacionais. &&, >= e || &&, || e ~ +, - e * <, > e >= =, > e || 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 * Ref.: 201510701693 7a Questão Os operadores lógicos servem para combinar resultados de expressões, retornando se o resultado final é verdadeiro ou falso. Marque a 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)) 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. Ref.: 201510702248 8a Questão Para a = 2, b = 5 e c = 4, determine qual das sentenças retornará verdadeiro em linguagem de programação C++. (b + 2) > (a * c) pow(c,a) > b * c a == c (b % a) == 0 ((b = 2) == a) 1a Questão Assinale a opção correta. O que será impresso na tela, respectivamente, após duas execuções seguidas, sendo que na 1ª. execução o valor de entrada é 7 e na 2ª. execução o valor de entrada é 8. Para isso, considere o seguinte trecho em C++. int num; cout << "Digite um numero: "; cin >> num; if (num != 2 || num != 4 || num != 6) { num = num + 2; cout << num << " "; } if (num != 8) { num--; cout << num << " "; } else cout << num * 5 ; 9 6 10 9 8 10 40 9 8 10 40 9 8 10 9 9 40 Explicação: Analisando o trecho de programa em C++ ... 1a. execução : num recebe 7. Daí, testamos o 1o. if. Note que usamos o || lógico. A condição é verdadeira e entramos no bloco do 1o. if. Então, num recebe 9 e é impresso o valor 9 na tela. Seguimos para o próximo if e testamos sua condição. É verdade que 9 != 8 ? Sim. Entramos no bloco do 2o. if e então decrementamos 9 para 8 e imprimimos o valor 8. Concluindo esta 1a. execução : Foram impressos 9 8 2a. execução : num recebe 8. Daí, testamos o 1o. if. Note que usamos o || lógico. A condição é verdadeira e entramos no bloco do 1o. if. Então, num recebe 10 e é impresso o valor 10. Seguimos para o próximo if e testamos sua condição. É verdade que 10 != 8 ? Sim. Entramos no bloco do 2o. if e então decrementamos 10 para 9, imprimindo o valor 9. Concluindo esta 2a. execução : Foram impressos 10 9 2a 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 IV está correta A II E A III estão corretas Somente a II está correta Somente a I está correta A II E IV estão corretas 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 3a Questão Analise o trecho abaixo que um aluno desenvolveu na linguagem C++ e escolha a opção onde estão os valores que aprecem na tela. int x = 4, y = 14, t; float z; if( x < y ) { t=x; x=y; y=t;} z = (x % y) / y; cout << x << " " << y << " " << z ; 4 14 0 14 4 0 0.5 4 14 4 14 0.5 14 4 0.5 Explicação: O operador / quando ambos são inteiros resulta em um quociente inteiro 4a 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 i está correta. Todas as alternativas estão corretas. Todas as alternativas estão erradas. Apenas a alternativa iii está correta. Apenas a alternativa ii está correta. 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. 5a Questão Para satisfazer a regra de que para fazer AV3 o aluno deve ter nota maior ou igual a 4 em pelo menos uma das outras duas Avaliacoes, qual seria a sentença correta Se (AV1 > 4) e (AV2 > 4) Se (AV1 >= 4) e (AV2 >= 4) Se (AV1 > 4) ou (AV2 > 4) Nenhuma outra alternativa satisfaz Se (AV1 >= 4) ou (AV2 >= 4) Explicação: Verdadeira Se (AV1 >= 4) ou (AV2>= 4) Falsa. Tinha que ser >= e não apenas > Se (AV1 > 4) ou (AV2 >4) FAlsa. Nâo tem que ter 4 ou mais nas duas provas, mas apenas em uma das provas. Se (AV1 >= 4) e (AV2 >= 4) FAlsa. Tinha que ser >= e no lugar do e tinha que se ou. Se (AV1 > 4) e (AV2 >4) Falsa. A 1a. alternativa é a correta. Ou seja : Se (AV1 >= 4) ou (AV2 >= 4) Nenhuma outra alternativa satisfaz 6a Questão Assinale a opção correta. O que será impresso na tela, respectivamente, após duas execuções seguidas, sendo que na 1ª. execução o valor de entrada é 10 e na 2ª. execução o valor de entrada é 0. Para isso, considere o seguinte trecho em C++. int num; cout << "Digite um numero: "; cin >> num; if (num > 0) { num++; cout << num << " "; } cout << num + 1 << " "; if (num < 0) {num--; cout << num << " "; } else cout << num * 10 ; 11 110 1 0 11 12 110 1 0 11 12 110 11 110 1 0 11 110 1 10 Explicação: Analisando ... 1a. execução : Valor de entrada é 10. Logo, num recebeu 10 na entrada. 1o. teste >>> 10 > 0 ? Sim . Então, entramos no bloco do 1o. if e fazemos num receber 11. Depois, exibimos 11 na tela. Seguindo... é exibido o valor de num + 1, ou seja, é exibido na tela o valor 12. 2o. teste >>> 11 < 0 ? Não. Então, entramos no último else que imprime o resultado de 11 * 10, que é 110 Concluindo a 1a. execução para a entrada 10 : 11 12 110 2a. execução : Valor de entrada é 0. Logo, num recebe 0 na entrada. 1o. teste >>> 0 > 0 ? Falso. Não entramos no 1o. if. SEguindo em frente temos que o valor de num+1 é exibido na tela. Ou seja, 1 é exibido na tela. 2o. teste >>> 1 < 0 ? Não. Então, entramos no último else, que imprime o valor de 1 * 10, que é 10. Concluindo a 2a. execução para a entrada 0 : 1 10 7a Questão Escolha a alternativa abaixo que completa o sentido da frase: O uso das _________________ é obrigatório quando for usada mais de uma instrução dentro da estrutura de decisão, if (o comando "se" em Portugol), logo, usar sempre não ocasionará problemas. chaves strings aspas simples aspas duplas palavras reservadas Explicação: Quando se tem duas ou mais instruções temos um bloco de comandos. O uso de chaves no bloco do if ou no bloco do else é obrigatório, assim como no caso de outros comandos. Quando se tem apenas uma instrução, o uso de chaves é opcional. 8a Questão Verifique o trecho de código abaixo e marque a alternativa que apresenta a melhor construção para as condições abaixo, utilizando uma estrutura de decisão composta. if(a > 0) cout < < "pertinente"; if(a < 5) cout < < "pertinente"; if(a > =5) cout < < " não pertinente"; if(a > 5 && a < 0) cout < < "pertinente"; else cout < < "não pertinente"; if(a > 0 || a < 5) cout < < "pertinente"; else cout < < " não pertinente"; if(a > 0 + a < 5) cout < < "pertinente"; else cout < < "não pertinente"; if(0 > a > 5) cout < < "pertinente"; else cout < < " não pertinente"; if(a > 0 && a < 5) cout < < "pertinente"; else cout < < " não pertinente"; Explicação: O trecho do código exibe a informação "pertinente" para os valores de a maior que zero e menores que cinco. E a informação "não pertinente", para valores de a iguais ou maiores que cinco. Portanto a condição correta é ; Se (a > 0 e a < 5) imprime "pertinente"; do contrário imprime " não pertinente"; 1a Questão Às vezes me perguntam se existe alguma razão para existirem tantas formas de decisão nas linguagens de programação. Eu sempre digo: Claro que sim! Analise as afirmativas abaixo e escolha a opção certa. I Se tivermos que fazer um teste e só executar um bloco, que pode ter uma instrução ou mais instruções, o if simples deverá ser escolhido. II Se tivermos duas possibilidades de respostas, não poderemos usar dois if(s) simples, onde o teste de um é o complementa o do outro, porque poderão sair duas respostas. III Se tivermos três possibilidades de respostas, podemos usar um if simples e um if composto que não teremos problemas com as respostas. IV Quando temos 10 possibilidades de respostas, poderemos usar 10 if(s) simples, embora usar ifs encadeados seria mais eficiente. Somente a afirmativa III é falsa As afirmativas II, III e IV são verdadeiras As afirmativas I e IV são verdadeiras Somente a afirmativa II é verdadeira Somente a afirmativa I é verdadeira Explicação: As respostas falsas são conclusivas 2a Questão 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? while switch/case do/while for cout Explicação: switch/case É para repetição do/while É para repetição for É para impressão na tela cout É para repetição while 3a Questão 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. Apenas 7 7 não é divisível por 2. 7 ### Nada aparece, pois o trecho de programa possui erro. 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### Logo, a resposta correta é 7### 4a Questão 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; } 55 90 15 27.5 15 15 25 15 50 90 15 27.5 15 55 90 55 1 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. 5a Questão Analise o trecho do algoritmo abaixo e indique a alterna�va que apresenta as saídas ob�das para os valores: A=17, B=21 e C=13. SE (A > (B+C)) ENTÃO ESCREVA("+++++") SENÃO SE (B<=C) ENTÃO ESCREVA("%%%%%") SENÃO ESCREVA("^^^^^") FIM SE ESCREVA("=====") FIM SE ^^^^^ ===== ^^^^^ ===== +++++ ===== %%%%% Explicação: Analise o trecho do algoritmo abaixo e indique a alternativa que apresenta as saídas obtidas para os valores: A=17, B=21 e C=13. SE (A > (B+C)) ENTÃO //1o. teste : 17 > (34) ? FAlso. Entraremos no 1o. senão. ESCREVA("+++++") //não entra aqui SENÃO //Entra aqui devido à falha do 1o. teste SE (B<=C) ENTÃO //2o. teste : 21 <= 12 ? Falso. Então, entraremos no bloco do 2o. senão ESCREVA("%%%%%") //não entra aqui SENÃO ESCREVA("^^^^^") //SErá executada esta linha e depois seguiremos em frente. FIM SE ESCREVA("=====") //Após terminar o bloco do comando condicional, executamos esta linha FIM SE DA análise feita acima dois "escreva" são executados : ESCREVA("^^^^^") ESCREVA("=====") O que dará o seguinte resultado : ^^^^^ ===== 6a Questão Caso o valor inserido pelo usuário seja igual a 5, qual a mensagem exibida pelo código: int a; cin >> a; if (a<5) cout << "valor esperado"; else if (a>=5 && a<=10) cout << "valor ainda aceitável"; else if (a>10 && a<20) cout << "valor acima do esperado"; else if (a>=20) cout << "valor fora de faixa"; nenhuma mensagem será exibidavalor fora de faixa valor acima do esperado valor esperado valor ainda aceitável Explicação: Se a variável a assume o valor 5 a única condição verdadeira é a>=5 && a<=10, portanto a saída será "valor ainda aceitável " 7a Questão Qual o comando utilizado pelo C++ para implementação de algoritmos onde seja necessário que o usuário entre com um valor referente a uma opção a ser escolhida, quando é necessário consulta em uma tabela ou a um menu exibido na tela. cout cin table switch/case break Explicação: a estrutura de escolha é implementada no C++ pelo comando switch/case 8a Questão 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 util izada. 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 comando switch Estrutura condicional de comando composto Operador ternário aninhamento de if Explicação: Como dito no gabarito. O operador ? : equivale ao comando if ... else. 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; } Marque a opção correta. Considere o trecho de programa feito abaixo em C++. O valor final de soma e o valor final de num, são respectivamente int contador, num = 1, soma = 0; for (contador = 1; contador <= 20; contador += 5) { soma = soma + num; num = num + 3; } 1. 9 e 9 50 e 16 50 e 9 16 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 2. 12 e 10 22 e 20 22 e 10 o valor de soma está indefinido e o valor de num é 10 22 e 13 Explicação: Analisando o trecho : int contador, num = 1, soma = 0; for (contador = 1; contador <= 20; contador += 5) { soma = soma + num; num = num + 3; } Fazendo teste de mesa : contador num soma contador <= 20 1 1 0 sim 6 4 1 sim 11 7 5 sim 16 10 12 sim 21 13 22 21 <= 20 ? Falso. A REPETIÇÃO é uma das estruturas básicas de programação, determine entre as atividades abaixo a que representa uma REPETIÇÃO : Após a execução do trecho de código, abaixo, quais números serão exibidos na tela? for(int i=3; i<100; i=i+19) cout << " " << i; Laços de repetição são usados para que uma determinada sequência de comandos seja repetida um determinado número de vezes, sem a necessidade de reescrever tais comandos inúmeras vezes. Marque a alternativa que apresenta corretamente a representação de um laço de repetição codificado em C++. Os valores finais das variáveis estão em vermelho. Logo, a resposta é 22 e 13 3. Se um aluno obter média abaixo de 6.0 estará REPROVADO, se não estará APROVADO. Para fazer um bolo, prepare os ingredientes, misture-os bem e ponha no forno para assar. No trânsito, se o sinal estiver vermelho, PARE, se não, PODE PASSAR. Para encher um copo com água, mantenha a torneira aberta enquanto o copo não esitver cheio. Calcule a média de um aluno somando as duas maiores notas e dividindo a soma por dois. Explicação: Falso. É um condicional. No trânsito, se o sinal estiver vermelho, PARE, senão, PODE PASSAR. Verdadeiro. Tem o comando enquanto. Para encher um copo com água, mantenha a torneira aberta enquanto o copo não esitver cheio. Falso. É uma sequência Para fazer um bolo, prepare os ingredientes, misture-os bem e ponha no forno para assar. Falso. É um comando condicional ... tem se ... se não.. Se um aluno obter média abaixo de 6.0 estará REPROVADO, se não estará APROVADO. Falso. Comando sequencial. Calcule a média de um aluno somando as duasmaiores notas e dividindo a soma por dois. 4. 3 23 40 60 79 98 3 22 41 60 79 99 3 22 41 59 79 98 3 23 42 61 80 99 3 22 41 60 79 98 Explicação: Considerando o trecho for(int i = 3; i<100; i = i+19) cout << " " << i; fazendo passo a passo : i i < 100 ? 3 3 < 100 ? Sim 3+ 19 é 22 22 < 100 ? Sim 22+ 19 é 41 41 < 100 ? Sim 41 + 19 é 60 60 < 100 ? sim 60 + 19 é 79 79 < 100 ? sim 79 + 19 é 98 98 < 100 ? sim 98 + 19 é 117 117 < 100 ? falsa. Então não entra no loop TELA 3 22 41 60 79 98 5. b) if(i>10) { if (i<100) i=0;} a) for(int i=0;i<10;i++) { cout<< i;} e) for(i++, , int i) { cout<< I;} c) for( i>0, i<10,i++) Leia atentamente o trecho de código abaixo e diga o que ele retornaria ao usuário: int main ( ) { int i; double x, y = 0; for (i = 0; i < 10; i++){ cout << "Digite um numero: "; cin >> x; if ((x % 2) == 0){ y = y + x; } } cout << "Numero: " << y << "\n"; system("PAUSE"); return 0; } Analise o trecho de código em C++ abaixo : for (int x = 0; x < 10; x++) { if (valor[x] % 3 == 0 && valor[x] % 7 == 0) cout << valor[x]; } { cout< < I;} d) if(int i;i<10;i++) {cout< < I;} Explicação: Verdadeira a) for(int i=0;i<10;i++) { cout<< i;} Falso. O comando if não é de repetição. É um comando condicional. b) if(i>10) { if (i<100) i=0;} Falso. A 1a. parte do for é a inicialização e não um teste como feito na opção. Deve se usar ; separando a inicialização do teste lógico e da parte dos incrementos. c) for( i>0, i<10,i++) { cout< < I;} Falso. O comando if não é de repetição e a opção ainda usa o if de forma incorreta. d) if(int i;i<10;i++) {cout< < I;} FAlso. A 1a. parte do for é a inicialização e não um incremento como feito na opção. Deve se usar ; separando a inicialização do teste lógico e da parte dos incrementos. e) for(i++, , int i) { cout<< I;} 6. A soma de todos os elementos A média dos elementos digitados A soma dos elementos pares O maior de todos os elementos digitados A quantidade de elementos digitados Explicação: Analisando o trecho do programa dado : int i; double x, y = 0; //inicializa y que irá acumular o somatório for (i = 0; i < 10; i++){ cout << "Digite um numero: "; cin >> x; //Lê o valor de x if ((x % 2) == 0){ //testa se x é par y = y + x; //Se x é par então acumula em y o valor de x, somando todos os valores das variáveis x que são pares } } cout << "Numero: " << y << "\n"; //Imprime y, que acumulou o somatório mencionado acima 7. Imprimirá na tela todos os valores de um vetor que são pares. Imprimirá na tela todos os valores de um vetor que são múltiplos de 3 e múltiplos de 7. Imprimirá na tela todos os valores de um vetor que não são múltiplos de 5. Qual dos comandos abaixo está escrito de forma errada? Imprimirá na tela todos os valores de um vetor. Imprimirá na tela todos os valores de um vetor que são ímpares. Explicação: Verdadeiro Imprimirá na tela todos os valores de um vetor que são múltiplos de 3 e múltiplos de 7. Falso. Imprimirá o valor 105, que é múltiplo de 3, 7 e 5. Imprimirána tela todos os valores de um vetor que não são múltiplos de 5. Falso. Só imprimirá os múltiplos de 3 e 7. Imprimirá na tela todos os valores de um vetor. Falso. Imprimirá na tela o valor 21, que é ímpar. Imprimirá na tela todos os valores de um vetor que são pares. FAlso. Imprimirá na tela o valor 42, que é par. Imprimirá na tela todos os valores de um vetor que são ímpares. 8. for (X=0 , Y=0 ; X < 10 ; X++ , Y=Y+2) for (X=0 ; X < 10 ; X++) for (X=10 ; X > 0 ; X--) for (X=0 , Y=4 ; X < 10 ; X++ , Y--) for (X < 10 ; X=0 ; X++) Explicação: Está correto. Temos a inicialização, o teste e a parte do incremento for (X=0 ; X < 10 ; X++) Está correto. Temos duas inicializações separadas por vírgula e incremento e decremento separados por vírgula. E ainda o teste corretamente. for (X=0 , Y=4 ; X < 10 ; X++ , Y--) Está correto. Temos a inicialização, o teste e a parte dodecremento. for (X=10 ; X > 0 ; X--) Está correto. Temos duas inicializações separadas por vírgula e incremento e decremento separados por vírgula. E ainda o teste corretamente. for (X=0 , Y=0 ; X < 10 ; X++ , Y=Y+2) A sintaxe desta opção está incorreta e portanto, deve ser marcada. O teste lógico e a inicialização estão trocados de lugar. for (X < 10 ; X=0 ; X++) Para que a palavra "AMOR" seja escrita na tela 5 vezes, qual condição apropriada deve ser colocada no trecho de código abaixo? Marque a opção correta. x = 1; while ( _________ ) { cout<<"AMOR \n"; x = x + 2; } 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); Assinale a opção correta : 1. x <= 5 x < 10 x > 10 x <= 11 x < 5 Explicação: Analisando : x = 1; while ( _________ ) { cout<<"AMOR \n"; x = x + 2; } Note que x é um contador que é inicializado com 1 e que varia de 2 em 2. Logo, é preciso testar x < 10. Veja que entraremos no loop quando : x vale 1 x vale 3 x vale 5 x vale 7 x vale 9 E quando x for para 11, o teste do loop falhará. Então, teremos entrado 5 vezes no bloco do while. 2. O trecho entra em loop. 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 são exibidos os valores 10 e 8, pelo menos. 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 zero e os números exibidos são todos os pares de 10 até 2, nesta ordem. 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 Considerando a seguinte sequencia de instruções, marque a alternativa que indica o comando correspondente para preenchimento da lacuna. ... cin>>matricula; ______________ (matricula<99) { cin>>matricula; } 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. 6 6 % 2 é zero ? Sim. Imprime o 6 edecrementa 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. 3. do case repeat while loop for Explicação: Falso. Nâo tem repeat em C++. repeat Falso. Não se encaixa a sintaxe do comando for. for Verdadeiro while Falso. Não existe comando do... case. do case Falso. Nâo existe comando loop. loop 4. while (if cont =10){ } String cont = ""; { cont++; } while (cont!="") while (repita 10 vezes) { } while () { cout << "exibindo o número"; } int cont = 0; while (cont <=10){ cout << "exibindo o número " << cont; cont++; } 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. 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; } while () { cout << "exibindo o número"; } 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){ } 5. 15 30 Nenhuma das alternativas. 31 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 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 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; As estruturas de repetição permitem executar mais de uma vez um mesmo trecho de código. Trata-se de uma forma de executar blocos de comandos somente sob determinadas condições, mas com a opção de repetir o mesmo bloco quantas vezes forem necessárias. As estruturas de repetição são úteis, por exemplo, para repetir uma série de operações semelhantes que são executadas para todos os elementos de uma lista ou de uma tabela de dados, ou simplesmente para repetir um mesmoprocessamento até que uma certa condição seja satisfeita. Sejam as seguintes afirmativas: I - Toda estrutura de repetição apresenta um teste no início e um na saída. II - Toda estrutura de repetição pode ser substituída por um conjunto de estruturas de decisão, onde não haja testes ou condições. III - Toda estrutura de repetição apresenta um critério de parada. IV- Toda estrutura de repetição apresenta fluxo de execução invertido devido a diversas iterações. Marque a alternativa que representa apenas as afirmativas CORRETAS: ALGORITMO ALGORITMO ALGORITMO ALGORITMO ALGORITMO ALGORITMO ALGORITMO ALGORITMO ALGORITMO ALGORITMO ALGORITMO ALGORITMO ALGORITMO ALGORITMO ALGORITMO ALGORITMO >>>>>>>>>>>>>>>>>> Logo, imprimiu 30 vezes a palavra ALGORITMO 6. 30 25 20 40 35 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 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. 7. I e IV II, III e IV I III I e III Leia atentamente o trecho de código abaixo e diga o que ele apresentará ao usuário no final : 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: " << x << "\n"; system("PAUSE"); return 0; } Explicação: I - Toda estrutura de repetição apresenta um teste no início e um na saída. Falso. Ou no início ou no fim. II - Toda estrutura de repetição pode ser substituída por um conjunto de estruturas de decisão, onde não haja testes ou condições. Falso. São estruturas diferentes. III - Toda estrutura de repetição apresenta um critério de parada. Verdadeiro. IV- Toda estrutura de repetição apresenta fluxo de execução invertido devido a diversas iterações. Falso. 8. O menor de todos os elementos digitados A média dos elementos digitados O maior de todos os elementos digitados O último número digitado, ou seja, zero A quantidade de elementos digitados Explicação: A última impressão será o valor de x e o último valor de x é zero, pois foi o valor que parou a repetição. Terminada a repetição, um novo y é gerado e depois o valor de x é impresso. Ou seja, 0. 1a Questão Em alguns casos um programador se depara com rotinas que precisam ser repetidas constantemente durante o fluxo de seu programa, aumentando consideravelmente a quantidade de linhas do seu programa. Para resolver isto é necessário construir pequenos programas que devem ser chamados de dentro do bloco principal. Estes pequenos programas podem ser classificados de duas formas diferentes relacionados à sua utilização no código. Como são chamados estes programas? Struct e função Função e procedimento Procedimento e main Include e main Main e função Explicação: Imediato, pelos conceitos apresentados na aula 9. Função e procedimento Falso. main e não Main é o programa principal. Main efunção Falso. main e não Main é o programa principal. Procedimentoe main Falso. include e não Include é para incluir um arquivo importante durante a compilação e main é o programa principal. Include e main Falso. struct e não Struct será aprendido em Estrutura de dados. Struct efunção 2a Questão Para calcular o volume de um cilindro, precisamos saber o raio da base e a altura do cilindro. Um desenvolvedor iniciante escreveu alguns cabeçalhos da função que irá definir, mas, como está em dúvida, está pedindo a sua ajuda. Analise as opções abaixo e assinale a que corresponde ao cabeçalho de uma função que deverá receber valores necessários através dos seus parâmetros para que possa calcular e exibir dentro da função o volume do cilindro float Volume Cilindro(float raio, altura) void Volume-Cilindro (Raio, Altura) void V_Cilindro(float r, float h) float Volume(int raio, int altura) float Cilindro(float R, H ) Explicação: A definição de uma função exige declaração dos parâmetros com tipo e nome e o retorno correto, O tipo int não serve para medidas. Além disso, para o volume do cilindro são necessários raio da base e a altura do cilindro. Todas essas medidas são valores reais, logo do tipo float. Como o resultado, que é o volume, será mostrado na função, então a função nada retornará. Ou seja, a função será do tipo void. 3a Questão Uma Função, em C++, é um programa à parte ou um subprograma que pode ser chamado de dentro do programa principal, sempre que necessário. Assinale abaixo a alternativa que NÃO representa uma vantagem de se utilizar função dentro de um programa. evita a sobrecarga de digitação. melhora a legibilidade. melhora a manutenção e permite a alteração de uma determinada parte do código de uma maneira mais rápida. modulariza o programa em partes menores e mais funcionais. evita que uma parte do código seja repetida várias vezes em um programa Explicação: Falso, pois é uma vantagem em se usar função. melhora a legibilidade. Falso, pois é uma característica/vantagem em se usar função. modulariza o programa em partes menores e mais funcionais. Falso, pois é uma característica/vantagem em se usar função. melhora a manutenção e permite a alteração de uma determinada parte do código de uma maneira mais rápida. Verdadeiro. evita a sobrecarga de digitação. Falso, pois é uma vantagem permite reaproveitamento de código. evita que uma parte do código seja repetida várias vezes em um programa 4a Questão Assinale a afirmativa incorreta. As variáveis que estão fora do escopo de qualquer função são ditas globais. Quando a função nada retorna, colocamos a palavra void antes do nome da função. Algumas funções não precisam ter um tipo. O comando return permite retornar um valor pela função. As variáveis que estão no escopo de qualquer função são ditas locais. Explicação: A aula 9 fornece o conceitos necessários para identificar os itens corretos e o item incorreto. 5a Questão Analise as quatro sentenças abaixo sobre escopo das variáveis e, em seguida, assinale a alternativa correta: I. Trata-se do bloco de código onde a variável é válida; II. As variáveis que são definidas dentro de uma função são chamadas de variáveis globais; III. Os parâmetros formais de uma função valem dentro e também fora da função; IV. As variáveis são válidas nos blocos em que foram definidas. Apenas as sentenças I e II estão corretas Apenas a sentença I está correta Todas as sentenças estão corretas Apenas as sentenças I, II e IV estão corretas Apenas as sentenças I e IV estão corretas 6a Questão Uma função deve obrigatoriamente conter um tipificador, ou seja, deve retornar um valor ao término de sua execução. No entanto, para sua execução ser eficiente, é necessário enviar dados do bloco principal, que chama a função, para o interior da função. O espaço reservado para transportar esses dados de um lado para o outro é chamado de: Vetor global. Variável global. Parâmetros. Variável local. Vetor local. Explicação: Conforme definição encontrada na aula 9 (conteúdo online).Note que não pode ser : >> variável global : fora de qualquer função e enxergada do ponto de declaração em diante >> variável local : enxergada e manipulável dentro da função em que é declarada. >> vetor global : seria um vetor declarado globalmente. >> vetor local : seria um vetor declarado localmente. 7a Questão Assinale a opção correta, considerando a função calculaIMC definida abaixo : float calculaIMC(float peso, float altura) { return peso/(altura * altura); } A função calculaIMC tem 2 parâmetros e retorna um valor do tipo float. A função calculaIMC deveria ser do tipo void e não float. A função calculaIMC está errada, pois deveria ler o peso e a altura, usando cin >> peso >> altura; A função calculaIMC não compila A função calculaIMC não tem parâmetros e retorna um valor do tipo float. Explicação: O aluno deve saber identificar o tipo da função e os parâmetros. 8a Questão No cabeçalho de uma função que não retornam valor utilizamos "void" logo no começo. Já em uma função que retorna valor, no lugar da palavra "void": não devemos colocar nada, já que não possível que uma função não retorne valor temos que indicar o tipo do retorno, além de usar o comando "return" dentro da função temos que retirar os nomes dos parâmetros, deixando apenas os seu tipos, no cabeçalho da função temos que acrescentar ";" no final do cabeçalho de declaração da função temos que usar somente os comandos "cin" e "cout" no corpo da função Suponha que você tenha que fazer um programa em C++ e deseja armazenar a venda dos 3 meses de 30 vendedores de uma loja em uma matriz. Marque a opção que representa esta declaração: 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 ? 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á: 1. char valores[30][2]; float valores[30][2]; char valores[30]; float valores[30][3]; float valores[32]; Explicação: Para cada vendedor teremos os valores dos 3 meses. Ou seja, para cada um dos 30 vendedores iremos armazenar valores reais, um em cada mês. Então, podemos declarar uma matriz bidimensional com 30 linhas e 3 colunas. Como foi usado o nome valores para a matriz e se está armazenando os valores dos vendedores, usaremos float. Então, float valores[30][3]; 2. int edificio[1][40]; int edificio[40][1]; int edificio[8][5]; int edificio[5][8]; int edificio[40][5]; 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. 3. Somar todas as colunas da linha índice 1 Somar todas as linhas da coluna índice 1. Somar todas as linhas de todas as colunas. Somar todas as linhas da coluna índice 0. Somar todas as colunas da linha índice 0. 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. 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]; Um médico precisa armazenar o peso, a altura e o IMC de seus 1000 pacientes. Contratou um programador que disse que o programa teria algumas matrizes unidimensionais para o armazenamento. Assinale a opção abaixo que representa a declaração das referidas matrizes pelo programador, conforme as informações acima: Os chamados vetores e matrizes podem ser considerados como: Uma professora possui uma turma de 40 alunos e precisa declarar uma matriz bidimensional, na linguagem C++, para armazenar as notas de AV1, AV2 e AV3 da turma. Considere que ela necessita dos dados organizados na matriz, de modo que cada linha deverá representar um aluno. Assinale a alterna�va que apresenta a declaração 4. 1, 2, 3 2, 1, 3 3, 2, 1 1, 3, 2 2, 3, 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 5. float peso[1001], altura[1001], imc [1001]; char peso[1000], altura [1000], imc[1000]; float peso[1000], altura[1000], imc [1000]; char peso[999], altura[999], imc [999]; float peso[1000] ; altura[1000] ; imc[1000]; Explicação: Para reunir os pesos de 1000 pacientes teremos um vetor para 1000 elementos do tipo float Para reunir as alturas de 1000 pacientes teremos um vetor para 1000 elementos do tipo float Para reunir os imcs de 1000 pacientes teremos um vetor para 1000 elementos do tipo float Logo, a resposta certa é float peso[1000], altura[1000], imc [1000]; 6. Estruturas de dados heterogêneas Comandos de repetição Comandos de seleção composta Comandos de seleção Estruturas de dados homogê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çãocomposta 7. desta matriz. Análise de código abaixo e selecione entre as alternativas, o que será impresso, após a execução. int a = 3, b = 2; int v[] = { 6, 7, 8, 9}; a = (v[2] - v[0]) + a; int d = a * v[b]; std::cout << d << " " << v[1] << a + 2; int notas[40][40]; char notas[3][40]; float notas[40][3]; float notas[40,3]; char notas[40][3]; Explicação: Se cada linha deve representar um aluno e são 40 alunos então a matriz a ser declarada terá 40 linhas. Como é preciso armazenar as 3 notas de cada aluno então, a matriz possuirá 3 colunas. Se é preciso armazenar notas então o tipo de dados deve ser float. Analisando as opções. Falso. Errado o número de colunas e o tipo de dados. int notas[40][40]; Falso. Seriam 40 linhas, 3 colunas e o tipo float. tipo char para nota não serve. char notas[3] [40]; Falso. Não se separa o total de linhas do total de colunas com vírgula. float notas[40,3]; Verdadeira float notas[40] [3]; FAlso. Erro no usodo tipo char. char notas[40][3]; 8. 40 75 21 67 24 75 40 77 35 67 Explicação: int a = 3, b = 2; int v[] = { 6, 7, 8, 9}; a = (v[2] - v[0]) + a; int d = a * v[b]; std::cout << d << " " << v[1] << a + 2; Analisando passo a passo : a b v d 3 2 {6,7,8,9} a recebe 8 - 6 + 3, que dá 5 5 * v[2], ou seja, 5 * 8 = 40 Na tela será impresso : 40 7 7 pois, d vale 40 v[1] vale 7 a vale 5 e somado com 2 dá 7
Compartilhar