Revisão Básica  AED1 | Questões Resolvidas de Linguagem C

Revisão Básica AED1 | Questões Resolvidas de Linguagem C

·

11 min read

As questões são projetadas para abordar diferentes aspectos da programação em C, ajudando você a praticar e consolidar os conceitos aprendidos. Desde problemas simples de cálculos matemáticos até desafios mais complexos envolvendo estruturas de dados e algoritmos, você encontrará uma variedade de questões para aprimorar suas habilidades de programação.

Este material de revisão básica de AED1 em Linguagem C é adequado tanto para estudantes iniciantes que estão aprendendo os fundamentos da programação quanto para aqueles que desejam refrescar seus conhecimentos ou se preparar para entrevistas de emprego na área de programação.

Desenvolver um programa que efetue a soma da sequência de 0 a 100.

#include <stdio.h>

int main() {
    int soma = 0;
    int i = 0;

    while (i <= 100) {
        soma += i;
        i++;
    }

    printf("A soma da sequência de 0 a 100 é: %d\n", soma);

    return 0;
}

Apresente o número inteiro que mais se aproxima do resultado da raiz quadrada de um número digitado ´pelo usuário. Apresente sempre um número abaixo.

#include <stdio.h>
#include <math.h>

int main() {
    int numero, raiz, numero_aproximado;

    printf("Digite um número inteiro: ");
    scanf("%d", &numero);

    raiz = sqrt(numero);
    numero_aproximado = raiz - 1;

    printf("O número inteiro que mais se aproxima abaixo da raiz quadrada de %d é: %d\n", numero, numero_aproximado);

    return 0;
}

Desenvolver um programa que calcule o Fatorial de um número N! onde N é um número digitado pelo usuário.

O resultado deve apresentar o apenas o Fatorial os números Ímpares na faixa de 0 a 40.

#include <stdio.h>

int main() {
    int numero, i, fatorial;

    printf("Cálculo do fatorial dos números ímpares na faixa de 0 a 40:\n");

    for (numero = 1; numero <= 40; numero += 2) {
        fatorial = 1;
        for (i = 1; i <= numero; i++) {
            fatorial *= i;
        }
        printf("Fatorial de %d: %d\n", numero, fatorial);
    }

    return 0;
}

Em um cinema com capacidade para 100 pessoas e em um dia de casa lotada realizou uma pesquisa onde constava:

*Idade

*Opinião em relação ao filme podendo ser

–A - Ótimo

–B - Bom

–C - Regular

–D - Ruim

–E - Péssimo

Crie um programa que efetue e apresente:

–A quantidade de respostas Ótimo

–Quantos votos tiveram nota C

–A maior e a menor idade

–A média de idade das pessoas

–O percentual das respostas Péssimo

#include <stdio.h>

int main() {
    int capacidade = 100;
    int idade, quantidadeOtimo = 0, quantidadeC = 0, maiorIdade = 0, menorIdade = 0, totalIdades = 0, totalPessimo = 0;
    float mediaIdade;
    int i;
    char voto;

    printf("Pesquisa de Opinião no Cinema\n");

    for (i = 1; i <= capacidade; i++) {
        printf("Pessoa %d:\n", i);

        printf("Idade: ");
        scanf("%d", &idade);

        printf("Opinião em relação ao filme:\n");
        printf("A - Ótimo\n");
        printf("B - Bom\n");
        printf("C - Regular\n");
        printf("D - Ruim\n");
        printf("E - Péssimo\n");
        printf("Voto: ");
        scanf(" %c", &voto);

        if (voto == 'A') {
            quantidadeOtimo++;
        } else if (voto == 'C') {
            quantidadeC++;
        } else if (voto == 'E') {
            totalPessimo++;
        }

        if (i == 1) {
            maiorIdade = menorIdade = idade;
        } else {
            if (idade > maiorIdade) {
                maiorIdade = idade;
            }
            if (idade < menorIdade) {
                menorIdade = idade;
            }
        }

        totalIdades += idade;
    }

    mediaIdade = (float) totalIdades / capacidade;

    float percentualPessimo = (float) totalPessimo / capacidade * 100;

    printf("\nResultados da Pesquisa:\n");
    printf("Quantidade de respostas Ótimo: %d\n", quantidadeOtimo);
    printf("Quantidade de votos com nota C: %d\n", quantidadeC);
    printf("Maior idade: %d\n", maiorIdade);
    printf("Menor idade: %d\n", menorIdade);
    printf("Média de idade: %.2f\n", mediaIdade);
    printf("Percentual de respostas Péssimo: %.2f%%\n", percentualPessimo);

    return 0;
}

