EXERCÍCIOS
EXERCÍCIOS
1.
1. Faça Faça uma uma função função chamadachamada
sucessor( int n )
sucessor( int n )
que receba um inteiro e retorne seuque receba um inteiro e retorne seu sucessor (o próximo inteiro na sequencia).sucessor (o próximo inteiro na sequencia). 2.
2. Faça Faça uma uma função função chamadachamada
primo( int n )
primo( int n )
que retorna 1 se o n for primo. Zero casoque retorna 1 se o n for primo. Zero caso contrário.contrário. 3.
3. Usando a função criada na Usando a função criada na questão 2, proponha um procedimento chamadoquestão 2, proponha um procedimento chamado
imprimePrimos (int n)
imprimePrimos (int n)
que imprima todos os primos de 2 até n. que imprima todos os primos de 2 até n. 4.4. Faça Faça uma uma função função chamadachamada
quadrado (float f)
quadrado (float f)
que retorne o quadrado de f. que retorne o quadrado de f. 5.5. Faça Faça um um procedimento procedimento chamadochamado
imprime (int n)
imprime (int n)
que recebe um inteiro n e imprime que recebe um inteiro n e imprime todos os números de 1 até n. Lembre-se que o procedimento não retorna valor, todos os números de 1 até n. Lembre-se que o procedimento não retorna valor, devendo ser definido como void.devendo ser definido como void. 6.
6. Proponha Proponha uma uma função função chamadachamada
inicializa()
inicializa()
que receba um vetor de inteiros, seuque receba um vetor de inteiros, seu tamanho, e coloque zero em todas as posições do vetor.tamanho, e coloque zero em todas as posições do vetor. 7.
7. Proponha Proponha uma uma função função chamadachamada
tamanho()
tamanho()
que receba uma string e retorne seuque receba uma string e retorne seu tamanho.tamanho. 8.
8. Proponha Proponha uma uma função função chamadachamada
maiuscula()
maiuscula()
que receba um caractere e retorne seu que receba um caractere e retorne seu correspondente maiúsculo. Para conhecimento, a=97 e A=65.correspondente maiúsculo. Para conhecimento, a=97 e A=65. 9.
9. Usando a Usando a função da questão função da questão 8, crie uma 8, crie uma função que receba função que receba uma string e uma string e coloque todoscoloque todos os seus caracteres em maiúsculo. A função deve se chamar
os seus caracteres em maiúsculo. A função deve se chamar
frase_maiuscula()
frase_maiuscula()
.. 10. Faça uma função chamada10. Faça uma função chamada
inverte()
inverte()
que recebe um vetor de inteiros (e seu tamanho) 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 e coloca os elementos do vetor em ordem inversa (o primeiro elemento passa a ser o último e assim sucessivamente).último e assim sucessivamente).
RECURSÃO
RECURSÃO
11.
11. Faça uma função que imprima o fatorial de Faça uma função que imprima o fatorial de n.n.
RESPOSTA:
RESPOSTA:
int fatorial ( int n ) int fatorial ( int n ) {
{
if (n == 1) return 1; if (n == 1) return 1;
else return n * fat (n-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 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 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 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 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 condição de parada, onde ela não mais se chama. Caso contrário, teremos loop infinito.
infinito.
13. Faça uma função recursiva que imprima o alfabeto na tela. A cada chamada a função 13. Faça uma função recursiva que imprima o alfabeto na tela. A cada chamada a função
deve imprimir um único caractere. deve imprimir um único caractere.
PONTEIROS
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();