2023年信奥赛C++提高组csp-s初赛真题及答案解析(阅读程序第1题)
第1题
#include<iostream>usingnamespacestd;unsignedshortf(unsignedshortx){x^=x<<6;x^=x>>8;returnx;}intmain(){unsignedshortx;cin>>x;unsignedshorty=f(x);cout<<y<<endl;return0;}假设输入的 x 是不超过 65535的自然数,完成下面的判断题和单选题:
判断题
当输入非零时,输出一定不为零。()
A. 正确 B. 错误
(2 分)将
f函数的输入参数的类型改为unsigned int,程序的输出不变。()A. 正确 B. 错误
当输入为
65535时,输出为63。()A. 正确 B. 错误
当输入为
1时,输出为64。()A. 正确 B. 错误
单选题
当输入为
512时,输出为()。A.
33280B.33410C.33106D.33346当输入为
64时,执行完第 5行后x的值为()。A.
8256B.4130C.4128D.4160
判断题答案
A(正确)
解析:函数 ( f ) 是一个在 GF(2) 上的可逆线性变换,因此当输入非零时,输出一定不为零。B(错误)
解析:将参数类型改为unsigned int后,计算过程中高位会参与运算,且右移时会引入高位比特,导致结果可能与原 16 位版本不同。例如输入 32768 时,原程序输出 32896,而修改后输出 41088。A(正确)
解析:输入 65535(二进制全为 1),经计算输出为 63。B(错误)
解析:输入 1 时,输出为 65,而不是 64。
单选题答案
B(33410)
解析:输入 512,逐步计算:- 第一步:( x \oplus (x \ll 6) = 512 \oplus 32768 = 33280 )
- 第二步:( 33280 \oplus (33280 \gg 8) = 33280 \oplus 130 = 33410 )
D(4160)
解析:输入 64,执行 ( x \oplus= x \ll 6 ) 后,( x = 64 \oplus 4096 = 4160 )。
专栏推荐:信奥赛C++提高组csp-s初赛&复赛真题题解(持续更新)
https://blog.csdn.net/weixin_66461496/category_13125089.html
各种学习资料,助力大家一站式学习和提升!!!
#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"########## 一站式掌握信奥赛知识! ##########";cout<<"############# 冲刺信奥赛拿奖! #############";cout<<"###### 课程购买后永久学习,不受限制! ######";return0;}1、csp信奥赛高频考点知识详解及案例实践:
CSP信奥赛C++动态规划:
https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转
CSP信奥赛C++标准模板库STL:
https://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转
信奥赛C++提高组csp-s知识详解及案例实践:
https://blog.csdn.net/weixin_66461496/category_13113932.html
2、csp信奥赛冲刺一等奖有效刷题题解:
CSP信奥赛C++初赛及复赛高频考点真题解析(持续更新):https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转
CSP信奥赛C++一等奖通关刷题题单及题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转
3、GESP C++考级真题题解:
GESP(C++ 一级+二级+三级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转
GESP(C++ 四级+五级+六级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转
GESP(C++ 七级+八级)真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13117178.html
4、CSP信奥赛C++竞赛拿奖视频课:
https://edu.csdn.net/course/detail/40437 点击跳转
· 文末祝福 ·
#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"跟着王老师一起学习信奥赛C++";cout<<" 成就更好的自己! ";cout<<" csp信奥赛一等奖属于你! ";return0;}