搜狗-2020测试校招笔试(二)

以下代码实现求1到10的和,请指出其中的错误(给出错误的行号并说明原因):```
1

 #include
2 using namespace std;
3
4 int func1(int a=0;int b)
5 {
6 return a+b;
7 }
8 int sum()
9 {
10 int sum;
11 int* const point1;
12 int const* point2;
13 point1=&sum
14 point2=func1(3,4);
15 int i=1,j=2;
16 for(i,j;i<10,j<10;i++,j++)
17 {
18 sum+=func1(i,j);
19 }
20 return *point1;
21 }
22 int main(int argc, char *argv[])
23 {
24 int ret= sum();
25 cout << ret;
26 return 0;
27 }


满分10分
1) 第4行int func1(int a=0;int b);有误;(1分)
默认参数应该从右到左定义,如果a给定默认值,b也必须给定默认值。(1分)
2) 第11行int* const point1;有误;(1分)
指针常量声明时必须初始化(1分)
3) 第13行point1=&sum有误;(1分)
由于point1为指针常量不能被修改(1分)
4) 第14行point2=func1(3,4);有误;(1分)
func1返回类型为整型,不能赋值给指针。(1分)
5) 第16行for(i,j;i
i,j边界值判断有误,自增有误(2分)
应为for(i,j;i
 for(i,j;i
(若给出正确的写法可加1分)

正确代码:


1 #include
2 using namespace std;
3
4 int func1(int a,int b)
5 {
6 return a+b;
7 }
8 int sum()
9 {
10 int sum;
11 int* const point1=∑
12 int const* point2;
13 int i=1,j=2;
14 for(i,j;i<8,j<11;i=i+2,j=j+2)
15 {
16 sum+=func1(i,j);
17 }
18 return *point1;
19 }
20 int main(int argc, char *argv[])
21 {
22 int ret= sum();
23 cout << ret;
24 return 0;
25 }


2. 有一售卖电影票的移动APP,现有个活动,前1000张的电影票用户能以原价20%的价格买入,

但每人限购1张。如果你作为该活动的测试负责人,请问如何设计本次测试。
答案
得分参考:满10分
1、功能点(6分):关键词:移动app、活动、电影票、20%的价格、1000张、限购逻辑
2、压测(1分)
3、兼容 (1分)
4、其他加分项(2分):作为负责人需要考虑,项目上线时间及各阶段排期是否合理、测试资源如何分配、是否有风险预案等

测试用例参考:
一、功能测试
1、移动app:因是个活动,需要考虑弱网络情况,考虑图片是否使用缩略图;用户体验...
2、活动:H5的可能比较大,需考虑活动如何上线、能否正确进入活动界面...
3、电影票:电影票是某部电影还是全部在售的电影、选座是否正常、已售座位的信息更新是否及时、电影的相关信息是否正确等...
4、20%的价格:购买方式(网银、支付宝、微信)、买入/退款时的折扣计算、可能存在的安全隐患(如异常数据提交购买/退款)...
5、1000张:1000等价类划分、并行处理之N个人同时付款一张票、二次支付;二次购买...
6、限购:限购方式(手机号、新老用户、App账号、iOS/Android不同端…)、购买时库存不足、重复购买、如果有允许等待30min内付款,那么第一张不付款,购买第二张会怎么样…
二、压测:加载H5页面的时间,峰值并发的设计
三、兼容性:在不同设备,不同系统及版本该“活动”的兼容性检查
3. 小汪作为一个有数学天分的程序猿,设计了一套密码生成器来搞定自己的密码问题。
密码生成器由N个槽位组成,槽位的下标为0~N-1,每个槽位存储一个数。起初每个槽位都是0。
密码生成器会进行M轮计算,每轮计算,小汪会输入两个数L,R(L<=R),密码生成器会将这两个数作为下标,将两个下标之间(包含)的所有槽位赋值为i(i为当前的轮次,i∈[1,M])。
M轮计算完成后,密码生成器会根据槽位的最终值生成一条密码,密码的生成规则为:
(0*a[0] + 1*a[1] + 2*a[2] + ... + (N-1)*a[N-1]) mod 100000009
其中a[i]表示第i个槽位的最终值。
请帮助小汪把他的密码生成器实现为代码。
public class Main {
 
    public static void main(String[] args) {
 
        Scanner scanner = new Scanner(System.in);
        int sum = 0;
        int password;
        int N = scanner.nextInt();
        int M = scanner.nextInt();
 
        int[] arr = new int[N];
        for (int i=0;i<M;i++){
 
            int L = scanner.nextInt();
            int R = scanner.nextInt();
            for(int j=L;j<R;j++){
                arr[j] = i+1;
            }
            arr[R] = i+1;
 
        }
 
        for (int i=0;i<arr.length;i++){
            sum+= i*arr[i];
        }
        password = sum % 100000009;
        System.out.println(password);
    }
 
}


全部评论

相关推荐

05-30 12:03
山西大学 C++
offer来了我跪着...:不是骗子,等到测评那一步就知道为啥这么高工资了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务