Hello!彦祖们,俺又回来了!!!,继续给大家分享 《C语言从不挂科到高绩点》课程,前面课程中给大家讲解了一些常规的知识点,那么本次课,我们一起来练习挑战一下!!
本套课程将会从0基础讲解C语言核心技术,适合人群:
- 大学中开设了C语言课程的同学
- 想要专升本或者考研的同学
- 想要考计算机等级证书的同学
- 想要从事C/C++/嵌入式开发的同学
================点个关注吧================
=========================================
f1.1 温度转换器
【需求】
有人用温度计测量出用华氏法表示的温度f(如69°F)
今要求把它转换为以摄氏法表示的温度c(如20°C),转换公式为:f=c*9/5+32。
要求:温度保留小数点后2位
【参考代码】
/**
【需求】
有人用温度计测量出用华氏法表示的温度f(如69°F)
今要求把它转换为以摄氏法表示的温度c(如20°C),转换公式为:f=c*9/5+32。
要求:温度保留小数点后2位
**/
#include <stdio.h>
int main(){
//1. 键盘输入一个华氏温度
// 1) 定义变量,用来接收华氏温度
float F = 0;
// 2) 提示用户输入温度
printf("请输入华氏温度:");
// 3) 将输入的温度,扫描到变量中
scanf("%f",&F);
//2. 公式转换将华氏温度转换成摄氏温度
// f = c*9/5+32
// c = (f-32)*5/9 // 凡是用到/ ,要注意,如果左右两边都是整数 ,相除取整
float c = (F-32)*5/9;
printf("转换后的摄氏温度为:%.2f\n",c);
return 0;
}
f1.2 计算存款利息
【需求】
计算存款利息。有1000元,想存一年。有3种方法可选:
(1)活期,年利率为r1 0.36%
(2)一年期定期,年利率为r2 2.25%
(3)存两次半年定期,年利率为r3 1.98%
请分别计算出一年后的按3种方法所得到的本息和
【参考代码】
/**
【需求】
计算存款利息。有1000元,想存一年。有3种方法可选:
(1)活期,年利率为r1 0.36%
(2)一年期定期,年利率为r2 2.25%
(3)存两次半年定期,年利率为r3 1.98%
请分别计算出一年后的按3种方法所得到的本息和
本息和=本金+利息
**/
#include <stdio.h>
int main(){
// 本金
float money=1000;
// 第一种 方式的年利率
float r1=0.0036;
// 第二种方式的年利率
float r2 = 0.0225;
// 第三种方式的年利率
float r3 = 0.0198;
// 分别要算出3种方式的本金+利息的和
// 计算活期的本息和
float ret1 = money + money*r1;
// 计算第二种方式的本息和
float ret2 = money + money*r2;
// 计算第三种方式的本息和
float ret3 =money*(1+r3/2)*(1+r3/2);
printf("第一种情况:%.2f\n第二种情况:%.2f\n第三种情况:%.2f\n",ret1,ret2,ret3);
return 0;
}
f1.3 计算水中包含多少水分子
需求】
一个水分子的质量大约为 3.0*10^-23g,
1 夸脱水大约有 950g。
编写一个程序,给定一个夸脱数,然后显示这么多水中包含多少个水分子。
【参考代码】
/**
需求】
一个水分子的质量大约为 3.0*10^-23g,
1 夸脱水大约有 950g。
编写一个程序,给定一个夸脱数,然后显示这么多水中包含多少个水分子。
**/
#include <stdio.h>
#include <math.h>
int main(){
// 获取夸脱水数(手动输入)
// 1. 定义变量接收输入的夸脱水数
float water = 0;
// 2. 提示输入:
printf("请输入夸脱水数:");
// 3. 将夸脱水数扫描到变量中
scanf("%f",&water);
// 计算输入的夸脱水数,一共有多少克
float total = water*950;
// 用总重量除以水分子的重量求出水分子的数量
float count = total/(3.0e-23);
// pow(m,n); 表示求m的n次方
// 比如要求2的5次方:pow(2,5)
// 但是使用pow,需要导入<math.h>
float result = total/(3.0*pow(10,-23));
printf("%.1f夸脱水数有%f个水分子\n",water,count);
printf("%.1f夸脱水数有%f个水分子\n",water,result);
return 0;
}
特别注意:算 m 的 n 次方,可以使用 pow(m,n).但是使用之前需要 #include <math.h>.
f1.4 自由落体位移计算器
【需求】
该系统使用交互的方式计算自由落体运动中物体的位置。
用户从控制台输入自由落体的时间t, 系统计算经过时间t物体的自由落体位移。
计算结果保留一位小数并且输出到控制台。
注:自由落体位移公式为: s = 1/2 × g × t x t
其中: s (位移(m) t (时间(s) g (重力加速度(9.8m/s2)
例如:从控制台接收到的时间t为10s,那么位移s=1/2 × 9.8 × 10 × 10=490.0
系统交互过程 如图所示
【参考代码】
/**
【需求】
该系统使用交互的方式计算自由落体运动中物体的位置。
用户从控制台输入自由落体的时间t, 系统计算经过时间t物体的自由落体位移。
计算结果保留一位小数并且输出到控制台。
注:自由落体位移公式为: s = 1/2 × g × t x t
其中: s (位移(m) t (时间(s) g (重力加速度(9.8m/s2)
例如:从控制台接收到的时间t为10s,那么位移s=1/2 × 9.8 × 10 × 10=490.0
**/
#include <stdio.h>
int main(){
//位移的计算公式:s = 1/2 × g × t x t
// 控制台输入时间
float t = 0;
printf("请输入时间:");
scanf("%f",&t);
// 计算位移
float s = 0.5*9.8*t*t;
printf("%f秒后,物体自由下落了%.1f米\n", t,s);
return 0;
}
f1.5 计算牛郎织女约会需要调用多少只喜鹊
1. 计算牛郎星到织女星的距离。
牛郎星到织女星的距离为16.4光年,如果一只喜鹊的长度是0.46米,
2. 计算一下牛郎织女真的要会面需要动用多少只喜鹊。
注:
光速:299792458米/秒
1光年=(1 * 365 * 24 * 60 * 60 * 光速 / 1000)公里
1公里=1千米
控制台输出信息如图所示:
【参考代码】
/***
1. 计算牛郎星到织女星的距离。
牛郎星到织女星的距离为16.4光年,如果一只喜鹊的长度是0.46米,
2. 计算一下牛郎织女真的要会面需要动用多少只喜鹊。
注:
光速:299792458米/秒
1光年=(1 * 365 * 24 * 60 * 60 * 光速 / 1000)公里
1公里=1千米
**/
#include <stdio.h>
int main(){
// 光年
double lightYear = 16.4;
// 光速
int lightspeed = 299792458;
// 算出距离
long distance = lightYear*365*24*60*60*lightspeed/1000;
printf("牛郎星到织女星的距离为:%ld公里\n",distance );
double xq = 0.46;// 单位米
// 计算喜鹊的数量
long num = distance*1000/xq;
printf("搭起鹊桥需要%ld只喜鹊\n",num);
return 0;
}
f1.6 随机加法题
【需求】
随机生成两个 10 以内的数字
控制台输出由这两个数字组成的加法题
控制台输入答案,判断回答是否正确,正确输出 1,错误输出 0
【参考代码】
/**
【需求】
随机生成两个 10 以内的数字
控制台输出由这两个数字组成的加法题
控制台输入答案,判断回答是否正确,正确输出 1,错误输出 0
**/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
// 随机生成两个 10 以内的数字--》随机数
// 1. 设置随机数种子
srand(time(0));
// 2. 生成两个指定范围的随机数
int num1 = rand()%10; // 每次调用rand()都会生成一个随机数
int num2 = rand()%10;
//控制台输出由这两个数字组成的加法题
// 1. 将前一步中生成的两个拼接成加法表达式,输出
printf("%d+%d=?\n",num1,num2);
//控制台输入答案,判断回答是否正确,正确输出 1,错误输出 0
// 1. 键盘扫描器,扫描输入的答案
int guess = 0;
scanf("%d",&guess);
// 2. 输入的答案和正确答案进行比较
// 三目运算符: 输入答案==正确答案?1:0;
// 正确答案
int result = num1+num2;
// 比较输入的答案和正确答案
//result = result==guess?1:0;
printf("回答的情况:%d\n", result==guess);
return 0;
}
f1.7 水费问题
编写计算客户水费的程序,水费包括 35 元的基本水费,和每吨 2.3 元的用量水费
用量水费从最近水表度数(以吨为单位)和前一季度末的水表度数计算得到。
如果客户的未缴滞纳金额大于 0,还要交 10 元的滞纳金。
水费 = 基本水费+用量水费+未缴纳余额+可能的滞纳金
控制台输入:上季度水表度数、当前季度水表度数、至今未缴纳的余额
控制台输出:当前应缴的总水费金额
【参考代码】
/**
编写计算客户水费的程序,水费包括 35 元的基本水费,和每吨 2.3 元的用量水费
用量水费从最近水表度数(以吨为单位)和前一季度末的水表度数计算得到。
如果客户的未缴滞纳金额大于 0,还要交 10 元的滞纳金。
水费 = 基本水费+用量水费+未缴纳余额+可能的滞纳金
控制台输入:上季度水表度数、当前季度水表度数、至今未缴纳的余额
控制台输出:当前应缴的总水费金额
**/
#include <stdio.h>
int main(){
//控制台输入:上季度水表度数、当前季度水表度数、至今未缴纳的余额
// 1. 使用键盘扫描,输入这三个数据
// 上一季度的水表度数
double prev = 0;
// 当前的水表度数
double current = 0;
// 未缴纳的余额
double nopay = 0;
printf("请输入上一季度的水表度数:");
scanf("%lf",&prev);
printf("请输入当前季度的水表度数:");
scanf("%lf",¤t);
printf("请输入未缴纳的余额:");
scanf("%lf",&nopay);
//控制台输出:当前应缴的总水费金额
//水费 = 基本水费+用量水费+未缴纳余额+可能的滞纳金
// 基本水费
double base = 35;
// 用量水费=(当前季度度数-前一季度度数)*2.3
double use = (current-prev)*2.3;
// 可能的滞纳金
double znj = nopay>0?10:0;
// 总水费
double money = base+use+nopay+znj;
printf("当前应缴纳的水费为:%.2lf\n",money );
return 0;
}
----------------------------------------------------------------------
分享不易,耗时耗力,喜欢的同学给个关注和赞吧
承接毕设指导,技术答疑,学习路上想要找私人教练的同学可以私信我
更多学习资料,公众号:墨轩学习网,B站:墨轩大楼
----------------------------------------------------------------------
另有下图需求的也记得私信我哟,专业班子