cblc/exercicios/01
2025-03-27 08:26:25 -03:00
..
README.org Atualização de todos os exercícios 2025-03-27 08:26:25 -03:00

Curso Básico da Linguagem C

Exercícios da aula 1: História

1. Pesquise e explique

As classificações abaixo são utilizadas para descrever as características da linguagem C: pesquise e explique cada uma delas.

  • Linguagem de alto nível;
  • Linguagem compilada;
  • Linguagem procedural;
  • Linguagem imperativa;
  • Linguagem estruturada.

2. Analise o programa

Dado o programa abaixo (salve.c), explique cada uma perguntas nos comentários.

#include <stdio.h> // O que é isso e para que serve? 

// Por que todo o programma é escrito na função 'main()'?
int main(void) {
    
    puts("Salve, simpatia!"); // O que faz e como se usa a função 'puts()'?

    return 0; // Para que serve esta instrução? 
}

3. Compile, encontre, explique e corrija os bugs

O uso de números mágicos (valores literais que não dão pistas de seus significados) é desaconselhado porque dificultam a leitura semântica do código. Sendo assim, nós utilizaremos a constante simbólica EXIT_SUCCESS, definida na biblioteca padrão com valor 0, em vez do inteiro literal 0 como argumento da instrução return:

#include <stdio.h>

int main(void) {
    puts("Salve, simpatia!");
    return EXIT_SUCCESS
}

Observe o resultado da compilação:

:~$ gcc salve.c -o salve
  • Quantos erros foram encontrados e quais são eles?
  • Quais são as correções sugeridas pelo gcc?
  • Como ficou o código corrigido?

4. Compile, pesquise e responda

Dado o código abaixo (por exemplo, main.c):

#define EXIT_SUCCESS 0

int puts(const char *string);

int main(void) {
    puts("Salve, simpatia!");
    return EXIT_SUCCESS;
}

Compilação:

:~$ gcc main.c
:~$
  • Nenhum erro foi reportado, mas por quê?
  • Como você executaria o binário resultante?

5. Pesquise e responda

Quando não explicitamos a especificação utilizada para compilar o nosso programa (opção -std=PADRÃO do gcc), qual será o padrão utilizado e como podemos confirmar isso pela linha de comandos?