阿里云C++笔试题

时间:2021-11-09 08:22:17 资料 我要投稿

阿里云C++笔试题

阿里云C++

阿里云C++笔试题

1、(2分)1)请列出两个线程(或进程)死锁的三个必要条件

2)当异常(Exception)发生的时候,智能指针(SmartPointer)的析构函数是被谁调用的?

3)一般的台式机硬盘一次随机读写大约需要多少毫秒(0.1ms、1ms、10ms、100ms)?

4)除了应用程序的系统调用之外,LinuxKernel中的代码在什么情况下还有机会运行?

2、(1分)求下面函数的返回值。输入x的值为。

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

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),其作用是检测用户输入路径是否合法。 系统合法的路径名称规范要求必须同时满足以下四个规则:

a) 字符串长度最短为1,最长为2048。

b) 只允许出现大小写字母、数字、下划线(_)和斜杠(/)中的一种或多种字符; c) 斜杠(/)禁止连续出现;

d) 路径中禁止包含字符串“/delete/”。

注意:本题不要求实现ValidataPath()函数,只要求写出测试用例。

9、(2分)下面的代码定义一个value为int的节点组成的二叉树的数据结构:

struct Node

{

Node * left, right;

int value;

};

已知二叉树最大深度为10,请实现一函数宽度优先遍历该二叉树并打印所有节点的值。 以下深度为4的二叉树遍历宽度优先历结果为:8、5、12、3、6、10、15、1、4、9、11、13、20。

10、(3分)给出26个小写字母(a~z)在一份文档里面的绝对位置信息列表阿里云C++笔试题(位置按从小到大顺序,以整数vector形式存在)。例如:字母a出现在4、29、40个字符位置,字母b出现在第10、38、74个字符位置。文档本身可能包含非英语字母字符。请编写一个程序判断给定小写英文单词是否在文档中出现。

bool find(vector pos[26], char* word);

【阿里云C++笔试题】相关文章:

阿里云面试题01-17

阿里巴巴C++工程师笔试题目01-01

阿里云 面试 流程01-17

C++笔试题01-01

阿里巴巴综合笔经01-01

联想C++笔试题02-10

普天C++笔试题10-05

c++程序笔试题01-01

C++面试题01-01