文本描述
阿里云C++
1、(2分)1)请列出两个线程(或进程)死锁的三个必要条件
2)当异常(Exception)发生的时候,智能指针(SmartPointer)的析构函数是被谁调用的?
3)一般的台式机硬盘一次随机读写大约需要多少毫秒(0.1ms、1ms、10ms、100ms)?
4)除了应用程序的系统调用之外,LinuxKernel中的代码在什么情况下还有机会运行?
2、(1分)求下面函数的返回值。输入x的值为2012。
int func(int x)
{
int countx=0;
while(x)
{
++countx;
x=x&(x-1);
}
return countx;
}
3、(1分)一进程在执行时,如果按下列页号访问:1、2、3、4、2、1、5、6、2、1、2、3、7、6、3。进程占用4页物理内存,采用FIFO淘汰算法和LRU淘汰算法时,各产生多少次缺页中断?分别写出使用两种方法时,依次被淘汰的页面号以及最后内存空间中剩余的页面。
4、(1分)写出下列程序的输出结果:
#include<iostream>
using name space std;
int main()
{
char *a=”Aliyun”;
char **b=&a;
*b=”programming test”;
char *c=++a;
a=”talents.”;
return printf(“%c\n,*++c);
}
5、(1分)连接A、B两地的公路长240km,现各有一列汽车分别从两地出发相向而行,各自保持匀速50km/h和30km/h。有一鸟儿也和A地的汽车一起从A地出发,以65km/h的速度沿公路朝B地飞行;当它遇到B地的汽车的时候,折返往A飞;再遇到A地汽车的时候,折返往B飞;如此往返。请问当A、B两地出发的汽车相遇的时候,鸟儿飞行了多少km?
6、(1分)一个骰子有6个面,分别是1个1、2个2、3个3。请问平均需要抛多少次骰子才能使1、2、3这三面都至少出现一次。
7、(1分)请实现一个递归函数将一个字符串反转(字符串最大长度为100)。例如:如果char *str=”abcdef”,反转后的字符串str为“fedcba”。
8(2分)请编写测试用例,来判断某一个文件系统中的一个函数实现是否符合规范定义。该函数名为:bool VailidataPath(char* path),其作用是检测用户输入路径是否合法。
系统合法的路径名称规范要求必须同时满足以下四个规则:
字符串长度最短为1,最长为2048。
只允许出现大小写字母、数字、下划线(_)和斜杠(/)中的一种或多种字符;
斜杠(/)禁止连续出现;
路径中禁止包含字符串“/delete/”。
注意:本题不要求实现ValidataPath()函。。。。。。以下内容略