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