前言

Hello!小伙伴!
非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~
 
自我介绍 ଘ(੭ˊᵕˋ)੭
昵称:海轰
标签:程序猿|C++选手|学生
简介:因C语言结识编程,随后转入计算机专业,有幸拿过国奖、省奖等,已保研。目前正在学习C++/Linux(真的真的太难了~)
学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语!

7-1 厘米换算英尺英寸 (15 分)

题目

如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。

输入格式:

输入在一行中给出1个正整数,单位是厘米。

输出格式:

在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。

输入样例:

170

输出样例:

5 6

解答

难点不在编程上,在于题目的理解!

(foot+inch/12)×0.3048
这个公式的意思是:
因为 一英尺=12英寸
inch/12 的意思是 转化为英尺
比如6英寸 需要先转换为英寸 6/12=0.5英尺
然后 通过乘以0.3048得到单位米

简单的理解:
英尺与米的关系是:
foot*0.3088=m
如果有inch存在 先转换为foot就好了
(如果之间给出这个公式就不会混淆了)

举例说明:
如果现在一个东西的长度是5英尺+6英寸
首先转化为英尺
6inch=6/12foot=0.5foot
一共是:5+0.5 foot = 5.5foot
转换为米:5.5*0.3048约等于1.67
转换为cm:差不多就是170(根据题目就是这样 没办法)

#include <iostream>
using namespace std;
int main()
{// 输入数 单位cmdouble cm;// foot:英尺 inch:英寸int foot, inch;cin >> cm;// 转行为mcm /= 100.0;// 计算总英寸数inch = cm / 0.3048 * 12;// 求英尺数foot = inch / 12;// 求英寸数inch = inch - foot * 12;cout << foot << " " << inch << endl;return 0;
}

7-2 然后是几点 (15 分)

题目

有时候人们用四位数字表示一个时间,比如 1106 表示 11 点零 6 分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。

读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,例如 5 点 30 分表示为 5300 点 30 分表示为 030。注意,第二个数字表示的分钟数可能超过 60,也可能是负数。

输入格式:

输入在一行中给出 2 个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,没有前导的零,即 5 点 30 分表示为 530;0 点 30 分表示为 030。流逝的分钟数可能超过 60,也可能是负数。

输出格式:

输出四位数字表示的终止时间,当小时为个位数时,没有前导的零。题目保证起始时间和终止时间在同一天内。

输入样例:

1120 110

输出样例:

1310

解答

方法:

  • 提取小时、分钟数,通过除法、余数就可以
  • 转换为分钟后与流逝时间进行运算
  • 再转换为4位数 小时*100+分钟数即可

特别注意:

030这种状况
比如输入030 0
不做特殊处理的话
输出结果是30(没有前导0)
所以最后加个判断即可

#include <iostream>
using namespace std;
int main()
{   // 起始时间int start;// 流逝时间int expend;cin >> start >> expend;// 起始时间的小时数 int hour;// 起始时间的分钟数int minute;// 转换 小时取前两位 分钟取后两位hour = start / 100;minute = start % 100;// 转换为分钟数int minutes = hour * 60 + minute;// 与流逝时间运算minutes += expend;int ans = 0;// 计算之后的时间 小时*100+分钟ans = minutes / 60 * 100 + minutes % 60;// 特殊判断// 030这种 0时还是需要输出0的!if (ans / 100){cout << ans << endl;}else{cout << "0" << ans << endl;}return 0;
}

7-3 逆序的三位数 (10 分)

题目

程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。

输入格式:

每个测试是一个3位的正整数。

输出格式:

输出按位逆序的数。

输入样例:

123

输出样例:

321

解答

#include <iostream>
using namespace std;
int main()
{int num;int ans = 0;cin >> num;while (num){ans = ans * 10 + num % 10;num /= 10;}cout << ans << endl;return 0;
}

7-4 BCD解密 (10 分)

题目

BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以如果一个BCD数的十六进制是0x12,它表达的就是十进制的12。但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了。于是BCD的0x12被输出成了十进制的18了!

现在,你的程序要读入这个错误的十进制数,然后输出正确的十进制数。提示:你可以把18转换回0x12,然后再转换回12。

输入格式:

输入在一行中给出一个[0, 153]范围内的正整数,保证能转换回有效的BCD数,也就是说这个整数转换成十六进制时不会出现A-F的数字。

输出格式:

输出对应的十进制数。

输入样例:

18

输出样例:

12

解答

简单的理解就是将一个十六进制转换为10进制

注意题目:一个[0, 153]范围内的正整数 对应十进制其实就只有2位数

#include <iostream>
using namespace std;
int main()
{int num;cin >> num;int ans;ans = num / 16 * 10 + num % 16;cout << ans << endl;return 0;
}

7-5 表格输出 (5 分)

题目

本题要求编写程序,按照规定格式输出表格。

输入格式:

本题目没有输入。

输出格式:
要求严格按照给出的格式输出下列表格:

解答

