C语言实验题目[01]

本文提供了一系列C语言编程实践题目,包括存款利息计算的多种方案,如一次性存款、定期存款和活期存款。同时,涉及贷款还款、数字处理、利润提成计算、序列求和、水仙花数以及算法应用如字符串反转、字符排序等挑战。通过这些练习,旨在提升C语言编程能力和算法理解。
摘要由CSDN通过智能技术生成
  1. 编程计算存款利息。有1000元,想存5年,可按以下5种办法存:
    (1) 一次存5年期。
    (2) 先存2年期,到期后将本息再存3年期。
    (3) 先存3年期,到期后将本息再存2年期。
    (4) 存1年期,到期后将本息再存1年期,连续存5次。
    (5) 存活期存款,活期利息每一季度结算一次。

假设银行存款利息如下:
1年期定期存款利息为1.5%;
2年期定期存款利息为2.1%;
3年期定期存款利息为2.75%;
5年期定期存款利息为3%;
活期存款利息为0.35% (活期存款每一季度结算一次利息)。

计算方法如下:
如果r为年利率,n为存款年数,则计算本息和的公式为
1年期本息和:P = 1000 * (1+r);
n年期本息和:P = 1000 * (1+n*r);
存n次1年期的本息和:P = 1000 * (1+r)n;
活期存款本息和:P = 1000 * (1+r/4)4n。

:1000 * (1+r/4)是一个季度的本息和。
提示:math.h函数库中有pow函数,例如pow(3.6, 2)就表示3.62。

//author:祁山何小喵  
//time:2020.03.28  
//task:计算各种存款方式所得的利息  
#include <stdio.h>  
#include <math.h>  
#define Principal 1000  //本金1000元  
int main()  
{
     
    float p1, p2, p3, p4, p5;  
    p1 = Principal * (1 + 5 * 0.03) - Principal;  //5年期,利率为3%  
    p2 = Principal * (1 + 2 * 0.021) * (1 + 3 * 0.0275) - Principal;  //先存2年(利率2.1%),到期本息再存3年(利率2.75%)  
    p3 = Principal * (1 + 3 * 0.0275) * (1 + 2 * 0.021) - Principal;  //先存3年(利率2.75%),到期本息再存2年(利率2.1%)  
    p4 = Principal * pow((1 + 0.015), 5) - Principal;  //存1年期(利率1.5%),到期后将本息再存1年期,连续存5次  
    p5 = Principal * pow((1 + 0.0035 / 4), 4 * 5) - Principal;  //存活期存款(利率0.35%)  
    printf("存5年期所得的利息是%.2f元\n", p1);  
    printf("先存2年,到期本息再存3年所得的利息是%.2f元\n", p2);  
    printf("先存3年,到期本息再存2年所得的利息是%.2f元\n", p3);  
    printf("存1年期,到期后将本息再存1年期,连续存5次所得的利息是%.2f元\n", p4);  
    printf("存活期存款所得的利息是%.2f元\n", p5);  
    return 0;  
} 
  1. 购房从银行贷了一笔款d,准备每月还款额为p,月利率为r,编程计算多少月能还清。设d为300000元,p为6000元,r为1%。对求得的结果取小数点后一位,对第2位按四舍五入处理。
    计算还清月数m的公式如下:
    lg ⁡ p − lg ⁡ ( p − d ∗ r ) lg ⁡ ( 1 + r ) \frac{\lg{p}-\lg{(p-d*r)}}{\lg{(1+r)}} lg(1+r)lgplg(pdr)
    或改写为
    lg ⁡ p p − d ∗ r lg ⁡ ( 1 + r ) \frac{\lg{\frac{p}{p-d*r}}}{\lg{(1+r)}} lg(1+r)lgpdrp
    提示:math.h函数库中有log10函数求以10为底的对数,
    例如log10(7)就表示log7。
//author:祁山何小喵 
//time:2020.03.28  
//task:计算还清贷款所需月数  
#include <stdio.h>  
#include <math.h>  
int main()  
{
     
    int d = 300000, p = 6000;   //贷款金额为300000元,每月还款6000元  
    float m, r = 0.001;        //月利率为1%,需要m月才能还清  
    m = log10(p / (p - d * r)) / log10(1 + r);  
    printf("还清月数为%.1f", m);  
    return 0;  
}
  1. 输入一个不多于5位的正整数,要求:
    (1) 求出它是几位数;
    (2) 分别输出每一位数字;
    (3) 按逆序输出各位数字,例如原数为321,应输出123。
//author:祁山何小喵  
//time:2020.04.12  
//task:输入一个整数,求其位数;输出其每个数字;将其逆序输出  
#include<stdio.h>  
int number(int p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值