滴滴打车And 360 校招 2016 在线笔试(三)

1.

答案为78,之前以为是55,是没有注意到x是变化着的。这就需要小心和谨慎

2.

答案为C。

3.



这道题考察的是派生类执行构造函数的顺序:

  1. 调用基类构造函数,对基类数据成员初始化;
  2. 调用子对象构造函数,对子对象数据成员初始化;
  3. 再执行派生类构造函数本身,对派生类数据成员初始化。
因为C中没有写怎么构造B2,所以就调用B2的默认构造函数。
答案为

1 //B1(a)基类构造函数

B2 //基类构造函数

2//子对象memberB1构造函数

B2//子对象memberB2构造函数

4. N!表示 1*2*…*N。求 1024!的末尾有多少个0?比如10!=3628800末尾有两个0。
  • 113
  • 253
  • 1023
  • 1024
将1024!看做是一个很长的乘式。根据乘法的结合律,找出所有小于1024的数中相乘结果末尾为0的因子。可以想到末尾为0的数与其他数相乘、5的倍数与2的倍数相乘,都会得到末尾为0的数。进一步想末尾为0的数包含在5的倍数中。所以只要找出所有5的倍数与2的倍数相乘就能得到0。然而明显2的倍数是远远大于5的倍数的。所以只要找出长乘式中的所有5的个数就能解决问题。
再次,5的倍数乘2的倍数可以至少得到末尾为1个0的数。如15*2=30。但是5的n次方,包含n个5,可得到末尾为更多0的数。如25*4=5*5*4=100。125*8=5*5*5*8=1000。25与4的倍数相乘会得到2个0,但25的倍数也是5的倍数,其中一半已经在5的倍数中了,只要计算25的倍数的个数即可 。

综上。1024!中5的个数应为:
是5的倍数的数有: 1024 / 5 = 204个 
是25的倍数的数有:1024 / 25 = 40个 
是125的倍数的数有:1024 / 125 = 8个 
是625的倍数的数有:1024 / 625 = 1个 
所以1024! 中总共有204+40+8+1=253个因子5。 
也就是说1024! 末尾有253个0。 
5. 有3堆火柴,分别有4,5,7根,两个人依次取火柴,每次只能取同一堆的火柴,最少拿一根,最多拿着堆内所有火柴,取走最后一根火柴,让对方无火柴可以取者为胜。请问现在谁会获胜?()
  • 后手
  • 先手
  • 不确定

答案是B
          如果只剩下一堆火柴,那么只要有点智商就会直接全部拿走,让对方输掉,所以关键就看倒数第二堆,要想赢,那么就必须让对方那第二堆的最后一个根,如何做到呢,就是先手拿完一堆火柴只剩下一根,让对面拿这堆的最后一根,第二堆也是一样,一堆火柴只剩下一根,让对面拿这堆的最后一根,第三堆你直接拿走
6.

解答:答案为3个。一开始觉得get在子类中被隐藏掉了,所以想当然地认为在子类中没有get函数。其实不然,这里所说的隐藏只是在外界访问不到父类的get函数。但是正如子类中的代码如写,在子类中是能够访问到父类的get函数的。
7.有一个小白程序员,写了一个只能对5个数字进行排序的函数。现在有25个不重复的数字,请问小白同学最少调几次该函数,可以找出其中最大的三个数?
  • 5
  • 6
  • 7
  • 8
答案:C
1、25人分5组调用,分别排序,调用5次
2、取出5组中的最大数,排序,调用1次
3、将第2步排序中最大的三组取出,假设为A,B,C,从第二步已知A[1]>B[1]>C[1],不需要再比较,选A[2]、A[3]、B[1]、B[2]、C[1]比较。不需要比较B[3]是因为A[1]已经最大了,若剩下两个数在B中,A[1]占了一个数,只剩两个位置,C[1]同理,轮到C[1]的时候,前面A[1]>B[1]已经占了两个位置。调用1次
总共 5+1+1=7次
8.2015盏灯,一开始全部熄灭,序号分别是1-2015,先把1的倍数序号的灯的开关全部按一次,然后把2的倍数的灯的开关全部按一次,然后把3的倍数的开关按一次,以此类推,最后把2015的倍数灯的开关按一次。问最后亮着的灯有多少盏?
  • 43
  • 44
  • 45
  • 46
由于最初所有电灯是关着的,所以只有那些拉了奇数次开关的电灯才是亮的,而每一盏电灯的拉线开关被拉了多少次取决于这盏灯的编号的数字有多少个不同的正约数,而一个数的约数都是两两对应的,平方数有两个是相同的,所以减去一个,变成了奇数,也就是说平方数的正约数为奇数个。亮着的灯的编号只有为完全平方数.所以,只有编号为1,4,9,16,25,36,49,64,81,100……… 的电灯最后是亮着的 44^2=1936 < 2015 < 45^2=2025 所以答案就是44了。 然后大家请看完全平方数的一条重要结论    完全平方数的因数个数一定是奇数。
9.将光盘/dev/hdc卸载的命令是?
  • umount /mnt/cdrom /dev/hdc
  • unmount /dev/hdc
  • umount /dev/hdc
  • unmount /mnt/cdrom /dev/hdc
挂载设备使用mount,卸载设备使用umount,有三种方式,通过设备名,挂载点或者设备名和挂载点
如题目所示:
umount /dev/hdc
umount /mnt/cdrom
umount /mnt/cdrom /dev/hdc

