Baixe o app para aproveitar ainda mais
Prévia do material em texto
CCT-0308 – Estrutura de Dados Lista de Exercícios p/ 29-set-2017 Crie um aplicativo em C que peça um número inicial ao usuário, uma razão e calcule os termos de uma P.G (Progressão Geométrica), armazenando esses valores em um vetor de tamanho 10. Ex. Número Inicial: 5 –Razão: 3 5, 15, 45, 135, 405, 1215, ... R: #include <iostream> #include <stdio.h> using namespace std; int main(){ int numero[10]; int razao,n1; //pa (prgressão aritmética cout << "Digite um valor inicial o qual iniciara nossa sequencia: "; cin >>n1; cout <<"Digite um numero como razao para nossa sequencia: "; cin >>razao; for (int i=0; i<10; i++){ cout <<n1 << " "; n1=n1*razao; } return 0; } Crie um programa em C que peça 10 números, armazene eles em um vetor e diga qual elemento é o maior, e seu valor. R: #include <iostream> #include <stdio.h> using namespace std; int main(){ int numero[10]; int maior=0; for (int i=0; i<10; i++){ cout <<"Digite o valor do número " << i+1 <<":"; cin >> numero[i]; if (numero[i]> maior){ maior=numero[i]; } } cout <<"\nMaior número é: " <<maior; return 0; } Crie um programa para cadastrar o nome e o telefone de até 100 pessoas. Depois de cadastrar, imprima na tela todas as pessoas e os telefones (usando struct) R: #include <stdio.h> #include <iostream> using namespace std; int main() { int contador = 0; struct Cadastro { char nome[10]; char telefone[10]; char imp[10]; }; struct Cadastro cad[100]; for (; contador < 100; contador++){ cout << "Entre com o nome do cadastro " << contador + 1<<":"; cin >> cad[contador].nome; cout << "Entre com o telefone do cadastro " << contador + 1<<":"; cin >> cad[contador].telefone; } cout << "Os cadastro efetuados foram: " << endl; for(int x = 0; x < contador; x++){ cout << cad->nome << endl; cout << cad->telefone << endl; } return 0; } Defina uma estrutura que armazene: Matricula (inteiro) Nome (texto – 30 caracteres) AV1 (valor fracionário) AV2 (valor fracionário) Média (valor fracionário) R: struct CadAluno{ int matricula; char nome[30]; float av1; float av2; float media; }; Escreva um programa que armazene os nomes e as notas dos alunos (AV1, AV2) em um vetor da estrutura acima e depois apresenta os nomes e as médias respectivas. R: #include <iostream> #include <stdio.h> using namespace std; struct CadAluno{ int matricula; char nome[30]; float av1; float av2; float media; }; CadAluno n[3]; void entradados(){ for (int i = 0 ;i < 3; i++){ cout << "Digite o nome do aluno: "; cin >> n[i].nome; cout << "Digite a nota da AV1: "; cin >> n[i].av1; cout << "Digite a nota da AV2: "; cin >> n[i].av2; } }; float calculo(){ float soma = 0,media; for (int i = 0 ;i < 3; i++){ media = (n[i].av1 + n[i].av2) / 2; cout << "Media do aluno " << n->nome << " é: " << media << endl; } }; int main(){ char n; entradados(); calculo(); return 0; } Na definição de uma função, podemos afirmar: Toda função tem parâmetros Quando nadas retorna o tipo é void. Quando todos os parâmetros são do mesmo tipo, é suficiente usar o tipo uma vez e separar os nomes dos parâmetros por vírgulas. Na passagem por valor, o endereço da variável da função chamadora é passado para a função chamada. Podemos afirmar: Somente I e II estão corretas. Somente II e III estão corretas. ← Alternativa Correta Somente II e IV estão corretas. Somente II, III e IV estão corretas. Somente I e II está correta. Escreva uma função que calcula a média de 2 notas float media (float a, float b) R: float media(float a, float b){ float n1,n2,media; n1 = a; n2 = b; media = (n1 + n2) / 2; } Escreva uma função int par(int n) que retorna 1 se o inteiro n é par e 0 se é ímpar. R: int par(int num){ n = num; if( n %2 == 0){ cout << "1"; } else { cout << "0"; } } Na linguagem C++: O endereço armazenado em um ponteiro deve ser do mesmo tipo que o ponteiro (ex. um ponteiro para um int não pode armazenar o endereço de um float). &v apresenta o endereço da variável v. Não é possível chamar uma função segundo seu endereço, ainda que por meio de um ponteiro que armazena o endereço de início dessa função. Está correto o que se afirma em a) I, apenas. b) II, apenas. c) I e II, apenas. ←- Alternativa Correta d) II e III, apenas. e) I, II e III. Sobre as funções, é CORRETO afirmar que: a) na passagem por valor, o parâmetro que vai ser passado na chamada da função deve ser uma variável, de tal forma que uma alteração de valor neste parâmetro também altera a variável correspondente. b) na passagem por referência, o parâmetro que vai ser passado na chamada da função deve ser uma variável, de tal forma que uma alteração de valor neste parâmetro também altera a variável correspondente. ← Alternativa Correta c) uma variável é dita global quando a sua passagem no momento da chamada de uma função se dá tanto por valor quanto por referência, enquanto que uma variável é dita local quando esta passagem se dá, apenas, por valor. d) na passagem por valor, o parâmetro passado na chamada da função é o ponteiro para a variável que contém o valor desejado. Analise as seguintes afirmações relacionadas a conceitos básicos sobre Programação: I. Um procedimento é um conjunto de comandos para uma tarefa específica referenciada por um nome no algoritmo principal, retornando um determinado valor no seu próprio nome. II. Podem-se inserir módulos em um algoritmo. Para isso, pode-se utilizar "Procedimentos" ou "Funções". As ações das "Funções" e dos "Procedimentos" são hierarquicamente subordinadas a um módulo principal. III. Cada "Função" ou "Procedimento" pode utilizar constantes ou variáveis do módulo principal ou definir suas próprias constantes ou variáveis. Uma variável global indica o endereço onde um valor é armazenado na memória do computador enquanto um ponteiro representa um valor numérico real. Indique a opção que contenha todas as afirmações verdadeiras. a) I e II. b) II e III. ← Alternativa Correta c) III e IV. d) I e III. e) II e IV. Analise as seguintes afirmações relacionadas a conceitos básicos de Programação de Computadores. O escopo de uma variável de programa é a faixa de instruções na qual a variável é visível. Uma variável é visível em uma instrução se puder ser referenciada nessa instrução. Um registro é um agregado, possivelmente heterogêneo de elementos, cujos elementos individuais são identificados por nomes. Uma matriz (array) é um agregado heterogêneo de elementos de dados, cujo elemento individual é identificado por sua posição em relação ao primeiro. Um tipo Ponteiro é aquele em que as variáveis têm uma faixa de valores que consiste em uma string oucoleção de caracteres e um valor especial denominado Null. Indique a opção que contenha todas as afirmações verdadeiras. a) I e II b) II e III c) III e IV d) I e III e) II e IV
Compartilhar