Em seguida, iremos resolver, dar o gabarito e comentar todos os códigos.
Obtenha AQUI seu certificado de Programação C
Apostila de C da UFMG
A Apostila C Progressivo está resolvendo todos as autoavaliações presentes na apostila da UFMG, e esta é a última lista do curso que é disponibilizado tanto online como em pdf para download.
Para saber mais, veja:
Apostila de C
Iremos mostrar os exercícios que são propostos sobre o assunto de Arquivos, Entra e Saída Padrão em C, que são assuntos já explicados na seção de Arquivos de nossa apostila C Progressivo.
É importante que tenha estudado tais assuntos antes de tentar fazer os testes de autoavaliações.
Não tente chutar ou rodar os códigos dos exercícios, pois assim não irá tirar proveito algum desse excelente material da UFMG.
Leia, raciocine, faça algum rabisco ou anotação em um papel caso ache necessário, mas tente responder todas as questões.
Somente ao final leia a solução comentada com gabarito.
Questões sobre Arquivos da Apostila de C
Resolução das questões sobre Arquivos da Apostila de C
Questão 1:
Um grande problema da função gets() para pegar uma string do usuário, é que ela não tem nenhuma implementação de segurança, para limitar a quantidade de caracteres digitados pelo usuário.Por exemplo, se você declarar uma string de 20 elementos, pode usar a gets() para introduzir, 30, 40 ou 1 milhão de caracteres. Ela deixa, o que a torna muito insegura, pois não sabemos que memória ela vai usar para armazenar os caracteres que extrapolaram o tamanho da string (overflow), sendo essa uma vulnerabilidade muito explorada.
Gabarito: b
Questão 2:
%d imprime um inteiro qualquer, %u imprime um número sem sinal (unsigned) e %p é para ponteiros (exibe o endereço de memória de uma variável através do &).Gabarito: d
Questão 3:
Uma variável do tipo double é usada para armazenar números com alta precisão decimal, assim como o float, porém o double tem mais precisão, podemos chamar de um long float e usar %lf para armazenar valores neste double.Gabarito: c
Questão 4:
Usamos a função fopen() para abrir arquivos, e para isso passamos o endereço do arquivo na memória do computador, bem como o modo de abertura (para ler, escrever ou adicionar).Gabarito: d
Questão 5:
A função getc() serve especificamente para capturar um caractere de um arquivo.Gabarito: c
Questão 6:
Podemos usar, por exemplo, a função fseek() para acessar um determinado ponto do arquivo.Gabarito: b
Questão 7:
A letra "r" é de read, ou seja, leitura.Porém, foi adicionado um +, o que permite abrir o arquivo tanto para leitura como escrita.
Gabarito: e
Questão 8:
A fseek() é usada para se posicionar no arquivo, e não para leitura ou escrita, e sim para se localizar.Gabarito: d
Questão 9:
A função printf() é usada para imprimir na tela (saída padrão), já a fprintf() pode ser redirecionada para qualquer saída, como arquivos.Questão 10:
Há uma controvérsia nesta questão da apostila.O curso de C da UFMG diz que a opção correta é a a, que não dá erros ao compilar.
Porém, note que o arquivo foi aberto para leitura ("r"), e não para a escrita (o código usa a fprinf para escrever). Embora o compilar possa não acusar nada, à rigor isto não está certo.
Gabarito: a ou e
Nenhum comentário:
Postar um comentário
É quase impossível criar centenas de páginas voltadas para programação C e não cometer algum erro.
- Se notar algum conceito, letra ou trecho de código errado, deixe sua correção
- Se perceber uma maneira melhor ou mais eficiente de fazer algo, deixe sua ideia
- Se algo não ficar claro ou for confuso, nos avise
Aos poucos vamos aumentando e melhorando a qualidade de nosso material, e para isso contamos com sua ajuda.