Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Federal do Ceará Centro de Ciências Departamento de Computação Disciplina: Programação aplicada à engenharia Professor: Ítalo Linhares Lista de Exercícios de Revisão 1. Defina uma estrutura que irá representar bandas de música. Essa estrutura deve ter o nome da banda, que tipo de música ela toca, o número de integrantes e em que posição do ranking essa banda está dentre as suas 5 bandas favoritas. a. Crie um looping para preencher as 5 estruturas de bandas criadas no exemplo passado. Após criar e preencher, exiba todas as informações das bandas/estruturas. b. Crie uma função em C que peça ao usuário um tipo de música e exiba as bandas com esse tipo de música no seu ranking. Que função da string.h você usaria para comparar as strings que representam o tipo de banda? 2. Utilizando estrutura, fazer um programa em C que permita a entrada de nome, endereço e telefone de 5 pessoas e os imprima em ordem alfabética. 3. Utilizando a estrutura da questão anterior, acrescente informações como matrícula, IRA se a pessoa cadastrada for um aluno, código do cargo, cargo, data da contratação, salário para um funcionário e se for um professor, tem uma estrutura com dados iguais ao do funcionário acrescentando a área de atuação e titulação. 4. Ainda utilizando a estrutura anterior, crie enumerações para os cargos e os meses do ano. 5. Crie uma estrutura representando os alunos do curso de Programação aplicada para Engenharia. A estrutura deve conter a matrícula do aluno, nome, nota da primeira prova, nota da segunda prova e nota da terceira prova. a. Permita ao usuário entrar com os dados de 5 alunos. b. Encontre o aluno com maior nota da primeira prova. c. Encontre o aluno com maior média geral. d. Encontre o aluno com menor média geral. e. Para cada aluno diga se ele foi aprovado ou reprovado, considerando o valor 7 para aprovação. 6. Considere a função zera a seguir e responda o que se pede. void zera (int a[], int n) { int i; for (i = 0; i < n; i++) a[i] = 0; } O que acontece em cada chamada da função abaixo? Suponha int x[100]. Suponha também que o vetor x foi inicializado anteriormente. a) zera(x,50); b) zera(&x[50], 50); c) zera(x + 50, 50); d) zera(&y[15], 10); e) zera(y + 15, 10); 7. Faça uma função que receba como parâmetros, passando por referência o valor do salário de um funcionário e passando por valor o valor da porcentagem do reajuste do salário. Utilize a seguinte declaração da função: void reajuste (float *salario, float porcentagem). 8. Faça uma função chamada primo que recebe como parâmetro um inteiro m e dois outros inteiros p1 e p2 passados por referência. A função deve retornar em p1 o maior número primo que é menor do que m e deve retornar em p2 o menor número primo que é maior do que m. 9. Determine o valor especificado em cada item abaixo considerando que foi executado as seguintes instruções (assuma que o endereço de x é 100 e de y é 104): int x = 10, y=20; int* p1; int* p2; p1 = &x; p2 = &y; (*p1)++; (a) x (b) y (c) &x (d) &y (e) p1 (f) p2 (g) *p1 + *p2 (h) *(&x) (i) &(*p2) 10. Faça uma função chamada media que recebe um vetor de double, um inteiro n que indica o tamanho do vetor, e um inteiro i passado por referência. A função deve retornar a média dos n elementos no vetor e no inteiro i, passado por referência, deve retornar a posição do elemento que tem o valor mais próximo da média. Cabeçalho: double media(double vet[], int *i);. 11. Qual o resultado de s em cada um dos laços? #include <stdio.h> #define MAX 100 int main (){ int a[MAX]; int i, s = 0; int *p; for(i = 0; i < Max; i++){ scanf(“%d”, &a[i]); } // fim do for for (p = a; p < &a[MAX]; ++p) s += *p; for (i = 0, s = 0; i < MAX; ++i) s += *(a+i); for (i = 0, s =0, p = a; i < MAX; ++i) s += p[i]; return 0; }
Compartilhar