1. Introdução
- Título da Página: Linguagem de Programação C – Aula 3
- Autor: Carlos Fernandes
- E-mail para contato: carlos.fernandes@afogados.ifpe.edu.br
- Objetivo da Aula: Apresentar a estrutura básica de um programa em C, suas palavras reservadas, inserção de comentários, funcionamento do pré-processador, compilador e linker, além dos tipos básicos de dados.
2. Estrutura Básica de um Programa em C
-
Seções de um programa em C:
- Inclusão de bibliotecas (se necessário).
- Declaração de constantes (se necessário).
- Programa principal (
main
). - Declaração de variáveis (se necessário).
- Sequência de comandos.
-
Exemplo de código básico em C:
#include <stdio.h>
int main(void) {
int num, c;
printf("Cubo de um número\n\n");
printf("Digite o número: ");
scanf("%d", &num);
c = num * num * num;
printf("\nCubo de %d = %d\n", num, c);
return 0;
}
- Explicação do código:
- Inclusão da biblioteca
stdio.h
. - Declaração das variáveis
num
ec
. - Uso de
printf()
para exibir mensagens na tela. - Uso de
scanf()
para capturar a entrada do usuário. - Cálculo do cubo do número inserido (
num * num * num
). - Impressão do resultado.
- Retorno
0
para indicar execução bem-sucedida.
- Inclusão da biblioteca
3. Palavras Reservadas em C
- As palavras reservadas são definidas pelo American National Standards Institute (ANSI).
- Exemplos:
auto, break, case, char, const, switch, volatile, continue, default, do, double, else, typedef, while, enum, extern, float, for, goto, union, if, int, long, register, unsigned, return, short, signed, sizeof, static, struct, void
- Essas palavras não podem ser usadas como identificadores de variáveis ou funções.
4. Comentários no Código
- Facilitam o entendimento e manutenção do código.
- São ignorados pelo compilador.
- Tipos de Comentários:
- Comentário de Linha:
// Este é um comentário de linha
- Comentário de Bloco:
/* Este é um comentário de bloco Ele pode ocupar várias linhas */
- Comentário de Linha:
5. Fundamentos da Compilação em C
-
O ciclo de desenvolvimento em C envolve quatro etapas principais:
- Edição: O programador escreve o código-fonte (.c).
- Pré-processamento: O pré-processador analisa o código e expande diretivas (
#include
,#define
). - Compilação: O compilador traduz o código C para código objeto.
- Linkagem: O linker conecta o código objeto com bibliotecas necessárias, gerando o executável.
-
Fluxo do Processo de Compilação:
Código-fonte (.c) → Pré-processador → Compilador → Código objeto (.o) → Linker → Executável
6. Tipos Básicos de Dados em C
-
Inteiros:
Tipo Tamanho Faixa de Valores short 16 bits -32.768 a +32.767 int 32 bits -2.147.483.648 a +2.147.483.647 long 64 bits -9.223.372.036.854.775.808 a +9.223.372.036.854.775.807 -
Reais (Ponto Flutuante):
Tipo Tamanho Faixa de Valores float 32 bits 3.4E-38 a 3.4E+38 double 64 bits 1.7E-308 a 1.7E+308 -
Caracteres:
char (8 bits)
-
Tipo
void
:void // Representa ausência de valor
7. Exercícios de Fixação
-
Perguntas para reforçar o aprendizado:
- Quais são os componentes básicos de um programa em C?
- Qual é o nome da função principal em um programa C?
- Como inserir comentários em um código C?
- Quais são as etapas da compilação de um código C?
- Quais são os tipos básicos de dados em C e seus respectivos tamanhos e faixas de valores?
-
Exemplo prático:
#include <stdio.h> int main() { int num1, num2; printf("Digite dois números inteiros: "); scanf("%d %d", &num1, &num2); if (num1 > num2) { printf("%d é maior que %d\n", num1, num2); } else if (num2 > num1) { printf("%d é maior que %d\n", num2, num1); } else { printf("Os números são iguais\n"); } return 0; }
- Objetivo do código: Comparar dois números e exibir qual é o maior.
Código em C com Comentários
#include <stdio.h> // Inclui a biblioteca padrão de entrada e saída, necessária para usar printf() e scanf()
int main() { // Define a função principal do programa, onde a execução começa
int num1, num2; // Declara duas variáveis inteiras para armazenar os números digitados pelo usuário
printf("Digite dois números inteiros: "); // Exibe uma mensagem pedindo ao usuário para inserir dois números
scanf("%d %d", &num1, &num2); // Lê dois números inteiros digitados pelo usuário e armazena em num1 e num2
// Estrutura condicional para comparar os dois números
if (num1 > num2) {
// Se num1 for maior que num2, imprime que num1 é maior
printf("%d é maior que %d\n", num1, num2);
}
else if (num2 > num1) {
// Se num2 for maior que num1, imprime que num2 é maior
printf("%d é maior que %d\n", num2, num1);
}
else {
// Se nenhum dos casos acima for verdadeiro (ou seja, os números são iguais), imprime que são iguais
printf("Os números são iguais\n");
}
return 0; // Retorna 0 para indicar que o programa foi executado com sucesso
}
Explicação Passo a Passo
-
Inclusão da Biblioteca (
#include <stdio.h>
)- Necessária para usar funções de entrada e saída, como
printf()
escanf()
.
- Necessária para usar funções de entrada e saída, como
-
Declaração da Função Principal (
int main()
)- Todo programa em C começa pela função
main()
.
- Todo programa em C começa pela função
-
Declaração das Variáveis (
int num1, num2;
)num1
enum2
são inteiros usados para armazenar os valores fornecidos pelo usuário.
-
Exibição da Mensagem (
printf("Digite dois números inteiros: ");
)- Pede ao usuário para inserir dois números.
-
Leitura dos Números (
scanf("%d %d", &num1, &num2);
)- O
scanf()
captura dois valores inteiros e os armazena emnum1
enum2
.
- O
-
Comparação dos Números (
if (num1 > num2)
)- Se
num1
for maior quenum2
, imprime quenum1
é o maior.
- Se
-
Segunda Condição (
else if (num2 > num1)
)- Se
num2
for maior quenum1
, imprime quenum2
é o maior.
- Se
-
Caso os Números Sejam Iguais (
else
)- Se nenhuma das condições anteriores for verdadeira, imprime que os números são iguais.
-
Finalização (
return 0;
)- Indica que o programa foi executado corretamente.
Fluxograma do código

