Você está na página 1de 3

INSTITUTO FEDERAL DE EDUCAO, CINCIA E TECNOLOGIA DO PIAU - IFPI - CAMPUS ANGICAL CURSO: Tcnico em Informtica Integrado ao Mdio (INF-2

Manh) DISCIPLINA: Estrutura de Dados PROFESSOR: Nairon Saraiva Viana ALUNO(A): Num.: CARGA HORRIA: 60 h/a

Avaliao de Recuperao - Trabalho 04/07/2013 Valor: 10,0pts 1. Dadas as seguintes funes em C, para manipular os elementos de um vetor de inteiros (2,4pts): #include<stdio.c> // Declarar Vetor float v[10]; // Inicializar Vetor void inincializaVetor(){ int i=1; for(i; i<10; i++){ printf("Entre com um valor inteiro da posicao %d %d: ", i); scanf("%d", &v[i]); } } // Mostrar Elementos do Vetor void mostraElementos(){ int i; for(i=0; i>10; i++) printf("Elemento da posicao %f: %d\n", i, v[i]); } // Somar Elementos do Vetor void somaElementos(){ int i, soma=100; for(i=0; i<10; i--) soma = soma + &v[i]; printf("A soma dos elementos do vetor e: %d\n", &soma); } a) Identifique os erros no trecho de cdigo acima b) Com o cdigo corrigido, crie mais trs fues: calcular a mdia, mostrar elementos acima da mdia e mostrar elementos abaixo da mdia

c) Construa o cdigo main para o programa em questo, chamando TODAS as funes em ORDEM.

2.

Sobre registros em C e o tipo struct assinale a alternativa que julgar FALSA:(1,5pt) a) struct e typedef so palavras obrigatrias para se definir um registro em C b) Para acessar um campo do registro em uma operao de entrada (scanf) usamos a sintaxe: <nome-da-variavel>.<nome-do-campo> c) Para acessar um campo do registro em uma operao de sada (printf) usamos a sintaxe: <nome-da-variavel>.<nome-do-campo> d) Para armazenar 10 registros ALUNO com os campos, NOME e IDADE podemos usar um vetor de 10 posies. Para acessar cada campo no vetor usamos a sintaxe: <nomevetor>[posicao-do-vetor].<nome-campo> e) Podemos usar tanto funes quanto procedimentos para manipular elementos struct em um programa C

3.

Dado o seguinte programa em C (3,6pts): #include <stdio.h> typedef struct { char nome[20]; int idade; float salario; }Empregado; // Programa principal... int main(){ Empregado e1, e2; printf("Entre com o nome do primeiro empregado... "); scanf("%s", &e1.nome); printf("Entre com a idade do primeiro empregado... "); scanf("%d", &e1.idade); printf("Entre com o salario do primeiro empregado... "); scanf("%f", &e1.salario); printf("Entre com o nome do segundo empregado... "); scanf("%s", &e2.nome); printf("Entre com a idade do segundo empregado... "); scanf("%d", &e2.idade); printf("Entre com o salario do segundo empregado... "); scanf("%f", &e2.salario); if(e1.salario>e2.salario){ printf("O empregado1 tem maior salario:\n"); printf("Nome: %s\n", e1.nome); printf("Idade: %d\n", e1.idade); }else

if(e2.salario>e1.salario){ printf("O empregado2 tem maior salario:\n"); printf("Nome: %s\n", e2.nome); printf("Idade: %d\n", e2.idade); }else{ printf("Os salarios dos empregados sao iguais!!!\n"); } system("PAUSE"); return 0; } a) Descreva o funcionamento do programa b) Qual a sada do programa em questo? c) Modifique o programa para imprimir tambm o nome e o salrio dos empregados do sexo feminino d) Modifique o programa para imprimir tambm o nome dos empregados que ganham acima da mdia e com idades acima de 40 anos. 4. Com relao a funes, procedimentos, vetores e registros assinale V para verdadeiro ou F para falso em cada uma das afirmaes a seguir (2,5pts): ( ) Uma estrutura registro em C pode ser definida com uma quantidade qualquer de campos ( ) No permitido definirmos registros em C com campos do tipo boolean, mesmo que declaremos a biblioteca <stdbool.h> no cabealho do programa ( ) No permitido em C definirmos duas estruturas do tipo registro, com campos idnticos ( ) O valor retornado por uma funo pode ser armazenado em uma varivel do mesmo tipo do retorno, o mesmo ocorre com um procedimento (void). Neste ltimo o retorno pode ser de qualquer tipo ( ) Um vetor do tipo inteiro do mesmo tamanho que um vetor do tipo float exigir menos memria para armazenar informao, j que o tipo float trabalha com mais dados em relao ao inteiro (ponto flutuante)