Alternativa D - 4, 2, 3, 5, 1
Análise Lógica da Questão
Esta questão exige a compreensão do fluxo padrão de manipulação de arquivos na linguagem de programação C. Para escrever em um arquivo, é necessário seguir uma sequência rigorosa de etapas para garantir que o recurso seja acessado corretamente e liberado adequadamente.
A lógica de programação define a ordem de execução dos comandos, e a questão pede para mapear essa ordem para os itens apresentados na lista vertical.
Passos da Manipulação de Arquivos em C
A sequência correta de operações para criar e escrever em um arquivo é:
- Declaração do Ponteiro: Primeiro, é necessário declarar a variável que atuará como descritor do arquivo.
- Comando:
FILE *arq; - Na lista da imagem, este é o item 5. Logo, ele recebe o número 1 (primeira etapa).
- Abertura do Arquivo: Em seguida, o arquivo deve ser aberto no disco usando a função
fopen.
- Comando:
arq = fopen("arquivo.dat","wb+"); - Na lista da imagem, este é o item 2. Logo, ele recebe o número 2 (segunda etapa).
- Validação de Erro: Após abrir, é crucial verificar se a operação foi bem-sucedida (evitando acesso a ponteiro nulo).
- Comando:
if(arq==NULL) return; - Na lista da imagem, este é o item 3. Logo, ele recebe o número 3 (terceira etapa).
- Escrita de Dados: Com o arquivo aberto e validado, realizamos as operações de entrada/saída.
- Comando:
fwrite(buffer,sizeof(buffer),1,arq); - Na lista da imagem, este é o item 1. Logo, ele recebe o número 4 (quarta etapa).
- Fechamento do Arquivo: Por fim, encerramos o uso do arquivo para liberar recursos do sistema.
- Comando:
fclose(arq); - Na lista da imagem, este é o item 4. Logo, ele recebe o número 5 (quinta etapa).
Construção da Resposta
A questão apresenta os itens numa ordem fixa na imagem e pede para preenchermos os parênteses com a ordem de execução. Devemos ler a lista de cima para baixo e atribuir o número da etapa correspondente:
| Item na Lista (Imagem) | Comando | Etapa de Execução | Número a ser colocado no Parêntese |
|---|
| 1º Bloco | fwrite | 4º (Escrita) | 4 |
| 2º Bloco | fopen | 2º (Abertura) | 2 |
| 3º Bloco | if NULL | 3º (Validação) | 3 |
| 4º Bloco | fclose | 5º (Fechamento) | 5 |
| 5º Bloco | FILE *arq | 1º (Declaração) | 1 |
Assim, a sequência resultante lida verticalmente é: 4, 2, 3, 5, 1.
Conclusão
A alternativa que corresponde a essa sequência é a D.