《嵌入式软件开发笔试与面试手册》:https://blog.nowcoder.net/zhuanlan/jvN8gj 《软件开发笔试汇总》:https://blog.nowcoder.net/zhuanlan/0oDWVm 3、简易计算器 题目描述 设计一款计算器软件,支持以下功能: 1)支持let关键字 2)支持通过let赋值表达式定义变量并初始化例如: let var1 = 123 let var = 123 3)变量需要先定义再引用,在表达式中引用未定义的变量,则表达式的结果也是未定义的 例如: let var1 = 1 let var2 = var1+1// var1是定义的 let var3 = var4 +1// var4是未定义的 let var4 = 1 4)支持整数类型数据,整数数据的输入格式只需要支持十进制,支持负整数,整数取值范围-2147483648<=x<=2147483647 例如: let var3 = 10 let var3 = -10 5)支持整数的加(+)、减(-)、乘(*)、除(/)四则运算,四则运算符之间没有优先级,运算数遵循左结合律,用例不考虑括号 例如: let var4 = 1+2*var3 上述表达式的计算顺序是,先计算1+2结果为3,再将3乘以var3得到表达式的结果。 6)支持通过out函数打印变量的值,函数参数只接受1个变量,不需要支持表达式例如: let var4 =12 out(var4)//将会输出12 7)表达式中如果引用了未定义的变量,则表达式的结果是未定义的 8)如果计算结果溢出,则表达式结果是溢出 9)变量命名符合通用语言变量规范,必须是以下划线_或者字母开头,遇到标点符号或者空格符时结束 例如: let_ = 1//变量名_是合法的 let _abc =1//合法 let abc = 1//合法 let Abc_1 =1/1/合法 let abc.x=1//非法 let abc,x=1//非法 let 12abc=1//非法 let abc x= 1//非法 输入 输入描述 1)每一行只有一个表达式 2)最多支持24行输入 3)每个用例输入至少有一个out输出表达式,可以有多个out输出表达书 4)每个变量只会赋值1次 例如: let var1 = 1 let var2 = 3 let var3 = var1 + var2 out(var3) 输出 输出描述 1)每遇到1个out输出表达式,则打印输出变量的值 2)对于out行,只会输出一个out表达式的值 3)如果out输出的变量未定义,则打印<undefined> 4)如果表达式结果发生了整数上溢或者下溢,则对该变量的out输出表达式输出<underflow>或者<overflow> 5)如果表达式非法,则打印<syntax-error> 例如: 给定输入 let var1 = 1 let var2 = 3 let var3 = var1 + var2 out(var3) out(var2) out(var) let var4 = -2147483649 let var5 = 2147483648 out(var4) out(var5) let x.y =1 输出为 4 3 <undefined> <underflow> <overflow> <syntax-error> 样例1 输入: let var1 = 1 out(var1) 输出: 1 样例2 输入: out(var) 输出: <undefined> 解释:输出的变是var未定义 1、丢失报文的位置 某通信系统持续向外发送报文,使用数组nums保存n个最近发送的报文,用于在报文未达到对端的情况下重发。报文使用序号sn表示,序号sn按照报文发送顺序从小到大排序,相邻报文sn不完全连续且有可能相同。报文使用循环覆盖的方式保存,即nums数组填满后,从头开始保存新的报文。假设需要重发序号为sn的报文。请找出序号为sn的报文在数组中的开始位置和结束位置。 输入 第一行输入:数组nums的大小n,取值范围[0,10000] 第二行输入:数组中的所有报文的序号sn, sn取值范围[0,100000]。 第三行输入:需要重发的报文序号sn,取值范围[0,100000] 输出 start end 说明:start和end代表需要重发的报文序号sn在数组中的起始下标和结束下标 样例1 输入: 7 0 0 1 2 2 5 6 1 输出: 2 2 解释: nums数组大小为7 保存了7个报文,sn分别是0 0 1 2 2 5 6 sn为1的报文在数组中仅有1个,下标是2,因此输出2 2 样例2 输入: 7 0 0 1 2 2 5 6 2 输出: 3 4 解释: nums数组大小为7 保存了7个报文,sn分别是0 0 1 2 2 5 6 sn为2的报文在数组中有2个,下标分别是3,4,因