2022CCF非专业级别软件能力认证第一轮(CSP-J1)入门级C++语言试题阅读程序第1题
创始人
2025-05-28 14:40:08
0

阅读程序(程序输入不超过数组或者字符串定义的范围;判断题正确填√,错误填×;除特殊说明外,判断题1.5分,选择题3分)

(1)

假设输入的 x、 y 均是不超过 15 的自然数,完成下面的判断题和单选题:

·判断题

16. 删去第 7 行与第 13 行的 unsigned,程序行为不变。( )

17. 将第 7 行与第 13 行的 short 均改为 char,程序行为不变。()

18. 程序总是输出一个整数“0”。( )

19. 当输入为“2 2”时,输出为“10”。( )

20. 当输入为“2 2”时,输出为“59”。( )

·单选题

21. 当输入为“13 8”时,输出为()。

A.”0” B.”209” C.”197” D.”226”


知识点:本题主要考察学生位运算、十六进和二进制转换、数据类型范围三大知识点。


知识点1:short与unsigned short数据类型

short数据类型的变量占2个字节,1个字节等于8位,2个字节就等于16位。即short变量的范围在 -215~215-1。而unsigned short代表无符号短整型,它的变量范围在0~216-1。


知识点2:|、&、<< 位运算符的基本使用

不管是|、&还是<<,针对的都是二进制数据而言。举个简单的例子,假设用八位二进制数表示十进制5,那么结果为:00000101(高位不够补0),用八位二进制表示十进制数2,那么结果为:00000010(高位不够补0)。

此时让5和2做按位或(|)运算,那么结果为:

00000101

00000010

---------- 只要有一位为1,那么结果为1,当且仅当两位全是0,结果为0

00000111

此时让5和2做按位与(&)运算,那么结果为:

00000101

00000010

----------只要有一位为0,那么结果为0,当且仅当两位全是1,结果为1

00000000

此时让5做左移2位运算,那么运算结果为:

00000101 -> 00010100 左移两位即在最右边补两个0,高位的两个0去掉,此时5扩大了2倍


知识点3:0x十六进制数与二进制的转换规则

一般来说,一位十六进制位可以对应四位二进制位,比如0x33,就可以对应出8位二进制数,一个十六进制的3对应出的二进制数是0011,那么既然现在是两个十六进制的3,那么对应出的就是00110011,再比如0x55,也可以对应出8位二进制数,一个十六进制的5对应出的二进制数是0101,那么既然现在是两个十六进制的5,那么对应出的就是01010101。此时我们就可以利用它们的二进制做按位运算了。


题目解析

有了以上的知识基础之后,我们再来看这道题就会感觉没有那么难了!!!

16. 删去第 7 行与第 13 行的 unsigned,程序行为不变。(✔)

解析:这道题我们要看程序

第7行,是用一个数按位与上0x33(二进制为00110011),那么得到的结果是不会超过0x33的,因为是按位与操作(比如你用十进制9&十进制5,虽然9的二进制为00001001,5的二进制为00000101,但是与的结果为),

00001001

00000101

——————按位与

00000001,为1,是不会大于5的。

第8行,同理,x的结果是不会超过0x55的,第9行,y的结果是不会超过0x33的,第10行,y的结果是不会超过0x55的。

假设我们取最极端的情况,x的值为0x55,y的值为0x55,再看第11行,将y左移一位,即0x55扩大一倍,0x55的二进制为:01010101,扩大1倍后为:

10101010,然后将10101010和0x55(对应的二进制为01010101)做按位或运算,那么结果为:

10101010

01010101

——————按位或

11111111 对应的十进制为255,即,z最大的值也才255.

根据这个结论,不管是short,还是unsigned short,它们都能够存储255这个数,因此第16题是对的。


17. 将第 7 行与第 13 行的 short 均改为 char,程序行为不变。(❌)

解析:将short改为char,就是unsigned char了,虽然它能够存储下255这个数,但是,输出的z的结果就是一个字符类型,和原来的程序行为不一样。


18. 程序总是输出一个整数“0”。(❌)

19. 当输入为“2 2”时,输出为“10”。 (❌)

20. 当输入为“2 2”时,输出为“59”。 (❌)

解析:将这3题合在一起看,我们不妨将x=2,y=2带入,重新阅读程序。

x=2,对应的二进制为(假设这里我们用8位表示)00000010

y=2,对应的二进制为(假设这里我们用8位表示)00000010

先将x左移2位,即扩大两倍,那么00000010会变成00001000,然后将扩大两倍后的二进制00001000与原来的x=2的二进制00000010进行按位或运算,

00000010

00001000

——————

00001010 这是按位或的结果,然后将这个数与0x33(00110011)做按位与运算

00110011

——————

00000010 这是按位与的结果,即这是程序第9行的运行结果

再看程序第10行的运算过程

先将x左移一位,即00000010变成00000100,然后将左移1位后的结果与原来的x做按位或的运算,即

00000100

00000010

——————

00000110 这是按位或的结果,然后将这个数与0x55(01010101)做按位与运算

01010101

——————

00000100 这是按位与的结果,即这是程序第10行的运行结果


因为x等于2,y等于2,因此y的最终结果也是00000100,接下来执行第13行的代码,先将y左移1位,即00000100变成00001000,然后再将这个数与x进行按位或运算

00001000

00000100

——————

00001100 这是最终得到的z的结果,转换为十进制数就是12


再看单选题:

21. 当输入为“13 8”时,输出为(B)。

