🧩 Exercícios: Introdução à Linguagem C, Padrões ANSI/C11/C23 e Compilação
Spec Sistemas Com C • Trilha Progressiva em 4 Níveis
🧭 Navegação Pedagógica
-
📖 Teoria do Capítulo 💻 Exemplos 📊 Slides 🧠 Quiz
🎯 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:
- 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)
- Salve o arquivo como:
Atividade_01_1_SeuNome - 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:
- 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)
- Salve o arquivo como:
Atividade_01_2_SeuNome - 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:
- Demonstrar os comandos
gcc -E,gcc -Segcc -cgerando arquivos intermediários (.i, .s, .o).
Resultado Esperado
Arquivos intermediários gerados e inspecionados com sucesso.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_01_3_SeuNome - 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:
- Criar Makefile com alvos
all,debug,sanitizeecleanpara compilação segura.
Resultado Esperado
Makefile executado com AddressSanitizer ativado para detecção de vazamentos.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_01_4_SeuNome - 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 |