Buscar

Lista.02.Testes.de.Mesa

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 13 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

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 6, do total de 13 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

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 9, do total de 13 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

Prévia do material em texto

Exercícios - Questões Objetivas 
 
Apresentação 05 - Subrotinas 
 
1. Analise os procedimentos a seguir e marque qual está declarado CORRETAMENTE: 
 
a) 
imprimeMenor (inteiro a, inteiro b) 
{ 
 se (a < b) 
 imprima (a); 
 senão 
 imprima (b); 
} 
b) 
imprimeMenor (inteiro a, inteiro b) 
{ 
 se (a < b) 
 retorne (a); 
 senão 
 retorne (b); 
} 
c) 
imprimeMenor (a, b) 
{ 
 se (a < b) 
 imprima (a); 
 senão 
 imprima (b); 
} 
d) 
imprimeMenor (inteiro x, inteiro y) 
{ 
 se (a < b) 
 imprima (a); 
 senão 
 imprima (b); 
} 
e) 
imprimeMenor (inteiro a, inteiro b) 
{ 
 inteiro a, b; 
 se (a < b) 
 imprima (a); 
 senão 
 imprima (b); 
} 
 
 
2. Qual fragmento de código chama o procedimento do exercício anterior corretamente? 
 
a) 
inteiro a, b; 
leia (a, b); 
imprimeMenor (inteiro a, inteiro b); 
b) 
inteiro a, b; 
leia (a, b); 
imprimeMenor (a, b); 
c) 
inteiro a, b; 
imprimeMenor (leia (a), leia (b)); 
d) 
imprimeMenor (inteiro x, inteiro y); 
e) 
inteiro a, b, menor; 
leia (a, b); 
menor  imprimeMenor (a, b); 
 
3. Considere o algoritmo a seguir e marque qual será sua saída se as entradas forem 3.14 e 1.54, 
respectivamente. 
 
lerDados (real x, real y) 
{ 
 leia (x); 
 leia (y); 
} 
 
principal 
{ 
 real x, y; 
 x  0.00; 
 y  2.34; 
 lerDados (x, y); 
 imprima (“x é: ” x “e y é “y); 
} 
 
a) x é -3.14 e y é 3.88 
b) x é 3.14 e y é 2.34 
c) x é 3.14 e y é 1.54 
d) x é 0.00 e y é 2.34 
e) x é 3.14 e y é -1.54 
 
4. Assinale a saída do algoritmo a seguir, considerando 7 como entrada. 
 
inteiro função (inteiro x) 
{ 
 inteiro i, aux; 
 aux  1; 
 para (i  1; i < x; i  i + 1) faça 
 { 
 aux  aux*i; 
 } 
 retorne (aux); 
} 
 
principal 
{ 
 inteiro num, aux; 
 leia (num); 
 aux  função (num); 
 imprima (“Resultado é: “aux); 
} 
 
a) Resultado é: 7 
b) Resultado é: 5040 
c) Resultado é: 120 
d) Resultado é: 720 
e) Resultado é: 21 
 
5. Qual a saída do algoritmo em C a seguir? 
 
void calculo (int *a, int *b) 
{ 
 *a = *a * 2; 
 *b = *b + 5; 
} 
 
int main() 
{ 
 int x = 2, y = 12; 
calculo(&x, &y); 
 printf("%d e %d", x, y); 
return 0; 
} 
 
a) 2 e 12 
b) 12 e 2 
c) 17 e 4 
d) 17 e 5 
e) 4 e 17 
 
6. Analise o procedimento e sua chamada: 
 
void media (float nota1, float nota2, float nota3, char opcao) 
{ 
 float media; 
 if (opcao == ‟A‟) 
 media=((nota1+nota2+nota3)/3); 
 if (opcao == ‟P‟) 
 media=((nota1*5+nota2*3+nota3*2)/10); 
 printf("Media = %.2f \n",media); 
} 
media (60, 80.6, x, y); 
 
Sabendo que a saída foi 80.10, os valores de x e y são, respectivamente: 
 
a) 99 e P 
b) 99.7 e A 
c) 99.70 e S 
d) 84.7 e P 
e) 99.7832 e A 
 
7. Considerando que uma pessoa tem ICM (índice de massa corporal) 27.8, de acordo com o procedimento 
a seguir, ela é: 
 
void classifica (float IMC) 
 { 
 if (IMC < 18,5) 
 printf ("A seguir do peso. \n"); 
 else 
 if (IMC <= 25) 
 printf ("Peso normal. \n"); 
 else 
 if (IMC <= 30) 
 printf("Acima do Peso. \n"); 
 else 
 printf("Obeso. \n"); 
} 
 
a) Obeso 
b) A seguir do Peso 
c) Acima do Peso 
d) Saudavel 
e) Peso normal 
 
