Você está na página 1de 3

INSTITUTO FEDERAL DE EDUCAO CINCIA E TECNOLOGIA DE ALAGOAS

BACHARELADO EM SISTEMAS DE INFORMAO


DISCIPLINA: ALGORITMOS E LGICA DE PROGRAMAO
PROFESSOR: REINALDO GOMES
ASSUNTO: APONTADORES E FUNES

LISTA N 4
1. Faa uma funo que receba um nmero inteiro e verifique se ele primo ou no. A funo
deve retornar verdadeiro ou falso. Um nmero primo se ele divisvel apenas por 1 ou por
ele mesmo. O prottipo da funo dado por:
int primo (int num);
2. Faa uma funo em C que receba um vetor com nomes de alunos, e outro vetor com suas
respectivas m-edias finais. Essa funo deve exibir o nome e a mdia do alino que obteve
melhor desempenho. Considere que os dois vetores possuem o mesmo tamanho. A funo
deve obedecer ao seguint prottipo:
void melhores(char *alunos[], float media[]);
3. Escreva um programa em C que leia 10 valores (inteiros) do usurio e armazene-os em um
vetor. Ap a leitura dos dados, este vetor deve ser repassado para uma funo que imprimir
o ndice e o valor do ndice.
4. Desenvolva uma funo em C quereceba uma strinf representando uma data no formato
"dd/mm/aaa" e extraia o dia, mes e ano como valores inteiro. Fique livre para definir o
prottipo da funo. Apenas para efeito de um melhor entendimento.
5. Faa um programa em C que informa a diferena de horas/minutos entre dois horrios. Para
isso, voc dever criar duas funes que serviro de apoio contruo do programa, de
acordo com os prottipos seguintes:
/* Devolve o total de minutos de uma hora completa*/
int totalMinutos(int hora, int minutos);
/* Devolve um inteiro representando a hora. O parmetro restMin (passagem por referncia),
devolver a quantidade de minutos da diferena*/
int minutosParaHora(int quantMinutos, int *restoMin);
6. Dadas as seguintes declaraes e atribuies:
static int ar[] = {10, 15, 4, 25, 3, -4};
int *p;
p = &ar[2];
Quais os resultados das avaliaes das seguintes expresses:
a) *(p + 1);
b) p[4];
c) ar[*p++];
1

7. Escreva uma funo char *getMonth(int ms) que recebe o nmero equivalente ao ms e
devolve um ponteiro para a string correspondente. Lembre-se: Se voc declara as strings
dentro da funo, elas sero locais a ela e no estaro disponveis aps o trmino da
execuo da mesma. Lembra-se do conceito de varivel local esttica? Utilize para
implementar a funo.
8. Para o programa abaixo, informe que valor vai ser impresso para x, y e *p.
int main() {
int y, *p, x;
y = 0;
p = &y;
x = *p;
x = 4;
(*p)++;
x--;
(*p) += x;
y = (*p)+ 10;
printf ("y = %d\n", y);
printf ("x = %d\n", x);
printf ("(*p) = %d\n", *p);
return(0);
}

9. O que vai ser impresso no programa abaixo:


#include<stdio.h>
#include<conio.h>
void main(void) {
int x[3]= {10,20,30};
int *pt;
clrscr();
pt = x;
pt++;
printf("\n%d ", *(--pt));
printf("\n%d ", *pt);
pt = &x[0];
printf("\n%d ", *(pt++));
printf("\n%d ", *pt);
}
10. Um palndromo uma string que soletrada da mesma forma direta ou inversa. Exemplo:
radar, socorram - marrocos. Defina e implemente uma funo em C que verifique se duas
strings (informadas pelo usurio) um caso de palndromo ou no.
2

11. Escreva uma funo em C que copie uma subconjunto(substring) de uma string em outra.
Ser necessrio fornecer o ndice inicial e a quantidade de caracteres considerada aps a
posio inicial. Observe o exemplo abaixo para ver como funciona.
char frase[] = "No subestime a sua capacidade";
char parte[15];
substring(parte, frase, 0, 9);
puts(frase);
Observe que a palavra "subestime" tem inicio no ndice 4 da string frase. Portando, para
recuperar toda a palavra, eu devo recuperar 9 caracteres a partir da posio 4!
O prottipo definido por: