Crie Seu Primeiro Programa C no LabEx

CBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como escrever e executar seu primeiro programa C na VM do LabEx. Você começará com um simples programa "Hello, World!", depois aprimorará a saída com múltiplas instruções de impressão, personalizará a saída usando variáveis, explorará a manipulação de strings em C e, finalmente, aprenderá como compilar e depurar programas C.

Escreva e Execute Seu Primeiro Programa C

Nesta etapa, você escreverá e executará seu primeiro programa C na VM do LabEx. Nós o guiaremos na criação de um simples programa "Hello, World!" que o apresentará à estrutura básica da programação em C.

Abra o WebIDE

  1. Clique na aba "WebIDE" (Padrão) na interface do LabEx para abrir o ambiente semelhante ao VS Code.
  2. No explorador de arquivos da barra lateral esquerda, clique com o botão direito e selecione "Novo Arquivo".
  3. Nomeie o arquivo como hello.c. A extensão .c indica que este é um arquivo de código fonte C.

Captura de tela da interface do WebIDE

Se você quiser saber mais sobre o WebIDE, consulte o Guia do WebIDE.

Escreva Seu Primeiro Programa C

Copie e cole o seguinte código em seu arquivo hello.c:

#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    return 0;
}

Vamos analisar este código:

  • #include <stdio.h>: Inclui a biblioteca padrão de entrada/saída
  • int main() { ... }: A função principal onde a execução do programa começa
  • printf("Hello, World!\n");: Imprime texto na tela
  • \n: Move para uma nova linha após a impressão
  • return 0;: Indica a conclusão bem-sucedida do programa

Compile e Execute o Programa

Abra o terminal em seu WebIDE e execute estes comandos:

gcc hello.c -o hello
./hello

Terminal executando o programa C

Exemplo de saída:

Hello, World!

Explicação dos Comandos

  • gcc hello.c -o hello: Compila o código fonte C em um executável chamado hello
  • ./hello: Executa o programa compilado

Melhore a Saída com Múltiplas Instruções Printf

Nesta etapa, você aprenderá como aprimorar seu programa C adicionando múltiplas instruções de impressão. Isso o ajudará a entender como exibir uma saída mais complexa e usar várias linhas de texto em seus programas.

Modifique Seu Programa Existente

  1. Abra o arquivo hello.c no WebIDE que você criou na etapa anterior.
  2. Substitua o conteúdo do arquivo pelo seguinte código:
#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    printf("Welcome to C programming!\n");
    printf("This is your first multi-line program.\n");
    return 0;
}

Explicação do Código

  • Adicionamos mais duas instruções printf
  • Cada printf termina com \n para criar uma nova linha
  • Ponto e vírgula (;) marca o fim de cada instrução

Compile e Execute o Programa Atualizado

Abra o terminal em seu WebIDE e execute estes comandos:

gcc hello.c -o hello
./hello

Exemplo de saída:

Hello, World!
Welcome to C programming!
This is your first multi-line program.

Observações Chave

  • Cada instrução printf imprime em uma linha separada
  • O \n garante quebras de linha entre as saídas
  • Você pode adicionar quantas instruções printf forem necessárias

Dicas de Solução de Problemas:

  • Certifique-se de que cada linha termine com \n
  • Verifique se cada instrução printf termina com ponto e vírgula
  • Verifique se você salvou o arquivo antes de compilar

Personalize a Saída Usando Variáveis

Nesta etapa, você aprenderá como usar variáveis em C para criar uma saída mais dinâmica e personalizada. As variáveis permitem que você armazene e manipule dados dentro do seu programa.

Crie um Novo Programa C com Variáveis

  1. Abra o WebIDE e crie um novo arquivo chamado greeting.c. Ou, você pode digitar touch greeting.c no terminal para criar o arquivo.
  2. Insira o seguinte código no arquivo greeting.c:
#include <stdio.h>

int main() {
    char name[] = "LabEx";
    printf("Hello, %s!\n", name);
    printf("Welcome to C programming, %s!\n", name);
    return 0;
}

Explicação do Código

  • char name[] = "LabEx";: Cria uma variável de array de caracteres (string) chamada name
  • %s é um especificador de formato que diz ao printf para inserir uma string
  • , name após a string de formato especifica qual variável inserir

Compile e Execute o Programa

Abra o terminal em seu WebIDE e execute estes comandos:

gcc greeting.c -o greeting
./greeting

Exemplo de saída:

Hello, LabEx!
Welcome to C programming, LabEx!

Experimentando com Variáveis

Tente alterar a variável name para o seu próprio nome:

char name[] = "Your Name";

Recompile e execute o programa para ver a saída personalizada.

Dicas de Solução de Problemas:

  • Certifique-se de que a variável esteja definida antes de usá-la em printf
  • Verifique se você salvou o arquivo antes de compilar
  • Verifique se o nome da variável está escrito corretamente

Explore a Manipulação de Strings em C

Nesta etapa, você aprenderá técnicas básicas de manipulação de strings em C, incluindo concatenação de strings e o uso de funções relacionadas a strings da biblioteca padrão.

