Estudos gratuitos da ER Soluções WebVer outros conteúdos grátis
ER Soluções WebEstudos · Code Complete

Prova 2 · Variáveis e instruções

Partes III e IV (cap. 10–19): variáveis, nomes, tipos de dados, globais, código em linha reta, condicionais, laços, recursão, tabelas, complexidade

Objetivas

0/20 respondidas
1.
Uma variável é referenciada nas linhas 10, 12 e 95 de uma rotina. O que o capítulo 10 recomenda?
2.
Qual opção liga um valor mais tarde (binding time mais tardio)?
3.
Qual nome segue melhor as orientações do capítulo 11?
4.
if (!naoEncontrado) aparece no código. A melhor correção é:
5.
Um sistema financeiro guarda valores em float e as somas mensais estão erradas por centavos. A recomendação é:
6.
O código tem taxa = valor * 0.0725 em 15 lugares. O que o capítulo 12 sugere?
7.
Qual uso de variável global o livro considera aceitável?
8.
Por que o livro prefere rotinas de acesso a ler e escrever um global diretamente?
9.
Qual forma deixa mais clara a dependência entre etapas que precisam ocorrer em ordem?
10.
Num switch de status de pedido (novo, pago, enviado), o default deve:
11.
"Acesso permitido para maiores de idade (18 anos ou mais)". Qual teste está correto?
12.
Qual é o maior problema de um laço for cujo índice é alterado dentro do corpo para forçar a saída?
13.
Um laço tem 4 níveis de aninhamento e 120 linhas. O que fazer?
14.
Qual uso de recursão é o mais adequado?
15.
Em C, sem exceções, uma rotina aloca três recursos e precisa liberá-los em qualquer saída de erro. Segundo o livro:
16.
Uma seguradora calcula o prêmio por idade (faixas de 10 anos), sexo e estado civil com 60 ifs. O livro sugere:
17.
Uma rotina tem 2 if, 2 for, 1 while e 3 ||. Qual a complexidade de McCabe e a ação indicada?
18.
Qual expressão equivale a !(cheio || bloqueado)?
19.
Qual técnica não está entre as indicadas para reduzir aninhamento profundo?
20.
Dados de um arquivo de cabeçalho, seguidos de vários registros de detalhe e um rodapé, sugerem qual estrutura de controle?

Dissertativas

autoavaliação · não entram na nota
D1.
Explique os conceitos de escopo, span e tempo de vida de variáveis, e por que reduzi-los melhora o código.
Ver resposta modelo
Escopo é onde a variável é visível; span é a distância entre referências; tempo de vida é o intervalo da primeira à última referência. Reduzi-los diminui o que o leitor precisa lembrar, a janela em que a variável pode ser alterada por engano e o risco de usar valores antigos. Técnicas: declarar e inicializar perto do uso, agrupar referências, preferir escopo local e tornar global só se necessário.
D2.
Compare os três métodos de acesso de tabelas (direto, indexado e em degraus), com um exemplo de uso para cada.
Ver resposta modelo
Direto: a chave é o índice (dias por mês, indexado pelo mês). Indexado: uma tabela pequena de índices aponta para a tabela principal, economizando espaço quando as chaves são esparsas (códigos de produto). Em degraus: cada entrada vale para uma faixa (notas A–D por pontuação, alíquotas por faixa de renda); exige cuidado com os limites e pode usar busca binária.
D3.
Descreva como calcular a complexidade de McCabe, o que os resultados indicam e cite três técnicas para reduzir complexidade e aninhamento.
Ver resposta modelo
Comece com 1 e some 1 para cada if, while, repeat, for, and, or e para cada caso de case. 0–5: bom; 6–10: comece a simplificar; mais de 10: quebre a rotina. Técnicas: extrair rotinas, usar cláusulas de guarda, converter if aninhados em cadeia if-else ou case, usar tabelas, usar polimorfismo, mover condições complexas para funções booleanas.
Seu progresso fica salvo neste navegador.