Baixe o app para aproveitar ainda mais
Prévia do material em texto
1. Considerere um trecho de um programa em C++. Qual a variável que será alterada e para qual valor ela mudará ? int a = 2, b = 4, x = 12, y = 11, z = 3; float t = 0; if (x < y+z) if (y != z*4 - 2) t = y/z; else a = y % z; else b = z + y/x; A variável t ficará 3 A variável b ficará 1 A variável a ficará 1 Nenhuma variável será alterada. A variável b ficará 3 Explicação: int a = 2, b = 4, x = 12, y = 11, z = 3; float t = 0; if (x < y+z) if (y != z*4 - 2) t = y/z; else a = y % z; else b = z + y/x; Analisando o trecho acima. 1o. if : 12 < 14 ? Sim. Entrar no 1o. if. 2o. if : 11 != 3 * 4 - 2, ou seja, 11 != 12-2, ou seja, 11 é diferente de 10 ? VErdadeiro. Entrar no 2o. if. Então, é preciso fazermos t receber y/z, ou seja, t receber 11/3, que dá 3. 2. 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 1 15 27.5 15 55 90 15 25 15 50 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. 3. 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 composto Operador ternário aninhamento de if Estrutura condicional de comando simples comando switch Explicação: Como dito no gabarito. O operador ? : equivale ao comando if ... else. 4. 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"; else if (x % 3 == 0 && x % 5 == 0) cout << x << " é divisível por 3 e por 5"; else cout << x << " ### " ; 9 não é divisível por 2. Nada aparece, pois o trecho de programa possui erro. 9 ### 9 é divisível por 3 e por 5. Apenas 9 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### 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? while for do/while switch/case break 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. 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. switch/case table cin cout break Explicação: a estrutura de escolha é implementada no C++ pelo comando switch/case 7. 11 50 10 11 50 10 2 11 10 50 10 10 50 10 2 11 10 50 10 2 Explicação: 1ª. Execução : valor de a é 1 Entrar no case 1, depois no case 3 e em seguida, no case 5. Então será impresso 11 10 2ª. Execução : valor de a é 5 Entrar no case 5 e imprimir 50 3ª. Execução : valor de a é 20 Entrar no case 20 e depois no case 30. Então, será impresso 10 2 Concluindo : Valores impressos : 11 10 50 10 2 8. 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 while switch/case for do/while 1. Que comando em C++ é mais indicado para ser usado em um programa que permita a escolha de uma opção do MENU ? Por exemplo : 1-Incluir, 2-Excluir, 3-Alterar e 9-Sair. for do/while cout / cin while switch / case Explicação: Por definição dada em aula de comando de seleção 2. À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. As afirmativas II, III e IV são verdadeiras Somente a afirmativa II é verdadeira Somente a afirmativa III é falsa Somente a afirmativa I é verdadeira As afirmativas I e IV são verdadeiras Explicação: As respostas falsas são conclusivas 3. 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"; valor acima do esperado valor fora de faixa valor ainda aceitável valor esperado nenhuma mensagem será exibida 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 " 4. 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 << " ### " ; Apenas 7 Nada aparece, pois o trecho de programa possui erro. 7 ### 7 é divisível por 3 e por 5. 7 não é divisível por 2. 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### 5. De acordo com o trecho de código abaixo o que será exibido se o usuário digitar os valores 2 e 4, respectivamente? leia(n1,n2) se ((n1 < 2) e (n2 < 5 )) entao escreva("O valor foi: ", n1) senao se ((n1 > 1) e (n2 > 4) ) entao escreva ("O valor foi: ", n1+2 ) senao se ((n1 > 3) ou (n2 < 10)) entao escreva("O valor foi: ", n2+n1) senao escreva("O valor foi: ", 5) fimse fimse fimse O valor foi:4 O valor foi:2 O valor foi:6 Nenhuma das alternativas anteriores O valor foi:5 Explicação: leia(n1,n2) se ((n1 < 2) e (n2 < 5 )) entao escreva("O valor foi: ", n1) senao se ((n1 > 1) e (n2 > 4) ) entao escreva ("O valor foi: ", n1+2 ) senao se ((n1 > 3) ou (n2 < 10)) entao escreva("O valor foi: ", n2+n1) senao escreva("O valor foi: ", 5) fimse fimse fimse e que os valores de entrada foram 2 e 4, temos : 1o. se : 2 < 2 e 4 < 5 . Temos Falso e Verdadeiro. Logo, é falso. Entra-se no senao. 2o. se : 2 > 1 e 4 < 4. Temos verdadeiro e falso. Logo, é falso. Entra-se no senao deste se. 3o. se : 2 > 3 ou 4 < 10. Como é ou, basta uma condição ser verdadeira. Como 4 < 10 é verdadeiro entramos no 3o. se. Portanto, será impresso O valor foi: 6 Note que n1+n2 dará 6. 6. 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. break cout table switch/case cin Explicação: a estrutura de escolha é implementada no C++ pelo comando switch/case 7. 11 10 50 10 10 50 10 2 11 50 10 11 50 10 2 11 10 50 10 2 Explicação: 1ª. Execução : valor de a é 1 Entrar no case 1, depois no case 3 e em seguida, no case 5. Então será impresso 11 10 2ª. Execução : valor de a é 5 Entrar no case 5 e imprimir 50 3ª. Execução : valor de a é 20 Entrar no case 20 e depois no case 30. Então, será impresso 10 2 Concluindo : Valores impressos : 11 10 50 10 2 8. 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? do/while switch/case cout while for 1. Considerere um trecho de um programa em C++. Qual a variável que será alterada e para qual valor ela mudará ? int a = 2, b = 4, x = 12, y = 11, z = 3; float t = 0; if (x < y+z) if (y != z*4 - 2) t = y/z; else a = y % z; else b = z + y/x; A variável a ficará 1 A variável b ficará 1 A variável b ficará 3 Nenhuma variável será alterada. A variável t ficará 3 Explicação: int a = 2, b = 4, x = 12, y = 11, z = 3; float t = 0; if (x < y+z) if (y != z*4 - 2) t = y/z; else a = y % z; else b = z + y/x; Analisando o trecho acima. 1o. if : 12 < 14 ? Sim. Entrar no 1o. if. 2o. if : 11 != 3 * 4 - 2, ou seja, 11 != 12-2, ou seja, 11 é diferente de 10 ? VErdadeiro. Entrar no 2o. if. Então, é preciso fazermos t receber y/z, ou seja, t receber 11/3, que dá 3. 2. 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; } 50 90 15 25 15 55 1 15 27.5 15 55 90 55 90 15 27.5 15 15 25 15 50 90 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. 3. 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; } comando switch Estrutura condicional de comando composto Estrutura condicional de comando simples Operador ternário aninhamento de if Explicação: Como dito no gabarito. O operador ? : equivale ao comando if ... else. 4. 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"; else if (x % 3 == 0 && x % 5 == 0) cout << x << " é divisível por 3 e por 5"; else cout << x << " ### " ; 9 ### Apenas 9 9 é divisível por 3 e por 5. 9 não é divisível por 2. Nada aparece, pois o trecho de programa possui erro. 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### 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? while switch/case for 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. 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. switch/case cout break cin tableExplicação: a estrutura de escolha é implementada no C++ pelo comando switch/case 7. 11 10 50 10 2 11 50 10 2 10 50 10 2 11 10 50 10 11 50 10 Explicação: 1ª. Execução : valor de a é 1 Entrar no case 1, depois no case 3 e em seguida, no case 5. Então será impresso 11 10 2ª. Execução : valor de a é 5 Entrar no case 5 e imprimir 50 3ª. Execução : valor de a é 20 Entrar no case 20 e depois no case 30. Então, será impresso 10 2 Concluindo : Valores impressos : 11 10 50 10 2 8. 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 for switch/case cout do/while
Compartilhar