Explicação breve sobre o comando if
.
O comando if
em C é uma estrutura de controle condicional que permite executar um bloco de código apenas se uma determinada condição for verdadeira (veremos em detalhes mais adiante). Ele segue a seguinte sintaxe básica:
if (condição) {
// Bloco de código executado se a condição for verdadeira
}
Caso seja necessário tratar diferentes possibilidades, podem ser utilizados else if
e else
:
if (condição1) {
// Executa se condição1 for verdadeira
} else if (condição2) {
// Executa se condição1 for falsa e condição2 for verdadeira
} else {
// Executa se todas as condições anteriores forem falsas
}
Exemplo de Uso
#include <stdio.h>
int main() {
int num = 10;
if (num > 0) {
printf("O número é positivo.\n");
} else if (num < 0) {
printf("O número é negativo.\n");
} else {
printf("O número é zero.\n");
}
return 0;
}
Saída no console:
O número é positivo.
O if
também pode usar operadores lógicos (&&
, ||
, !
, que serão vistos mais adiante) para combinar múltiplas condições. É uma estrutura essencial para a tomada de decisões na programação em C.
Exemplo de Execução
Entrada do Usuário
Digite dois números inteiros: 10 20
Saída do Programa
20 é maior que 10
Entrada do Usuário
Digite dois números inteiros: 15 15
Saída do Programa
Os números são iguais
Outro exemplo prático
Aqui está um programa em C que converte um valor de Fahrenheit para Celsius, com o valor a ser convertido definido diretamente no código.
Código em C
#include <stdio.h>
int main() {
// Definição do valor em Fahrenheit
float fahrenheit = 98.6; // Valor a ser convertido (exemplo: temperatura corporal normal)
// Conversão para Celsius usando a fórmula
float celsius = (fahrenheit - 32) * 5.0 / 9.0;
// Exibição do resultado
printf("%.2f Fahrenheit equivale a %.2f Celsius\n", fahrenheit, celsius);
return 0;
}
Explicação do Código
-
Inclusão da Biblioteca (
#include <stdio.h>
)- Necessária para usar
printf()
e exibir resultados na tela.
- Necessária para usar
-
Declaração da Função Principal (
int main()
)- Onde o programa inicia sua execução.
-
Declaração da Variável
fahrenheit
- Definição fixa de um valor em Fahrenheit. No exemplo,
98.6°F
representa a temperatura corporal normal.
- Definição fixa de um valor em Fahrenheit. No exemplo,
-
Cálculo da Conversão para Celsius
- Utiliza a fórmula:
-
- O resultado é armazenado na variável
celsius
.
- O resultado é armazenado na variável
-
Impressão do Resultado
- O
printf()
exibe o resultado com duas casas decimais para melhor precisão.
- O
-
Retorno
0
- Indica que o programa foi executado corretamente.
Exemplo de Saída
98.60 Fahrenheit equivale a 37.00 Celsius
8. Recursos Complementares
-
Livros Recomendados:
- “A Linguagem de Programação C” – Brian W. Kernighan & Dennis M. Ritchie.
- “C: Como Programar” – Paul Deitel & Harvey Deitel.
- “The C Programming Language” – Kernighan & Ritchie.
-
Cursos Online:
-
Compiladores Online:
Respostas dos Exercícios de Fixação
1. Quais são os componentes básicos de um programa em C?
Um programa em C possui cinco componentes principais:
1.1. Inclusão de Bibliotecas (#include
)
Permite importar funções prontas, como printf()
e scanf()
, contidas em bibliotecas.
#include <stdio.h> // Biblioteca padrão de entrada e saída
1.2. Declaração de Constantes (#define
)
Define valores fixos que não podem ser alterados.
#define PI 3.14159
1.3. Função Principal (main()
)
Ponto de entrada da execução do programa.
int main() {
return 0;
}
1.4. Declaração de Variáveis
Armazena dados temporários usados pelo programa.
int idade = 25;
float altura = 1.75;
char inicial = 'A';
1.5. Sequência de Comandos
Blocos de código que executam ações.
printf("Olá, mundo!\n");
Referências
2. Qual é o nome da função principal em um programa C?
A função principal de um programa em C é main()
.
Exemplo
#include <stdio.h>
int main() { // Função principal do programa
printf("Programa em execução.\n");
return 0; // Indica execução bem-sucedida
}
- O programa SEMPRE começa executando a função
main()
. - O retorno
0
indica ao sistema operacional que o programa terminou corretamente.
Referências
3. Como inserir comentários em um código C?
Os comentários ajudam a documentar o código, tornando-o mais compreensível.
Tipos de Comentários em C
3.1. Comentário de Linha (//
)
// Este é um comentário de linha
printf("Olá, mundo!\n"); // Comentário no final da linha
3.2. Comentário de Bloco (/* ... */
)
/*
Este é um comentário de bloco.
Ele pode ocupar várias linhas.
*/
printf("Executando o programa.\n");
- Comentários são ignorados pelo compilador.
- Não afetam o funcionamento do programa.
Referências
4. Quais são as etapas da compilação de um código em C?
O processo de compilação em C é dividido em quatro etapas:
4.1. Edição (Escrita do Código)
O programador escreve o código-fonte (.c
).
#include <stdio.h>
int main() {
printf("Compilação em andamento...\n");
return 0;
}
4.2. Pré-processamento (#include
, #define
)
Expande diretivas de pré-processador antes da compilação.
4.3. Compilação (Código Objeto .o
)
Transforma o código-fonte em código objeto.
gcc programa.c -o programa
4.4. Linkagem (Criação do Executável)
Conecta o código objeto com bibliotecas para gerar um arquivo executável.
Fluxo da compilação:
Código-fonte (.c) → Pré-processador → Compilador → Código Objeto (.o) → Linker → Executável
Referências
5. Quais são os tipos básicos de dados em C e seus respectivos tamanhos e faixas de valores?
A tabela abaixo mostra os principais tipos de dados em C com seus tamanhos e faixas de valores:
Tipo | Tamanho | Faixa de Valores |
Inteiros | ||
short |
16 bits | -32.768 a 32.767 |
int |
32 bits | -2.147.483.648 a 2.147.483.647 |
long |
64 bits | -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 |
Ponto Flutuante | ||
float |
32 bits | 3.4E-38 a 3.4E+38 |
double |
64 bits | 1.7E-308 a 1.7E+308 |
Caractere | ||
char |
8 bits | 0 a 255 (ASCII) |
Void | ||
void |
Nenhum | Representa ausência de valor |
Exemplo de Uso de Tipos de Dados
#include <stdio.h>
int main() {
int inteiro = 100;
float decimal = 5.75;
char letra = 'A';
printf("Inteiro: %d\n", inteiro);
printf("Float: %.2f\n", decimal);
printf("Char: %c\n", letra);
return 0;
}
Saída:
Inteiro: 100
Float: 5.75
Char: A
Referências
Para quem quer mais.
Fim da aula 03