Crie um programa que apresente o resultado do valor de uma potência de uma base qualquer elevada a um expoente qualquer, ou seja, Bºe, em que a variável B é a base e a variável E é o expoente. O programa NÃO deve utilizar funções trigonométricas, apenas estruturas de laços.

#include <stdio.h>

int main() {
    int base, expoente;
    int resultado = 1;

    printf("Calculadora de Potência\n");

    printf("Digite a base: ");
    scanf("%d", &base);

    printf("Digite o expoente: ");
    scanf("%d", &expoente);

    if (expoente >= 0) {
        for (int i = 0; i < expoente; i++) {
            resultado *= base;
        }
    } else {
        for (int i = 0; i > expoente; i--) {
            resultado /= base;
        }
    }

    printf("O resultado de %d elevado a %d é: %d\n", base, expoente, resultado);

    return 0;
}

Desenvolver um programa que apresente os quadrados dos números no intervalo de 20 a 120.

#include <stdio.h>

int main() {
    printf("Quadrados dos números no intervalo de 20 a 120:\n");

    for (int i = 20; i <= 120; i++) {
        int quadrado = i * i;
        printf("%d^2 = %d\n", i, quadrado);
    }

    return 0;
}

Um hotel cobra R$300,00 por diária e mais uma taxa adicional de serviços. Se a diária for menor que 15 a taxa é de R$20,00. Se o número de diárias for igual a 15 a taxa é de R$14,00 e se a diária for maior que 15 a taxa é de R$12,00. Considerando que e tenha 25 pessoas com o registro do nome e o número de diárias:

–Crie um programa que apresente o nome e o tal a pagar de cada pessoa

–E o total

#include <stdio.h>

#define DIARIA 300
#define TAXA_ATE_15 20
#define TAXA_15 14
#define TAXA_MAIS_15 12

int main() {
    char nome[50];
    int numDiarias;
    int total = 0;

    printf("Registro de Hospedes\n");

    for (int i = 1; i <= 25; i++) {
        printf("\nHospede %d:\n", i);
        printf("Nome: ");
        scanf("%s", nome);
        printf("Numero de diarias: ");
        scanf("%d", &numDiarias);

        int taxaAdicional;

        if (numDiarias < 15) {
            taxaAdicional = TAXA_ATE_15;
        } else if (numDiarias == 15) {
            taxaAdicional = TAXA_15;
        } else {
            taxaAdicional = TAXA_MAIS_15;
        }

        int valorDiaria = DIARIA + taxaAdicional;
        int valorTotal = valorDiaria * numDiarias;

        printf("Nome: %s\n", nome);
        printf("Valor a pagar: R$ %d\n", valorTotal);

        total += valorTotal;
    }

    printf("\nTotal a ser pago por todos os hospedes: R$ %d\n", total);

    return 0;
}

Crie um programa que leia um número não determinado de valores e conte quantos deles estão em cada um dos intervalos:

—Sendo de 0-25

—26-50

—51-75

—76-100

#include <stdio.h>

int main() {
    int valor;
    int intervalo1 = 0, intervalo2 = 0, intervalo3 = 0, intervalo4 = 0;

    printf("Digite os valores (digite um valor negativo para encerrar):\n");

    while (1) {
        printf("Valor: ");
        scanf("%d", &valor);

        if (valor < 0) {
            break;
        }

        if (valor >= 0 && valor <= 25) {
            intervalo1++;
        } else if (valor >= 26 && valor <= 50) {
            intervalo2++;
        } else if (valor >= 51 && valor <= 75) {
            intervalo3++;
        } else if (valor >= 76 && valor <= 100) {
            intervalo4++;
        }
    }

    printf("Resultados:\n");
    printf("Intervalo [0-25]: %d\n", intervalo1);
    printf("Intervalo [26-50]: %d\n", intervalo2);
    printf("Intervalo [51-75]: %d\n", intervalo3);
    printf("Intervalo [76-100]: %d\n", intervalo4);

    return 0;
}

