Vous êtes sur la page 1sur 8

EXERCÍCIOS

1. Faça uma função chamada sucessor( int n ) que receba um inteiro e retorne seu
sucessor (o próximo inteiro na sequencia).

2. Faça uma função chamada primo( int n ) que retorna 1 se o n for primo. Zero caso
contrário.

3. Usando a função criada na questão 2, proponha um procedimento chamado


imprimePrimos (int n) que imprima todos os primos de 2 até n.

4. Faça uma função chamada quadrado (float f) que retorne o quadrado de f.

5. Faça um procedimento chamado imprime (int n) que recebe um inteiro n e imprime


todos os números de 1 até n. Lembre-se que o procedimento não retorna valor,
devendo ser definido como void.

6. Proponha uma função chamada inicializa() que receba um vetor de inteiros, seu
tamanho, e coloque zero em todas as posições do vetor.

7. Proponha uma função chamada tamanho() que receba uma string e retorne seu
tamanho.

8. Proponha uma função chamada maiuscula() que receba um caractere e retorne seu
correspondente maiúsculo. Para conhecimento, a=97 e A=65.

9. Usando a função da questão 8, crie uma função que receba uma string e coloque todos
os seus caracteres em maiúsculo. A função deve se chamar frase_maiuscula().

10. Faça uma função chamada inverte() que recebe um vetor de inteiros (e seu tamanho)
e coloca os elementos do vetor em ordem inversa (o primeiro elemento passa a ser o
último e assim sucessivamente).

RECURSÃO

11. Faça uma função que imprima o fatorial de n.

RESPOSTA:

int fatorial ( int n )


{
if (n == 1) return 1;
else return n * fat (n-1);
}

12. Faça uma função recursiva que imprima os números de 1 até 10. A cada chamada, a
função deve apenas imprimir um único valor. Não use estrutura de repetição. A
repetição será ocasionada pelo fato da função se chamar. Observação: função
recursiva é aquela que chama a si mesma. Toda função recursiva precisa ter uma
condição de parada, onde ela não mais se chama. Caso contrário, teremos loop
infinito.

13. Faça uma função recursiva que imprima o alfabeto na tela. A cada chamada a função
deve imprimir um único caractere.

PONTEIROS
14. Proponha uma função chamada troca (int *x, int *y) que receba duas variáveis inteiras
e realize a troca dos valores entre elas. Atenção pois devem ser passados ponteiros
para as variáveis. A função retorna nulo.

RESPOSTAS

EXERCICIO 1

#include<stdio.h>
#include<conio.h>

int sucessor(int n)
{
return n+1;
}

int main()
{
int x;

scanf("%d",&x);
printf("%d",sucessor(x));

getch();
}

EXERCICIO 2

#include<stdio.h>
#include<conio.h>

int primo(int n)
{
int div,cont=0;

for(div=1;div<=n;div++)
{
if (n%div==0) cont++;
}
if(cont==2) return 1;
return 0;
}

int main()
{
int x,y;

scanf("%d",&x);
y = primo(x);
if(y==1) printf("primo");
else printf("nao primo");

getch();
}
EXERCICIO 3

#include<stdio.h>
#include<conio.h>

int imprimePrimos(int n)
{
int i,div,cont=0;

for(i=2;i<=n;i++)
{
for(div=1;div<=i;div++)
{
if(i%div==0) cont++;
}
if(cont==2) printf("%d\t",i);
cont=0;
}
return 0;
}

int main()
{
int x;

scanf("%d",&x);
imprimePrimos(x);

getch();
}

EXERCICIO 4

#include<stdio.h>
#include<conio.h>

float quadrado(float f)
{
return f*f;
}

int main()
{
float x;

scanf("%f",&x);
printf("%f",quadrado(x));

getch();
}

EXERCICIO 5

#include<stdio.h>
#include<conio.h>
void imprime(int n)
{
int i;

for(i=1;i<=n;i++) printf("%d\t",i);
}

int main()
{
int x;

scanf("%d",&x);
imprime(x);

getch();
}

EXERCICIO 6

#include<stdio.h>
#include<conio.h>

int inicializa(int v[],int n)


{
int i;

for(i=0;i<n;i++) printf("v[%d]=0\t",i);
}

int main()
{
int x[100],i,j;

gets(x);
printf("numero de posicoes: ");
scanf("%d",&i);
inicializa(x[100],i);

getch();
}

EXERCICIO 7

#include<stdio.h>
#include<conio.h>
#include<string.h>

int tamanho(char str[])


{
return strlen(str);
}

int main()
{
char s[100];
gets(s);
printf("%d",tamanho(s));

getch();
}

EXERCICIO 8

#include<stdio.h>
#include<conio.h>

char maiuscula ( char ch)


{
if ( ch>= 'a' && ch<= 'z')
return ch-32;

return ch;
}

int main()
{
char ch;

scanf ("%c", &ch);


printf ("%c", maiuscula(ch));

getch();
}

EXERCICIO 9

#include<stdio.h>
#include<conio.h>
#include<string.h>

char maiuscula ( char ch)


{
if ( ch>= 'a' && ch<= 'z')
return ch-32;

return ch;
}

char frase_maiuscula(char str[])


{
int cont,n;
char ch;

n = strlen(str);
for(cont=0;cont<n;cont++) printf("%c",maiuscula(str[cont]));
return 0;
}

int main()
{
char s[100];
gets(s);
frase_maiuscula(s);

getch();
}

EXERCICIO 10

#include <stdio.h>
#include <conio.h>

void inverte(int v[], int tam)


{
int j, n[tam];

for (j=1;j<=tam;j++) n[j-1] = v[tam-j];


for (j=0;j<tam;j++) printf ("V[%d] = %d\n", j, n[j]);
}
int main ()
{
int tam;
int i;

scanf("%d", &tam);
int v[tam];

for (i=0;i<tam;i++) scanf ("%d", & v[i]);


inverte (v, tam);

getch();
}

EXERCICIO 11

#include<stdio.h>
#include<conio.h>

int fatorial ( int n )


{
int i , fat=1 ;

for ( i=1 ; i<=n ; i++ )


{
fat = fat * i;
}
return fat;
}

int main()
{
int x;

scanf ("%d", &x);


printf("%d", fatorial (x) );

getch();
}
EXERCICIO 12

#include<stdio.h>
#include<conio.h>

int recursiva ( int n )


{
printf ("%d\t", n);
n++;
if ( n <= 10 ) recursiva ( n );
}

int main()
{
int x=1;

recursiva (x);

getch();
}

EXERCICIO 13

#include<stdio.h>
#include<conio.h>

char alfabeto ( char ch )


{
printf ("%c\t",ch);
ch++;
if ( ch <= 'z') alfabeto (ch);
}

int main()
{
char ch='a';

alfabeto (ch);

getch();
}

EXERCICIO 14

int troca ( int *x , int *y )


{
int z;

z = *x;
*x = *y;
*y = z;
return 0;
}

int main()
{
int x,y;

scanf ("%d",&x);
scanf ("%d",&y);
troca ( &x, &y);
printf("%d %d",x,y);

getch();
}

Vous aimerez peut-être aussi