Você está na página 1de 9

Programa de Monitoria em Algoritmos

Guia de Referência Linguagem C

Aluno: Frederico Portilho

Orientador: Hilton Cardoso Marins Junior

Juiz de Fora

2013
Guia de referência Linguagem C

1. Tipos de dados
int: tipo numérico, armazena valores inteiros. Utilizamos quando o dado armazenado não
apresenta casas decimais.

float, double : Ponto flutuante, armazena numeros com valores decimais. Utilizamos quando é
importante guardar a parte decimal do número.

char: Armazena um caractere.

Segue abaixo os demais tipos pré-definidos da linguagem C:

Formato para Intervalo


Tipo Num de bits
scanf e printf Inicio Fim
Char 8 %c -128 127
unsigned char 8 %c 0 255
signed char 8 %c -128 127
Int 16 %d -32.768 32.767
unsigned int 16 %u 0 65.535
signed int 16 %i -32.768 32.767
short int 16 %hi -32.768 32.767
unsigned short int 16 %hu 0 65.535
signed short int 16 %hi -32.768 32.767
long int 32 %li -2.147.483.648 2.147.483.647
signed long int 32 %li -2.147.483.648 2.147.483.647
unsigned long int 32 %lu 0 4.294.967.295
Float 32 %f 3,4E-38 3.4E+38
Double 64 %lf 1,7E-308 1,7E+308
long double 80 %Lf 3,4E-4932 3,4E+4932

2
Guia de referência Linguagem C

2. Operadores
2.1 Operadores matematicos:

Operador Descrição
= Atribuição
+ Soma
- Subtração
/ Divisão
% Modulo (obtém o resto da divisão)

2.2 Operadores Relacionais:

Operador Descrição
> Maior
>= Maior igual
< Menor
<= Menor igual
== Igualdade
!= Diferente

2.3 Operadores Lógicos:.

&& E
situação resultado
10<20 && 20>10 Verdadeiro
10<20 && 10>20 Falso
10>20 && 20>10 Falso
10>20 && 20<10 Falso

|| OU
situação Resultado
10<20 || 20>10 Verdadeiro
10<20 || 10>20 Verdadeiro
10>20 || 20>10 Verdadeiro
10>20 || 20<10 Falso

3
Guia de referência Linguagem C

3. Comandos Entrada e Saída


3.1 Saída

Ex1: Escreve soma dos números na tela


printf(“Soma do números: ”);

Ex2: Escreve o valor da variável soma na tela


printf(“%d”,soma);

Ex3: Escreve o valor da variável números na tela e o valor da variável números


printf(“Soma do números: %d”,soma);

3.2 Entrada

scanf(“codigoDoTipo” , &variavel);

Ex: lê um inteiro x digitado pelo usuário


scanf(“%d”, &x);

4. Estruturas Seleção

4.1 If - Else
if (condição){

blocoDeInstruções 1

}else {

blocoDeInstruções 2

4
Guia de referência Linguagem C

Exemplo 1: Recebe um valor do usuário em uma variável num.

Após isso é feita a seleção: Se esse valor for maior do que 10, num recebe 10.
printf(“Digite um numero: (máximo 10)”);

scanf(“%d” , num);

if(num >10){

num = 10;

Exemplo 2: Positivo recebe 1 se n maior ou igual a 0, se n menor que 0 positivo


recebe 0
if(n>=0){

positivo = 1;

}else{

positivo = 0;

4.2 SWITCH
switch (expressão do tipo char ou int) {
case caso1:
blocoDeInstruções 1
break;
case caso2:
blocoDeInstruções 2
break;
case caso3:
blocoDeInstruções 3
break;
...
default:
blocoDeInstruções Default
break;
}

5
Guia de referência Linguagem C

Ex: Le um numero e diz se é 9, 10 ou 11, ou nenhum dos 3


printf ("Digite um numero: ");
scanf ("%d",&num);
switch (num)
{
case 9:
printf ("\n\nO numero e igual a 9.\n");
break;
case 10:
printf ("\n\nO numero e igual a 10.\n");
break;
case 11:
printf ("\n\nO numero e igual a 11.\n");
break;
default:
printf ("\n\nO numero nao e nem 9 nem 10 nem 11.\n");
}
}

5. Estruturas Repetição
5.1 For(Para)
for(inicialização ; condição ; incremento){

blocoInstrução;

Ex: Para cada iteração (repetição) escreve o valor que x representa


int x;
for (x=1; x<=100; x++){
printf(“%d”,x) ;
}

5.2 While(Enquanto)
while(expressão){

blocoInstrução;

6
Guia de referência Linguagem C

Ex:pede números ao usuário, até que a soma de todos os números digitados, for pelo menos
20

int total = 0, num;

while( total < 20 ) {


printf( "Total = %d\n", total );

printf( "Entre com um numero: " );


scanf( "%d", &num );

total = total + num;


}

5.3 Do while(Faça Enquanto)


do{

blocoInstrução;

}while(expressão);

Ex: A estrutura do while termina após a entrada de um numero par


main( ){

int num;

printf( "Entre com um numero par:\n" );

do{
scanf( "%d", &num );
}while( num % 2 != 0 );

printf( "Obrigado.\n" );
}

7
Guia de referência Linguagem C

6. Struct
struct Nomedesuastruct
{
tipos nome_dos_tipos;
};

Ex: uma struct de nome tipoFuncionario para representar os dados dos


funcionários e a variável gerente do tipo “tipoFuncionario”.

struct tipoFuncionario
{
int idade;
char[30] nome;
float salario;
};

Struct tipoFuncionario gerente;

7. SUJEIRA NO BUFFER DO TECLADO

Execute o programa abaixo e observe as saídas produzidas.

main(){

char letra1, letra2;

printf("Insira um caractere: ");


scanf("%c",&letra1);

printf("Insira outro caractere: ");


scanf("%c",&letra2);

printf("Você digitou: '%c' e '%c'", letra1, letra2);


}

Você percebeu que não conseguiu informar o segundo caractere, não foi? O programa
continuou o fluxo de execução sem estabelecer uma pausa para a entrada de dados referente
ao segundo caractere (comando scanf da linha 9). Vamos aprender uma forma de evitar isso,
mas primeiro entenderemos o que aconteceu.

Quando digitamos um dado de entrada, ele não é enviado diretamente para a variável. O dado
é enviado para um espaço de memória chamado buffer de teclado. Isso explica o porquê de
ser possível apagar os caracteres com a tecla BACKSPACE. Os dados só são realmente
guardados na variável pretendida, quando você pressiona a tecla ENTER, pois essa tecla indica
ao scanf que terminamos o ato de entrada de dados.

8
Guia de referência Linguagem C

O que acontece basicamente no primeiro scanf (linha 6) é:


1. Você digita um caractere e pressiona ENTER;
2. Como só precisamos armazenar um caractere na variável, o caractere é armazenado
na variável e o ENTER permanece no buffer de entrada;

Já o segundo scanf (linha 9):


1. Como o buffer de entrada não está vazio (tem o ENTER lá), ele lê aquele ENTER, e
como ENTER serve para terminar a entrada de dados pelo teclado, o scanf prossegue.

Há uma solução simples para esse problema, basta usar o scanset * no scanf. Tal operador diz
para o scanf ignorar qualquer coisa, por exemplo:

scanf("%c%*c",&carater);

No código acima o scanf irá ler um primeiro caractere e depois vai suprimir o seguinte (que
normalmente é o ENTER), quer dizer que tal caractere não será armazenado no buffer de
entrada.

Você também pode gostar