选择
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
一共 20 道:
题目原题记不太清了,只记得大概的
知识点
高中化学知识点免费下载体育概论知识点下载名人传知识点免费下载线性代数知识点汇总下载高中化学知识点免费下载
,题目的顺序也不完全一致。
1.给出一个网络图,有交换机,路由器,一般电脑,要求圈出一个最小子网。
2.Java 的一个基础题目
给出两个类,类 B,类 A, A 继承 B,给出一段代码,创建了 A 和 B 的实例,要求选出符合
语法的选项,主要
考察私有变量在继承时的访问权限问题。
挺基础的,大家看了应该都会做。
3.算法分析题,要求分析给定代码的时间复杂度。
算法中有递归,仔细分析下不太难。
4.c++基础题,考察实例变量和类变量,实例函数和类函数的区别。
5.windows 消息处理的顺序问题,这个我不会。。
给出几个选项,按 windows 消息处理的顺序排序。
6.Linux 查看系统活跃进程的命令是:
答案:ps
7.朴素贝叶斯分类器需要有些什么特征?这个是填空题,几本概念都不记得了。
8.数据库的题目,这个我也是蒙的。。
题目给出一个创建数据库表的代码,问题为:选出能够借助索引加速排序过程的 sql 指令。。
9: call by value 和 call by reference 的区别?
10: 下列哪种操作可能带来死锁?
A: lock(m1) lock(m2) unlock(m1) unlock(m2)
B: lock(m1) lock(m2) unlock(m2) lock(m2) unlock(m1) unlock(m2)
C: lock(m1) lock(m2) unlock(m1) lock(m1) unlock(m2) unlock(m1)
D: lock(m1) lock(m2) unlock(m1) unlock(m2) lock(m1) unlock(m1)
11: 外部排序常用的算法?
A:归并排序 B:快速排序 C:堆排序 D:希尔排序
12: 在对空间和时间都有限制的实时系统中,常使用的排序算法?
A:插入排序 B:堆排序 C:快速排序 D:归并排序
13: 高度为 1 的平衡二叉树节点为 1 个,高度为 5 的最少多少个?
14:
union Test
{
char a[4];
short b;
};
Test test;
test.a[0]=256;
test.a[1]=255;
test.a[2]=254;
test.a[3]=253;
printf("%d\\n",test.b);
问题:在 80X86 架构下,输出什么值?填空题。
其他的想不起来了。
二、名词解释
10 个,给出英文简写,要求写出英文全称,一句话解释是干什么的就行
LVS,QoS,AIO,Round Robin,SVN,VBA,SDK,IoC, FIFO,MVC
三、编程题
1.要求选给出思路,然后写代码,可以使用 c/c++/java/python 或者伪代码描述。
有两个数,A 和 B,六种操作分别是+12,-12,+7,-7,+5,-5。A 经过若干次操作,变成 B
是输入任意 2 个数 A 和 B,要给出变换过程,这其中的操作序列就是一个路径,也就是最少
的操作次数
解析:使用回溯,剪枝,分支限界
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
。
2.
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
一个存储 XML 文档的数据结构,要求存取效率尽可能高。。
这个题我就顺便扯了几下,大家可以多多发挥
--
1.为什么基类的析构函数是虚函数?
答:编译器总是根据类型来调用类成员函数。但是一个派生类的指针可以安全地
转化为一个基类的指针。这样删除一个基类的指针的时候,C++不管这个指针指
向 一个基类对象还是一个派生类的对象,调用的都是基类的析构函数而不是派
生类的。如果你依赖于派生类的析构函数的代码来释放资源,而没有重载析构函
数,那么 会有资源泄漏。所以建议的方式是将析构函数声明为虚函数。如果你
使用 MFC,并且以 CObject或其派生类为基类,那么 MFC已经为你做了这件事 情;
CObject的析构函数是虚函数。一个函数一旦声明为虚函数,那么不管你是否加
上 virtual 修饰符,它在所有派生类中都成为虚函数。但是由于理解明确起见,
建议的方式还是加上 virtual 修饰符。
2.Union 和 sturct 区别(是以选择题形式出现,一个具体的例子)
答:1. struct和 union都是由多个不同的数据类型成员组成, 但在任何同一时
刻, union中只存放了一个被选中的成员, 而 struct的所有成员都存在。在
struct中,各成员都占有自己的内存空间,它们是同时存在的。一个 struct变
量的总长度等于所有成员长度之 和。在 Union中,所有成员不能同时占用它的
内存空间,它们不能同时存在。Union变量的长度等于最长的成员的长度。
2. 对于 union的不同成员赋值, 将会对其它成员重写, 原来成员的值就不
存在了, 而对于 struct的不同成员赋值是互不影响的。
3.单链表逆置(c编程)
class Node
{
public:
int value;
Node* next;
};
Node* ReserveLink(Node* head)
{
if(head==0 || head->next==0) return head;
Node* p, *q, *temp;
p= head->next;
q=p->next;
while(q)
{
temp = q->next;
q->next = p;
q = temp;
}
return p;
}
4.1~20 的整数的全排列(c 编程)
这个题暂时用 C#来实现,如果各位有好的办法或者更高效的实现请跟帖讨论
public static string[] PrintArrangementVer1(string inItems)
{
List list = new List();
if (string.IsNullOrEmpty(inItems)) return null;
else if (inItems.Length == 1)
{
list.Add(inItems.ToString());
}
else if (inItems.Length == 2)
{
list.Add(inItems);
list.Add(inItems[1].ToString() +
inItems[0].ToString());
}
else
{
for (int i = 0; i < inItems.Length; i++)
{
string[] strs =
PrintArrangementVer1(inItems.Substring(0, i)
+ inItems.Substring(i + 1, inItems.Length -
i - 1));
foreach (string temp in strs)
{
list.Add(inItems[i].ToString() + temp);
}
}
}
return list.ToArray();
}
5.字符串拷贝(特殊要求是源地址和目标地址的空间有重叠的,C编程)
char * strcpy(char * strDest,const char * strSrc)
{
if ((strDest==NULL)||(strSrc==NULL)) //[1]
throw "Invalid argument(s)"; //[2]
char * strDestCopy=strDest; //[3]
while ((*strDest++=*strSrc++)!='\0'); //[4]
return strDestCopy;
}
点评:
[1]
(A)不检查指针的有效性,说明答题者不注重代码的健壮性。
(B)检查指针的有效性时使用((!strDest)||(!strSrc))或
(!(strDest&&strSrc)),说明答题者 对 C 语言中类型的隐式转换没有深刻认识。
在本例中 char *转换为 bool即是类型隐式转换,这种功能虽然灵活,但更多的
是导致出错概率增大和维护成本升高。所以 C++专门增加了 bool、true、false 三
个关键字以提供更安全的条件表达式。
(C)检查指针的有效性时使用((strDest==0)||(strSrc==0)),说明答题者不知道
使用常量的好处。直接使用字面常量(如本例中的 0)会减少程序的可维护性。
0虽然简单,但程序中可能出现很多处对指针的检查,万一出现笔误,编译器不
能发现,生成的程序内含逻辑错误,很难排除。而使用 NULL代替 0,如果出现
拼写错误,编译器就会检查出来。
[2]
(A)return new string("Invalid argument(s)");,说明答题者根本不知道返回
值的用途,并且他对内存泄漏也没有警惕心。从函数中返回函数体内分配的内存
是十分危险的做法,他 把释放内存的义务抛给不知情的调用者,绝大多数情况
下,调用者不会释放内存,这导致内存泄漏。
(B)return 0;,说明答题者没有掌握异常机制。调用者有可能忘记检查返回值,
调用者还可能无法检查返回值(见后面的链式表达式)。妄想让返回值肩负返回
正确值和异常 值的双重功能,其结果往往是两种功能都失效。应该以抛出异常
来代替返回值,这样可以减轻调用者的负担、使错误不会被忽略、增强程序的可
维护性。
[3]
(A)忘记保存原始的 strDest值,说明答题者逻辑思维不严密。
[4]
(A)循环写成 while (*strDest++=*strSrc++);,同[1](B)。
(B)循环写成 while (*strSrc!='\0') *strDest++=*strSrc++;,说明答题者对
边界条件的检查不力。循环体结束后,strDest 字符串的末尾没有正确地加上
'\0'。
6.关于 http 功能和 tcp 报头的
答:TCP
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
头最少 20个字节,包括以下的区域
TCP源端口(Source Port):16位的源端口其中包含初始化通信的端口。源端口
和源 IP地址的作用是标示报问的返回地址。
TCP目的端口(Destination port):16位的目的端口域定义传输的目的。这个端
口指明报文接收计算机上的应用程序地址接口。
TCP序列号(序列码,Sequence Number):32位
TCP应答号(Acknowledgment Number):32 位的序列号由接收端计算机使用,重
组分段的报文成最初形式。如果设置了 ACK 控制位,这个值表示一个准备接收的
包的序列码。
数据偏移量(HLEN):4位包括 TCP头大小,指示何处数据开始。
保留(Reserved):6位值域,这些位必须是 0。为了将来定义新的用途所保留。 标
志(Code Bits):6 位标志域。表示为:紧急标志、有意义的应答标志、推、重
置连接标志、同步序列号标志、完成发送数据标志。按照顺序排列是:URG、ACK、
PSH、RST、SYN、FIN。
7.sql 语句
8.比较次数与初始序列无关的排序方法有哪些?
Q5: call by value和 call by reference的区别?
A5: call by value复制了实参,而 call by reference相当于使用了实参的别名。
Q6: R(x)表示实数,Q(x)表示有理数,则并非每个实数都是有理数?A6: B
A: ( )( ( ) ( ))x R x Q x B: ( )( ( ) ( ))x R x Q x
C: ( )( ( ) ( ))x R x Q x D: ( )( ( ) ( ))x R x Q x
Q7: 下列哪种操作可能带来死锁?A7: C
A: lock(m1) lock(m2) unlock(m1) unlock(m2)
B: lock(m1) lock(m2) unlock(m2) lock(m2) unlock(m1) unlock(m2)
C: lock(m1) lock(m2) unlock(m1) lock(m1) unlock(m2) unlock(m1)
D: lock(m1) lock(m2) unlock(m1) unlock(m2) lock(m1) unlock(m1)
Q8: 外部排序常用的算法?A8: A
A:归并排序 B:快速排序 C:堆排序 D:希尔排序
外部排序是指大文件的排序,即待排序的文件存储在外存储器上,无法一次
装入内存,需要在内存和外存之间进行多次数据交换,以达到排序整个文件的目
的。外部排序最常用的算法是多路归并排序。
Q9: 在对空间和时间都有限制的实时系统中,常使用的排序算法?A9: B
A:插入排序 B:堆排序 C:快速排序 D:归并排序
Q10: 高度为 1的平衡二叉树节点为 1个,高度为 5的最少多少个?A10: 12
平衡二叉树具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝
对值不超过 1,并且左右两个子树都是一棵平衡二叉树。
一.填空选择题。(好像是 20多分)
太多了,忘了,总之是基础的啦,有看代码的题,有个 Python 脚本的没看懂
1.以下协议中,报文头最短的协议是:
A.UDP B.TCP C.IP D.以太网帧
2.一个递归算法球时间复杂度,具体忘了,自己先考虑着吧
3.
二.名词解释。(10分,一题 1分)
例如:COM = Component Object Model = 组件对象模型
1.ATL
2.SSH(JAVA)
3.SVN
4.MSDN
5,NAT
6,JVM
7,CSS
8.AIO,
9,AJAX
备注:总共 10 个,忘了一个,另外顺序和原题当然也不一样啦。
三.问答题。(好像是 42分,第一题 6分,其他三题 12分)
1.分别解释 const char* p, char const* p, char* p const的作用和区别,如果是 java
程序员,比较 StringBuilder 和 StringBuffer 的区别
2.有两个表,分别表示用户的发图记录和发帖记录,写一 SQL 语句,求发帖
数最少的用户发的图片数,以下是表结构,其中两个表以 img_user,rev_user 关联。
Img_id Img_user
1.jpg 2
2.gif 3
3.png 2
表 image
Rev_id Rev_user
0 1
1 2
2 2
表 revision
如:select _______ as user_id, _______ as rev_count, _______ as img_count from
______
3.对于函数 strtok 在多线程下会存在什么问题,应该如何解决。
备注:Strtok 是个字符串分割函数,搜狐原题中给了 C 和 JAVA 的实现代码,这
个大家可以到网上找找,总之就是 strtok 函数中用到了一个静态变量,并且会读
写这个静态变量,所以在多线程情况下是不安全的,需要同步。
4.已知一个 N*N 矩阵,矩阵内的元素满足如下条件:对于任意的 i+j > x+y 则
Aij > Axy,写一个算法,查找数 X 的位置,要求算法最优,写出时间复杂度。
备注:搜狐原题中给出了类似的一个矩阵,我肯定是忘了,不过不影响做题。
四.编程题。(20分,任选一个)
1.旅行者问题,已知 N*N 的格子,旅行者要从格子的左上角走到右下角,格
子中的数字代表格子中的金币数,其中-1 是旅行者不能走的格子,旅行者需要
N-1 步能走到重点,这里的每一步可以是向下走一格,也可以是向右走任意格然
后再向下走一格。写一算法,使得旅行者走过的路径中得到的金币数量最多。
1 4 4
1 1 2 100
2 2 1 -1
1 2 1 1
备注:格子类似于上面的,但是具体数字和原题不一样,记不住了,大家将就看
吧,最后的算法是一样的,不影响算法的编写。
2.已知一个十二进制数,用字符串表示,如”11”,写一个函数,将其转为 long
型的 10 进制数,如:字符串”11”,最后转为 13(10) ,函数原型为:long convert(const
char* pStr);