• C++
  • 备战CSP-J初赛21天打卡计划。DAY4-DAY4-数据类型、存储单位、指针【答案和解析】

  • @ 2024-9-3 22:10:18

存储单位

快问快答: 1、A

📜历年真题

1-5:CDADB

4题解析: image

指针和引用

历年真题

1、D

📜历年真题 数据类型

程序阅读题第一题题目解析:

答案:A B B B B B

解析:输入的 x、y 均是不超过 15 的自然数,代表 x、y 的二进制表示不会超过4位。x、y 均会执行以下操作,以 x 为例:

x = (x | x << 2) & 0x33;
x = (x | x << 1) & 0x55;

假定 x 的二进制表示四位数为 abcd: image.png

那么在执行完这两句程序后,x 的二进制表示变为:a0b0c0d。

16.答案:A。正确,short 为 2 字节 16 位,unsigned short 无符号位,有 16 个数字位;去掉 unsigned 后有符号位,仍有 15 个数字位,而最终结果最多只有 8 位,所以程序行为不变。

17.答案:B。错误,char为字符型,若程序输入“13 8”,则 x 为 '1', y 为 '3',程序行为改变。

18.答案:B。错误,通过上述分析及19、20题发现不可能总是输出0,或者可以先算19、20题,如果结果不为0,那么该题就是错误的。

19\20.答案:B。错误,输入“2 2”,二进制表示为0010,因此在执行9-12行后,x、y 的值变为0000100。通过下表计算知,z 的值为12。

image.png

21.答案:B。输入“13 8”,x 二进制表示为 1101,y 的二进制表示为 1000,因此在执行9-12行后,x 的值变为1010001,y 的值变为1000000。通过下表计算知,z的值为209。

image.png

程序阅读题第二题题目解析:

解析:solve1函数 用二分算法,返回 nn的平方根的向下取整的结果。solve2函数是牛顿迭代算法。

28.正确,solve1中二分复杂度 O(logn),solve2循环O(k)。k次,因此复杂度是O(logn+k)。

29.正确,solve1(9801) 返回99, solve2循环1次,x=(99+99/1)/2=99,正确

30.错误,在数学中当趋近无限的时候,两者会相等返回1,但浮点类型精度有限,两者不会相等。

31.错误,题目说n是不超过 47000的自然数,当 nn 是47000时,mid=(0+47000)/2=23500*,mid的平方不会超过int的最大值。

32.C,代入计算,solve(2) = 1, ans=(1+2/1)/2=1.5

33.B,代入计算,solve(3) = 1, solve2中循环10次,第一次x=(1+3/1)/2=2 第二次 x=(2+3/2)/2=1.75, 第三次..... 此后的值是递减的,逐渐接近 n,所以可选项只有AB。又根据均值不等式 (a+b)/2>=a∗b ,因此 (x+n/x)/2>=n,所以solve2返回值一定是 >= n , 因此最接近的应该是 1.732 而不是 1.7,选B

34.答案:A,256的平方根刚好是16,solve1(256)= 16,solve2中(16+256/16)/22 永远等于 16

程序阅读题第三题题目解析:

解析: 1.decoder数组覆盖0~25共26个下标,若为其他字符与‘A’相减,如‘a’−‘A’=97−65=32,则会越界。

2.如果输入均为重复的一串Z,则输入输出相同,选择decoder数组中与26字母表顺序位置一致的字母即可

3.该循环意图在encoder中寻找非0位置数量,只有0,1,2三个位置,因此改为i<3也可以

4.该循环意图根据encoder元素填写decoder从0~25这26个位置的元素,因此不可改为i<16.

5.decoder数组决定st输出结果,寻找decoder中ABC的位置分别为2、15、18,即计算st[i]−’A’=2∣∣15∣∣18,符合条件的st[i]分别为C、P、S

6.decoder数组决定st输出结果,寻找decoder中CSP的位置

0 条评论

目前还没有评论...