面试题-计算机基础

1、如下函数,在32bit系统foo(2^31-3)的值是( )
        int foo(int x)
{
return x&-x;
}

拿到这道题,第一反应2的三十二次方然后-3.......然后发现其实那个^是异或,而且减法的优先级是高于异或的。

2^31-3其实是 2^(31-3)->  00 00000 00000 00000 00000 00000 00010^00 00000 00000 00000 00000 00000 11100=

     00 00000 00000 00000 00000 00000 11110 然后-就相当于是取反+1,得到11 11111 11111 11111 11111 11111 00010,两者相与的到结果为2!!!


2、给你1、2、3 这三个数字 可以使用C的各种运算符 你能表示的最大的整数是( )

        A、2*3*sizeof(1);

        B、3<< (2<< sizeof(1)); 

        C、sizeof(3)<< (sizeof(2)<< (sizeof(1))); 

        D、(unsigned long)(2-3)*1;

 D中,因为现代计算机通用补码表示整数,而-1的补码是全1,所以D能够表示的整数最大。


3、Bridge(桥接)设计模式将抽象部分与它的实现部分相分离。


4、一次内存访问、SSD硬盘访问和SATA硬盘随机访问的时间分别约是( )内存访问时间一般为十几纳秒、 SATA机械硬盘的随机访问时间包括寻道时间和潜伏时间,大概为十几毫秒;SSD硬盘由于没有机械结构的限制,随机访问速度得到很大提升,大约为几十微秒


5、正则表达式ab?c匹配的字符串是( )正则表达式中,?表示匹配前面的子表达式零次或一次。题目中ab?c匹配的是字母b出现0次或者1次,即匹配的是ac或者abc。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值