Spec Sistemas Com C • Trilha Progressiva em 4 Níveis


🧭 Navegação Pedagógica


🎯 Nível 1: Fundamentos

Problema 01.1 — Programa ‘Hello World’ e Estrutura da Função main()

Contexto: Programa ‘Hello World’ e Estrutura da Função main() no contexto de Introdução à Linguagem C, Padrões ANSI/C11/C23 e Compilação.

Requisitos de Execução:

  1. Escrever programa em C padrão C11 com inclusão de <stdio.h> e retorno explícito de status 0.

Resultado Esperado

Executável compilado via gcc imprimindo mensagem formatada.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_01_1_SeuNome
  2. Envie na tarefa: Atividade Cap 01 - Introdução à Linguagem C, Padrões ANSI/C11/C23 e Compilação
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>

int main(void) {
    printf("Compilador C moderno em execucao.\n");
    printf("Padrao ANSI/C11 inicializado com sucesso.\n");
    return 0;
}

🔍 Nível 2: Prática

Problema 01.2 — Flags de Compilação Rigorosa com GCC (-Wall, -Wextra, -pedantic)

Contexto: Flags de Compilação Rigorosa com GCC (-Wall, -Wextra, -pedantic) no contexto de Introdução à Linguagem C, Padrões ANSI/C11/C23 e Compilação.

Requisitos de Execução:

  1. Compilar código ativando avisos estritos e eliminando quaisquer warnings de variáveis não utilizadas.

Resultado Esperado

Compilação concluída sem nenhum warning emitido pelo GCC.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_01_2_SeuNome
  2. Envie na tarefa: Atividade Cap 01 - Introdução à Linguagem C, Padrões ANSI/C11/C23 e Compilação
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>

int main(int argc, char *argv[]) {
    (void)argc;
    (void)argv;
    int codigo_status = 200;
    printf("Status do sistema: %d\n", codigo_status);
    return 0;
}

⚡ Nível 3: Integração

Problema 01.3 — Inspeção dos Estágios de Compilação (Pré-processamento, Assembly e Objeto)

Contexto: Inspeção dos Estágios de Compilação (Pré-processamento, Assembly e Objeto) no contexto de Introdução à Linguagem C, Padrões ANSI/C11/C23 e Compilação.

Requisitos de Execução:

  1. Demonstrar os comandos gcc -E, gcc -S e gcc -c gerando arquivos intermediários (.i, .s, .o).

Resultado Esperado

Arquivos intermediários gerados e inspecionados com sucesso.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_01_3_SeuNome
  2. Envie na tarefa: Atividade Cap 01 - Introdução à Linguagem C, Padrões ANSI/C11/C23 e Compilação
🔑 Gabarito de Código & Solução Comentada
/*
 * Pipeline de Compilação GCC:
 * gcc -E main.c -o main.i  # Pré-processamento
 * gcc -S main.i -o main.s  # Geração de Assembly x86_64
 * gcc -c main.s -o main.o  # Geração de Código Objeto Binário
 * gcc main.o -o main.exe   # Linkedital Final com libc
 */
#include <stdio.h>

int main(void) {
    puts("Pipeline GCC concluido.");
        printf("Operacao concluida com sucesso.\n");
    return 0;
}


🏆 Nível 4: Desafio Corporativo

Problema 01.4 — Automação de Build com Makefile Multi-alvo e Sanitizers (-fsanitize=address)

Contexto: Automação de Build com Makefile Multi-alvo e Sanitizers (-fsanitize=address) no contexto de Introdução à Linguagem C, Padrões ANSI/C11/C23 e Compilação.

Requisitos de Execução:

  1. Criar Makefile com alvos all, debug, sanitize e clean para compilação segura.

Resultado Esperado

Makefile executado com AddressSanitizer ativado para detecção de vazamentos.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_01_4_SeuNome
  2. Envie na tarefa: Atividade Cap 01 - Introdução à Linguagem C, Padrões ANSI/C11/C23 e Compilação
🔑 Gabarito de Código & Solução Comentada
CC = gcc
CFLAGS = -Wall -Wextra -Werror -pedantic -std=c11
SANITIZE = -fsanitize=address,undefined -g

all:
	$(CC) $(CFLAGS) main.c -o app

debug:
	$(CC) $(CFLAGS) $(SANITIZE) main.c -o app_debug

clean:
	rm -f app app_debug *.o

⬅️ Voltar ao Índice de Exercícios 📚 Sumário de Tópicos