欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

广联达笔试题汇总

程序员文章站 2022-06-04 16:50:08
...

1. 代码输出结果为?

#include<iostream>
using namespace std;
class A {
public:
	virtual void f() { cout << "/"; }
};
class B :public A {
public:
	virtual void f() { cout << "#"; }
};
void fun1() { A *p = new B; p->f(); }
void fun2() { A a, &p=a; p.f(); }
void fun3() { B b;A p=b; p.f(); }
int main() {
	fun1();
	fun2();
	fun3();
	return 0;
}

#//

 

2. 代码输出结果为?

#include<iostream>
using namespace std;

class B {
public:
	B(int xx = 1) :x(xx) { x += 1; };
	virtual void show() { cout << x << endl; }
private:
	int x;
};
class D :public B {
public:
	D(int xx = 1, int yy = 2) :B(xx), y(yy) { y += 2; }
	void show() { cout << y << endl; }
private:
	int y;
};

int main() {
	B ob1, &ob2 = ob1;
	ob1.show();
	return 0;
}

2

 

3. 能采用贪心算法求最优解的问题,一般具有的重要性质为:

 ①贪心选择性质:进行选择时,直接做出在当前问题中看来最优的选择,而不必考虑子问题的解;

 ②最优子结构:如果一个问题的最优解包含其子问题的最优解,则称此问题具有最优子结构性质

 

4. 代码输出结果为4,5,6,横线处应该填什么?

#include<iostream>
using namespace std;

class A {
	int a1;
public:
	A(int x, int y) :a1(x),a2(y){}
	void show1() { cout << a1 << " " << a2 << endl; }
protected:
	int a2;
};
class B :public A {
	int b1;
protected:
	int b2;
public:
	B(int x,int y,int z,int k):_______,b1(z),b2(k){}
	void show2() { cout << a2<<" "<<b1<<" "<<b2 << endl; }
};

int main() {
	B ob2(3,4,5,6);
	ob2.show2();
	system("pause");
	return 0;
}

A(x,y)

 

5. 计算机操作系统中,若WAIT、SIGNAL操作的信号量S初值为3,当前值为-2,则表示当前有( )个等待信号量S的进程。

2

若信号量为正则表示资源数,若为负则其绝对值表示等待的进程数。

初值为3,表示初始时有3个可用的资源。现在为-2,说明这3个可用资源已经被占用了,而且有2个进程在等待资源

 

6. NP(Nondeterministic Polynomially,非确定性多项式)类问题是指一个复杂问题不能确定是否在多项式时间内找到答案,但是可以在多项式时间内验证答案是否正确。

 

7. 解决死锁的4种基本方法:

1、预防死锁:通过设置一些限制条件,去破坏产生死锁的必要条件

2、检测与拆除死锁:这种方式使允许死锁发生,检测死锁产生,然后解除死锁;
检测的具体实施可以维护两个资源矩阵,对可用资源和需要资源进行比较;
解除死锁的方式主要可以实施抢占剥夺;kill掉进程;回滚系统等;

3、动态避免:在资源分配过程中,确保资源请求批准后系统不会进入死锁或潜在的死锁状态。如银行家算法

 

8. 

邻接表,存储方法跟树的孩子链表示法相类似,是一种顺序分配和链式分配相结合的存储结构。如这个表头结点所对应的顶点存在相邻顶点,则把相邻顶点依次存放于表头结点所指向的单向链表中。

 

9. 

当程序从编辑完成到执行成功都会经过5个步骤,分别是预处理(Prepressing)、编译(Compilation)、汇编(Assembly)、链接(Linking)和执行(Executing)。

 

10. 贪心算法和动态规划区别

  • 贪心算法
    基本思想:贪心算法并不从整体最优上加以考虑,它所做的选择只是在某种意义上的局部最优解。
    基本要素:最优子结构性质和贪心选择性质。
     

    最优子结构性质

    问题的整体最优解中包含子问题的最优解

    贪心选择性质

    l 整体的最优解可通过一系列局部最优解达到

    l 每次的选择可依赖以前作出的选择,但不依赖后续选择

  • 动态规划
    基本思想:将待求解的问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。
    基本要素:最优子结构性质和重叠子问题性质
     
  • 贪心算法与动态规划的区别
    共同点:两者都具有最优子结构性质
    不同点:

    1) 动态规划算法中,每步所做的选择往往依赖于相关子问题的解,因而只有在解出相关子问题时才能做出选择。而贪心算法,仅在当前状态下做出最好选择,即局部最优选择,然后再去解做出这个选择后产生的相应的子问题。

    2) 动态规划算法通常以自底向上的方式解各子问题,而贪心算法则通常自顶向下的方式进行。  

       3)贪心算法:全局最优解由局部最优解构成,下一步的局部最优解仅由上一步的局部最优解推导出,也就是说每次仅保留上一步的最优解。

动态规划:全局最优解肯定包含局部最优解,但下一步的局部最优解,不一定由上一步的局部最优解推导出,因此需要保留之前所有的最优解。

 

11. B/S模型中标准协议是http,http协议特点()

支持客户/服务器模式;

简单快速;

灵活;

无连接;

无状态

HTTP是无连接:限制每次连接只处理一个请求,服务器处理完客户的请求 ,并接收到客户的应答后即断开连接,采用这种方式可以节省传输时间。
HTTP是媒体独立的:意味着只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。
HTTP是无状态的:HTTP协议是无状态协议。意指协议对事物处理没有记忆能力。如果后续处理需要前面的信息则他必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时,它的应答就比较快。

 

12. 

主键索引:它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候指定了主键,就会创建主键索引, CREATE INDEX不能用来创建主键索引,使用 ALTER TABLE来代替。

唯一索引:与普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须一。

 

相关标签: 面试经历