-
Escreva uma função desenhaQuadrado que exibe um quadrado sólido (o mesmo número de linhas e colunas). O caracter utilizando para preencher o quadrado e o valor do lado são passados como argumentos para a função. Por exemplo, se o caracter for x e o valor do lado for 5, a função deverá exibir
xxxxx
xxxxx
xxxxx
xxxxx
xxxxx
Solução: FCDesenhaQuadrado.c
- Escreva um programa para obter três notas e que calcule e exiba a sua média. Use uma função para o cálculo da média.
Solução: FCMediaNotas.c
- Crie uma função que converta graus para radianos e outra função que converta radianos para graus. Fazer um aplicativo para testar as funções.
- Escreva a função void somaInteiros(int a, int b, int c), que soma os três valores passados como argumento e imprime o resultado da soma na tela. Faça um programa que chame a função somaInteiros dentro da função principal.
-
Escreva uma função para verificar se a raiz quadrada de um número inteiro é exata ou não.
SOLUçãO: FCTESTARAIZQUADRADA.C.
-
(Prova EST/2010-1) Escreva um programa em C que contenha uma função chamada tamanho que calcula o número de caracteres de uma palavra digitada pelo usuário. O usuário poderá digitar uma palavra com no máximo 20 caracteres. O programa deverá, usando a função tamanho, imprimir o número de caracteres da palavra digitada pelo usuário.
-
(Prova EST/2010-1) Explique a(s) finalidade(s) do comando return em um programa em C?
-
(Prova EST/2010-2) Escreva um programa na linguagem C para receber um número N, inteiro, digitado pelo usuário. Caso o número digitado seja ímpar e menor que 10, imprimir o fatorial desse número. O cálculo do fatorial deve ser feito por uma função, que recebe o valor digitado por parâmetro e retorna o valor do fatorial calculado. Caso N seja par e maior ou igual a dez, passar esse valor para outra função por parâmetro e calcular e retornar a soma dos inteiros de 1 a N. Imprimir o valor retornado pela função.
Solução: FCFatorialPares.c
-
Escreva uma função que calcula o número de arranjos de n elementos tomados p a p. A fórmula do arranjo é a seguinte:
|
(0.21) |
-
Escreva uma função que calcula o número de combinações de n elementos tomados p a p. A fórmula da combinação é a seguinte:
|
(0.22) |
- Escreva um programa que tenha uma função para calcular o fatorial de um número.
Solução: FCCalculoFatorial.c
-
Criar um algoritmo que leia um valor. A seguir, faça duas rotinas, uma para calcular o fatorial do valor lido e outra que retorna quantos divisores o valor possui. No programa principal deve-se chamar a função fatorial e imprimir uma mensagem dizendo se o valor lido é primo ou não.
- Escreva uma função para verificar se um número é primo.
Solução: FCTestaPrimo.c
- Escreva uma função que, dado n, devolva a soma 1 + 2 + 3 + n. Invoque esta função a partir da função principal.
- Escreva um programa que pede dois inteiros ao usuário e permite que o usuário escolha qual a operação a executar com esses dois inteiros: (1) soma, (2) subtração, (3) multiplicação e (4) divisão. Cada uma das operações deve ser implementada numa função separada e toda a comunicação com o utilizador deve ser feita na função principal.
- Um número é dito regular se sua decomposição em fatores primos apresenta apenas potências de 2, 3 e 5. Faça uma função que verifique se um número é ou não regular.
- Fazer uma função que receba um caractere como parâmetro e retorne verdadeiro caso o caractere seja uma consoante, e falso caso contrário.
- Um número é capicua quando ele não muda se lido da esquerda para direita ou da direita para esquerda. Por exemplo, o ano 2002 é um ano capicua. Escreva uma função que verifique essa característica. A função deve retornar um valor booleano.
-
Escreva uma função que recebe um número inteiro como parâmetro e retorna este número escrito ao contrário. Exemplo: 782 -> 287.
SOLUçãO: FCINVERSORNUMEROS.C.
-
Escreva uma função que recebe um número inteiro como parâmetro e imprime este número escrito ao contrário. Exemplo: 782 -> 287.
SOLUçãO: FCIMPRIMEINVERSORNUMEROS.C.
- Dizemos que um número inteiro é perfeito se a soma dos seus fatores, incluindo 1, mas não incluindo o próprio número, é igual ao número. Por exemplo, 6 é um número perfeito, pois 6 = 1 + 2 + 3. Escreva uma função perfeito que determina se o seu parâmetro numero é um número perfeito. Utilize essa função em uma aplicação que determina e exibe todos os números perfeitos entre 1 e 1000. Exiba os fatores de cada número confirmando que o número é de fato perfeito.
- Escreva um algoritmo contendo funções para realizar as seguintes operações:
- Calcular a parte inteira do quociente quando o inteiro a é dividido pelo inteiro b.
- Calcula o resto da divisão inteira de a por b.
- Utilizando estas funções, exibir um número entre 1 e 999.999 como uma sequência de dígitos, separando cada par de dígitos por dois espaços. Por exemplo, o inteiro 4562 deve ser apresentado como 4 5 6 2.
- Faça uma função para converter uma temperatura em graus Fahrenheit para Celsius. A temperatura em Fahrenheit é o dado de entrada e a temperatura em Celsius é o dado de saída. Utilize a fórmula C = (F - 32) * 5/9, onde F é a temperatura em Fahrenheit e C é a temperatura em Celsius.
- Faça uma função que calcule a hipotenusa. Os catetos são os dados de entrada e a hipotenusa é o dado de saída. Utilize a fórmula hipotenusa = sqrt(sqr(catetoA) + sqr(catetoB)), onde sqrt significa a raiz quadrada e sqr o quadrado de um número.
- Faça uma função que receba três valores como entrada e retorne verdade (um valor diferente de zero) se esses valores formarem um triângulo, e falso (o valor zero) caso contrário. Observação: três valores formam um triângulo se cada um dos valores for menor que a soma dos outros dois valores.
- Um número n é primo caso ele não seja divisível por nenhum outro número que esteja no intervalo [(n-1) .. 2]. Ou seja, 5 é um número primo porque ele não é divisível pelos valores 4, 3 e 2. Por outro lado, 8 não é primo pois ele é divisível por 4 e 2. Crie um procedimento e uma função que receba um número n como entrada e retorne verdade (verdade) caso n seja um número primo e falso caso contrário.
- Faça uma função que receba um vetor v, o número n de elementos do vetor v e um valor x. Retorne verdade caso x for igual a algum dos elementos de v, e falso caso contrário.
-
(Prova EST/2012-2) Escreva um programa em C que tenha uma função que receba um vetor v (inteiros), a quantidade (n) de elementos do vetor v e um valor x (também inteiro). Essa função deverá retornar 1 se o valor x for igual a algum elemento do vetor e deverá retornar 0, caso não ocorra essa coincidência. No programa principal o usuário irá preencher o vetor e digitar o número que será pesquisado. Considere que o vetor terá 5 elementos. Utilize a função criada para confirmar se x existe ou não no vetor.
SOLUçãO: FCFUNCAOPROCURAVALOR.C.
- Faça uma função que receba um número como entrada e retorne o módulo deste número.
- Faça uma função que receba um número como entrada e retorne verdade caso este número for par, e falso caso contrário.
- Implemente 3 funções que façam a leitura da idade, peso e altura de uma pessoa e repasse estes dados à função main (principal). A partir da função main (principal), você deve chamar uma quarta função que imprima a idade e o Índice de Massa Corporal desta pessoa (IMC = peso / (altura)2 ) .
SOLUçãO: FCLEITURASIMC.C.
- Implemente uma função para calcular a média de um aluno. Ele deve ler os valores na função main, mas fazer o cálculo da média em uma função externa. A impressão da média também deve ser feita na função externa. Média = (2P1 + 2P2 + T)/5 .
- Crie uma função float round(float r) que faça o arredondamento de números reais. Por exemplo: 5 = round (5.4), 7 = round(6.5).
- Faça um programa que inverta a ordem de cada palavra de uma frase digitada pelo usuário.
- Escreva um programa que leia um vetor gabarito de 10 elementos. Cada elemento de gabarito contem um numero inteiro 1, 2, 3, 4 ou 5 correspondente as opções corretas de uma prova objetiva. Em seguida o programa deve ler um vetor resposta, também de 10 elementos inteiros, contendo as respostas de um aluno. O programa deve comparar os dois vetores e escrever o numero de acertos do aluno.
-
Escreva uma função int min_vet(float v[]) que receba um vetor e que retorne o índice do menor elemento deste vetor.
- Escreva a função Potencia, que recebe uma base e um expoente e calcule o valor da base elevado ao expoente. O expoente é sempre maior ou igual a zero, e os números são sempre inteiros.
SOLUçãO: FCPOTENCIA.C.
- Escrever um programa que testa uma função chamada multiplos que determina para um par de números inteiros, se o segundo é múltiplo do primeiro. A função deve ter dois argumentos e retornar 1, se o segundo for múltiplo do primeiro, ou 0 caso contrário.
- Escrever uma função Min(a, b) que retorna o menor entre dois valores inteiros. Considere que serão digitados dois valores distintos.
- Escrever uma função Max(a, b) que retorna o maior entre dois valores inteiros. Considere que serão digitados dois valores distintos.
- Construir um programa que utiliza uma função recursiva verifPalid que verifica se uma string é Palídroma ou não.
- Faça uma função que recebe um valor inteiro e verifica se o valor é positivo ou negativo. A função deve retornar um valor booleano.
- Escreva uma função que recebes 3 valores reais X, Y e Z e que verifique se esses valores podem ser os comprimentos dos lados de um triângulo e, neste caso, retornar qual o tipo de triângulo formado. Para que X, Y e Z formem um triângulo é necessário que a seguinte propriedade seja satisfeita: o comprimento de cada lado de um triângulo é menor do que a soma do comprimento dos outros dois lados. O procedimento deve identificar o tipo de triângulo formado observando as seguintes definições:
Triângulo Equilátero: os comprimentos dos 3 lados são iguais.
Triângulo Isósceles: os comprimentos de 2 lados são iguais.
Triângulo Escaleno: os comprimentos dos 3 lados são diferentes.
- Escreva um programa que leia um inteiro não-negativo n e imprima a soma dos n primeiros números primos.
Solução: FCImprimeNPrimos.c
- Faça uma função que recebe um vetor X(15) de inteiros , por parâmetro, e retorna a quantidade de valores pares em X.
- Faça uma função para verificar se a raiz quadrada de um número inteiro é exata ou não.
- Faça uma função que receba uma matriz quadrada de inteiros, o número de linhas ou colunas (dimensão da matriz) e retorne o maior elemento da matriz.
- Faça uma função que receba um vetor v, o número n de elementos do vetor e um valor x. Retorne verdadeiro se o valor de x está no vetor v, senão retorne falso se o valor de x não estiver no vetor v.
- Escreva uma função que leia dois vetores de inteiros, de qualquer tamanho, e imprima todos os valores que estejam presentes (comuns) nos dois vetores.
- Faça uma função que receba uma palavra de até 100 caracteres e imprima o número de aparições de uma letra escolhida pelo usuário.
Solução: FCContaCaracteres.c
- Escreva uma função que receba um vetor de inteiros não ordenados e um valor inteiro que será pesquisado no vetor. A função deve retornar o elemento do vetor que está mais próximo do valor inteiro. É possível que haja mais de um elemento que esteja com igual proximidade do elemento pesquisado. Se for necessário, a função pode ser receber também o tamanho do vetor como parâmetro (válido para implementações em C). Se o vetor estivesse ordenado, haveria diferença na implementação? Haveria alguma vantagem? Reflita sobre isso.
- Escreva uma função que leia um vetor de inteiros ordenados de forma não decrescente e que imprima somente os números que não sejam repetidos.
- Faça uma função para ler um vetor. Este procedimento deve receber o número de elementos do vetor e retornar o vetor lido. Faça também um procedimento para mostrar os elementos de um vetor. Este procedimento deve receber o vetor e o número de elementos deste vetor. Faça um algoritmo e um programa que leia 2 vetores A (com 5 elementos) e B (com 5 elementos) utilizando o procedimento de leitura de vetor. O algoritmo/programa deverá fazer com que o vetor C receba os elementos do vetor A multiplicados pelos elementos correspondentes do vetor B. Por fim o algoritmo/programa deverá chamar o procedimento que mostra os elementos de um vetor para mostrar os elementos dos vetores A, B e C.
- Escreva uma função int remove_dup(float v[], int n) receba um vetor e verifique a existência de elementos duplicados. Caso não existam elementos duplicados retorne zero. Caso existam, remova estes elementos (deixando apenas um) e retorne o número de elementos removidos.
- Escreva uma função void insert(float v[], int n, float valor, int pos) que faça a inserção de valor na posição pos do vetor v, deslocando os demais elementos.
-
Crie um vetor de caracteres e um vetor de inteiros, ambos de 200 posições. No vetor de caracteres, só é possível haver 3 caracteres diferentes os quais representam três operações, que são média (m), somatório(s) e fatorial (f). Faça três funções,
uma para cada operação:
Média: Lê um numero inteiro e retorna a média aritimética dos divisores desse numero;
Soma: Lê um numero inteiro e retorna somatório dos divisores desse numero;
Fatorial: Lê um numero inteiro e retorna fatorial desse numero;
Faça um programa que leia o elemento n do vetor de caracteres e conforme o seu tipo (m,s ou f), deve chamar uma dentre as três
funções acima (utilize seleção multipla - switch), passando como parâmetro o elemento n do vetor de inteiros. O resultado deve ser
adicionado em um terceiro vetor de reais.
SOLUçãO: VMFUNCOESDIVERSAS.C.
- Faça uma função que crie uma matriz 7x8 onde cada elemento é a soma dos índices da sua posição dentro da matriz.
- Escreva uma função que receba como parâmetro o raio e a altura para calcular o volume de um cilindro.
-
Desenvolva a função conversaoBin que receba N, um número inteiro, e retorne o valor correspondente em binário.
-
Segundo a conjectura de Goldbach, qualquer número par maior que dois pode ser escrito como a soma de dois números primos.
Exemplos: 8 = 3 + 5, 16 = 11 + 5, 68 = 31 + 37
Construa uma função que tome como entrada N números pares e, para cada número, faça outra função para imprimir um par de números primos cuja soma soja igual ao próprio número.
-
Faça um função que receba uma matriz 25 por 25 e determine se essa matriz é esparsa. Matriz esparsa é um matriz que tem aproximadamente 2/3 de seus elementos iguais a zero. Com outra função gere um matriz condensada, de apenas três colunas, com os elementos não nulos da matriz lida, de forma que:
- A primeira coluna contenha o valor não nulo da matriz.
- A segunda coluna contenha a linha de A onde foi encontrado o valor não nulo;
- A terceira coluna contenha a coluna de A onde foi encontrado do valor não nulo.
Finalize com uma função que escreva a matriz lida e a matriz condensada.
-
Construa um função que receba uma matriz A de ordem N por M, determine o elemento "minimax", bem como a sua posição. Elemento "minimax" é o elemento de menor valor da linha em que se encontra o maior elemento da matriz.
-
No programa principal leia 50 valores reais e os armazene em um vetor. Modifique através de uma função que recebe o vetor lido, e faça o vetor de modo que os valores das posições ímpares sejam aumentados em 5%, e os das posições pares sejam aumentados em 2%. Imprima depois o vetor resultante.
-
(Prova EST/2012-2) Escreva uma função em C que receba uma string como parâmetro e retorne a quantidade de vezes que a letra b aparece. É necessário escrever apenas a função.
SOLUçãO: FCCONTALETRAB.C.
-
(Prova EST/2013-2) Escreva uma função em C chamada contaPrimos que receba um vetor de 10 inteiros e que retorna a quantidade de números primos que existem nesse vetor. Deve-se escrever apenas a função.
SOLUçãO: FCTESTAVETORPRIMOS.C.
-
(Prova EST/2013-2) Escreva uma função em C chamada replace que aceita uma string como argumento. A função substitui todos os espaços em branco do seu parâmetro pelo caracter -. O espaço em branco é considerado como um caracter especial. Deve-se escrever apenas a função.
SOLUçãO: FCSUBSTITUIESPACOS.C.