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: 19/04/2017 Turma: 0649 Professor(a): Edemar C. Oliveira Valor da Avaliação: Acadêmico(a) : Nota: Questão 1 ( 0,5 pontos) Considere o programa: int main (){ int x,y, *p1, *p2; p1= &x; p2=p1; *p2=4; *p2=*p2+x; p2=&y; *p2=5; *p2=*p2+1; printf("%d %d",*p1,*p2); getch(); } A ordem da saída será: A-( ) 10 e 6 B-( X ) 8 e 6 C-( ) 6 e 10 D-( ) 6 e 8 E-( ) 10 e 8 Questão 2 (0,5 pontos) 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(2,6)); system("pause"); } Qual o valor retornado por calcula(int x, int y) ? A-( X ) 12 B-( ) 15 C-( ) 13 D-( ) 16 E-( ) 14 Questão 3 (1 ponto) A função abaixo efetua leitura em um arquivo TEXTO que contém, a cada linha, as informações de nome de aluno e nota, complete onde solicitado: int mostra_linha ( ) // le arquivo e mostra no vídeo { FILE *fp; char nomealuno[30]; double notaaluno; // abre arquivo AUlbra.txt somente para leitura fp = fopen("AUlbra.txt ","rt"); // lê a primeira linha do arquivo fscanf(fp, "%s%lf", nomealuno, ¬aaluno) // mostra no vídeo printf("\n nome:%s - nota:%5.3lf", nomealuno, notaaluno); fclose(fp); return 0; } Questão 4 (0,6 pontos) struct endereco { char rua[50],bairro[50],cidade[50]; int num, cep; }; struct agenda { char nome[50], email[50], obs[50]; int tel; endereco end; }; struct agenda *ag; ag = (agenda *) malloc(sizeof(agenda) * 10); Baseado nas definições da estrutura acima, responda: a) Como podemos carregar um valor para o campo rua ? scanf(“%s”,&ag[0].end.rua); ou gets(ag[0].end.rua); b) Da mesma forma, para atribuir um valor para cep ? ag[0].end.cep = 98324567; c) E para carregar uma valor para email ? scanf(“%s”,&ag[0].email); Avaliação e valor: AAv I - 22/03 (1,0) AAv II - 05/04 (1,0) AAv III - 12/04 (1,0) - Avaliação G1 19/04 (7,0) Questão 5 ( 2 pontos) O algoritmo abaixo efetua inclusões em um arquivo Binário com informações de nome e idade de uma pessoa. Complete o código conforme solicitado: struct cadastro { char nome[31]; int idade; }; int main() { struct cadastro pessoa; FILE *fp; int t; char opt; // abre o arquivo ulbra.dat para inclusão no final //criando o mesmo se não existir (0,4) fp = fopen("ulbra.dat","ab"); printf("Digite um nome:\n"); gets(pessoa.nome); printf("Entre com a idade:\n"); scanf("%d",&pessoa.idade); // Grava no arquivo (0,5) fwrite(&pessoa, sizeof(struct cadastro),1,fp); fclose(fp); // Abre o arquivo ulbra.dat para leitura (0,3) fp = fopen("ulbra.dat","rb"); if (fp){ do { t = fread(&pessoa, sizeof (struct cadastro),1,fp); if (t==1) { // Mostra registros gravados (0,8) printf("Nome :\n"); puts(pessoa.nome); printf("Idade: %d \n", pessoa.idade); x = feof(fp); } while (!x); } fclose(fp); system("pause"); } Questão 6 (1,2 pontos) O algoritmo abaixo lê dois valores inteiros e efetua cálculos e algumas operações afetando o valor de algumas variáveis. Ao final serão mostrados 4 valores. Informe que valores serão esses se as entradas informadas forem 5 e 9. int funcao(int N1, int N2, int *S){ int M; M = N1 * N2; *S = N1 + N2; printf("\n Soma 1 = %d", *S); printf("\n M = %d ", M); return (M); } int main () { int V1, V2, soma, mult; printf("Digite 2 entradas "); scanf("%d %d",&V1,&V2); mult = funcao(V1,V2,&soma); printf("\n Mult = %d ", mult / 3); printf("\n Soma 2 = %d \n", soma * 2); system("pause"); } Soma 1 = 14 M = 45 Mult = 15 Soma 2 = 28 Questão 7 (1,2 pontos) Complete o código. Este algoritmo lê valores para um vetor. Depois passa o vetor por referência a uma função que mostra os valores do vetor em ordem inversa. #include <stdio.h> #include <stdlib.h> 7-b) faça o código para mostrar os elementos invertidos passando parâmetros corretamente à função. void troca(int *dados) { for (int i=9; i>=0;i--) printf("\%d ", dados[i]);} int main() { int vetor[10]; for (int i=0; i<10;i++) scanf("%d",&vetor[i]); // 7-a) Informe o (s) parâmetro(s) corretamente troca (vetor); system("PAUSE"); }
Compartilhar