Aug.Day11 8.17总结

【初赛复习进行中】

一、单项选择题

Wrong Problems:

3.运行以下代码片段的行为是( )。
int x = 101;
int y = 201;
int *p = &x;
int *q = &y;
p = q;

A. 将 x 的值赋为 201

B. 将 y 的值赋为 101

C. 将 q 指向 x 的地址

D. 将 p 指向 y 的地址 (正确)

分析:

指针是指向一个变量的值,而只有对其解引用才会改变它指向变量的值,直接将其赋为其他指针不会改变原变量的值。

错误原因:对指针运用不熟练。


6.对表达式 a+(b-c)*d 的前缀表达式为( ),其中 +-* 是运算符。

A. *+a-bcd*

B. +a*-bcd (正确)

C. abc-d*+

D. abc-+d

分析:

本题考查对中缀转前后缀表达式的能力。

首先找到最先运算的表达式,明显是 (b-c),将其运算符移至操作数前,变为 -bc,记为表达式 A,此时表达式变为 a+A*d

接下来找到第二个运算式,注意乘法的优先级比加法高,所以将 A*d 拿出来,变为 *Ad,也就是 *-bcd,记作 B,此时表达式为 a+B

最后把加号提至最前,变为 +aB,转换后为 +a*-bcd,选 B。

错误原因:没有注意加法和乘法的优先级,先算了加法再算乘法,所以写错了。


14.一个字符串中任意个连续的字符组成的子序列称为该字符串的子串,则字符串 abcab 有( )个内容互不相同的子串。

A. 1212

B. 1313 (正确)

C. 1414

D. 1515

分析:

暴力枚举长度为 0,1,...,50,1,...,5 的子串即可。

长度为 0011 个:ϕ\phi

长度为 1133 个:abc

长度为 2233 个:abbcca

长度为 3333 个:abcbcacab

长度为 4422 个:abcabcab

长度为 5511 个:abcab

1+3+3+3+2+1=1×2+3×3+2=131+3+3+3+2+1=1 \times 2+3 \times 3+2=13

错误原因:所有情况都写出来了,结果数数数错了,数成了 1212 qwq.....................(粗心大意)


二、阅读程序

22题(打表)
n/m 0 1 2 3
0 0 0
1 1
2 2 2
3 3
4 4
5 5 3 3
6 6
7 7 4
27题(打表)
n/m 0 1 2
0 0 0
1 1
2 2 2
3 3
4 4 3
5 5
6 6
7 7 4
8 8
9 9
10 10
11 11 5
12 12
13 13
14 14
15 15
16 16 6
17 17
18 18
19 19
20 20

规律:每个数按递增式增长,且每行的 n (2n)n \ (2 \le n)m=2m=2 开始,所有答案都一样(0011 个,1111 个,2222 个......第 nn 个有 nn 个)。