Buscar

AlgIII G1 2017 2Gabarito

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

Universidade Luterana do Brasil Tipo de atividade: 
 
Prova ( X ) Trabalho ( ) ULBRA – Campus Canoas 
Avaliação: G1 ( X ) G2 ( ) Pró-Reitoria de Graduação 
 
 
 
 
 
 
 
Cursos de Computação Disciplina: Algoritmos e Programação III Data: 27/09/2017 
 
 
 
Turma: 0649 Professor(a): Edemar C. Oliveira Valor da Avaliação: 
 
 
 
 
Acadêmico(a) : Nota: 
 
 
Questão 1 ( 0,6 pontos) Considere o programa: 
int main (){ 
 
 int x,y, *p1, *p2; 
 p1= &x; 
 p2=p1; 
 *p2=5; 
 *p2=*p2+x; 
 p2=&y; 
 *p2=6; 
 *p2=*p2+1; 
 printf("%d %d",*p1,*p2); 
 getch(); 
} 
 
A ordem mostrada na saída será: 
A-( ) 10 e 6 B-( ) 8 e 6 
C-( ) 8 e 10 D-(X ) 10 e 7 
E-( ) 10 e 8 
 
Questão 2 (0,6 pontos) São afirmações 
corretas sobre bibliotecas .h : 
I. Só podemos usar o nome do header entre 
aspas se ele estiver na mesma pasta que 
seu código-fonte 
II. As bibliotecas de C são diferentes das 
bibliotecas de C++ 
III. São arquivos externos que comportam uma 
coleção de funções 
IV. Possuem funções que são os comandos que 
você utiliza ao programar. 
V. Todas 
 
A-( ) I, II e III 
B-( ) I, II e IV 
C-( ) II, III e IV 
D-( ) I, III e IV 
E-( X ) Todas 
 
 
 
 
 
 
Questão 3 (1 ponto) Considerando o programa abaixo: 
long int calcula(int x, int y) 
{ 
 if (y == 1) 
 return(x); 
 else 
 return(x + calcula(x, y-1)); 
} 
 
int main() 
{ 
 printf("\n %d \n",calcula(5,7)); 
 system("pause"); 
} 
Quantas chamadas serão executadas à função 
calcula(int x, int y) e qual o valor retornado? 
 
A-( ) 6 e 35 B-( ) 6 e 25 
C-( ) 5 e 35 D-( ) 7 e 25 
E-( X ) 7 e 35 
 
Questão 4 (1 pontos) 
Faça um algoritmo RECURSIVO que calcula o resto 
da divisão de dois números, através da sucessiva 
subtração ao 1º número do valor do 2º número. 
 
 
Aula 4 – exercício /exemplo II 
 
 
int res(int x, int y) 
{ 
 if (x < y) 
return(x); 
 return( res(x - y, y) ); 
} 
Avaliação e valor: AAv I - 30/08 (1,0) AAv II - 13/09 (1,5) - Avaliação G1 27/09 (7,5) 
 
Questão 5 ( 3 pontos) Complete as 
informações de acordo com material sobre 
arquivos: 
 
a) (1,2 ) Modo de abertura = forma como 
arquivo será acessado 
 
w+: para leitura e gravação (cria novo arquivo ou 
sobrepõe se já existir) 
 
w: Para escrita (cria novo arquivo ou sobrepõe se 
arquivo já existir) 
 
r: Para leitura (arquivo deve existir) 
 
r+: para leitura e gravação (arquivo deve existir) 
 
a+: para leitura ou escrita no fim do arquivo, e se 
não existir 
 
a: para escrita no final do arquivo, e se não existir 
cria novo arquivo 
 
b) (1,2) 
Comando para escrita em modo binário:_fwrite 
 
Comando para escrita em modo texto: fprintf 
 
Comando para leitura em modo texto: fscanf 
 
Comando para leitura em modo binário: fread 
 
 
c) (0,6) Porque deve ser utilizada uma variável 
do tipo ponteiro para associar ao arquivo? 
Porque o arquivo externo é acessado pelo 
seu endereço de memória física. 
 
 
 
 
 
 
 
Questão 6 (1,3 pontos) Faça um algoritmo 
que: 
 
Declara um vetor de 10 posições de inteiros e 
depois lê valores para este vetor. 
 
Na sequência, passa o vetor por referência a uma 
função que mostra os valores do vetor que 
estiverem entre 0 e 10. 
 
void mostra(int *dados) 
{ 
 for (int i=0; i <=10;i++) 
 if (dados[i] > 0 and dados[i] < 10) 
 printf("\%d ", dados[i]); 
} 
int main() 
{ 
 int vetor[10]; 
 for (int i=0; i<10;i++) 
 scanf("%d",&vetor[i]); 
 
 mostra (vetor); 
 
 system("PAUSE"); 
}

Outros materiais