Baixe o app para aproveitar ainda mais
Prévia do material em texto
aula 4 teste de conhecimento 1a Questão Uma das dificuldades da estrutura escolha/ caso é o fato das restrições variarem para cada linguagem, dificultando a fixação. Na linguagem C, essa estrutura recebe o nome de switch() e tem suas restrições. Observe os trechos abaixo e assinale o que é possível ser usado na linguagem C, supondo que se espera encontrar na variável de nome a, inteira, alguns valores e entres eles está o número 90. Analise as linhas abaixo e assinale que foi escrita corretamente para testar o número 90 na estrutura switch(). case a=90: printf("Pode") ;break; 90: printf("Pode"); case 90: printf("Pode") ; break; case a > 90: printf("Pode") ;break; 90: printf("Pode"); stop; Explicação: A estrutura switch tem uma sintaxe simples, mas precisamos saber que ela não admite que se use nos casos(cases) operadores relacionais. Cada case(obrigatório) deverá conter uma constante. Em alguns casos, o break; poderá ser dispensável. Sendo assim, duas respostas sem case estão erradas e duas que apresentam operadores relacionais estão erradas. case 90: printf("Pode") ; break; é a resposta correta. Ref.: 201503354392 2a Questão Um programa deve ler um valor inteiro. Caso o valor lido seja positivo deve imprimir a mensagem "Valor positivo". Assinale a opção que apresenta estrutura condicional CORRETA para a solução desse problema. if ( valor > 0 ) if (valor < 0 ) if ( valor != 0 ) if ( valor == 0 ) if ( valor <= 0 ) Ref.: 201502844643 3a Questão Uma empresa que presta serviços de pintura predial, desenvolveu um aplicativo destinado a calcular o número de latas necessárias para pintar uma parede. O programa lê o tipo de pintura(interna ou externa), a largura e a altura em metros(inteiros) da parede. Para calcular a quantidade de tinta e o número de latas, sabe-se que são necessários 3 litros de tinta para pintar cada metro quadrado interno ou 4 litros para cada metro quadrado externo. Sabe-se também que cada lata tem 2 litros de tinta. Dado o trecho de programa abaixo, identifique a opção correta que complemente o programa para realizar o cálculo do número de latas de tinta: void main(){ float altura, largura; char tipo; int total_latas, tot_metros, aux; puts("\nDigite E para Externo e I para Interno"); tipo = getchar(); puts("\nDigite a altura da parede: "); scanf("%f",&altura); printf("\nDigite a largura da parede: "); scanf("%f",&largura); tot_metros = altura*largura; if(tot_metros%2) aux = 1; else aux = 0; switch(tipo){ case 'I': case 'i': printf("%d",(tot_metros*3)/2+aux); break; case 'E': case 'e': printf("%d",(tot_metros*4)/2+aux); break; default: printf("%s","Tipo invalido"); } system("PAUSE"); } if(tot_metros%2) aux = 1; else aux = 0; switch(tipo){ case 'I': case 'i': printf("%d",(tot_metros*3)/2+aux); case 'E': case 'e': printf("%d",(tot_metros*4)/2+aux); default: printf("%s","Tipo invalido"); } system("PAUSE"); } switch(tipo){ case 'I': case 'i': printf("%d",(tot_metros*3)/2+aux); break; case 'E': case 'e': printf("%d",(tot_metros*4)/2+aux); break; default: printf("%s","Tipo invalido"); } system("PAUSE"); } if(tot_metros%2) aux = 1; else aux = 0; switch(tipo){ case 'I': break; case 'i': break; printf("%d",(tot_metros*3)/2+aux); break; case 'E': break; case 'e': break; printf("%d",(tot_metros*4)/2+aux); break; default: printf("%s","Tipo invalido"); } system("PAUSE"); } if(tot_metros%2) aux = 1; else aux = 0; switch(tipo){ case 'I': break; case 'i': break; printf("%d",(tot_metros*3)/2+aux); case 'E': break; case 'e': break; printf("%d",(tot_metros*4)/2+aux); default: printf("%s","Tipo invalido"); } system("PAUSE"); } Ref.: 201502766000 4a Questão Alguns iniciantes na linguagem C sentem dificuldades de usar a estrutura dos ifs encadeados. Sabemos que algumas afirmativas abaixo não produziriam um resultado errado, mas que tornaria o programa com menor qualidade, visto que testes seriam realizados sem necessidade. Então, leia com atenção e só escolha a afirmativa poderá ajudá-los a construir programas com qualidade, usando todos os recursos da estrutura if ... else if ..... Posso substituir por vários ifs simples e um if composto, ao final, para criticar a resposta errada do usuário. Posso substituir ifs encadeados por ifs simples sem prejuízo de qualidade. Melhor seria substituir, sempre, os ifs encadeados pela estrutura do switch(). O número de ifs encadeados é igual ao número de respostas possíveis, considerando a resposta errada do usuário e não usaria else. O número de ifs encadeados é igual ao número de respostas possíveis, não considerando a resposta errada do usuário, pois essa seria criticada no else. Ref.: 201503312342 5a Questão Em relação aos operadores relacionais, o resultado de sua expressão é sempre igual a: 0 (falso) ou 1 (verdadeiro) Decisão de parada ao comando while e do... while. Nenhuma das alternativas anteriores. Resposta && ou ||. Uma decisão de fluxo para o comando if. Explicação: Os operadores relacionais normalmente são usados para uma comparação do tipo: < menor que > maior que <= menor ou igual que >= maior ou igual que != diferente de == igual a Sendo assim esta comparação terá como resultado apenas as seguintes opções: 0- falso ou 1 - verdadeiro Ref.: 201503192005 6a Questão três ifs simples e um composto quatro ifs simples e um composto quatro ifs simples switch() com quatro cases e um default switch() com cinco cases Ref.: 201503192030 7a Questão Existe sempre uma dúvida por parte do desenvolvedor se escolhe switch() ou if quando está usando a Linguagem C. Sabemos que existem algumas exigências para se usar o switch(). Analise as opções abaixo e assinale a opção correta. I Qualquer tipo pode ser usado. II Somente o tipo vetor de char que Não pode ser usado. III Não pode ser usado intervalo tipo: 1..3 em um case. IV Sempre será obrigatório usar o comando break; ao final de um case. V Quando o valor digitado não estiver presente em nenhum dos cases, irá para a opção default, caso exista. I, III e IV são verdadeiras II, IV e V são verdadeiras II, III e IV são verdadeiras I, III, IV e V são verdadeiras III e V são verdadeiras Ref.: 201503455038 8a Questão Observe o trecho do programa abaixo: float a, b, c; printf("\n Digite o primeiro numero: "); scanf ("%f",&a); printf("\n Digite o segundo numero: "); scanf ("%f",&b); if (a >= b) { printf("Valor de c: %f" , c = a + b); } else { printf("Valor de c: %f" , c = a - b); } Se o usuário digitar os números abaixo, marque a opção que contém as saídas corretas. 10 e 5 ; 8 e 8 ; 3 e 9 ; 25 e 15 ; 6 e 32. 15 ; 16 ; -6 ; 40 ; -26 15 ; 0 ; -6 ; 35 ; 26 15 ; 16 ; 6 ; 40 ; -26 16 ; 0 ; -6 ; 40 ; 26 16 ; - 16 ; -6 ; 40 ; -26
Compartilhar