#include <iostream>
using namespace std;
int main()
{cout<<"------------------------------------"<<endl;cout<<"Province      Area(km2)   Pop.(10K)"<<endl;cout<<"------------------------------------"<<endl;cout<<"Anhui         139600.00   6461.00"<<endl;cout<<"Beijing        16410.54   1180.70"<<endl;cout<<"Chongqing      82400.00   3144.23"<<endl;cout<<"Shanghai        6340.50   1360.26"<<endl;cout<<"Zhejiang      101800.00   4894.00"<<endl;cout<<"------------------------------------"<<endl;return 0;
}

7-6 混合类型数据格式化输入 (5 分)

题目

本题要求编写程序,顺序读入浮点数1、整数、字符、浮点数2,再按照字符、整数、浮点数1、浮点数2的顺序输出。

输入格式:

输入在一行中顺序给出浮点数1、整数、字符、浮点数2,其间以1个空格分隔。

输出格式:

在一行中按照字符、整数、浮点数1、浮点数2的顺序输出,其中浮点数保留小数点后2位。

输入样例:

2.12 88 c 4.7

输出样例:

c 88 2.12 4.70

解答

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{double num1;int num2;char num3;double num4;cin >> num1 >> num2 >> num3 >> num4;cout << num3 << " " << num2 << " ";cout << fixed << setprecision(2) << num1 << " ";cout << fixed << setprecision(2) << num4 << endl;return 0;
}

7-7 12-24小时制 (15 分)

题目

编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。

输入格式:

输入在一行中给出带有中间的:符号(半角的冒号)的24小时制的时间,如12:34表示12点34分。当小时或分钟数小于10时,均没有前导的零,如5:6表示5点零6分。
提示:在scanf的格式字符串中加入:,让scanf来处理这个冒号。

输出格式:

在一行中输出这个时间对应的12小时制的时间,数字部分格式与输入的相同,然后跟上空格,再跟上表示上午的字符串AM或表示下午的字符串PM。如5:6 PM表示下午5点零6分。注意,在英文的习惯中,中午12点被认为是下午,所以24小时制的12:00就是12小时制的12:0 PM;而0点被认为是第二天的时间,所以是0:0 AM。

输入样例:

21:11

输出样例:

9:11 PM

解答

#include <iostream>
using namespace std;
int main()
{int hour;int minute;char c;cin >> hour >> c >> minute;string s = " AM";if (hour > 11){s = " PM";}if (hour > 12){hour %= 12;}cout << hour << ":" << minute << s;return 0;
}

7-8 超速判断 (10 分)

题目

模拟交通警察的雷达测速仪。输入汽车速度,如果速度超出60 mph,则显示“Speeding”,否则显示“OK”。

输入格式:

输入在一行中给出1个不超过500的非负整数,即雷达测到的车速。

输出格式:

在一行中输出测速仪显示结果,格式为:Speed: V - S,其中V是车速,S或者是Speeding、或者是OK。

输入样例1:

40

输出样例1:

Speed: 40 - OK

输入样例2:

75

输出样例2:

Speed: 75 - Speeding

解答

#include <iostream>
using namespace std;
int main()
{int speed;cin >> speed;if (speed > 60){cout << "Speed: " << speed << " - Speeding" << endl;}else{cout << "Speed: " << speed << " - OK" << endl;}return 0;
}

7-9 用天平找小球 (10 分)

题目

三个球A、B、C,大小形状相同且其中有一个球与其他球重量不同。要求找出这个不一样的球。

输入格式:

输入在一行中给出3个正整数,顺序对应球A、B、C的重量。

输出格式:

在一行中输出唯一的那个不一样的球。

输入样例:

1 1 2

输出样例:

C

解答

核心:异或运算

异或记住相同两个数亦或为0

因为只有三个数a b c
加上其中两个相同
比如a=1 b=2 c=1
那么 abc=121=2^0=2
0异或任何数等于这个数

#include <iostream>
using namespace std;
int main()
{int a, b, c;cin >> a >> b >> c;int ans = a ^ b ^ c;if (ans == a){cout << "A" << endl;}else if (ans == b){cout << "B" << endl;}else{cout << "C" << endl;}return 0;
}

7-10 计算工资 (15 分)

题目

某公司员工的工资计算方法如下:一周内工作时间不超过40小时,按正常工作时间计酬;超出40小时的工作时间部分,按正常工作时间报酬的1.5倍计酬。员工按进公司时间分为新职工和老职工,进公司不少于5年的员工为老职工,5年以下的为新职工。新职工的正常工资为30元/小时,老职工的正常工资为50元/小时。请按该计酬方式计算员工的工资。

输入格式:

输入在一行中给出2个正整数,分别为某员工入职年数和周工作时间,其间以空格分隔。

输出格式:

在一行输出该员工的周薪,精确到小数点后2位。

输入样例1:

5 40

输出样例1:

2000.00

输入样例2:

3 50

输出样例2:

1650.00

解答

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{int years;int hours;cin >> years >> hours;int wage;if (years >= 5){wage = 50;}else{wage = 30;}double wages;if (hours <= 40){wages = hours * wage;}else{wages = 40 * wage + (hours - 40) * wage * 1.5;}cout << fixed << setprecision(2) << wages << endl;return 0;
}

