WorksheetsExercicios de Apoio 3
Total questions: 20
Worksheet time: 29mins
Qual é uma interpretação correta da ordem das operações realizadas?
Primeiro soma 3 + 2, depois multiplica por valor
Primeiro multiplica 3 * 2 e só depois realiza as somas/subtrações
Avalia da esquerda para a direita sem prioridade
A subtração ocorre antes da multiplicação
Qual raciocínio explica o problema?
A função printf não aceita strings
O aluno usou uma variável não inicializada
O código nem compila porque '=' não existe em C
O aluno confundiu atribuição com comparação
Se x começa valendo 3, quais valores serão percorridos antes de parar, considerando apenas incrementos válidos?
3, 6, 9
3, 6, 9, 12
4, 7, 10
3, 5, 7, 9, 11
Um aluno usa scanf("%d", &n);. Outro diz que o programa está lendo “lixo”. O que pode justificar isso?
scanf sempre lê lixo
O operador & não deve ser usado em scanf
A variável n não foi declarada ou inicializada antes
O usuário inseriu um caractere não numérico
Qual explicação representa corretamente o que acontece?
b recebe 9 e depois a vira 9
b recebe 8 e depois a vira 9
b recebe 9 e a permanece 8
O código é indefinido
Um professor pergunta: “O que significa dizer que C é imperativo?”.
Qual resposta demonstra entendimento, e não memorização?
Ele descreve passos que alteram o estado do programa
Ele descreve apenas o resultado final desejado
Ele é baseado em objetos
Ele não possui variáveis
Qual dedução correta?
O código está errado
As posições não inicializadas viram 0
Todas as posições ficam com lixo
O array tem apenas 3 posições
Por que p muda?
Porque q aponta para p
Porque q guarda o mesmo valor que p
Porque ponteiros não existem em C
Porque *q significa endereço
Quantos caracteres existem no array?
4
3
Depende do compilador
5
O que justifica a existência de return 0; em main()?
Evitar warnings
Indicar que o programa terminou corretamente
Criar uma variável zero
Nada, é opcional
Qual afirmação descreve melhor o desafio deste tipo de expressão?
É simples, só somar
A ordem de avaliação pode gerar confusão e não deve ser usada por iniciantes
Isso não é permitido pela linguagem
O compilador escolhe sempre x++ primeiro
Quando usar & no scanf?
Apenas se a variável for global
Nunca
Apenas com strings
Sempre com tipos primitivos (exceto strings)
Por que o valor original não muda?
Porque falta return
Porque void impede alterações
Porque a e b são cópias
Porque C proíbe somas dentro de funções
O que diferencia um ponteiro de uma variável comum?
Guarda múltiplos valores
Guarda endereços de memória
Nunca pode ser alterado
É mais rápido
O que deve verificar imediatamente?
FILE *f = fopen("dados.txt", "r");
Se o ficheiro foi fechado
Se a RAM é suficiente
Se o compilador tem permissões
Se f é NULL
Se f estiver em modo “w”:
fscanf(f, "%d", &n);
Lê normalmente
Erro lógico: não se pode ler ficheiro aberto para escrita
Lê 0
Lê lixo
Para ler caractere a caractere, usa-se:
fscanf
fgets
fgetc
getc(stdin) somente
O que significa "parâmetro por valor"?
A função recebe uma cópia do valor
A variável original é alterada
O parâmetro é sempre um ponteiro
A função não recebe parâmetros
Qual declaração está correta?
string nome;
nome char[30]
text nome
char nome[30]
O que faz o compilador?
Executa diretamente o programa
Converte o código-fonte para linguagem de máquina
Salva arquivos em disco
Roda o programa em modo gráfico
