华为OD机试真题中涉及的编程知识点包括:
1. 货币转换功能实现:程序需要处理人民币(CNY)、美元(USD)、英镑(GBP)、港币(HKD)之间的价值转换,包括最大兑换和最小兑换两种方式。
2. 汇率处理:题目中给出了默认汇率1CNY=2HKD, 1USD=8CNY, 1GBP=2USD,需要根据这些汇率来计算各种货币的兑换结果。
3. 输入处理和校验:程序需要能够从输入中获取汇率和要转换的货币数量,同时还需要校验输入数据的合法性,例如输入数据是否为大于0的整数,货币类型是否正确,以及是否满足“最大兑换(MAX)”或“最小兑换(MIN)”的条件。
4. 字符串分割:由于输入数据是以字符串形式给出,并且不同数据之间用空格分隔,因此程序需要有分割字符串的功能,以便将输入的字符串分割成单独的数据。
5. 字符串拼接:将货币兑换的结果以特定格式拼接为字符串,并输出到控制台。
6. 循环和条件判断:在主函数中,程序需要能够循环读取多组输入数据,并且对每组数据进行判断和处理,输出正确或错误信息。
7. 常量定义和变量赋值:在主函数中,程序定义了几个常量来表示汇率,并在读取到合法输入后,根据输入的货币数量和汇率计算结果。
8. 函数使用:程序使用了Split()函数进行字符串分割,MaxExchange()和MinExchange()函数进行货币最大和最小兑换的计算,以及ParamValid()函数用于验证参数合法性。
9. 内存管理:在C++编程中,需要注意管理动态分配的内存资源,避免内存泄漏等问题。虽然示例代码中未提及,但在实际编程中应当注意。
10. 输入输出流处理:使用cin和cout进行输入输出的读取和打印。
11. 程序异常处理:对于输入格式不正确的数据,程序需要输出错误信息"ERROR",表明输入不符合要求。
12. 数据类型转换:在汇率计算中涉及到将输入的字符串转换为整型数值进行运算。
13. 字符串操作:对字符串进行截取和拼接,生成输出结果。
以上知识点展现了编程中对于算法逻辑、数据结构、输入输出处理和异常情况处理的综合要求,是评估程序员综合编程能力的重要方面。对于华为OD机试中的这类问题,应聘者需要具备良好的编程实践能力和代码规范意识,以编写出既正确又高效的代码。