Baixe o app para aproveitar ainda mais
Prévia do material em texto
Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. Assinale a opção que apresenta a expressão que equivale a soma +=num num=soma soma=soma+num num=soma+1 num=soma-1 num=num+soma Explicação: soma +=num, é o mesmo que soma = soma + num; 2. Como se chama o comando estruturado que representa uma estrutura que permite a repetição de outros comandos? atribuição desvio incondicional decisão iteração desvio condicional Explicação: para permitir que outros comandos sejam repetidos devem ser usadas as estruturas de repetição ou iteração 3. Avalie as assertivas a seguir pertinentes a comandos de atribuição em linguagens de programação diversas. I. A atribuição sempre é associação de um valor a uma e somente uma variável, em qualquer linguagem de programação II. A diferença entre as 2 atribuições a variável b em: b=a++ , b=++a, é que no primeiro a variável "a" é atribuída a variável "b" e depois incrementada de 1 unidade e na segunda atribuição, o valor da variável "a" é incrementado de 1 unidade e depois atribuído a variável "b" III. A atribuição soma+= num equivale a soma=soma+num, ou seja a variável soma é incrementada de num IV. Em todas as LPs o comando de atribuição é o mesmo e representado pelo símbolo "=". Está correto, apenas o que se afirma em: I, II e III II e III II, III e IV III e IV I, II e IV Explicação: I. A atribuição sempre é associação de um valor a uma e somente uma variável FALSO, pois temos em algumas LPs a atribuição múltipla, onde o mesmo valor é atribuído a mais de 1 variável, como o comando em C: a=b=c=d=e=0 II. A diferença entre as 2 atribuições a variável b em: b=a++ , b=++a, é que no primeiro a variável ¿a¿ é atribuída a variável ¿b¿ e depois incrementada de 1 unidade e na segunda atribuição, o valor da variável ¿a¿ é incrementado de 1 unidade e depois atribuído a variável ¿b¿ ¿ VERDADE. São as chamadas atribuições unárias. III. A atribuição soma+= num equivale a soma=soma+num, ou seja a variável soma é incrementada de num VERDADE. É uma atribuição composta IV. Em todas as LPs o comando de atribuição é o mesmo e representado pelo símbolo ¿=¿. FALSO, varia conforme a LP. Em Pascal, por exemplo a atribuição é representada pelo símbolo ¿:=¿ (dois pontos seguido do igual). 4. Considere o trecho de código abaixo, escrito na linguagem C, for (ind=5; ind >= 1 ; ind++) { scanf("%d", &num); if (num == 0) break; printf("%d\n", num); } Printf ("Fim"); Quantas vezes os comandos dentro do FOR, serão executados? 1 vez Nenhuma vez 3 vezes Infinitas vezes 5 vezes Explicação: Ind começa com 5 5 é maior ou igual a 1 entra na repetição Ind vai para 6 6 é maior ou igual 1 entra na repetição .. e assim vai, pois ind ao invés de decrescer, esta sendo incrementado, logo va repetir infinatamente, o chamado LOOP 5. I. O desvio incondicional deve ser usado sempre que possível PORQUE II. O desvio incondicional desloca a execução para qualquer parte do programa, especificado por um rótulo (nome) Analisando a relação de causa e efeito entre as assertivas I e II, responda com a opção correta: As 2 assertivas são verdadeiras e a assertiva II não justifica a assertiva I As 2 assertivas são verdadeiras e a assertiva II justifica a assertiva I A assertiva I é falsa e assertiva II é verdadeira, As 2 assertivas são falsas A assertiva I é verdadeira e a assertiva II é falsa Explicação: A assertiva I é falsa, pois o desvio incondicional deve ser evitado, pois afeta a legibilidade e manutenibilidade do código. A assertiva I é verdadeira e justamente por esse desvio da execução natural do programa, o desvio incondicional deve ser evitado. 6. Sobre os comandos de atribuição implementados pelas LPs: Acompanhe e avalie a execução do trecho de código, abaixo, na LP C e responda. int main(void) {int iQtdSegundos, iHoras, iMinutos, iSegundos printf("\nEntre com o valor em segundos:"); scanf("%d", &iQtdSegundos); iHoras = iQtdSegundos / 3600; iMinutos = (iQtdSegundos - (iHoras*3600)) / 60; iSegundos = (iQtdSegundos - (iHoras/3600)) % 60; printf("\nHora convertida %02d:%02d:%02d", iHoras, iMinutos, iSegundos); } 1. Considerando que o dado de entrada seja 5400, qual será exatamente a saída que o programa vai exibir? Hora convertida 01:20:00 Hora convertida 01:20:20 01:30:00 Hora convertida 01:30:00 Hora convertida 01:30:20 Explicação: 1. iQtdeSegundos = 5400 a. iHoras = 5400/3600 = 1 (apenas parte inteira) b. iMunutos = (5400-3600)/60 = 30 (apenas parte inteira) c. iSegundos = Resto (5400 ¿ 3600)/60 = 0 (Resto) d. A saída será: Hora convertida 01:30:00
Compartilhar