Buscar

Exercícios Ponteiros Funcoes Matrizes Strings

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Exercícios de aula sobre Vetores, Matrizes, Strings, Ponteiros e Funções 
 
 
1. Na sequência de instruções abaixo: 
 float f; 
 float *pf; 
 pf = &f; 
 scanf("%f", pf); 
a) Efetuamos a leitura de f 
b) Não efetuamos a leitura de f 
c) Temos um erro de sintaxe 
d) Deveríamos estar usando &pf no scanf 
2. Na expressão abaixo, o que é do tipo float? 
float* pf; 
a) a variável pf; 
b) o endereço de pf; 
c) o conteúdo do endereço que será apontado por pf; 
e) nenhuma das anteriores. 
3. Pelas seguintes declarações, 
 int *x, *y, a; 
 float *p, b; 
Determine quais das seguintes sentenças são válidas: 
a) y = &a; 
b) y = &b; 
c) y = a; 
d) y = b; 
e) p = &a; 
f) p = &b; 
g) p = a; 
h) p = b; 
i) x = y; 
j) x = p; 
k) y = x; 
l) y = p; 
4. Preencha a memória a seguir com os dados apropriados, como determinados pelas declarações e instruções abaixo. 
Note que alguns valores já foram previamente armazenados na memória. 
 int *p, *q, *r, *z, *t, *y; 
 int k, m, c, b, f, a; 
p = &m; 
q = &c; 
*z = 5; 
t = z; 
k = *r + *t; 
*y = f; 
*q = *r; 
 
 
 
 
 
5. Seja a seguinte sequência de instruções em um programa C: 
int *pti; 
int v[6]={12,5,4,6,3,6}; 
pti = v; 
Assinale com V ou F 
( ) pti[5] é igual a v[5] 
( ) *pti é igual a 12 
 ( ) (*pti) + 4 é igual a 3 
( ) pti[1]+1 é igual a 6 
( ) *(pti + 2) é igual a v[2] 
( ) *(pti) + 1 é igual a *(pti + 1) 
( ) *v é igual a 12 
 
6. Simule a execução do programa abaixo destacando o que aparecerá na tela. 
#include <stdio.h> 
int F1 (int, int); 
void F2 (int, int, float *); 
main() 
{ 
 int a = 2, b = 6, c; 
 float d; 
 c = F1(a, b); 
 printf("O valor de c eh: %d \n", c); 
 F2(a + 1, b + 1, &d); 
 printf("O valor de d eh: %f\n", d); 
} 
int F1 (int k, int m) 
{ 
 printf("O valor de k eh: %d \n", k); 
 printf("O valor de m eh: %d \n", m); 
 if(k > m) 
 return 1; 
10500 
10504 
10508 
10512 
10516 
10520 
10524 
10528 
10532 
10536 
10540 
10544 
 
10536 
10524 
46 
p 
q 
z 
r 
t 
y 
a 
m 
c 
f 
b 
k 
10540 
 else 
 return 0; 
} 
void F2 (int a, int b, float *d) 
{ 
 if (a > b) 
 *d = a/2.0; 
 else 
 *d = b/2.0; 
} 
 
7. Escreva um programa que contenha uma função que receba uma matriz 3x3 e um número y e calcule o produto escalar 
de y pela própria matriz. A função deve alterar a matriz original. 
8. Escreva uma função para corrigir provas de múltipla escolha de 10 questões. A função deve receber como parâmetro o 
gabarito da prova – um vetor de 10 caracteres – e as respostas do aluno – também um vetor de 10 caracteres. Retornar 
a quantidade de acertos do aluno. 
9. A amplitude de uma sequência é a diferença entre o maior e o menor valor da sequência. Escreva um programa para ler 
uma sequência de números reais, armazenar em um vetor e calcular a amplitude. Estruturar nas seguintes funções: 
 le_array: ler os números 
 menor: determina o menor valor e retorna esse valor 
 maior: determina o maior valor e retorna esse valor 
 amplitude: recebe o maior e o menor valores e retorna a diferença 
10. Escreva uma função C que receba como parâmetro o ângulo que uma linha faz com o eixo positivo X e determina e 
retorna o quadrante que essa linha reside. A determinação do quadrante é dada através da seguinte tabela: 
Ângulo com o eixo positivo X Quadrante 
Entre 0 e 90 graus 1 
Entre 90 e 180 graus 2 
Entre 180 e 270 graus 3 
Entre 270 e 360 graus 4 
Se o ângulo for exatamente 0, 90, 180, ou 270 graus, a linha correspondente não reside em nenhum quadrante mas 
fica em cima de um eixo. Para esta situação, sua função deve retornar 0. Um ângulo fora do intervalo entre 0 e 360 
deve resultar no retorno do valor –1. A função principal deve imprimir o valor retornado. 
11. Escrever um programa que leia um caractere digitado pelo usuário e uma string. O programa deve mostrar na tela: 
 a primeira posição onde aparece o caractere digitado, e 
 quantos caracteres a string possui após a primeira posição onde aparece o caractere digitado. 
Se o caractere não aparecer na string, imprimir -1. 
12. Escreva um programa que leia um vetor de caracteres, retire os espaços em branco entre as palavras (caso existam), 
construa uma nova string (sem os espaços em branco) e imprima na tela esta nova string. 
13. Escreva um programa que leia o nome completo de um aluno, e em seguida construa uma nova string com o primeiro 
nome do aluno e todos os seus sobrenomes abreviados. Imprimir esta nova string. 
Exemplo: 
 Entrada: Mario Vargas LLosa 
 Saída: Mario V. L. 
14. Escreva um programa que leia uma matriz de inteiros A quadrada de ordem 10, e chame uma função que calcule a sua 
transposta AT. A função principal deve imprimir a matriz original e sua transposta. 
Exemplo para matriz de ordem 4: 













16151413
1211109
8765
4321
A
 
AT 












1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16 
15. Dada uma sequência de n números reais, escrever um programa que determine os números que compõem a sequência 
e a frequência de tais números na sequência dada. 
Exemplo: n = 10 
Seqüência: 3.2 8.1 2.5 3.2 7.4 8.1 3.2 6.3 7.4 3.2 
 
Saída: 
 Num Freq 
 3.2 4 
 8.1 2 
 2.5 1 
 7.4 2 
 6.3 1

Outros materiais