A.”0” B.”209” C.”197” D.”226”


解析:还是按照之前的做法,x=13,y=8,将他们代入程序,先执行程序的第9行,将x=13转换为二进制为00001101,将y=8转换为二进制为00001000。

拿着x左移两位,即00001101变为00110100,再让它与原来的x=13的二进制00001101进行按位或运算,即

00110100

00001101

——————

00111101 这是按位或的结果,然后再将这个结果与0x33(00110011)按位与,即

00110011

——————

00110001 这是按位与的结果,然后将这个结果左移1位,得到01100010,然后将这个结果与原来的x的值(00110001)再做按位或运算

00110001

01100010

——————

01110011 这是按位或的结果,然后再与0x55(01010101)做按位与运算

01010101

——————

01010001 这是按位与的结果,同时也是程序第10行的执行结果


接下来看y的变化,y的二进制为:00001000,先将其左移2位为00100000,然后与原来的y做按位或,即

00001000

00100000

——————

00101000 这是按位或的结果,然后将其与0x33(00110011)做按位与运算,即

00110011

——————

00100000 这是按位与运算的结果,也是程序第11行的运行结果,接下来将这个数左移1位,变为01000000,然后将其与原来的y做按位或运算,即

01000000

00100000

——————

01100000 这是按位或的结果,然后将其与0x55(01010101)做按位与运算,即

01010101

——————

01000000 这是按位与的结果,也是程序第12行的执行结果,接下来再来看程序第13行的运行结果,先将计算出来的第12行的结果左移一位,即01000000变成10000000,然后再将其与第10行计算出来的x进行按位或运算,即

10000000

01010001

——————

11010001,这就是程序第13行的执行结果,同时也是z的值,转换为十进制后为,128+64+16+1=209.因此此题答案选择B选项。

获取更多视频讲解,或者加入少儿编程/算法讨论群,请加V小C哈哈哈:XWL362700。

相关内容

热门资讯

原创 蚂... 2025年6月8日蚂蚁庄园小课堂今日答题正确答案和解析分享。 问题:我国哪个景区有“南海圣境”之称...
四川九寨沟峨眉山旅游旅游团五天... 四川,这个位于中国西南部的省份,以其独特的自然风光、悠久的历史文化和丰富的民族风情而闻名遐迩。这里既...
原创 中... 最东之城:抚远 抚远市位于黑龙江省佳木斯市的最东端,与俄罗斯隔江相望,是中国迎接第一缕阳光的地方。这...
原创 家... 每年高考、中考的时候,考生家长也是最忙碌的时候,不仅要照顾好考生的衣食住行,在图个好彩头上也不遗余力...
九寨沟洋芋糍巴在家做,软糯Q弹... 土豆也能华丽变身!今天带你解锁九寨沟街头那碗让人念念不忘的软糯美味——洋芋糍巴。别担心,不用远行,在...
古早梗、、这题我会古早 古早氛... 古早梗、、这题我会古早 古早氛围感拿捏了
茶香鸡一口沦陷!厨房小白也能秒... 灶台上飘来一阵奇特的香气,既不是单纯的肉香,也不是纯粹的茶香,而是两者缠绵交融的诱人气息。琥珀色的鸡...
七彩云南民族风情大揭秘?独特风... 云南,一个以少数民族为主体的省份,汇聚了众多性格各异、个性鲜明的民族群体。这些民族拥有各自独特的风俗...
黄山三日游旅游网红景点,黄山3... 黄山三日游旅游网红景点,黄山3天详细旅游攻略推荐? 在社交媒体盛行的当下,我常常被各种网红景点刷屏,...
黄山五天四晚旅游价格攻略 黄山... 黄山,这座被誉为“天下第一奇山”的壮丽之地,一直以来都是我心中的旅游圣地。它的奇松、怪石、云海、温泉...
原创 暖... 灶火里的养生经 灶上砂锅咕嘟作响,金黄的玉米碎在汤里翻滚,混着山药的乳白雾气漫过窗棂。王婶掀开木锅盖...
越吃越瘦的早餐 我的见解 早上啃着包子骂“喝凉水都胖”的人,先摸摸你肚子上的肉——你以为胖是因为代谢低?拉倒吧,你凌晨两点刷手...
素菜这6种做法比肉好吃,解馋又... #图文打卡计划#谁说素菜就一定是清淡无味的?今天给大家分享6道 让肉食主义者都欲罢不能的素菜做法,保...
跟团去黄山旅游5天要多少钱,看... 黄山,这座被誉为“天下第一奇山”的壮丽之地,以其独特的自然风光和深厚的文化底蕴,吸引着无数游客前来探...
重庆4天3晚双飞精品游超全攻略... 重庆4天3晚双飞精品游超全攻略,重庆四日游自助游路线设计 重庆,这座镶嵌在长江与嘉陵江交汇处的山城,...
黄山旅游管家定制3天行程多少钱... 黄山旅游管家定制3天行程多少钱,黄山地接社三日游团费多少? 在快节奏的现代生活里,人们总盼着能找个时...
两大一小到潮汕纯玩5天人均花多... 两大一小到潮汕纯玩5天人均花多少钱?看完避雷踩坑! 潮汕,这片位于广东省东南沿海的瑰宝之地,以其悠久...
黄山跟团旅游四天价格推荐,流行... 在这个快节奏的时代,能够抽出时间陪伴家人一起出游,无疑是一件非常幸福的事情。而黄山,这座以奇松、怪石...