Buscar

Lista Programação I - Strings (Gabarito)

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 5 páginas

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

EMB5600 – Programação I 
Lista de exercícios – Gabarito de Strings em C 
 
Gabarito relativo a parte de strings 
 
1 – 
//Programa para mostrar as primeiras quatro letras 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
int main() 
{ 
 int i; 
 char texto[30],imp[4]; 
 printf("Digite o texto:\n"); 
 fgets(texto,30,stdin); 
 for (i=0;i<4;i++){ 
 imp[i]=texto[i]; 
 printf("%c",imp[i]); 
 } 
 return 0; 
} 
 
2- 
//Programa para contar as vogais 
 
#include <string.h> 
#include <stdio.h> 
int main() 
{ 
char frase[200]; 
int tam,i,qtde; 
qtde=0; 
printf("\nDigite uma frase\n"); 
fgets(frase,200,stdin); 
tam=strlen(frase); 
printf("\nTamanho = %d",tam); 
for (i=0;i<tam;i++) 
{ 
 if (frase[i]=='a' || frase[i] =='A' 
 || frase[i]=='e' || frase[i] =='E' 
 || frase[i]=='i' || frase[i] =='I' 
 || frase[i]=='o' || frase[i] =='O' 
 || frase[i]=='u' || frase[i] =='U') 
 { 
 qtde++; 
 } 
} 
printf("\nQuantidade de vogais = %d",qtde); 
getchar(); 
return 0; 
} 
 
3- 
//programa para substituir vogais pelo caractere informado 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
int main() 
{ 
 int j,k,cont=0,n; 
 char texto[100],texton[100],letra; 
 printf("Digite o texto:\n"); 
 fgets(texto,100,stdin); 
 printf("Digite o caractere:\n"); 
 scanf("%c",&letra); 
 n=strlen(texto); 
 for (j=0; j < n; j++){ 
 if ((texto[j]=='a') || (texto[j]=='e') || (texto[j]=='i') || (texto[j]=='o') || (texto[j]=='u') ) 
 {cont++;} 
 } 
 printf("%i\n",cont); 
 strcpy(texton,texto); 
 for (k=0;k < n;k++){ 
 if ((texton[k]=='a') || (texton[k]=='e') || (texton[k]=='i') || (texton[k]=='o') || (texton[k]=='u') 
){ 
 texton[k]=letra; 
 } 
 printf("%c",texton[k]); 
 } 
 return 0; 
} 
 
 
4- 
//programa para verificar se é palindromo 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
int main() 
{ 
 int i,n; 
 char texto[40],inv[40]; 
 printf("Digite o texto:\n"); 
 gets(texto); 
 n=strlen(texto); 
 printf("elementos do texto: %i\n",n); 
 for(i=0; i<=n; i++){ //usar i<= n para pegar toda palavra 
 inv[i]=texto[(n-1)-i]; 
 } 
 if (strcmp(texto,inv) == 0) 
 printf("E palindromo \n"); 
 else 
 printf("Nao e palindromo\n"); 
 return 0; 
} 
5- 
// programa para codificar texto 
 
#include <stdio.h> 
#include <string.h> 
#include <ctype.h> 
int main() 
{ char frase[200], letra; 
 int tam, i; 
 printf("\nDigite uma frase\n"); 
 fgets(frase,200,stdin); 
 tam = strlen(frase); 
 for (i=0;i<tam;i++) 
 { 
 letra = frase[i]; 
 letra=toupper(letra); 
 if ((letra == 'A') || (letra == 'E') 
 || (letra == 'I') || (letra == 'O') || (letra == 'U')) 
 { frase[i] = '*'; 
 } 
 } 
 printf("%s",frase); 
 getchar(); 
 return 0; 
} 
 
Gabarito relativo a parte de ponteiros: 
 
1 – Alguns trechos abaixo, oriundos de programas em C, possuem erros. Encontre-os e 
corrija-os. 
 
a) 
void main() 
{ 
 int a, *p; 
 a = 5; 
 p = a; //p = &a; 
 printf(“Conteúdo de p: %i\n”, p); // printf(“Conteúdo de p: %i\n”, *p) 
} 
b) 
void main() 
{ 
 int x=3; 
 int *p1, *p2; 
 p1 = &x; 
 p2 = p1; 
 printf(“Endereço de x: %i\n”, p2); // printf(“Endereço de x: %p\n”, p2); 
 printf(“Conteúdo de x: %i\n”, p1); //printf(“Conteúdo de x: %i\n”, *p1); 
 
} 
 
 
2 – Qual a saída do programa abaixo, sabendo-se que i ocupa o endereço 3050 na 
memória? 
 
#include <stdio.h> 
#include <stdlib.h> 
main() { 
 int i=5, *p; 
 p = &i; 
 printf("%p %i %i \n", p,*p,*p+2); //3050 5 7 
} 
 
3 – Escreva um programa em C que peça ao usuário para digitar dois valores inteiros. 
Imprima o conteúdo do maior endereço. 
 
#include <stdio.h> 
#include <stdlib.h> 
main() { 
 int a, b, *pa, *pb; 
 printf("Entre com dois numeros inteiros:\n"); 
 scanf("%i %i", &a, &b); 
 pa=&a; 
 pb=&b; 
 printf("Enderecos de a e b:%p %p\n", pa,pb); 
 if (pa>pb){ 
 printf("O conteudo do endereco pa e:%i\n", *pa);} 
 else{ 
 printf("O conteudo do endereco pb e:%i\n", *pb);} 
 
} 
4 - Escreva um programa que peça para o usuário digitar os elementos de uma matriz 
3x3 (números reais). Imprima o endereço de memória de cada elemento no mesmo 
formato da matriz 3x3. 
#include <stdio.h> 
#include <stdlib.h> 
main() { 
 int i, j, *End[3][3]; 
 float M[3][3]; 
 printf("Entre com os numeros reais:\n"); 
 for (i=0;i<3;i++){ 
 for (j=0;j<3;j++){ 
 scanf("%f",&M[i][j]); 
 End[i][j]=&M[i][j]; 
 } 
 } 
 for (i=0;i<3;i++){ 
 for (j=0;j<3;j++){ 
 printf("%i ",End[i][j]); 
 } 
 printf("\n"); 
 } 
} 
5 – Escreva um programa em C que peça para o usuário digitar os elementos de um 
vetor, que contém 5 posições. Imprima os seguintes dados de saída: vetor original, 
endereços das posições de cada elemento e endereços das posições que possuem 
conteúdos pares. 
#include <stdio.h> 
#include <stdlib.h> 
main() { 
 int i, V[5], *E[5]; 
 printf("Digite os numeros inteiros:\n"); 
 for (i=0;i<5;i++){ 
 scanf("%i",&V[i]); 
 E[i]=&V[i]; 
 } 
 for(i=0;i<5;i++){ 
 printf("%i ",V[i]); 
 } 
 printf("\n"); 
 for(i=0;i<5;i++){ 
 printf("%p ",E[i]); 
 } 
 printf("\n"); 
 for(i=0;i<5;i++){ 
 if (V[i]%2==0){ 
 printf("%p ",E[i]);} 
 } 
 printf("\n");}

Continue navegando