8. Observe atentamente o algoritmo a seguir e indique a linha onde está o erro: 
 
1. #include <stdio.h> 
2. #include <stdlib.h> 
 
3. float calculaMedia (float n1, float n2, float m) 
4. { 
5. *m = (n1+n2)/2; 
6. return *m; 
7. } 
 
8. int main() 
9. { 
10. float nota1, nota2, media; 
11. 
12. printf ("Digite nota 1: "); 
13. scanf ("%f", &nota1); 
14. printf ("Digite nota 2: "); 
15. scanf ("%f", &nota2); 
16. 
17. media = calculaMedia(nota2, nota1, &media); 
18. printf("Media e': %.2f", media); 
19. 
20. return 0; 
21. } 
 
a) Linha 3 
b) Linha 17 
c) Linha 18 
d) Linha 6 
e) Linha 5 
 
9. Uma pessoa tem 21 anos, 5 meses e 20 dias de idade, isso equivale a quantas semanas de idade de 
acordo coma função? 
 
inteiro idadeEmSemanas (inteiro ANOS, inteiro MESES, inteiro DIAS) 
{ 
 inteiro TOTAL; 
 TOTAL  ANOS*365+MESES*30+DIAS; 
 TOTAL  (TOTAL div 7); 
 retorne (TOTAL); 
} 
 
a) 7835 semanas 
b) 1305 semanas 
c) 1119.28 semanas 
d) 119 semanas 
e) 1119 semanas 
 
10. Considerando o algoritmo em C a seguir e, primeiro, as entradas 2, 10 e 5, e em segundo as entradas 9, 3 
e 6, marque a alternativa que representas as saídas do algoritmo. Considere as entradas respectivas. 
 
#include <stdio.h> 
#include <stdlib.h> 
 
int funcaoXYZ (int X, int Y, int *Z) 
{ 
 int i; 
 if (X > Y && Y > *Z) 
 { 
 *Z = X * Y; 
 } 
 else 
 { 
 if (Y > *Z && *Z > X) 
 Y = X + *Z; 
 else 
 { 
 if (*Z > X && *Z > Y) 
 { 
 for (i=0; i < 3; i++) 
 { 
 X++; 
 *Z = *Z - 1; 
 } 
 } 
 else 
 { 
 for (i=0; i < 4; i++) 
 { 
 Y--; 
 Z++; 
 } 
 } 
 } 
 } 
 
 if (*Z%2 == 0) 
 X*=2; 
 else 
 Y+=13; 
 
 return (X + Y + *Z); 
} 
 
int main() 
{ 
 int A, B, C; 
 
printf ("Digite valor de A: "); 
 scanf ("%d", &A); 
 printf ("Digite valor de B: "); 
 scanf ("%i", &B); 
 printf ("Digite valor de C: "); 
 scanf ("%i", &C); 
 
 printf("Valor de Retorno e': %d", funcaoXYZ(A, C, &B)); 
 printf("\nValores de A, B e C sao: %d, %d e %d", A, B, C); 
 
 return 0; 
} 
 
a) Valor de Retorno é: 30 
Valores de A, B e C sao: 2, 10 e 5 
Valor de Retorno é: 78 
Valores de A, B e C sao: 9, 3 e 6 
 
b) Valor de Retorno é: 35 
Valores de A, B e C sao: 2, 7 e 5 
Valor de Retorno é: 75 
Valores de A, B e C sao: 9, 54 e 6 
 
c) Valor de Retorno é: 30 
Valores de A, B e C sao: 2, 7 e 5 
Valor de Retorno é: 30 
Valores de A, B e C sao: 2, 7 e 5 
 
d) Valor de Retorno é: 30 
Valores de A, B e C sao: 2, 7 e 5 
Valor de Retorno é: 78 
Valores de A, B e C sao: 9, 54 e 6 
 
e) Valor de Retorno é: 45 
Valores de A, B e C sao: 2, 10 e 5 
Valor de Retorno é: 78 
Valores de A, B e C sao: 2, 54 e 5 
 
Apresentação 06 - Vetores 
1. Observando os fragmentos de código, são maneiras de se declarar um vetor, EXCETO: 
 
a) 
inteiro notas [10]; 
b) 
int x; 
scanf (“%d”, &x); 
int vetor [x]; 
c) 
float vet [50]; 
d) 
#define TAM 30 
 
int main() 
{ 
 int números [TAM]; 
e) 
principal 
{ 
 constanteinteiro H  15; 
 real s[H]; 
 
 
2. Considerando os fragmentos de código a seguir, todos representam o mesmo vetor de 5 posições, onde 
todas elas tem o valor 0 (zero). Aumentando o tamanho do vetor para 20, qual maneira de inicializar o 
vetor começa a se tornar a mais inviável para um programador? 
 
a) 
int vet[5], i; 
for (i=0; i<5; i++) 
 vet[i] = 0; 
