Buscar

Terceira Lista de Exercícios

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

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
Você viu 3, do total de 3 páginas

Prévia do material em texto

Estudo Comparativo de Linguagens de Programação (2013)
Lista 3 - Linguagem C: vetores e manipulação de strings
 Ler N números inteiros e armazenar esses números em um vetor. Em cada um dos incisos a seguir fazer um programa e/ou função para:
Imprimir os números armazenados no vetor.
Imprimir os números armazenados nas posições pares.
Imprimir os números pares armazenados no vetor.
Ler um número e imprimir se o número está ou não armazenado no vetor.
Ler um número. Se o número está armazenado no vetor, imprimir as posições onde foi achado (pode ter mais de uma ocorrência do número).
Somar todos os números positivos armazenados nos vetor. 
Ler um número inteiro p e um número n. Armazenar o número n na componente p do vetor. 
Imprimir o vetor original e o modificado. Considerar erros no valor de p.
Criar um novo vetor que tem armazenado o valor absoluto dos valores armazenados no vetor. Imprimir os dois vetores. 
Assim, por exemplo, se o vetor tem armazenados os valores
	-56
	7.3
	9
	-45
	-3.78
	0
	6
 
O novo vetor terá armazenados os valores 
	56
	7.3
	9
	45
	3.78
	0
	6
Criar um novo vetor que tem armazenado os números negativos armazenados no vetor. Imprimir os dois vetores.
	-56
	-45
	-3.78
Assim, por exemplo, com o vetor do inciso anterior, o novo terá armazenados os valores:
 
 Observar que o novo vetor não necessariamente tem a mesma quantidade de elementos!!!!
Resolver pelo menos 4 dos incisos do exercício anterior usando aritmética de apontadores.
Um vetor que tem armazenado em cada componente um digito de 0 a 9 pode ser considerado como um número inteiro positivo, portanto faz sentido determinar se esse numero armazenado no vetor é ou não um palíndromo. Faça um programa que leia um vetor desse tipo e imprima uma mensagem caso o vetor armazenado seja ou não seja um palíndromo.
Exemplo se o vetor tem armazenados os dígitos 2 3 9 5 9 3 2, deve ser informado que esse vetor tem armazenado um palíndromo.
Transformar o código do exercício anterior em uma função que recebe um vetor e devolve um valor inteiro, 1 se é palíndromo e 0 caso contrário.
Ler 10 valores inteiros positivos. Armazenar esses elementos num vetor e fazer um histograma que represente os valores armazenados. 
Exemplo:
	Elemento/indice 	Valor 	Histograma
 0 		19 		*******************
 1 		3 		***
 2 		15 		***************
 3 		7 		*******
 4 		11 		***********
 5 		9 		*********
 6 		13 		*************
 7 		 5 		*****
 8 		17 		*****************
 9 		1 		*
Achar a expressão de apontadores que corresponde a:
array[0] 
array[1] 
array[i+2] 
array[x] 
dadas as seguintes declarações
int array[10], i,x;
int * a = &array;
 *a
 ii) *(a+x)
 iii) *(a+2)
 iv) a[1]
 Que faz este código? Justificar a resposta.
int main()
{
char strA[80] = "String exemplo";
char strB[80]=”012345678901234567890”;
char *pA; 
char *pB; 
pA = strA; 
printf(“String a: %s\n”,pA);
pB = strB; 
printf(“String b inicial: %s\n”, pB);
while(*pA != '\0') 
{
 	*pB++ = *pA++; 
printf(“String b parcial: %s\n”,pB);
}
*pB = '\0'
printf(“String b final: %s\n”, pB);
return 0;
}
Fazer um programa para criptografar uma string trocando as vogais por * e as letras l, m e n por #. Utilizar o comando switch na resolução do problema.
Por exemplo, se a string lida é Hoje tem aula de Algoritmos II, a string criptografada é
H*j* t*# **#* d* *#g*r*t#*s **.
Ler uma string e imprimir quantas vezes aparece cada uma das letras do alfabeto nessa string.
Ler duas strings. Imprimir a menor string lida. Por exemplo, a string a#a3*$ir é menor que a string b134 (a comparação é feita como no dicionário, menor segundo a ordem dos caracteres da string). Resolver o problema sem usar as funções da biblioteca string.
Fazer uma função em C que recebe uma cadeia de caracteres (string) e devolve a cadeia ordenada alfabeticamente. Exemplo: se a entrada é ajkumez o resultado será aejkmuz.
Definir a função swap que troca o conteúdo de duas posições de memória.
void swap( __ , __ ); // protótipo da função que troca o conteúdo de duas
 // posições de memória
int main()
{
  int a, z;
  printf("Digite o primeiro numero:\n");
  scanf("%d", &a);
  printf("digite o Segundo numero\n");
  scanf("%d", &z);
  printf("Os numeros digitados: %d e %d\n", a, z);
  swap(___, ___);
  printf("Os numeros depois da troca: %d e %d\n", a, z);
}
Escrever uma função C que receve um vetor de números e devolve a quantidade de números negativos e positivos armazenados no vetor.
 
Que imprime o programa? 
#include<stdio.h> 
#include<stdlib.h> 
void misterio ( int cont )
int main()
{
 misterio ( 0 ); 
 system("PAUSE");
 return 0;
}
void misterio ( int cont )
{
 if ( cont < 5 ) 
 { printf("Valor do parametro antes da chamada = %d \n", cont);
 misterio( cont + 1 );
 printf("Valor do parametro depois da chamada = %d \n", cont);
 }
}

Outros materiais