Você está na página 1de 4

Linguagem de programao 1 Lista de exerccios - 2

1 Complete: a) Um ponteiro uma varivel que contm como valor o ______________ de outra varvel. b) Os trs valores que podem ser usados para inicializar um vetor so: c) O nico valor inteiro que pode ser atribudo a um vetor ______________ 2 Escreva um comandos em C para as seguintes tarefas: a) Declare um vetor do tipo float chamado nmero com 10 elementos, e inicialize os elementos com 0.0, 1.1, 2.2 .... 9.9 b) Declare um ponteiro pont que aponte para uma varivel do tipo float c) Escreva o cabealho de uma funo chamada exporta que que tenha como parmetro dois ponteiros para float x e y, e, esta funo no retorna um valor. d) Escreva a funo prottipo para funo da letra c. e) Escreva o cabealho de uma funo chamada avalia que retorna um inteiro, e, tenha como parmetro um inteiro x. 3 Encontre o erro nos seguintes seguimentos de programa, assumindo as seguintes declaraes:
int *zPtr; // zPtr referencia o vetor z int *aPtr = 0; void *sPtr = 0; int number; int z[ 5 ] = { 1, 2, 3, 4, 5 }; a) ++zPtr; b) // use ponteiro para pegar o primeiro valor do vetor number = zPtr; c) // Atribua o elemento 2 do vetor (valor 3) a varivel number number = *zPtr[ 2 ]; d) ++z

4 responda as seguintes questes: a) A palavra ___________ usada no cabealho de uma funo para indicar que a funo no retorna um valor, ou para indicar que a funo no possui parmetros. b) Uma varivel que reconhecida apenas na funo onde declarada conhecida como ____________________. c) O ___________ de um identificador a poro ou parte do programa onde este identificador pode ser usado. d) Uma varivel declarada fora de um bloco ou de uma funo uma varivel ___________.

e) Um _____________________ permite que o compilador cheque o nmero, o tipo e a ordem dos parmetros passados para uma funo. f) O comando __________ faz com que a funo seja encerrada imediatamente, e, se um valor informado a funo retorna este valor.

5 Falso ou verdadeiro
O operador * um complemento de &. Ele um operador unrio que retorna o valor da varivel localizada no endereo que o segue. A operao pt = *num; atribui a pt o endereo de memria que contm a varivel num. No possvel atribuir o contedo de um ponteiro para outro. Variveis locais so aquelas que existem fora de qualquer funo em C. O comando void faz com que a funo seja encerrada imediatamente, sem retornar um valor Prottipo de funo so tambm conhecido como assinatura de funo, que so nada mais que declarao de funes. ( ) Falso ( ) Verdadeiro

( ) Falso ( ) Verdadeiro ( ) Falso ( ) Verdadeiro ( ) Falso ( ) Verdadeiro ( ) Falso ( ) Verdadeiro ( ) Falso ( ) Verdadeiro

6 Identifique e corrija os erros do seguimento de programa abaixo a)


int soma( int x, int y ) { int result; result = x + y; }

b)
void product( void ) { int a; int b; int c; int result; printf("entre com 3 inteiros: "; scanf("%d %d %d", &a, &b, &c); result = a * b * c; printf("O resultado %d", result); return result; }

c)
1. void f ( double a); 2. { 3. float a; 4. Printf("%f \n", a); 5. }

7 Corrija os programas abaixo para que eles funcionem corretamente: a) Prg 1


#include <stdio.h> // Quadrado do nmero void sqr(int x); void main(void) { int t=10; printf("%d %d \n", sqr(t), t); system("PAUSE"); } sqr(int x) { x = x+x; return(x); }

b) Prg 2

/* Imprime numeros de um vetor de inteiros*/ #include <stdio.h> void display(int num); void main(void) { int t[10], i; for(i=0; i<10; ++i) t[i]=i; display(t); system("PAUSE"); } void display(int num) { int i; for(i=0; i<10; i++) printf("%d ", num[1]); }

8 o Programa abaixo imprime os nmeros de 1 a 10 e suas respectivas 1, 2, 3 e 4 potncias, altere o programa para que imprima at a quinta potncia.
/* N 1 2 3 . 10 N^2 1 4 9 . 100 N^3 1 8 27 . 1000 N^4 1 16 81 . 10000

*/ #include "stdio.h" #include "stdlib.h" int pwr(int a, int b); void table(int p[4][10]); void show(int p[4][10]); void main(void) { int *p; p = malloc(40*sizeof(int)); if(!p) { printf("falha na solicitacao de memoria\n"); exit(1); } /* aqui, p simplesmente um ponteiro */ table(p); show(p); } /* Constroi a tabela de potencias */ void table(int p[4][10]) /* agora o compilador tem uma matriz para trabalhar */ { register int i, j; for(j=1; j<11; j++) for(i=1; i<5; i++) p[i-1][j-1] = pwr(j, i); } /* Exibe a tabela de potencias inteiras */ void show(int p[4][10]) /* agora o compilador tem uma matriz para trabalhar */ { register int i, j; printf("%10s %10s %10s %10s\n", "N", "N^2", "N^3", "N^4"); for(j=1; j<11; j++) { for(i=1; i<5; i++) printf("%10d ", p[i-1][j-1]); printf("\n"); } } /* Eleva um inteiro a uma potencia especificada. */ pwr(int a, int b) { register int t=1; for(; b; b--) t = t*a; return t; }