阿里云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);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。