也就是说答案为A和C。
10.将光盘CD-ROM(hdc)安装到文件系统的/mnt/cdrom目录下的命令 是 C 。
A mount /mnt/cdrom B mount /mnt/cdrom /dev/hdc
C mount /dev/hdc /mnt/cdrom D mount /dev/hdc

11. 下面那些情况可以终止当前线程的运行?
  • 当一个优先级高的线程进入就绪状态时
  • 抛出一个例外时
  • 当该线程调用sleep()方法时
  • 当创建一个新线程时
B:pthread_clean_pop抛出一个例外,线程终止!也可以通过其他线程调用pthread_cancel()函数来终止另一个线程
A:并不是终止,而是抢占,进程是资源分配的最基本单位,同一个进程创建的不同线程共享这些资源。所以这些线程能使用的资源是有限的。当某一个线程优先级比较高时,它就会抢占其他线程的资源,导致其他线程没有资源可用,会造成阻塞,直到那个优先级高地线程使用完
当一个优先级高的线程进入就绪状态时, 它只是有较高的概率能够抢到CPU的执行权,不是一定就能抢到执行权 ,所以A错
抛出一个例外时,该线程就终止了,所以B正确
当前线程调用sleep()方法或者wait()方法时,只是 暂时停止了该线程的运行 ,不是终止线程,注意题目说的是“终止”,就是完全停止,所以C错误
当创建一个新的线程时,该线程也加入到了抢占cpu执行权的队伍中,但是是否能抢到,并不清楚,和A的思想一样,所以D错误
12.

答案为7.
B继承A,所以B中总共有6个成员,而C是private继承B的,所以B的所有成员在C中都是private,再加上C中自己的一个private成员,所以就是7个呀

13.
以下JSP代码定义了一个变量,如何输出这个变量的值?
<bean:define id="stringBean" value="helloWorld"/>
  • <bean:write name="helloWorld"/>
  • <%=stringBean%>
  • <bean:write name="stringBean"/>
  • <%String myBean=(String)pageContext.getAttribute("stringBean",PageContext.PAGE_SCOPE);%> <%=myBean%>
答案为C和D。
bean:define:定义新字符串常量。
<bean:define id="stringBean" value="helloWorld"/>定义了一个id为stringBean的字符串
C选项:<bean:write name="stringBean"/>:该标签将指定的bean的属性值写到当前的JspWriter中,并且可以对输出进行格式化。可在jsp页面中通过bean:write将name属性输出。
D选项:<%String myBean=(String)pageContext.getAttribute("stringBean",PageContext.PAGE_SCOPE);%>:pageContext是PageContext类的实例,使用pageContext可以访问page、request、session、application范围的变量。

这个题目并不是让D直接输出,而是让CD一起的,C作用D输出这个变量。
14.Redhat 9所支持的安装方式有?
  • 通过HTTP进行网络安装
  • 通过Telnet进行网络安装
  • 通过NFS进行网络安装
  • 从本地硬盘驱动器进行安装
光盘安装 (常规情况) 硬盘安装 (无光驱情况)
网络安装-NFS方式 (适合于批量安装大量服务器,和kickstart自动安装一起使用)
网络安装-FTP方式 (适合于批量安装大量服务器,和kickstart自动安装一起使
网络安装-HTTP方式 (适合于批量安装大量服务器,和kickstart自动安装一起使
系统都没有安装,telnet不能使用。
答案为ACD。
15.
运行下面程序段,输出结果为() 
1
2
3
4
<?php
     $arr array (3,5,7,9,6);
     echo $arr [3];
?>
  • 7
  • 9
  • 3
  • 5
9,因为下标从0开始.
16.

现有一手推车类程序(cart.inc)其中包含有一添加物品的方法(add_item),下面那个选项可以正确使用方法add_item

<?php

       classCart {

              var$items;

              function add_item ($artnr, $num) {

                     $this-> items[$artnr] += $num;

              }

       }

?>

 

A. <?php

      require("cart.inc");//有双引号

      $cart = new Cart; //没有()

      $cart -> add_item("10", 1);

    ?>

 B.<?php

       require(cart.inc);

       $cart= new Cart

       $cart-> add_item ("10", 1)

   ?>

 C.<?php

       require("cart.inc");

       $cart= new Cart();

       $cart-> add_item ("10", 1);

   ?>

 D.<?php

       include("cart.inc");

       $cart= new Cart();

       $cart-> add_item ("10", 1);

   ?>


17. 如果你想列出当前目录以及子目录下所有扩展名为“.txt”的文件,那么你可以使用的命令是
  • find . -name "*.txt"
  • ls *.txt
  • find . ".txt"
  • ls -d.txt
find . -name "*.txt" 才可以
find . -name ".txt"是找出文件名为.txt的文件
find . ".txt" 是查找".",".txt"这两个目录
ls 只能显示当前目录的文件
18.


答案: 两单都不接的概率:(1-A)(1-B),接单的概率:p = 1 - (1-A)(1-B) , 接单的情况下选择A单的概率:p * A/(A+B),所以D
19.



记住公式 D(X)=E(X^2)-E(x)^2
20.有订单表orders,包含字段用户信息userid,字段产品信息productid,以下语句能够返回至少被订购过两会的productid?
  • select productid from orders where count(productid)>1
  • select productid from orders where max(productid)>1
  • select productid from orders where having count(productid)>1 group by productid
  • select productid from orders group by productid having count(productid)>1
顺序为:select, from, where, group by, having, order by, limit

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值