b) 
int vet[5] = {0, 0, 0, 0, 0}; 
c) 
int vet[5]; 
vet[0] = 0; 
vet[1] = 0; 
vet[2] = 0; 
vet[3] = 0; 
vet[4] = 0; 
d) 
int vet[5] = {0}; 
e) 
int vet[5], i; 
while (i < 5) 
{ 
 vet[i] = 0; 
 i = i + 1; 
} 
 
3. Considerando o vetor a seguir, qual será o valor de vet[0], vet[1], vet[7], vet[5] evet[10], respectivamente: 
 
2 6 1 9 32 78 1 67 0 23 
 
a) 2, 6, 67, 78 e não existe. 
b) Não existe, 2, 1, 32 e 23. 
c) Não existe, 6, 67, 78 e não existe. 
d) 2, 6, 67, 78 e 23. 
e) 2, 6, 78, 67 e não existe. 
 
4. Quais serão as saídas do fragmento de código em C a seguir: 
 
Int vet[10] = {10,12,9,5,7,4,3,2,13,11}; 
int i; 
for (i = 0; i < 9; i++) 
{ 
 if(vet[i]+vet[i+1] > 10) 
 printf("%d ",vet[i]); 
} 
 
a) 10 12 9 5 7 2 13 11 
b) 10 12 9 7 13 11 
c) 10 12 9 7 13 
d) 10 12 9 3 2 13 
e) 10 12 9 5 7 2 13 
 
5. Quais serão as saídas do fragmento de código a seguir: 
 
inteiro vet[10], i; 
para (i  0; i ≤ 9; i  i + 1) faça 
{ 
 n[i]  i; 
} 
para (i  0; i ≤ 9; i  i + 1) faça 
{ 
 n[i]  (n[i] * i) + 1; 
imprima(n[i]); 
} 
 
a) 1 2 5 10 17 26 37 50 65 
b) 1 1 4 9 16 25 36 49 64 81 
c) 0 1 4 9 16 25 36 49 64 81 
d) 0 2 5 10 17 26 37 50 65 82 
e) 1 2 5 10 17 26 37 50 65 82 
 
6. Quais será a saída do fragmento de código em C a seguir. 
 
int vet[10] = {9,12,9,5,13,4,3,1,13,14}; 
int i; 
for (i = 0; i < 9; i++) 
 if (vet[i] > vet[i+1]) 
 printf ("%d, ",i+1); 
 
a) 9, 5, 4, 1, 
b) 2, 3, 5, 6, 7 
c) 1, 2, 4, 5, 6 
d) 2, 3, 5, 6, 7, 8 
e) 9, 5, 4, 1 
 
7. Observe o algoritmo em C a seguir, qual a condição que deve ser colocada no lugar de “????????” para 
que a ordenação do vetor fique correta para qualquer entrada. 
 
#include <stdio.h> 
#include <stdlib.h> 
 
#define tamanho 10 
 
void ordena (int vet[], int tam) 
{ 
 int i,j,aux; 
 
 for(??????????????) 
 { 
 for(j=tam-1; j>i; j--) 
 { 
 if(vet[j]<vet[j-1]) 
 { 
 aux=vet[j]; 
 vet[j]= vet[j-1]; 
 vet[j-1]=aux; 
 } 
 } 
 } 
} 
 
int main() 
{ 
 int vetor[tamanho],i; 
 printf("Informe %d valores para seu vetor: ",tamanho); 
 for(i=0;i<tamanho;i++) 
 scanf("%d",&vetor[i]); 
 printf("O vetor ordenado e':\n"); 
 ordena(vetor,tamanho); 
 for(i=0;i<tamanho;i++) 
 printf("%d ", vetor[i]); 
 
 return 0; 
} 
 
a) (i=0; i <= (tam-2); i++) 
b) (i=0; i <= (tam); i++) 
c) (i=0; i <= (tam-1); i++) 
d) (i=tam; i <= (-2); i--) 
e) (i=(tam-5); i <= (tam-2); i++) 
 
 
Apresentação 07 - Vetores de Caracteres 
 
1. São maneiras corretas de inicializar um vetor de caracteres, EXCETO: 
 
a) 
char str[5] = {„c‟,‟a‟,‟s‟,‟a‟,‟s‟}; 
b) 
char str[5] = “casa”; 
c) 
caracter nome[30]; 
nome  “Jose”; 
d) 
caracter cidade[30]; 
leia (cidade); 
e) 
char str[50]; 
scanf (“%s”, str); 
 
