Baixe o app para aproveitar ainda mais
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");}
Compartilhar