Você está na página 1de 6

RESPOSTA 1 O que so ponteiros? Para melhor entendermos o que so os ponteiros, imaginemos a seguinte situao: Voc mora na Rua X.

Voc, como morador mais antigo desta rua, sabe exatamente o endereo de cada um dos moradores desta rua e mais que isso, sabe tambm quem mora em cada endereo. Assim, quando uma pessoa estranha a esta rua passar por voc procurando determinada pessoa, voc poder servir de referncia a este desconhecido, apontando exatamente o local de moradia daquele que o forasteiro est procurando. Muito embora esta situao seja hipottica, ponteiros possuem exatamente esta idia, ou seja, so entes que possuem o poder de armazenar o endereo onde esto localizadas determinadas informaes. Falando em termos de programao, podemos entender um ponteiro como uma varivel que armazena (aponta) um endereo de memria onde est localizado um valor. Para que servem os ponteiros? Os ponteiros so teis em diversas situaes. Podemos citar, por exemplo, a atualizao de valores que so utilizados em vrias partes do software e que, por algum motivo, precisam ser atualizados ao longo da vida til do mesmo. Para solucionar esta situao, basta referenciar-se estes valores em uma funo e aplicar sobre os mesmos operaes que alterem seus valores de forma pertinente e a replicao ocorre automaticamente. RESPOSTA 2 Opo ( B ) RESPOSTA 3 Opo ( A ) RESPOSTA 4 Opo ( D ) RESPOSTA 5

Instruo errada
printf ( %d, *px );

RESPOSTA 6

RESPOSTA 7
#include <stdio.h> int main(void){ int a, b, c, *pa = &a, *pb = &b, *pc = &c, *menor = pa, *maior = pa, *medio = pa; printf("Entre com 3 nmeros, separados por espaos: "); scanf(" %d %d %d", pa, pb, pc); if(*pb > *maior) maior = pb; if(*pc > *maior) maior = pc; if(*pb < *menor) menor = pb; if(*pc < *menor) menor = pc; if(maior != pa && menor != pa) medio = pa; else if(maior != pb && menor != pb) medio = pb; else if(maior != pc && menor != pc) medio = pc; else{ printf("Erro na lgica dos if's. Terminando...\n"); return 1; } printf("Em ordem crescente: %d %d %d\n", *menor, *meio, *maior); printf("Em ordem decrescente: %d %d %d\n", *maior, *meio, *menor); return 0; }

RESPOSTA 8
A primeira linha do programa inclui a biblioteca stdio.h.Esta biblioteca referncia funes 'scanf' e 'printf'. No incio do programa declarada uma funo que retorna um vazil, aps isto declarado a variavel 'x', do tipo inteira. 'scanf' l a varivel x e printf imprime o valor lido. Obs: aps a execuo do programa no ira retorna nenhum valor pois alm da funo retorna um vazio nenhum valor foi solicitado ai usurio.

RESPOSTA 9

int soma2(int a, int b) /* Retorna a soma dos inteiros a e b */ { int resultado; resultado = a+b; return resultado; }

ou de uma forma mais pratica..


int soma2(int a, int b) { return a+b; } /* Retorna a soma dos inteiros a e b */ /* Versao 2 */

RESPOSTA 10

x = 3, y = 4, p apontando para y (*p = 4)

RESPOSTA 11

aVoid main(){ int x,*p; x=100; *p=&x; printf(Valor de x:%d\n,*p); bvoid troca(int *i,int *j){ int *temp; *temp=&i; *i=*j; *j=*temp; } cc) O correto seria: char a[] = "abacate", b[] = "uva"; if (a[0] < b[0]) { printf ("%s vem antes de %s no dicionrio", a, b); } else { printf ("%s vem depois de %s no dicionrio", a, b); }

12 void troca (float *a, float *b) { float temp; temp = *a; *a = *b; *b = temp; } 13 char *caracteres_repetidos(char *s1, char *s2) { int i, j, w, n = 0, encontrado; char *s3; for (i = 0; s1[i] != '\0'; i++) { for (j = 0; s2[j] != '\0'; j++) { if (s1[i] == s2[j]) { n++; break; } } } s3 = malloc((n + 1) * sizeof(char)); n = 0; for (i = 0; s1[i] != '\0'; i++) { for (j = 0; s2[j] != '\0'; j++) { if (s1[i] == s2[j]) { encontrado = 0; for (w = 0; w < n; w++) { if (s3[w] == s1[i]) { encontrado = 1; break; } } if (encontrado == 0) { s3[n] = s1[i]; n++; break; } } } } s3[n] = '\0'; return s3; } 14 #include <stdio.h> #include <stdlib.h> int *acha_caractere(char *str, char c, int *pn) { int i = 0, n = 0, *indices = 0; for (i = 0; str[i] != '\0'; i++) { if (str[i] == c) {

n++; } } indices = (int *) malloc(n* sizeof(int)); for (i = 0, n = 0; str[i] != '\0'; i++) { if (str[i] == c) { indices[n] = i; n++; } } *pn = n; return indices; } int main() { int *indices = 0, n = 0, i; char *frase = "teste"; indices = acha_caractere(frase, 'e', &n); for (i = 0; i < n; i++) { printf("%d ", indices[i]); } return 0; } 15

16 x = -11 y = 11 z = 10 17 no