结语

文章仅作为学习笔记,记录从0到1的一个过程

希望对您有所帮助,如有错误欢迎小伙伴指正~

我是 海轰ଘ(੭ˊᵕˋ)੭

如果您觉得写得可以的话,请点个赞吧

谢谢支持❤️

C++初学者必练基础编程题【第一期】相关推荐

  1. 判断三角形java代码_java基础编程题之异常处理

    以下是刚开始学习java的基础编程题,每天持续更新java每个知识点的题目,持续练习,不断提高java基本功,培养编程能力.今天的练习的十八题是java的异常处理的使用. 1.检测年龄不能为负数和大于 ...

  2. 实体类 接口_Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口)

    原文:Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口, 视频讲解) 这里分享三道编程题, 下面是我个人的视频讲解 二维数组, 五子棋游戏, 实体类和接口_哔哩哔哩 (゜-゜)つロ ...

  3. 华为机试题python版节选(基础编程题)

    前言 自学python之后,可以借助这些企业招聘时的机考题目来锤炼一下实践能力.. 每道题含要点解析,是按照自己理解梳理的,多个答案的是结合自己的答案+网上的答案,不一定很严谨,请读者自行在编译器中调 ...

  4. PTA-然后是几点(基础编程题)

    PTA-然后是几点(基础编程题) 有时候人们用四位数字表示一个时间,比如1106表示11点零6分.现在,你的程序要根据起始时间和流逝的时间计算出终止时间. 读入两个数字,第一个数字以这样的四位数字表示 ...

  5. C++基础编程题(27)输入一个数字,为其高,一个符号*,输出该符号组成的平行四边形形状

    C++基础编程题(27)输入一个数字,为其高,一个符号*,输出该符号组成的平行四边形形状

  6. 基础编程题(1~5)

    基础编程题(1~5) 01.斐波那契数列 1.1.程序分析 1.2.代码实现 02.判断素数(Prime number) 2.1.程序分析 2.2.代码实现 2.3.科普小课堂:素数 2.3.1.素数 ...

  7. c语言基础编程题文库,C语言基础编程题资料.doc

    C语言基础编程题资料.doc |5-1 求幂之和 15 分本题要求编写程序,计算 sum21 22 23 cdots 2nsum2122232n.可以调用 pow 函数求幂.输入格式输入在一行中给出正 ...

  8. C语言基础编程题——喝水问题,译码问题

    C语言基础编程题--喝水问题,译码问题 有这样一道智力题:"某商店规定:三个空汽水瓶可以换一瓶汽水.小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?"答案是5瓶,方法如下:先用9 ...

  9. 有n个人围成一圈 顺序排号 java_java基础编程题有n个人围成一圈顺序排号

    下面给大家带来的这道编程题可以算得上是一道非常基础的java编程题目,刚刚开始接触java编程的小伙伴一起来看看具体的题目以及解题方法吧. 下面是具体的题目,题目还是非常的简单的. 一.题目 有n个人 ...

最新文章

  1. Swift中一个类中的枚举(enum)类型的数据该如何实现序列化(NSCoder)
  2. sip-selvet 环境搭建
  3. chromedriver链接
  4. Winform窗体中发送HTTP请求 手工发送HTTP请求主要是调用 System.Net的HttpWebResponse方法
  5. 【2015蓝桥杯省赛】C++ B组试题
  6. 我的老板给我推送了这篇文章,之后我成为了顶级码农!
  7. 字体的基础知识:中文字体的特征
  8. 【SpringBoot】@springbootapplication 注解讲解
  9. 【龙格库塔优化算法】基于龙格库塔优化算法求解单目标优化问题含Matlab源码
  10. 泡泡龙游戏c语言程序,《泡泡龙》发射技巧总结_图文攻略_高分攻略_百度攻略...
  11. 年中Flag挑战日榜:最终挑战王会花落谁家?
  12. PS学习_1-软件下载与破解
  13. .net Application.DoEvents()
  14. 友价源码怎么样主动提交链接给百度?
  15. 全国计算机等级报名12,全国计算机等级考试12月20日开始报名!注意事项请查收!...
  16. 智能绿化灌溉系统解决方案
  17. Matlab设置双y轴特性
  18. 蠕虫病毒疯狂传播如何预防
  19. 5分钟学会用requirejs
  20. Win10怎样设置日历事件提醒

热门文章

  1. HDU 6078 Wavel Sequence
  2. 03.【python基础二】if判断语句之if-else、elif、if嵌套
  3. 2022年国庆节水篇
  4. python re库 正则表达式
  5. 2021年塔式起重机司机复审考试及塔式起重机司机考试试题
  6. 这一年我都做了什么......
  7. Android图片缓存框架 - Fresco的GenericDraweeHierarchy (五)
  8. 8.openCV 裁剪图像
  9. ThreadPoolExecutor(一)——简介
  10. 专家调查显示:液晶电视坏眼超等离子电视