首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
以下C程序的输出结果是: int fun1(int i...
[单选题]
以下C程序的输出结果是:
int fun1(int i) {
return i <= 1 ? 1 : fun1(i - 1) + fun1(i - 3);
}
int fun2(unsigned int i) {
return ((i >> 8) & 0x64) & (((i << 8) & 0x9346) >> 8);
}
int main() {
int n = fun2(fun1(101)) % 4;
printf("%d", n);
return 0;
}
0
1
2
3
查看正确选项
添加笔记
求解答(34)
邀请回答
收藏(60)
分享
纠错
5个回答
添加回答
10
大大大大大冰糖
等价于 ((i >> 8) & 0x64) & (((i << 8) & 0x9346) >> 8) % 4 等价于 低八位 11000100 & 10010011 | 00 = 0
发表于 2020-01-02 10:39:07
回复(5)
8
earthSaver
fun1(101)一看就是指数级别的运算,可以用动态规划优化计算,也可以先从fun1入手,假设i=ABCD,一个字母占8位,
则 i & 0x64 => D&0x64,右侧:C&0x93,即:D&C&0x64&0x93,而后面两个相与等于0
发表于 2020-07-24 00:25:27
回复(3)
2
Kadakimo
这种题只看fun2那里就行了,别的都是幌子。
0x64 -> 0110 0100
0x9346右移八位 -> 1001 0011
然后你就发现,1和0完美错开了,两次的与操作,得出的就是0。
0%4当然是0
发表于 2020-08-21 21:03:00
回复(1)
0
LKOne
重点在
int fun2(unsigned int i) {
return ((i >> 8) & 0x64) & (((i << 8) & 0x9346) >> 8);
}
整体列一个竖式,按位与.如下:
(int前面的高位0我们不管了,我们只考虑最后的16位列竖式
)
i>>8
i<<8然后>>8
0x64
0x9346>>8
------------
题眼:其实只要计算最后俩,就发现全部为0了,则整体按位与得0.
--------------------------------------------------------------------------------------
ps:
快速16进制转换二进制的方法
9 3 4 6每一个数字转换为4位二进制,从左到右拼接.
1001 0101 0100 0110,然后低8位丢掉
1001 0011
同理0x64 后16位
00000000 0110 0100
9346 00000000
1001 0011(右移8位,高位补8个0)
所以就是全0,所以结果全0.
发表于 2022-08-06 16:37:22
回复(0)
0
fengyz
这种题是真的没有遇到过
发表于 2020-07-27 16:25:52
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
测试工程师
PHP工程师
安全工程师
c#工程师
数据库工程师
猿辅导
2020
大数据开发工程师
Java工程师
上传者:
小小
难度:
5条回答
60收藏
1573浏览
热门推荐
相关试题
Windows中,以下关于动态链接...
2015
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
c#工程师
恒生电子
golang工程师
评论
(3)
来自
恒生公司2015秋招开发...
0-100的N个数(数的值范围为0...
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
PHP工程师
2017
测试工程师
猿辅导
golang工程师
评论
(2)
来自
猿辅导2017校招面试题...
给定一个不下降的序列Sn{s1, ...
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
PHP工程师
2017
测试工程师
猿辅导
golang工程师
评论
(5)
来自
猿辅导2017校招面试题...
数据链路层滑动窗口机制中发送窗口(...
网络基础
评论
(1)
有关linux线程的描述,正确的是...
京东
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
PHP工程师
2018
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题