2022-10-08-合见工软-112分钟-88分左右
- 4号内推
- 12:06 约笔试
- 15:06 发笔试链接
- 16:01 开始笔试
- 17:53 做完笔试
- 18:15 约明天面试
多选 4x3'
-2
非抢占式调度有()
A. 时间片轮转
B. 先来先服务
C. 短进程作业优先
D. 剩余时间最短者优先
which true()
A. 虚拟内存载入内存时允许分多次载入
B. unix 系统中关闭swap后无法使用虚拟内存
C. 虚拟内存是连续的
D. 虚拟内存实际容量由CPU寻址范围决定
AB;ABC ?
15' 问答
编程求二叉树中两节点之间的距离(不需要测试)
#include <iostream>
#include <vector>
using namespace std;
struct node
{
node *left;
node *right;
};
void getPath(vector<const node *> &path, const node *t, const node *root)
{
path.push_back(root);
if (t == root)
return;
if (root->left)
getPath(path, t, root->left);
if (path.back() == t)
return;
if (root->right)
getPath(path, t, root->right);
if (path.back() == t)
return;
else
path.pop_back();
}
int getDistance(node *a, node *b, node *root)
{
if (a == nullptr || b == nullptr || root == nullptr)
return -1;
vector<const node *> pa, pb;
getPath(pa, a, root);
if (pa.size() == 0)
return -1;
getPath(pb, b, root);
if (pb.size() == 0)
return -1;
int i = 0;
while (i < pa.size() && i < pb.size())
{
if (pa[i] != pb[i])
{
return pa.size() + pb.size() - i * 2;
}
i++;
}
return abs(pa.size() - pb.size());
}15' 编程
用 C 实现basename(取最后一个 '/' 后面的字符串 )
// 15' 8min 100%
// "/usr/lib" -> "lib"
// 不使用任何库函数
char* my_basename(char* path, int pathLen, int* returnSize ) {
int i = pathLen-1;
while(i>=0&&path[i]!='/') i--;
if(i==-1) {
*returnSize=pathLen;
return path;
}
else if(i==pathLen-1){
*returnSize=0;
char* p=(char*)malloc(1);
*p='\0';
return p;
}
*returnSize=pathLen-i-1;
return &(path[i+1]);
}58' 41个单选
3、4、8、11、14、15、16、
s=" I like py " s.strip() s.rstrip()
2.
#include <iostream>
#include <vector>
using namespace std;
class a{
public:
virtual void dis(){cout<<"a";}
};
class b:public a{
public:
void dis(){cout<<"B";}
};
class c:public b{
public:
void dis(){cout<<"C";}
};
// f的参数是什么类型
// A. c& p
// B. a& p
// C. c p
// D. a p
void f( ){
p.dis();
}
int main(){
c c1;
f(c1); // 要求输出 a
return 0;
}单例模式中无抽象层,因此单例难以进行类的扩展。()
优化递归程序一般用()
A. 循环优化
B. 尾递归优化
C. 堆栈优化
D. 停止值优化mysql 中
not between 2 and 10指不属于 [2,10] 闭区间?某个子模块为其他模块提供访问不同数据库系统的功能,访问接口有些不同,哪种设计模式可以抽象出相同的数据库访问过程(连接数据库、打开数据库、查询数据)
A. 装饰
B. 外观
C. 单件
D. 模板方法30位单字长指令,地址码为10位,已定义了1000条二地址指令,还可以定义多少条单地址指令
A. 12k
B. 24k
C. 6k
D. 2kint a=4;++(a++)表达式的值是?
A. 5
B. 6
C. 7
D. 都不对linux if [ $
-a $
= "test" ],-a 的意思是
A. 减
B. 大于
C. 并且
D. 全部reg[7:0] mema[15:0] 表示该存储器有8个16位的寄存器 ()
python 类里函数前的 @property 表示私有属性?
__co 统计创建的类对象的个数
class r: __co=0 def __init__(self,w,h): r.__co+=1data的地址是x,则data[1][5].c 的地址是
A. x+365
B. x+159
C. x+368
D. x+215
struct Date{ // 64位系统
char a;
int b;
int64_t c;
char d;
};
int main(){
Date date[2][10];
cout<<date<<"\n";
cout<<&date[1][5]<<"\n";
cout<<&date[1][5].c<<"\n";
cout<<(&date[1][5]-*date)<<"\n";
cout<<sizeof(Date)<<"\n";
return 0;
}which wrong:
A. 编译时的多态性可通过函数重载实现
B. C++语言的多态性可分为编译时多态性和运行时多态性
C. 运行时多态性可通过模板和虚函数实现
D. 实现运行时多态性的机制称为动态绑定Verilog task which wrong
A. 可以没有或者可以有一个或多个输入、输出和双向端口
B. 任务内可包含延时语句、敏感事件控制语句
C. 没有返回值
D. 任务内不能出现always语句,但可以有initial语句linux umask=244, 创建一个新文件,权限是?
A. -r-xr--r--
B. --w-r--r--
C. -r---w--w-
D. -r-x-wx-wx
5, 5, 14, 38, 87, ()
A. 68
B. 167
C. 169
D. 170输出什么?
struct A{
void foo(){cout<<"foo";}
virtual void bar(){cout<<"bar";}
A(){bar();}
};
struct B:A{
void foo(){cout<<"b_foo";}
void bar(){cout<<"b_bar";}
};
int main(){
A* p=new B;
p->foo();
p->bar();
return 0;
}- 输出什么
void f(char s[100]){
cout<<sizeof(s)<<endl;
}
int main(){
char st[]="Hello";
cout<<sizeof(st);
char* p=st;
cout<<sizeof(p);
f("test");
return 0;
}- 1500 个灯亮着,编号为1-1500,切换编号为2的倍数的灯的开关,然后切换编号为5的倍数的灯的开关,最后切换编号为7的倍数的灯的开关,还有几盏灯亮着?
A. 514
B. 236
C. 750
D. 535
- 哪个对
A. 栈溢出
B. 不能编译
C. 段错误
D. 都不对
class m{
public:
void f(){
delete this;
}
};
void func(){
m* a=new m();
a->f();
}
int main(){
func();
return 0;
}- 哪几个有错误
int i=10; int j=1; const int* p1; // 1 int const* p2= &i; // 2 p2=&j; // 3 int* const p3 = &i; // 4 *p3=20; // 5 *p2=30; // 6 p3=&j; // 7
A. 1 3 5 6
B. 1-7
C. 6 7
D. 3 5
E. 其他
输出:
'I like py'
' I like py'D;
对
B
对
B
B
D
C
对
错,只读属性
对
C
C 模板是静态多态
D
C
B
做差,找规律
- barfoob_bar
- 688
- C
- D
- C
