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)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;
}
  1. 输入一个不多于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;  }
}
  1. 企业根据利润发放奖金。利润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);             //输出奖金总数,保留两位小数
}
  1. 求 ∑ n = 1 20 n ! \displaystyle\sum_{n=1}^{20} n! n=1∑20​n!(即求 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;
}
  1. 输出所有的“水仙花数”。所谓“水仙花数”是指一个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;
}
  1. 一个球从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;
}
  1. 写两个函数,分别求两个整数的最大公约数和最小公倍数。在主函数中输入两个整数,输出结果
//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);
}
  1. 写一个函数,使输入的一个字符串按反序存放。在主函数中输入字符串、输出结果
//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;  }
}
  1. 写一个函数,用“起泡法”对输入的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]相关推荐

  1. C语言实验题目及其解答

    实验一 1.有以下C语言程序,功能为输入圆的半径,求出圆周长和圆面积.采用类的形式来改写该程序.(要求半径的默认初值为0) #include <iostream.h> const floa ...

  2. c语言程序设计实践课选题,c语言程序设计实践实验题目

    c语言程序设计实践实验题目 绥化学院程序设计实践实验报告范例 参考1实验题目:循环结构程序设计实验目的:1.熟悉 VC++6.0 的运行环境,掌握 C 程序的执行方法:2.掌握三种基本数据类型.部分运 ...

  3. C语言程序设计实践题,2020年C语言程序设计实践实验题目.doc

    C语言程序设计实践实验题目 绥化学院程序设计实践实验报告范例 参考 实验题目循环结构程序设计 实验目的 熟悉VC++的运行环境,掌握C程序的执行方法: 掌握三种基本数据类型.部分运算符号和常用函数: ...

  4. c语言采用解释方式6,C语言程序设计题目及解答-01.doc

    C语言程序设计题目及解答-01.doc 一.判断题20分1. 计算机是信息处理的工具,任何信息必须被转换成二进制形式数据后才能由计算机进行处理.存储和传输.2分 2. C语言采用解释方式将源程序转换为 ...

  5. 红牛农场java代码_实验题目 Java语言概述.doc

    实验题目 Java语言概述 实验一 Java语言概述 [实验目的] 1.掌握开发Java应用程序的三个步骤:编写源文件.编译源文件和运行应用程序. 2.熟悉Java应用程序的基本结构,并能联合编译应用 ...

  6. c语言水打印仙花数程序,最新C语言程序设计常见上机实验题目汇总(24页)-原创力文档...

    C C语言程序设计常见上机实验题目汇总 PAGE PAGE # / 229 / 22 C语言常见的上机实验题目汇总 目录 1.计算矩形的周长与面积 Ft tBEt. C ? "ITT订舁拒形 ...

  7. 素数c语言程序解题思路,C语言上机实验题目解题思路.doc

    上机实验题目解题思路 目录 第十三次实验:指针之一2 2453:步骤:2 2454:步骤:2 3575:步骤:方法同24543 3576:步骤:3 3580:步骤:3 3582:步骤:3 第十二次实验 ...

  8. c语言实验操作期末考试怎么把试题保存,c语言上机操作练习题_相关文章专题_写写帮文库...

    时间:2019-05-12 16:51:22 作者:admin 上机练习题 1. 输入一个不超过五位的正整数,输出其逆数.例如输入12345,输出应为54321. /* Note:Your choic ...

  9. R语言实验报告【全集】

    若对你有帮助,记得点赞.关注我哦! 7个实验:R语言环境安装.R语言包的安装.创建和使用R语言数据集.数据的导入导出.R语言数据的清洗.高级数据管理.基本统计分析和函数与包实验(←其实是两个实验)内容 ...

最新文章

  1. Android Handler 异步消息处理机制的妙用 创建强大的图片载入类
  2. MyBatis 如何兼容所有日志框架?
  3. multisim页面不够大_观赏变出售 捡漏钱不够
  4. 中国城市园林绿化行业十四五规划方向与投资前景建议报告2022版
  5. python项目实战干货_干货 | 这4个Python实战项目,让你瞬间读懂Python!
  6. pycharm如何汉化
  7. react不同环境不同配置angular_前端问题集:vue配置环境-给不同的环境配不同的打包命令...
  8. python程序设计的基本步骤_Python程序设计课程教与学(54、72、80学时教学大纲)...
  9. k8s源码Client-go中Reflector解析
  10. 拼多多、微博等在新一轮经济变化中将做出更大贡献
  11. 订单可视化(智能制造、流程再造、企业信息化) 第七篇 经营班子掌舵,业务与开发分离,走向成功必备条件...
  12. c编程技巧——获取可用的处理器(CPU)核数
  13. [mock]10月4日
  14. 冯诺依曼提出的三个计算机改进理论,冯诺依曼体系结构的计算机..docx
  15. pc java版什么区别_Java主要有三种版本:用于工作站、PC标准版的是( )。
  16. WordPress仿站实战教程
  17. c语言点阵字库12*16,用C语言编程16点阵字库
  18. 健全营销体制是打造营销生态系统的命脉
  19. 斯嘉丽约翰逊60张pdf什么时间的?_巩俐入围威尼斯电影节的作品叫什么?巩俐为什么被称为女皇?...
  20. linux vdi虚拟化,VDI桌面虚拟化解决方案

热门文章

  1. 题目4:常微分方程初值问题
  2. 一个完整的MSI包的配置文件XML的内容形式和查看方法ORCA
  3. matlab如何将mat转为wav,Matlab的wav文件转为mat文件源程序
  4. SQL 修改列的长度
  5. 备忘4:爬取微博热门信息以及所有热门微博转发的用户信息
  6. 2017年 团体程序设计天梯赛——题解集
  7. Unity中手动压缩图片 修改图片分辨率
  8. android微信wcdb,[资讯] 微信正式开源移动端数据库组件WCDB!
  9. nb-iot_IoT项目:Arduino使用Parse.com的Temboo向Android发送推送通知
  10. 配置数据源(DataSource)