Crie um programa que leia um valor e some os próximos 99 termos a ele. Exemplo: leu o termo 5, será somado a ele 6, depois será somado a ele 7, depois erá somado a ele 8 e assim até 99. Apresente cada soma do processo.

#include <stdio.h>

int main() {
    int valor;
    int soma = 0;

    printf("Digite um valor: ");
    scanf("%d", &valor);

    printf("Somas:\n");

    for (int i = 1; i <= 99; i++) {
        valor += i;
        soma += valor;
        printf("%d\n", soma);
    }

    return 0;
}

Criar um programa que leia 4 notas de um aluno. Apresente o resultado de acordo com a média das notas:

a. APROVADO - se média maior ou igual a 8,5;

b. EXAME - se média menor que 8,5 e maior que 6;

c. RETIDO - se média menor ou igual a 6;

#include <stdio.h>

int main() {
    float nota1, nota2, nota3, nota4;
    float media;

    printf("Digite as 4 notas do aluno:\n");
    scanf("%f %f %f %f", &nota1, &nota2, &nota3, &nota4);

    media = (nota1 + nota2 + nota3 + nota4) / 4.0;

    if (media >= 8.5) {
        printf("APROVADO\n");
    } else if (media > 6) {
        printf("EXAME\n");
    } else {
        printf("RETIDO\n");
    }

    return 0;
}

Criar um programa que leia 3 variáveis. Apresente as variáveis em ordem crescente.

#include <stdio.h>

void ordena(int troca[], int n) {
    int i, j, indice, ordenado;

    for (i = 0; i < n - 1; i++) {
        indice = i;

        for (j = i + 1; j < n; j++) {
            if (troca[j] < troca[indice]) {
                indice = j;
            }
        }

        ordenado = troca[i];
        troca[i] = troca[indice];
        troca[indice] = ordenado;
    }
}

int main() {
    int troca[3];
    int i;

    printf("Digite três números: ");
    for (i = 0; i < 3; i++) {
        scanf("%d", &troca[i]);
    }

    ordena(troca, 3);

    printf("Ordem crescente: ");
    for (i = 0; i < 3; i++) {
        printf("%d ", troca[i]);
    }
    printf("\n");

    return 0;
}

Criar um programa que leia 3 valores. Apresente o resultado completo da equação de 2º grau.

#include <stdio.h>
#include <math.h>

int main() {
    float a, b, c;
    float delta, x1, x2;

    printf("Digite os coeficientes da equacao de segundo grau:\n");
    printf("Coeficiente a: ");
    scanf("%f", &a);
    printf("Coeficiente b: ");
    scanf("%f", &b);
    printf("Coeficiente c: ");
    scanf("%f", &c);

    delta = b * b - 4 * a * c;

    if (delta > 0) {
        x1 = (-b + sqrt(delta)) / (2 * a);
        x2 = (-b - sqrt(delta)) / (2 * a);
        printf("Raizes reais e diferentes:\n");
        printf("x1 = %.2f\n", x1);
        printf("x2 = %.2f\n", x2);
    } else if (delta == 0) {
        x1 = -b / (2 * a);
        printf("Raiz real e unica:\n");
        printf("x = %.2f\n", x1);
    } else {
        float realPart = -b / (2 * a);
        float imaginaryPart = sqrt(-delta) / (2 * a);
        printf("Raizes complexas conjugadas:\n");
        printf("x1 = %.2f + %.2fi\n", realPart, imaginaryPart);
        printf("x2 = %.2f - %.2fi\n", realPart, imaginaryPart);
    }

    return 0;
}

Criar um programa que leia 10 valores e apresente o maior e o menor valor.

#include <stdio.h>

int main() {
    int valores[10];
    int i;
    int maior, menor;

    printf("Digite 10 valores:\n");

    for (i = 0; i < 10; i++) {
        printf("Valor %d: ", i + 1);
        scanf("%d", &valores[i]);
    }

    maior = valores[0];
    menor = valores[0];

    for (i = 1; i < 10; i++) {
        if (valores[i] > maior) {
            maior = valores[i];
        }

        if (valores[i] < menor) {
            menor = valores[i];
        }
    }

    printf("Maior valor: %d\n", maior);
    printf("Menor valor: %d\n", menor);

    return 0;
}

