C语言实验题目[01]
- 编程计算存款利息。有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;
}
- 购房从银行贷了一笔款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)lgp−lg(p−d∗r)
或改写为
lg p p − d ∗ r lg ( 1 + r ) \frac{\lg{\frac{p}{p-d*r}}}{\lg{(1+r)}} lg(1+r)lgp−d∗rp
提示: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;
}
- 输入一个不多于5位的正整数,要求:
(1) 求出它是几位数;
(2) 分别输出每一位数字;
(3) 按逆序输出各位数字,例如原数为321,应输出123。
//author:祁山何小喵
//time:2020.04.12
//task:输入一个整数,求其位数;输出其每个数字;将其逆序输出
#include<stdio.h>
int number(int p); //自定义函数number的声明,返回值类型为int;
void printnumber(int p); //自定义函数printnumber的声明,无返回值;
void reverse01(int p); //自定义函数reverse01的声明,无返回值;
int main(void) //主函数;
{ int p; printf("请输入一个不多于5位的整数:"); scanf_s("%5d", &p); //输入不多于5位的整数p; printf("输入的整数是%d位数。\n", number(p)); //调用函数number,并输出返回值; printf("从最低位到最高位依次是:"); printnumber(p); //调用函数printnumber; printf("\n%d的逆序输出为:",p); reverse01(p); //调用函数reverse01; return 0;
} //定义函数number,求出输入整数的位数
int number(int p)
{ int count = 0; //count用来累计p除以10的整数商大于0的次数,即该整数的位数; while (p > 0) { p /= 10; count++; } return count;
} //定义printnumber函数,求出输入整数的每一位数字
void printnumber(int p)
{ int temp; while (p > 0) { temp = p % 10; //temp用来存放p除以10的余数,即该整数的最低位; p /= 10; printf("%d ", temp); }
} //定义reverse函数,将输入的整数逆序输出
void reverse01(int p)
{ while (p > 0) { printf("%d", p % 10); //p%10的作用同上一个函数中的temp; p /= 10; }
}
- 企业根据利润发放奖金。利润I低于或等于100000元的,奖金按10%提成;利润高于100000元、低于200000元(100000<I<=200000)时,低于100000元的部分按10%提成,高于100000元的部分按7.5%提成;200000<I<=400000时,低于200000元的部分仍按上述办法提成(下同),高于200000元的部分按5%提成;400000<I<=600000时,高于400000元的部分按3%提成;600000<I<=1000000时,高于600000元的部分按1.5%提成;I>1000000时,高于1000000元的部分按1%提成。编程时输入当月利润I,求应发奖金总数。
要求:
(1) 用if语句编程序
(2) 用switch语句编程序
//author:祁山何小喵
//time:2020.04.12
//task:输入当月利润,分别用if、switch语句求出应发奖金总数
#include<stdio.h>
void bonus01(float I); //声明bonus01函数,无返回值
void bonus02(float I); //声明bonus02函数,无返回值
int main() //主函数
{ float I; printf("请输入当月利润(单位:元):"); scanf_s("%f", &I); printf("(if语句)应发奖金总数为"); bonus01(I); //调用bonus01函数 printf("\n(switch语句)应发奖金总数为"); bonus02(I); //调用bonus02函数 return 0;
} //定义bonus01函数,输入当月利润,用if语句,求出应发奖金总数
void bonus01(float I)
{ float p; //p为奖金总数 if (I <= 100000) { p = I * 0.1; } else if (100000 < I && I <= 200000) { p = 100000 * 0.1 + (I - 100000) * 0.075; } else if (200000 < I && I <= 400000) { p = 100000 * 0.1 + 100000 * 0.075 + (I - 200000) * 0.05; } else if (400000 < I && I <= 600000) { p = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (I - 400000) * 0.03; } else if (600000 < I && I <= 1000000) { p = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (I - 600000) * 0.015; } else if (I > 1000000) { p = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (I - 1000000) * 0.01; } printf("%.2f元", p); //输出奖金总数,保留两位小数
} //定义bonus02函数,输入当月利润,用switch语句,求出应发奖金总数
void bonus02(float I)
{ float p; //p为奖金总数 int c; //c为 I/100000的整数商,用来做case后的常量 if (I > 1000000) c = 11; else c = I / 100000; switch (c) { case 0: p = I * 0.1; break; case 1: p = 100000 * 0.1 + (I - 100000) * 0.075; break; case 2: case 3: p = 100000 * 0.1 + 100000 * 0.075 + (I - 200000) * 0.05; break; case 4: case 5: p = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (I - 400000) * 0.03; break; case 6: case 7: case 8: case 9: p = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (I - 600000) * 0.015; break; case 10: case 11: p = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (I - 1000000) * 0.01; break; } printf("%.2f元", p); //输出奖金总数,保留两位小数
}
- 求 ∑ n = 1 20 n ! \displaystyle\sum_{n=1}^{20} n! n=1∑20n!(即求 1 ! + 2 ! + 3 ! + . . . + 20 ! 1!+2!+3!+...+20! 1!+2!+3!+...+20! )
//author:祁山何小喵
//time:2020.04.23
//task:求1-20的阶乘之和 /* 20!数据太大,int类型存储不下,所以用long long int类型,
long long int是C99标准, 为64位, 8字节长度
*/ #include<stdio.h>
int main()
{ long long int i, h = 1, s = 0; //h=0!=1; for (i = 1; i <= 20; i++) { h *= i; s += h; } printf("%I64d\n", s); //long long int的输出; return 0;
}
- 输出所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一位水仙花数,因为 153 = 1 3 + 5 3 + 3 3 153=1^3+5^3+3^3 153=13+53+33.
//author:祁山何小喵
//time:2020.04.23
//task:求出所有水仙花数
#include<stdio.h>
int main()
{ int i, x, y, z; for (i = 100; i < 1000; i++) { x = i % 10; //个位 y = i / 10 % 10; //十位 z = i / 100 % 10; //百位 if (i == (x * x * x + y * y * y + z * z * z)) printf("%d\n", i); } return 0;
}
7.有一个分数序列
2 1 , 3 2 , 5 3 , 8 5 , 13 8 , 21 13 , . . . \frac{2}{1},\frac{3}{2},\frac{5}{3},\frac{8}{5},\frac{13}{8},\frac{21}{13},... 12,23,35,58,813,1321,...
求出这个数列的前20项之和.
1. //author:祁山何小喵
//time:2020.04.23
//task:求一数列的前20项和
#include <stdio.h>
#define n 20 //求解项数
int main()
{ int i; //循环变量 double a = 2, b = 1; //a,b分别为某项的分子、分母 double sum=0; double temp; //临时变量 for (i = 1; i <= n; i++) { sum += a / b; temp = a; //记录前一项分子 a = a + b; //前一项分子与分母之和为后一项分子 b = temp; //前一项分子为后一项分母 } printf("前%d项之和为:sum=%10.8f\n", n, sum); return 0;
}
- 一个球从100m高度落下,每次落地后反跳回原高度的一半,再落下,再反弹。求它在第10次落地时,共经过多少米,第10次反弹多高
//author:祁山何小喵
//time:2020.04.23
//task:求小球第10次落地经过的路程以及反弹起的高度
#include<stdio.h>
float length(float h, float s); //函数length的声明,返回值类型为float
float height(float h); //函数height的声明,返回值类型为float
int main() //主函数
{ float h = 100.0, s = 0.0; //起始高度h,经过的路程s printf("第10次落地时,共经过%f米\n", length(h, s)); //函数length的调用及输出 printf("第10次反弹%f米\n", height(h)); //函数height的调用及输出 return 0;
} //自定义函数length,height落地经过的总路程
float length(float h, float s)
{ s = h; for (int i = 2; i <= 10; i++) { h /= 2; s += 2 * h; } return s;
} //自定义函数height,求小球第10次反弹起的高度
float height(float h)
{ for (int i = 1; i <= 10; i++) { h /= 2; } return h;
}
- 写两个函数,分别求两个整数的最大公约数和最小公倍数。在主函数中输入两个整数,输出结果
//author:祁山何小喵
//time:2020.05.30
//task:编写两个函数,输入两个整数,输出其最大公约数和最小公倍数
#include<stdio.h>
int gcd(int a, int b); //函数gcd的声明
int lcm(int a, int b); //函数lcm的声明
int main()
{ int a, b; printf("请输入两个整数:"); scanf("%d,%d", &a, &b); printf("%d和%d的最大公约数是:%d\n", a, b, gcd(a,b)); printf("%d和%d的最小公倍数是:%d\n", a, b, lcm(a,b)); return 0;
} //定义函数gcd,求两个整数的最大公约数,算法为辗转相除法;
int gcd(int a, int b)
{ int x, y, c; x = a; y = b; while (b != 0) { c = a % b; a = b; b = c; } return a;
} //定义函数lcm,求两个整数的最小公倍数,最小公倍数=a*b/最大公约数
int lcm(int a, int b)
{ int x, y, c; x = a; y = b; while (b != 0) { c = a % b; a = b; b = c; } return (x * y / a);
}
- 写一个函数,使输入的一个字符串按反序存放。在主函数中输入字符串、输出结果
//author:祁山何小喵
//time:2020.05.30
//task:编写一个函数,反序输出字符串
#include <stdio.h>
#include <string.h>
void reverse(char a[]); //声明reverse函数
int main()
{ char str[100]; printf("请输入一个字符串:\n"); gets_s(str); //输入一个字符串 reverse(str); //调用reverse函数 printf("反序后的字符串为:\n"); puts(str); //输出反序后的字符串 return 0;
}
//定义reverse函数
void reverse(char a[])
{ int i, j, n; char t; n = strlen(a); for (i = 0; i < n / 2; i++) { t = a[i]; a[i] = a[n-i-1]; a[n-i-1] = t; }
}
- 写一个函数,用“起泡法”对输入的10个字符按由小到大的顺序排序。在主函数中输入字符、输出结果。
//author:祁山何小喵
//time:2020.05.30
//task:编写一个函数,将输入的10个字符从小到大排序输出
#include<stdio.h>
#include<string.h>
void sort(char s[]); //声明sort函数
int main()
{ char s[11]; printf("请输入要比较的10个字符:\n"); gets_s(s); //输入一个字符串到字符数组s[] sort(s); //调用sort函数 printf("从小到大排序为:\n"); puts(s); //输出s[]中的字符串 return 0;
} //定义sort函数,用“气泡法”对字符从小到大排序
void sort(char s[])
{ int i, j; char t; for (i = 0; i < 9; i++) { for (j = 0; j < 9 - i; j++) { if (s[j] > s[j + 1]) { t = s[j]; s[j] = s[j + 1]; s[j + 1] = t; } } }
}
C语言实验题目[01]相关推荐
- C语言实验题目及其解答
实验一 1.有以下C语言程序,功能为输入圆的半径,求出圆周长和圆面积.采用类的形式来改写该程序.(要求半径的默认初值为0) #include <iostream.h> const floa ...
- c语言程序设计实践课选题,c语言程序设计实践实验题目
c语言程序设计实践实验题目 绥化学院程序设计实践实验报告范例 参考1实验题目:循环结构程序设计实验目的:1.熟悉 VC++6.0 的运行环境,掌握 C 程序的执行方法:2.掌握三种基本数据类型.部分运 ...
- C语言程序设计实践题,2020年C语言程序设计实践实验题目.doc
C语言程序设计实践实验题目 绥化学院程序设计实践实验报告范例 参考 实验题目循环结构程序设计 实验目的 熟悉VC++的运行环境,掌握C程序的执行方法: 掌握三种基本数据类型.部分运算符号和常用函数: ...
- c语言采用解释方式6,C语言程序设计题目及解答-01.doc
C语言程序设计题目及解答-01.doc 一.判断题20分1. 计算机是信息处理的工具,任何信息必须被转换成二进制形式数据后才能由计算机进行处理.存储和传输.2分 2. C语言采用解释方式将源程序转换为 ...
- 红牛农场java代码_实验题目 Java语言概述.doc
实验题目 Java语言概述 实验一 Java语言概述 [实验目的] 1.掌握开发Java应用程序的三个步骤:编写源文件.编译源文件和运行应用程序. 2.熟悉Java应用程序的基本结构,并能联合编译应用 ...
- c语言水打印仙花数程序,最新C语言程序设计常见上机实验题目汇总(24页)-原创力文档...
C C语言程序设计常见上机实验题目汇总 PAGE PAGE # / 229 / 22 C语言常见的上机实验题目汇总 目录 1.计算矩形的周长与面积 Ft tBEt. C ? "ITT订舁拒形 ...
- 素数c语言程序解题思路,C语言上机实验题目解题思路.doc
上机实验题目解题思路 目录 第十三次实验:指针之一2 2453:步骤:2 2454:步骤:2 3575:步骤:方法同24543 3576:步骤:3 3580:步骤:3 3582:步骤:3 第十二次实验 ...
- c语言实验操作期末考试怎么把试题保存,c语言上机操作练习题_相关文章专题_写写帮文库...
时间:2019-05-12 16:51:22 作者:admin 上机练习题 1. 输入一个不超过五位的正整数,输出其逆数.例如输入12345,输出应为54321. /* Note:Your choic ...
- R语言实验报告【全集】
若对你有帮助,记得点赞.关注我哦! 7个实验:R语言环境安装.R语言包的安装.创建和使用R语言数据集.数据的导入导出.R语言数据的清洗.高级数据管理.基本统计分析和函数与包实验(←其实是两个实验)内容 ...
最新文章
- Android Handler 异步消息处理机制的妙用 创建强大的图片载入类
- MyBatis 如何兼容所有日志框架?
- multisim页面不够大_观赏变出售 捡漏钱不够
- 中国城市园林绿化行业十四五规划方向与投资前景建议报告2022版
- python项目实战干货_干货 | 这4个Python实战项目,让你瞬间读懂Python!
- pycharm如何汉化
- react不同环境不同配置angular_前端问题集:vue配置环境-给不同的环境配不同的打包命令...
- python程序设计的基本步骤_Python程序设计课程教与学(54、72、80学时教学大纲)...
- k8s源码Client-go中Reflector解析
- 拼多多、微博等在新一轮经济变化中将做出更大贡献
- 订单可视化(智能制造、流程再造、企业信息化) 第七篇 经营班子掌舵,业务与开发分离,走向成功必备条件...
- c编程技巧——获取可用的处理器(CPU)核数
- [mock]10月4日
- 冯诺依曼提出的三个计算机改进理论,冯诺依曼体系结构的计算机..docx
- pc java版什么区别_Java主要有三种版本:用于工作站、PC标准版的是( )。
- WordPress仿站实战教程
- c语言点阵字库12*16,用C语言编程16点阵字库
- 健全营销体制是打造营销生态系统的命脉
- 斯嘉丽约翰逊60张pdf什么时间的?_巩俐入围威尼斯电影节的作品叫什么?巩俐为什么被称为女皇?...
- linux vdi虚拟化,VDI桌面虚拟化解决方案
热门文章
- 题目4:常微分方程初值问题
- 一个完整的MSI包的配置文件XML的内容形式和查看方法ORCA
- matlab如何将mat转为wav,Matlab的wav文件转为mat文件源程序
- SQL 修改列的长度
- 备忘4:爬取微博热门信息以及所有热门微博转发的用户信息
- 2017年 团体程序设计天梯赛——题解集
- Unity中手动压缩图片 修改图片分辨率
- android微信wcdb,[资讯] 微信正式开源移动端数据库组件WCDB!
- nb-iot_IoT项目:Arduino使用Parse.com的Temboo向Android发送推送通知
- 配置数据源(DataSource)