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