2. Observe os fragmentos de código a seguir e julgue-os como C (correto) ou I (incorreto). 
 
char palavra[ ] = “algoritmo”; 
char palavra[ ]; 
palavra[ ] = “algoritmo”; 
char palavra[20]; 
palavra = “algoritmo” 
 
a) C – C – C 
b) C – I – C 
c) C – I – I 
d) I – C – I 
e) I – I – I 
 
3. A linguagem de programação C possui uma biblioteca para trabalhar com strings (ou vetores de 
caracteres), dentre algumas funções dessa biblioteca temos, gets(), puts() e strlen(). O que cada uma 
dessas funções faz, respectivamente? 
 
a) Imprime a string, lê a string e retorna o tamanho da string. 
b) Lê a string, imprime a string e retorna o tamanho da string. 
c) Lê a string, imprime a string e copia uma string para outra. 
d) Apaga a string, imprime a string e lê a string. 
e) Imprime a string, apaga a string, e lê a string. 
 
4. Qual será a saída do algoritmo a seguir? 
 
principal 
{ 
 inteiro i  8; 
 caracter frase[30]; 
 frase  “Estamos_ciente_da_materia”; 
 enquanto ( i <= 17 ) faça 
 { 
 imprima (frase[i]); 
 i  i + 1; 
 } 
} 
 
a) Estamos_ciente_da_materia 
b) ciente_da_materia 
c) Estamos_ciente_da 
d) ciente_da_ 
e) mos_ciente_da_mat 
 
5. Qual será a saída do algoritmo em C a seguir? 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
 
int contc(char str[], char c) 
{ 
 int tam,i,cont=0; 
 tam=strlen(str); 
 for(i=0;i<tam;i++) 
 { 
 if (str[i]==c) cont++; 
} 
 return cont; 
} 
 
int main() 
{ 
 char texto[ ] = "Estamos Aqui Para Acompanhar Voce"; 
int x; 
 x = 0; 
 x = contc (texto, 'a'); 
 printf("%d",x); 
 return 0; 
} 
 
a) 0 
b) 7 
c) 6 
d) 3 
e) 5 
 
6. Analise o algoritmo em C a seguir, e marque qual será a saída. Dica: procure informações sobre a 
biblioteca <ctype.h>. 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <ctype.h> 
 
void stringup(char destino[], char origem[]) 
{ 
 int tamanho,i; 
 tamanho=strlen(origem); 
 for(i=0;i<tamanho;i++) 
 { 
 destino[i]=toupper(origem[i]); 
 } 
 destino[i]='\0'; 
} 
 
int main() 
{ 
 char s1[20],s2[20]="QuaLqueR.. Coisa?"; 
stringup(s1,s2); 
 printf("%s",s1); 
 return 0; 
} 
 
a) qualquer.. coisa? 
b) Qualquer.. coisa? 
c) qUAlQUEr.. cOISA? 
d) QuaLqueR!! Coisa. 
e) QUALQUER..COISA? 
 
7. O algoritmo em C a seguir foi criado para ler uma string e um tamanho, com isso ele copia todos os 
caracteres da string lida até o tamanho lido para uma segunda string, em seguida, como saída, mostra o 
que foi copiado. Porém, temos um problema, o algoritmo não está funcionando corretamente. Analise o 
algoritmo e marque a linha em que ele está ERRADO 
 
1. #include <stdio.h> 
2. #include <stdlib.h> 
3. 
4. void copiaAte(char destino[], char origem[], int num) 
5. { 
6. int i; 
7. 
8. for(i=0;(i<num)||(origem[i]!='\0');i++) 
9. { 
10. destino[i]=origem[i]; 
11. } 
12. 
13. destino[i]='\0'; 
14. } 
15. 
16. int main( ) 
17. { 
18. char s1[80], s2[80]; 
19. int d; 
20. printf ("Digite uma frase:\n"); 
21. gets (s1); 
22. printf ("Quantos digitos quer copiar?\n"); 
23. scanf ("%d", &d); 
24. copiaAte (s2, s1, d); 
25. printf("\nCopiou: "); 
26. puts(s2); 
27. return 0; 
28. } 
 
a) Linha 4 
b) Linha 8 
c) Linha 10 
d) Linha 24 
e) Linha 21 
Gabarito 
 
Apresentação 05 - Subrotinas: 
1. A 
2. B 
3. C 
4. D 
5. E 
6. B 
7. C 
8. A 
9. E 
10. D 
Apresentação 06 - Vetores Numéricos: 
1. B 
2. C 
3. A 
4. E 
5. E 
6. B 
7. A 
Apresentação 07 - Vetores de Caracteres: 
1. E 
2. B 
3. B 
4. D 
5. E 
6. E 
7. B

Outros materiais