Crie um Programa de Manipulação de Strings

  1. Abra o WebIDE e crie um novo arquivo chamado strings.c.
  2. Insira o seguinte código:
#include <stdio.h>
#include <string.h>

int main() {
    char first_name[] = "Lab";
    char last_name[] = "Ex";
    char full_name[20];

    // Concatenate strings
    strcpy(full_name, first_name);
    strcat(full_name, " ");
    strcat(full_name, last_name);

    // Print string length and concatenated name
    printf("First name length: %lu\n", strlen(first_name));
    printf("Last name length: %lu\n", strlen(last_name));
    printf("Full name: %s\n", full_name);

    return 0;
}

Explicação do Código

  • #include <string.h>: Inclui funções de manipulação de strings
  • strcpy(): Copia uma string para outra
  • strcat(): Concatena (une) duas strings
  • strlen(): Retorna o comprimento de uma string
  • %lu: Especificador de formato para unsigned long (usado com o comprimento da string)

Compile e Execute o Programa

Abra o terminal em seu WebIDE e execute estes comandos:

gcc strings.c -o strings
./strings

Exemplo de saída:

First name length: 3
Last name length: 2
Full name: Lab Ex

Técnicas de Manipulação de Strings

Principais operações de string demonstradas:

  • Criação de arrays de caracteres
  • Cópia de strings com strcpy()
  • Junção de strings com strcat()
  • Encontrar o comprimento da string com strlen()

Dicas de Solução de Problemas:

  • Certifique-se de ter espaço suficiente na string de destino
  • Sempre inclua <string.h> para funções de string
  • Tenha cuidado com os tamanhos dos buffers de string para evitar estouro (overflow)

Compilar e Depurar Programas C

Nesta etapa, você aprenderá técnicas essenciais de compilação e depuração para programas C, incluindo a compreensão de avisos do compilador, o uso de flags de compilação e estratégias básicas de depuração.

Crie um Programa com Erros Intencionais

  1. Abra o WebIDE e crie um novo arquivo chamado debug.c.
  2. Insira o seguinte código com alguns erros intencionais:
#include <stdio.h>

int main() {
    int x = 10;
    int y = 0;

    // Intentional division by zero
    int result = x / y;

    printf("Result: %d\n", result);

    // Unused variable
    int z = 5;

    return 0;
}

Compile com Avisos

Compile o programa com flags de aviso adicionais:

gcc -Wall -Wextra debug.c -o debug

Explicação das Flags de Compilação

  • -Wall: Habilita a maioria das mensagens de aviso
  • -Wextra: Habilita avisos ainda mais detalhados

Exemplo de saída do compilador:

debug.c: In function ‘main’:
debug.c:13:9: warning: unused variable ‘z’ [-Wunused-variable]
   13 |     int z = 5;
      |         ^

Use GDB para Depuração

Compile com símbolos de depuração:

gcc -g debug.c -o debug

Inicie a depuração:

gdb ./debug

Comandos GDB:

  • run: Inicia o programa
  • break main: Define um ponto de interrupção na função main
  • print x: Imprime o valor da variável x
  • next: Executa a próxima linha
  • quit: Sai do GDB
(gdb) run
Starting program: /home/labex/project/debug
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGFPE, Arithmetic exception.
0x0000555555555167 in main () at debug.c:8
8           int result = x / y;
(gdb) print x
$1 = 10
(gdb) break main
Breakpoint 1 at 0x555555555155: file debug.c, line 4.
(gdb) next

Program terminated with signal SIGFPE, Arithmetic exception.
The program no longer exists.
(gdb) quit

GDB mostra um erro de divisão por zero na linha 8. O programa trava devido a uma exceção aritmética.

Corrija o Programa

Modifique debug.c para lidar com a divisão com segurança:

#include <stdio.h>

int main() {
    int x = 10;
    int y = 2;  // Change from 0 to a non-zero value

    if (y != 0) {
        int result = x / y;
        printf("Result: %d\n", result);
    } else {
        printf("Error: Division by zero!\n");
    }

    return 0;
}

Recompile e execute:

gcc -Wall -Wextra debug.c -o debug
./debug

Saída:

Result: 5

Dicas de Solução de Problemas:

  • Sempre compile com -Wall -Wextra
  • Preste atenção aos avisos do compilador
  • Use GDB para cenários de depuração complexos
  • Adicione verificação de erros para possíveis problemas de tempo de execução

Resumo

Neste laboratório, você aprendeu a escrever e executar seu primeiro programa C, aprimorar a saída com múltiplas instruções de impressão, personalizar a saída usando variáveis, explorar a manipulação de strings em C e compilar e depurar programas C. Você adquiriu experiência prática com a estrutura básica da programação C, incluindo a inclusão de bibliotecas, a definição da função main, o uso de printf() para exibir a saída e a compilação e execução do programa. Você também explorou conceitos mais avançados, como o uso de múltiplas instruções de impressão e o trabalho com variáveis e strings.