Criar um programa que leia 10 valores e apresente o maior valor par e o menor valor impar.

#include <stdio.h>

int main() {
    int valores[10];
    int i;
    int maiorPar = -1; // Valor inicial inválido para identificar que ainda não foi encontrado um valor par
    int menorImpar = -1; // Valor inicial inválido para identificar que ainda não foi encontrado um valor ímpar

    printf("Digite 10 valores:\n");

    for (i = 0; i < 10; i++) {
        printf("Valor %d: ", i + 1);
        scanf("%d", &valores[i]);
    }

    for (i = 0; i < 10; i++) {
        if (valores[i] % 2 == 0) { // Verifica se o valor é par
            if (maiorPar == -1 || valores[i] > maiorPar) {
                maiorPar = valores[i];
            }
        } else { // Caso contrário, o valor é ímpar
            if (menorImpar == -1 || valores[i] < menorImpar) {
                menorImpar = valores[i];
            }
        }
    }

    if (maiorPar != -1) {
        printf("Maior valor par: %d\n", maiorPar);
    } else {
        printf("Nenhum valor par encontrado.\n");
    }

    if (menorImpar != -1) {
        printf("Menor valor ímpar: %d\n", menorImpar);
    } else {
        printf("Nenhum valor ímpar encontrado.\n");
    }

    return 0;
}

Criar um programa que leia um valor e informe se o mesmo está fora ou dentro da faixa de 10 a 50.

#include <stdio.h>

int main() {
    int valor;

    printf("Digite um valor: ");
    scanf("%d", &valor);

    if (valor >= 10 && valor <= 50) {
        printf("O valor %d está dentro da faixa de 10 a 50.\n", valor);
    } else {
        printf("O valor %d está fora da faixa de 10 a 50.\n", valor);
    }

    return 0;
}

Faça um programa que faça 5 perguntas para uma pessoa sobre um crime. As perguntas são:

· • "Telefonou para a vítima?"

· • "Esteve no local do crime?"

· • "Mora perto da vítima?"

· • "Devia para a vítima?"

· • "Já trabalhou com a vítima?"

O programa deve no final emitir uma classificação sobre a participação da pessoa no crime. Se a pessoa responder positivamente a 2 questões ela deve ser classificada como "Suspeita", entre 3 e 4 como "Cúmplice" e 5 como "Assassino". Caso contrário, ele será classificado como "Inocente".

#include <stdio.h>

int main() {
    int contador = 0;
    char resposta;

    printf("Responda as seguintes perguntas com 'S' para sim e 'N' para não:\n");

    printf("Telefonou para a vítima? ");
    scanf(" %c", &resposta);
    if (resposta == 'S' || resposta == 's') {
        contador++;
    }

    printf("Esteve no local do crime? ");
    scanf(" %c", &resposta);
    if (resposta == 'S' || resposta == 's') {
        contador++;
    }

    printf("Mora perto da vítima? ");
    scanf(" %c", &resposta);
    if (resposta == 'S' || resposta == 's') {
        contador++;
    }

    printf("Devia para a vítima? ");
    scanf(" %c", &resposta);
    if (resposta == 'S' || resposta == 's') {
        contador++;
    }

    printf("Já trabalhou com a vítima? ");
    scanf(" %c", &resposta);
    if (resposta == 'S' || resposta == 's') {
        contador++;
    }

    if (contador == 5) {
        printf("Classificação: Assassino\n");
    } else if (contador >= 3 && contador <= 4) {
        printf("Classificação: Cúmplice\n");
    } else if (contador == 2) {
        printf("Classificação: Suspeita\n");
    } else {
        printf("Classificação: Inocente\n");
    }

    return 0;
}

Criar um programa que calcule a área de um triângulo.

#include <stdio.h>

int main() {
    float base, altura, area;

    printf("Digite a medida da base do triângulo: ");
    scanf("%f", &base);

    printf("Digite a medida da altura do triângulo: ");
    scanf("%f", &altura);

    area = (base * altura) / 2;

    printf("A área do triângulo é: %.2f\n", area);

    return 0;
}