深信服历年笔试

深信服历年笔试
深信服历年笔试

1.. release版本的可执行程序为什么非常大?

程序一般分为Debug版本和Release版本,Debug版本用于内部调试,Release版本发行给用户使用

Release和Debug有什么不同

Release版称为发行版,Debug版称为调试版。

Debug中可以单步执行、跟踪等功能,但生成的可执行文件比较大,代码运行速度较慢。Release版运行速度较快,可执行文件较小,但在其编译条件下无法执行调试功能。

Release的exe文件链接的是标准的MFC DLL(Use MFC in a shared or static dll)。这些DLL在安装Windows的时候,已经配置,所以这些程序能够在没有安装Visual C++ 6.0的机器上运行。而Debug版本的exe链接了调试版本的MFC DLL 文件,在没有安装Visual C++6.0的机器上不能运行,因为缺相应的DLL,除非选择use static dll when link。

sizeof(d)? 为什么在不同的平台上得到的值不一样?

C++拷贝构造函数和赋值运算符有那些不同和相同点。

拷贝构造函数和赋值号的异同

同:都可以对对象的成员进行赋值

异:

拷贝构造函数首先是一个构造函数,它调用的时候产生一个对象,是通过参数传进来的那个对象来初始化,产生的对象。

赋值是把一个对象赋值给一个原有的对象,而且还要检查一下两个对象是不是同一个对象,如果是的话就不做任何操作。

软件开发过程包含哪些阶段?各阶段质量保证措施是什么?

、1.需求分析

需求分析是开发人员对系统需要做什么和如何做的定义过程。从系统分析的经验来看,这个过程往往是个循序渐进的过程,一次性对系统形成完整的认识是困难的。只有不断地和客户领域专家进行交流确认,方能逐步明了用户的需求。从系统开发的过程得知,系统分析时犯下的错误,会在接下来的阶段被成倍的放大,越是在开发的后期,纠正分析时犯下的错误所花费的代价越是昂贵,也越发影响系统的工期和系统的质量。

解决系统分析错误的方法我们公司通常采用邀请用户参与进行需求评定,然后对其用户的意见由质保成员跟踪检测是否纳入需求规格说明书,同时与用户签字确认形成需求基线,交由配置管理员放入配置管理库。

b、系统设计

优良的体系结构应当具备可扩展性和可配置性,而好的体系结构则需要好的设计方法,自然设计选型成为了系统设计首要的工作,究竟是采用哪种设计方法好呢?

对于设计选型不能一概而论,需要针对项目的结构、项目的特征和用户的需求来分析,同样也要考虑到参与项目小组成员的素质,如果其中大部分都没有从事过面向对象的设计且项目进对紧迫,这样没有多余的时间来培训小组成员来掌握面向对象的设计方法,尽管众所周知面向对象设计方法的优势,我们还是不如采用面向过程的方式(除用户指定开发设计方式外)可以减少项目承担的技术风险。

c、实现

实现也就是代码的生产过程。这里不仅包括代码的产生,同时也包括测试用例的产生。针对上一阶段提供详细设计,程序员开始编码并且调试程序,测试人员则根据设计进行测试用例的设计,设计出来的用例需要得到项目组成员认可由项目经理审核通过才能进入配置库。同时程序员调试完程序提交测试人员进行程序正确性检测。

d、文档管理

文档维护主要是配置管理小组的工作。文档从用途上分主要分为内部文档和外部文档。

内部文档包括:项目开发计划;需求分析;体系结构设计说明;详细设计说明;构件索引;构件成分说明;构件接口及调用说明;组件索引;组件接口及调用说明;类索引;类属性及方法说明;测试报告;测试统计报告;质量监督报告;源代码;文档分类版本索引;软件安装打包文件。

外部文档主要包括:软件安装手册;软件操作手册;在线帮助;系统性能指标报告;系统操作索引。

3、系统维护质量保证

2.使用C++赋值运算符应注意什么地方?

如果函数的返回值是一个对象,有些场合用“引用传递”替换“值传递”可以提高效率。而有些场合只能用“值传递”而不能

用“引用传递”,否则会出错。

对于赋值函数,应当用“引用传递”的方式返回String对象。如果用“值传递”的方式,虽然功能仍然正确,但由于return

语句要把*this拷贝到保存返回值的外部存储单元之中,增加了不必要的开销,降低了赋值函数的效率。

对于相加函数,应当用“值传递”的方式返回String对象。如果改用“引用传递”,那么函数返回值是一个指向局部对象temp

的“引用”。由于temp在函数结束时被自动销毁,将导致返回的“引用”无效

3.exit()和_exit() 的区别。

exit()?与…_exit()?的基本区别在于前一个调用实施与调用库里用户状态结构(user-mode constructs)有关的清除工作(clean-up),而且调用用户自定义的清除程序,在退出程序前,关闭文件,清除缓存。后一个函数只为进程实施内核清

除工作。不关闭文件,不清楚缓存。

4.哪些方法可让一个进程仅有一个实例运行?

设置临界区,(可以定义自旋锁不?)使用Microsoft提供的互斥类Mutex

使用API函数,获取当前进程,遍历正在有相同名字运行的进程。

红黑树比A VL树的优势在哪?

红黑树引入了“颜色”的概念。引入“颜色”的目的在于使得红黑树的平衡条件得以简化。正如著名的密码学专家Bruce Schneier所说的那样

,“Being Partly balanced can be good enough”,红黑树并不追求“完全平衡”——它只要求部分地达到平衡要求,降低了

对旋转的要求

,从而提高了性能。红黑树能够以O(log2 n)的时间复杂度进行搜索、插入、删除操作。此外,由于它的设计,任何不

平衡都会在三次旋转之内

解决。当然,还有一些更好的,但实现起来更复杂的数据结构能够做到一步旋转之内达到平衡,但红黑树能够给我们

一个比较“便宜”的解决

方案。红黑树的算法时间复杂度和A VL相同,但统计性能比A VL树更高。

5.阻塞模式的recv在没受到数据的情况下如何返回?(不能将socket修改为非阻塞)

recv(fd,buf,sizeof(buf),flag)函数原型

将recv()函数的标志位设为停止等待或者设置一个延时退出,超时返回什么的

recv(fd, buf, sizeof(buf), MSG_DONTW AIT);

这里采用了MSG_DONTWAIT标志,它的作用是告诉recv()函数如果有数据到来的话就接受全部数据并立刻返回,

没有数据的话也是立刻返回,而不进行任何的等待。这里的MSG_DONTW AIT 是我们自己定义的一个标志。

6.strcpy()为什么会造成缓冲区溢出?可用哪个函数替代?

造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数,strcpy()函数将源字符串复制到缓冲区。没有指定要复

制字符的具体数目。复制字符的数目直接取决于源字符串中的数目。如果源字符串碰巧来自用户输入,且没有专门限

制其大小,则有可能会导致缓冲区溢出。可用strncpy() 函数替代

7.哪些方法可以避免或减少锁的使用

8. 给定一个int型数n,写一个尽可能简单的函数判断n是否为2的幂,不能用循环。

答:bool foo(int n)

{

int a=n;

if(n<=0) return false;

a=((a&0xAAAAAAAA)>>1)+(a&0x55555555); a=((a&0xCCCCCCCC)>>2)+(a&0x33333333); a=((a&0xF0F0F0F0)>>4)+(a&0x0F0F0F0F); a=((a&0xFF00FF00)>>8)+(a&0x00FF00FF); a=((a&0xFFFF0000)>>16)+(a&0x0000FFFF);

if(a==1) return true;

else return false;

}

9.能识别正则表达式的命令有:grep egrep

10..VC中有哪些方法避免C编译头文件重复。

#ifndef #define #endif #pragma once

11.extern "C"的用法。

用于提供C 接口,如使用 C 命名方式等

作为extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。

extern "C"是连接申明(linkage declaration),被extern "C"修饰的变量和函数是按照C语言方式编译和连接的

.

12.异步socket编程中,send不出数据的错误码是什么,(举Linux或Windows为例),你是怎么处理的?

非阻塞SOCKET,SEND不出数据的原因,TCP下连接断开了和该SOCKET处在阻塞状态(也就是说在发送数据中)。UPD发不出可能是SOCKET处于阻塞状态。

处理的办法就是记录下该SOCKET的状态,当状态为阻塞的时间,放入缓冲,当该SOCKET再次可写时,发送。

13..函数前的static和volatile变量中关键字的作用

(1)auto

这个这个关键字用于声明变量的生存期为自动,即将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量。这个关键字不怎么多写,因为所有的变量默认就是auto的。

(2)register

这个关键字命令编译器尽可能的将变量存在CPU内部寄存器中而不是通过内存寻址访问以提高效率。

(3)static

常见的两种用途:

1>统计函数被调用的次数;

2>减少局部数组建立和赋值的开销.变量的建立和赋值是需要一定的处理器开销的,特别是数组等含有较多元素的存储类型。在一些含有较多的变量并且被经常调用的函数中,可以将一些数组声明为static类型,以减少建立或者初始化这些变量的开销.

详细说明:

1>、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。

2>、变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。

3>当static用来修饰全局变量时,它就改变了全局变量的作用域,使其不能被别的程序extern,限制在了当前文件里,但是没有改变其存放位置,还是在全局静态储存区。

(4)const

被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。它可以修饰函数的参数、返回值,甚至函数的定义体。

作用:

1>修饰输入参数

a.对于非内部数据类型的输入参数,应该将“值传递”的方式改为“cons t引用传递”,目的是提高效率。例如将void Func(A a) 改为void Func(const A &a)。

b.对于内部数据类型的输入参数,不要将“值传递”的方式改为“const引用传递”。否则既达不到提高效率的目的,又降低了函数的可理解性。例如void Func(int x) 不应该改为void Func(const int &x)。

2>用const修饰函数的返回值

a.如果给以“指针传递”方式的函数返回值加const修饰,那么函数返回值(即指针)的内容不能被修改,该返回值只能被赋给加const修饰的同类型指针。

如对于:const char * GetString(void);

如下语句将出现编译错误:

char *str = GetString();//cannot convert from 'const char *' to 'char *';

正确的用法是:

const char *str = GetString();

b.如果函数返回值采用“值传递方式”,由于函数会把返回值复制到外部临时的存储单元中,加const修饰没有任何价值。如不要把函数int GetInt(void) 写成const int GetInt(void)。

3>const成员函数的声明中,const关键字只能放在函数声明的尾部,表示该类成员不修改对象.

说明:

const type m; //修饰m为不可改变

示例:

typedef char * pStr; //新的类型pStr;

char string[4] = "abc";

const char *p1 = string;

p1++; //正确,上边修饰的是*p1,p1可变

const pStr p2 = string;

p2++; //错误,上边修饰的是p2,p2不可变,*p2可变

同理,const修饰指针时用此原则判断就不会混淆了。

const int *value; //*value不可变,value可变

int* const value; //value不可变,*value可变

const (int *) value; //(int *)是一种type,value不可变,*value可变

//逻辑上这样理解,编译不能通过,需要tydef int* NewType;

const int* const value;//*value,value都不可变

(5)volatile

表明某个变量的值可能在外部被改变,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。它可以适用于基础类型如:int,char,long......也适用于C的结构和C++的类。当对结构或者类对象使用volatile修饰的时候,结构或者类的所有成员都会被视为volatile.

14.7、异步IO和同步IO有什么区别?举例说明有几种(如read)?

异步IO当函数返回时不一定就完成了IO操作,而同步IO已经完成了。所以异步IO需要有一个事件,当IO完成时会设置此事件,调用者在事件上等待。一般说来,异步I/O是和同步I/O相比较来说的,如果是同步I/O,当一个I/O操作执行时,应用程序必须等待,直到此I/O执行完. 相反,异步I/O操作在后台运行,I/O操作和应用程序可以同时运行,提高了系统性能; 使用异步I/O会提高I/O流量,如果应用是对裸设备进行操作,这种优势更加明显

, 因此象数据库,文件服务器等应用往往会利用异步I/O,使得多个I/O操作同时执行.

8、32位系统中,出现结构字节对齐的问题和大小端的问题的避免?

指定对齐值:#pragma pack (value)时指定的对齐value

写一个函数判断系统是大端还是小端。若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1.

大端格式:在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中

小端格式:与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节

联合体union的存放顺序是所有成员都从低地址开始存放。

Int checkCPU ()

{

Union w

{

Int a;

Char b;

}c;

c.a=1;

return (c.b==1);

}

14 如何在Release版本中查找以下问题,

a 内存泄漏

b 段错误导致非法操作

c 程序CPU占用100%

9、如何查出内存泄漏和非法操作的BUG(在Release版本下)?

检查window (release)下的内存泄漏

1、放置关键字assert()

2、生成map 文件。它并不往可执行文件exe 中添加任何东西,只是在编译的时候将各个函数入口地址记录在后缀为.map的文件中,程序崩溃的时候可以得到一个EIP地址,通过地址知道崩溃所在函数

3、可以设置断点,在希望设置断点的地方加入_ASM int 3

4、可以通过编译时的汇编程序看出

5、采用第三方工具

查找段错误导致的非法操作用

ptrace系统调用跟踪调试运行中的进程(truss、strace或ltrace的原理都是根据ptrace系统调用跟踪调试运行中的进程)用truss跟踪clint的系统调用来找出错误,clint是c++静态源码分析工具。通过ports安装好之后利用调试工具truss即可。

核心太与用户太的区别,x86如何转换。中断调用,从ring3转到ring0

现代的操作系统一般都有核心模式和用户模式之分,操作系统核心代码运行在核心模式下,具有较高的运行级别,具有较高的运行效率和较强的底层控制权力,系统硬件为其提供了尽可能多的内存保护以及其他措施,而用户进程则一般运行在用户模式下,其运行级别较低。

在x86平台下,核心态和用户态的区分主要是通过段选择子确定的,具体来说,在Linux环境下,核心态的代码段选择子为0x10,数据段选择子为0x18;而用户态的代码段选择子为0x23,数据段选择子为0x2B,因此核心态程序工作在ring0,而用户态程序工作在ring3。在用户模式下只能访问用户空间而在核心模式下可以访问系统空间和用户空间从用户态进入核心态的最常用的方法是在寄存器eax填一个功能码,然后执行int 2e。这有点像DOS时代的DOS和BIOS 系统调用。在NT架构中这种机制被称作system service。

Unix的启动顺序排序。

第一步:通过/boot/vm进行启动vmlinuz

第二步:init /etc/inittab

第三步:启动相应的脚本,并且打开终端

rc.sysinit

rc.d(里面的脚本)

rc.local

第四步:启动login登录界面login

第五步:在用户登录的时候执行sh脚本的顺序:每次登录的时候都会完全执行的

/etc/profile.d/file

/etc/profile

/etc/bashrc

/root/.bashrc

/root/.bash_profile

对比平衡二叉树AVL和红黑树。哈希表

平衡二叉树和哈希表,哈希表的查找比较快,而且时间复杂度为O(1),但是它所占的空间比较大,而且插入和删除操作不够灵活,没有动态性。

红黑树算法的时间复杂度和AVL相同,但统计性能比AVL树更高

由于红黑树也是二叉查找树,它们当中每一个节点的比较值都必须大于或等于在它的左子树中的所有节点,并且小于或等于在它的右子树中的所有节点。这确保红黑树运作时能够快速的在树中查找给定的值。

问答

const 有什么用途?(请至少说明两种)

Const用了定义一个常量,

1、用在变量前面的时候可以避免变量被修改

2、用在函数声明部分允许const 的类对象成员访问const 成员函数,如果类的成员函数不会对数据成员进行修改的话最好把该函数定义为const类型,这样无论是const的类对象还是非const 的类对象都可以访问该函数

3、可以用来代替define ,define 只是简单的代替,但是const 还会进行类型检查。

怎么避免头文件重复包含

#ifndef H_HEADFILENAME

#define H_HEADFILENAME

文件内容….

#endif

#paragma once

C++拷贝构造函数和赋值运算符有那些不同和相同点。

同:都可以对对象的成员进行赋值

异:

拷贝构造函数首先是一个构造函数,它调用的时候产生一个对象,是通过参数传进来的那个对象来初始化,产生的对象。

赋值是把一个对象赋值给一个原有的对象,而且还要检查一下两个对象是不是同一个对象,如果是的话就不做任何操作。

Spinlock(自旋锁),mutex,(互斥)semaphore(信号量),vitical section(critical section)的作用与区别?

都是操作系统中内核同步实现数据访问,资源共享的作用

自旋锁是在cpu之间,只能运行一个对象,自旋锁可以在任何时刻防止多于一个的内核任务(进程)同时进入临界区,因此这种锁可有效地避免多处理器上并发运行的内核任务竞争共享资源。

互斥只能运行一个对象,可以使一个进程下的线程间同步。也可以是不同进程间同步,互斥能保证公共资源不会同时被多个线程访问。互斥不仅能实现同一应用程序的公共资源安全共享,还能实现不同应用程序的公共资源安全共享

信号量可以运行多个对象,但是为线程间同步它允许多个线程在同一时刻访问同一资源,但是需要限制在同一时刻访问此资源的最大线程数目

临界区同一个进程下的线程间同步,只能运行一个对象。保证在某一个时间只有一个线程可以访问数据的方法

事件:通过通知操作的方式来保持线程的同步,还可以方便实现对多个线程的优先级比较的操作

正则表达式字符串匹配问题。

比较哈希表和平衡二叉树的特点,它们分别如用那些场合。

哈希表和平衡二叉树的适用场合

哈希表:哈希表查找速度比较快,可以时间复杂度为O(1)的情况下找到实现查找。但是要耗比较多的内存。所以比较适用于对查找速度要求比较高、且内存空间足够的时候

平衡二叉树:如果想在以后用二分法查找的时候查找速度比较快的话用建立平衡二叉树的方法()平衡二叉树支持动态的插入和查找,保证操作在O(height)时间,这就是完成了哈希表不便完成的工作,动态性。平衡二叉树/红黑树就是为了将查找的时间复杂度保证在O(logN)范围内。所以如果输入结合确定,所需要的仅仅是查询,则可以考虑使用哈希表,如果输入集合不确定,则考虑使用平衡二叉树/红黑树,保证达到最大效率。

recv函数如何在阻塞模式下没有收到数据就返回

Rev(buff,sizeof(buff),flag)

可以将rev的标志位定义为无需等待返回,不管其是否收到数据都立即返回,也可以定义为等待时间,如果超过等待时间还没有接受到数据就立即返回,

用锁效率低,有那些方法可以避免或减少锁的使用?

将表建立表级锁,减少锁数量的使用

Main函数中两个参数的作用

第一个形参argc是一个整型变量,第二个形参argv是一个指针数组,其元素指向字符型

数据。用带参数的main函数可以直接从命令行得到参数值(这些值是字符串),在程序运行

时,可以根据输入的命令行中的不同情况进行相应的处理。利用main函数中的参数可以使

程序从系统得到所需的数据,增加了处理问题的灵活性。

进程的几个基本状态:就绪、执行、阻塞

1.匹配"[10]:dddddd"和"[9]:abcdegf"但不匹配"[a]:xfdf"的正则表达式。\b\w{11}\b精确匹配只有11个字符的字符串

5 c++中虚函数如何定义,使用时应该注意什么?

虚函数是在类中被声明为virtual的成员函数,虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行分离;用形象的语言来解释就是实现以共同的方法,但因个体差异而采用不同的策略。

多态指同一个方法根据其所属的不同对象可以有不同的行为(根据自己理解,不知这么说是否严谨)。

8.有红、绿、蓝三色球分别3,2,1个。取任意两个不同颜色的球都会使它们变成第三种颜色的两个球。问最少取多少次,可使这些球都变成同一种颜色?

答:无论多少次,都不可以使这些球变成同一种颜色,

分析:

一、对于(R,R,R,G,G,B)即(3,2,1),有:

i. (R,G) ---> (B,B,B,R,R,G)即(3,2,1)

ii. (R,B) ---> (G,G,G,G,R,R)即(4,2)

iii. (G,B) ---> (R,R,R,R,R,G)即(5,1)

对于(G,G,G,G,R,R)即(4,2),有:

i. (R,G) ---> (G,G,G,B,B,R)即(3,2,1)

对于(R,R,R,R,R,G)即(5,1)有:

i. (R,G) ---> (R,R,R,R,B,B)即(4,2)

因此,只有三种状态(3,2,1), (4,2)和(5,1),不可能出现(6,0)这种情况。

6用C/C++编程,从1到100中取出10个不同的数,要求打印出所有可能的组合;#include

int source[100];

int dest[10]={0};

int index_source=0;

int index_dest=0;

int k=10;

int i=0;

int j=0;

void composition(int source[], int index_source, int dest[], int index_dest, int k) {

if(100-index_source==k)

{

for(i=0; i

{

cout<

}

for(i=index_source; i<100; i++)

{

cout<

}

cout<

return;

}

if(index_source<100 && k==1)

{

for(i=index_source; i<100; i++)

{

for(j=0; j

{

cout<

}

cout<

}

return;

}

composition(source, index_source+1, dest, index_dest, k);

dest[index_dest++]=source[index_source];

composition(source, index_source+1, dest, index_dest, k-1);

}

void main()

{

for(int i=0;i<100;i++)

source=i;

composition(source,0, dest, 0, 10);

}

8 如何判断两个单向链表是否有相交,并找出交点。

给出两个链表的头指针pHead1 和pHead2 ,写一个函数判断两条链表有没交叉点

Node* checkLink(Node* pHead1,Node* pHead2)

{

Node* p1=pHead1,p2=pHead2;

int i=1,j=1;

if(p1==NULL || p2==NULL)

return NULL;

if(p1==p2)

return p1;

while(p1->pNext!=NULL)

{

p1=p1->pNext;

i++;

}

while(p2->pNext!=NULL)

{

p2=p2->pNext;

j++;

}

if(p1==p2)

return NULL;

else

{

for(int k=0;k

{

if(i>j)

p1=p1->pNext;

else

p2=p2->pNext;

}

while(p1!=p2)

{

p1=p1->pNext;

p2=p2->pNext;

}

return p1;

}

}

有1001个球,两个人轮流拿球,且每次只能拿1、2、4个球,规定拿到最后一个球的人为输。如果让你先拿,你是否有必胜的把握。如果有,该如何操作?

解:先拿4个,然后每轮保证两个人所拿球数之和为3或6。

【编程】用最简单的函数实现功能:判断一个int数据是否是2的x次幂(不能使用循环)。

bool Juge(int dat, int x)

{

return !(dat & ~(1 << x));

}

【编程】对于一个给定的整形数组int array[n]。编程实现:将数组中所有小于或等于0的元素都放在数组前面,大于0的元素放在数组后面。要求时间复杂度为o(n)

void Divide(int array[], int n)

int i = 0;

for (int j = 0; j < n; j++)

{

if (array[j] < 0)

{

int temp;

temp = array[i];

array[i] = array[j];

array[j] = temp;

i++;

}

}

}

【简答】用一个程序示意常见的错误能够导致栈破坏,如何检查?

#include "iostream.h"

#include "string.h"

void main()

{

char str[5];

cout<<"input: ";

cin>>str;

while(strlen(str)>5)

{

cout<<"too long!"<

cin>>str;

}

cout<

}

如果系统堆栈很小,不能处理超过4级的函数调用,如何解决八皇后问题:#include

#include

#include

using namespace std;

int *position; //放置的位置

int queen; //皇后数目

int count; //第N种可能性//判断第n行是否放置皇后

bool SignPoint(int n)

{

for (int i=0;i

{

if (*(position+i) == *(position+n)) //该列已经放置过皇后了

return false;

if (abs(*(position+i) - *(position+n)) == n-i) //对角线已经放置过了

return false;

}

return true;

}//设置皇后

void SetQueen(int n=0)

{

if (queen==n)

//该处可以改成自己想要的显示方式

printf("NO.%d: ",++count);

printf("\n");

for (int i=0;i

{

for (int j=0;j

{

if (j == position[i])

{

printf("* ");

}

else

{

printf("0 ");

}

}

printf("\n");

}

printf("\n");

return;

}

else

{

for (int i=0;i

{

position[n] = i; if(SignPoint(n))//如果该位置放置皇后正确的话,则到下一行{

SetQueen(n+1);

}

}

}

}int _tmain(int argc, _TCHAR* argv[])

{

cout<<"请输入皇后的总数:"<

cin>>queen;

position = (int*)malloc(sizeof(int));

SetQueen();

cout<<"摆放完毕"<

cin.get();

cin.get();

return 0;

}

% & . && <= =那个优先级别最高

. & % <= && =

【知识点】数据类型占字节数(32位机)

Sizeof(long)=4; (*)

Sizeof(int) = 4;

Sizeof(short)=2;

Sizeof(char)=1;

Sizeof(double)=8;

Sizeof(float)=4;

(*)对于类(包括结构体),其大小为size=Max{sizeof(除静态类型的成员变量)}的整数倍。且满足size>=sum {sizeof(除静态类型的成员变量)}

【填空】下面的程序在那行崩溃:

struct {

char c;

char *pc;

} a;

int main(int argc, char* argv[])

{

char *p=&a.c;

p[0]=0;

p[1]=0;

p[2]=0;

p[3]=0;

p[4]=0;

p[5]=0;

a.pc=p;

a.pc[5]=0; *

a.pc[4]=0;

a.pc[3]=0;

a.pc[2]=0;

a.pc[1]=0;

a.pc[0]=0;

return 0;

}

【编程】实现函数atoi和itoa。

int atoi(const char *s)

{

int dat = 0;

bool neg = false;

if (*s == '-')

{

s++;

neg = true;

}

while(*s)

{

dat *= 10;

if (*s >= '0' || *s <= '9')

dat += *s - '0';

else

return -1;

s++;

}

return neg ? (-1*dat) : dat;

}

// num:待转换的整型变量str:指向存放结果radix:基数

char *itoa(int num, char *str, int radix)

{

Const char table[]

= "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

char *ptr = str;

if (num == 0)

{ //数值为0时

*ptr++ = '0';

*ptr = '\0';

return str;

}

bool neg = false;

if (num < 0)

{ //数值小于0时,添加负号,并将指针后移

neg = true;

num *= -1;

*ptr++ = '-';

}

while (num)

{

*ptr++ = table[num % radix];

num /= radix;

}

*ptr = '\0';

//反转字符串

char *beg = (neg ? str +1 : str);

ptr--;

while (beg < ptr)

{

int temp = *beg;

*beg = *ptr;

*ptr = temp;

beg++;

ptr--;

}

return str;

}

【知识点】reinterpret_cast

reinterpret_cast是C++里的强制类型转换符。

操作符修改了操作数类型,但仅仅是重新解释了给出的对象的比特模型而没有进行二进制转换。

例如:int *n= new int ;

double *d=reinterpret_cast (n);

在进行计算以后, d 包含无用值. 这是因为reinterpret_cast 仅仅是复制n 的比特位到d, 没有进行必要的分析。

因此, 需要谨慎使用reinterpret_cast.

并且:reinterpret_cast 只能在指针之间转换。

== ===========================================

== static_cast .vs. reinterpret_cast

== ================================================

reinterpret_cast是为了映射到一个完全不同类型的意思,这个关键词在我们需要把类型映射回原有类型时用到它。我们映射到的类型仅仅是为了故弄玄虚和其他目的,这是所有映射中最危险的。(这句话是C++编程思想中的原话) static_cast 和reinterpret_cast 操作符修改了操作数类型。它们不是互逆的;static_cast 在编译时使用类型信息执行转换,在转换执行必要的检测(诸如指针越界计算, 类型检查). 其操作数相对是安全的。另一方面;reinterpret_cast 仅仅是重新解释了给出的对象的比特模型而没有进行二进制转换,例子如下:

int n=9; double d=static_cast < double > (n);

上面的例子中, 我们将一个变量从int 转换到double。这些类型的二进制表达式是不同的。要将整数9 转换到双精度整数9,static_cast 需要正确地为双精度整数d 补足比特位。其结果为9.0。而reinterpret_cast 的行为却不同: int n=9;

double d=reinterpret_cast (n);

这次, 结果有所不同. 在进行计算以后, d 包含无用值. 这是因为reinterpret_cast 仅仅是复制n 的比特位到d, 没有进行必要的分析.

因此, 你需要谨慎使用reinterpret_cast.

【知识点】dynamic_cast

用法:dynamic_cast < type-id > ( expression )

该运算符把expression转换成type-id类型的对象。Type-id必须是类的指针、类的引用或者void *;

如果type-id是类指针类型,那么expression也必须是一个指针,如果type-id是一个引用,那么expression也必须是一个引用。

dynamic_cast主要用于类层次间的上行转换和下行转换,还可以用于类之间的交叉转换。

在类层次间进行上行转换时,dynamic_cast和static_cast的效果是一样的;

在进行下行转换时,dynamic_cast具有类型检查的功能,比static_cast更安全。

class B{

public:

int m_iNum;

virtual void foo();

};

class D:public B{

public:

char *m_szName[100];

};

void func(B *pb){

D *pd1 = static_cast(pb);

D *pd2 = dynamic_cast(pb);

}

在上面的代码段中,如果pb指向一个D类型的对象,pd1和pd2是一样的,并且对这两个指针执行D类型的任何操作都是安全的;

但是,如果pb指向的是一个B类型的对象,那么pd1将是一个指向该对象的指针,对它进行D类型的操作将是不安全的(如访问m_szName),

而pd2将是一个空指针。

另外要注意:B要有虚函数,否则会编译出错;static_cast则没有这个限制。

这是由于运行时类型检查需要运行时类型信息,而这个信息存储在类的虚函数表(

关于虚函数表的概念,详细可见)中,只有定义了虚函数的类才有虚函数表,

没有定义虚函数的类是没有虚函数表的。

另外,dynamic_cast还支持交叉转换(cross cast)。如下代码所示。

class A{

public:

int m_iNum;

virtual void f(){}

};

class B:public A{

};

class D:public A{

};

void foo(){

B *pb = new B;

pb->m_iNum = 100;

D *pd1 = static_cast(pb); //compile error

D *pd2 = dynamic_cast(pb); //pd2 is NULL

delete pb;

}

在函数foo中,使用static_cast进行转换是不被允许的,将在编译时出错;而使用dynamic_cast的转换则是允许的,结果是空指针。

【知识点】const_cast

用法:const_cast (expression)

该运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外,type_id和expression的类型是一样的。

常量指针被转化成非常量指针,并且仍然指向原来的对象;

常量引用被转换成非常量引用,并且仍然指向原来的对象;常量对象被转换成非常量对象。

V oiatile和const类试。举如下一例:

class B{

public:

int m_iNum;

}

void foo(){

const B b1;

b1.m_iNum = 100; //comile error

B b2 = const_cast(b1);

b2. m_iNum = 200; //fine

}

上面的代码编译时会报错,因为b1是一个常量对象,不能对它进行改变;

使用const_cast把它转换成一个常量对象,就可以对它的数据成员任意改变。注意:b1和b2是两个不同的对象。【知识点】static_cast

用法:static_cast < type-id > ( expression )

该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:

①用于类层次结构中基类和子类之间指针或引用的转换。

进行上行转换(把子类的指针或引用转换成基类表示)是安全的;

进行下行转换(把基类指针或引用转换成子类表示)时,由于没有动态类型检查,所以是不安全的。

②用于基本数据类型之间的转换,如把int转换成char,把int转换成enum。这种转换的安全性也要开发人员来保证。

③把空指针转换成目标类型的空指针。

④把任何类型的表达式转换成void类型。

注意:static_cast不能转换掉expression的const、volitale、或者__unaligned属性。

C++中static_cast和reinterpret_cast的区别

C++primer第五章里写了编译器隐式执行任何类型转换都可由static_cast显示完成;reinterpret_cast通常为操作数的位模式提供较低层的重新解释

1、C++中的static_cast执行非多态的转换,用于代替C中通常的转换操作。因此,被做为隐式类型转换使用。比

如:

int i;

float f = 166.7f;

i = static_cast(f);

此时结果,i的值为166。

2、C++中的reinterpret_cast主要是将数据从一种类型的转换为另一种类型。所谓“通常为操作数的位模式提供较低

层的重新解释”也就是说将数据以二进制存在形式的重新解释。比如:

int i;

char *p = "This is a example.";

i = reinterpret_cast(p);

此时结果,i与p的值是完全相同的。reinterpret_cast的作用是说将指针p的值以二进制(位模式)的方式被解释为整型,并赋给i,一个明显的现象是在转换前后没有数位损失。

【简答】release版本的可执行文件。如何获知生成的文件是否过大。

1是数制转换151转2进制和九进制。10010111 177

2已知0的ASCII码为0x40,那么int 120;在内存中的表示形式是0x__ 78(0的ASCII码为0x40,应该为0x30)3

1、在linux下,查看目录大小的命令是:du $ du -sm

2、修改文件属性的命令是:chmod [options] mode files

3、切换为其他用户身份的命令是:su-filemane

4还有一道指针交换数值int i=0,j=10,int* p=&i, int* q=&j,

int fun (**a,*b)

{int* temp=a;

*a*=10;

*b*=10;

a=b;

b=temp;

}最后问调用fun(&p,q)问i、j、p、q的最终值(具体形式大概如此,但中间指针肯定记的错误)

此题主要考察指针指向一个整数,然后利用指针改变变量,最后交换指针

5有道填插入排序的算法。有一个数组a[0] 到a[i-1]为从小到大排序,a[i] 到a[count-1]没有排序,请您添加3条语句使它们按照从小到大排序

int insert_sort(int a[],int count)

{

for(int i=1;i

{

int j,t;

t=a[i];

(j=i-1;)

while(j>=0&&t

{

(a[j+1]=a[j];)

j--;

}

(a[j+1]=t;)

}

return 0;

}

三,编程与逻辑题

1自己写一个strstr

(单链表判断有无环,)

char* strstr(char* buf, char* sub)

{

char* bp;

char* sp;

If(!*sub)

return buf;

while(*buf)

{bf=buf;

sp=sub;

do{ if(!*sp)

return buf;

}

while(*bp++==*sp++)

buf+=1;

}

return 0;

}

2遍历文本找单词并删掉出现频率最少的单词,fun (char* pText)

#include

#include //定义av_list、av_start、av_arg等宏

3实现一个与printf功能相似的函数

#include

#include

#include

#include //定义av_list、av_start、av_arg等宏

/******************************************************************* 此函数的作用:

实现一个参数个数可变的函数,此函数的功能与printf类似,

但在格式处理上,不如printf丰富

无异常,返回一个true,否则返回false

format字符串的合法情况如下:

1."%%zyk%%zyk%%",OUTPUT:%zyk%zyk%

2."%dzyk%fzyk%s",OUTPUT:(int)zyk(float)zyk(string)

3."zyk", OUTPUT:zyk

非法情况如下:

1."%zyk%" ERROR:不存在%z格式、%后面必须跟一个格式字符

*******************************************************************/ bool zykPrintf(const char * format,...)

{

//定义一个可用于指向参数的指针(实为char *),

va_list argPtr;

//把函数的第一个参数format的地址传给argPtr

va_start(argPtr,format);

const int size = strlen(format)+1;

char *tmp = new char[size];

memset(tmp, 0, size);

while (*format != 0)

{

int i;

for (i=0; i

{

tmp[i]=*format++;

}

tmp[i] = 0; //在有效的字符串末尾作0值防护

printf("%s",tmp);

if (*format == 0)

return true;

switch(*++format)

{

//按指定类型读取下一个参数,并打印

case 'd': { printf("%d", va_arg(argPtr, int)); break;}

case 's': { printf("%s", va_arg(argPtr, char *)); break; }

case 'c': { printf("%c", va_arg(argPtr, char)); break;}

case 'f': { printf("%f", va_arg(argPtr, float)); break;}

//对%%的处理

case '%': { printf("%%"); break; }

//格式错误

default : { printf(" Error Ocurr!Please Check the Format!"); return false;} }

++format;

}

delete[] tmp;

return true;

}

int main(int argc,char * argv[])

{

zykPrintf("%zyk"); //error

zykPrintf("zyk%"); //error

zykPrintf("%%zyk%%zyk%%"); //OUTPUT: %zyk%zyk%

zykPrintf("\nzyk is a pretty boy! His age is %d and %s",5,"I love zyk^_^!");

getch();

return 0;

1、strstr的实现原型。

char *my_strstr(const char *str, const char *strSearch)

{

while (*str != '\0')

{

char *p = (char *)str;

char *ps = (char *)strSearch;

while ( ps && *p == *ps )

p , ps ;

if ('\0' == *ps)

return (char *)str;

str ;

}

return NULL;

}

3、printf的实现。

int printf(const char *format, ...)

{

va_list arglist;

int buffing;

int retval;

va_start(arglist, format);

_ASSERTE(format != NULL);

#ifdef _MT

_lock_str2(1, stdout);

__try {

#endif /* _MT */

buffing = _stbuf(stdout);

retval = _output(stdout,format,arglist);

_ftbuf(buffing, stdout);

#ifdef _MT

}

__finally {

_unlock_str2(1, stdout);

}

#endif /* _MT */

return(retval);

}

8 如何判断两个单向链表是否有相交,并找出交点。

给出两个链表的头指针pHead1 和pHead2 ,写一个函数判断两条链表有没交叉点

Node* checkLink(Node* pHead1,Node* pHead2)

{

Node* p1=pHead1,p2=pHead2;

int i=1,j=1;

if(p1==NULL || p2==NULL)

return NULL;

if(p1==p2)

return p1;

while(p1->pNext!=NULL)

{

p1=p1->pNext;

i++;

}

while(p2->pNext!=NULL)

{

p2=p2->pNext;

j++;

}

if(p1==p2)

return NULL;

else

{

for(int k=0;k

{

if(i>j)

p1=p1->pNext;

else

p2=p2->pNext;

}

while(p1!=p2)

{

p1=p1->pNext;

p2=p2->pNext;

}

return p1;

}

}

17.面向对象的三个基本特征,并简单叙述之?

1. 封装:将客观事物抽象成类,每个类对自身的数据和方法实行protection(private, protected,public)

2. 继承:广义的继承有三种实现形式:实现继承(指使用基类的属性和方法而无需额外编码的能力)、可视继承(子窗体使用父窗体的外观和实现代码)、接口继承(仅使用属性和方法,实现滞后到子类实现)。前两种(类继承)和后一种(对象组合=>接口继承以及纯虚函数)构成了功能复用的两种方式。

3. 多态:是将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。

18. 重载(overload)和重写(overried,有的书也叫做“覆盖”)的区别?

常考的题目。从定义上来说:

重载:是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。

重写:是指子类重新定义复类虚函数的方法。

从实现原理上来说:

重载:编译器根据函数不同的参数表,对同名函数的名称做修饰,然后这些同名函数就成了不同的函数(至少对于编译器来说是这样的)。如,有两个同名函数:function func(p:integer):integer;和function func(p:string):integer;。那么编译器做过修饰后的函数名称可能是这样的:int_func、str_func。对于这两个函数的调用,在编译器间就已经确定了,是静态的。也就是说,它们的地址在编译期就绑定了(早绑定),因此,重载和多态无关!

重写:和多态真正相关。当子类重新定义了父类的虚函数后,父类指针根据赋给它的不同的子类指针,动态的调用属于子类的该函数,这样的函数调用在编译期间是无法确定的(调用的子类的虚函数的地址无法给出)。因此,这样的函数地址是在运行期绑定的(晚绑定)。

19. 多态的作用?

主要是两个:1. 隐藏实现细节,使得代码能够模块化;扩展代码模块,实现代码重用;2. 接口重用:为了类在继承和派生的时候,保证使用家族中任一类的实例的某一属性时的正确调用。

20. Ado与https://www.360docs.net/doc/0d11944376.html,的相同与不同?

除了“能够让应用程序处理存储于DBMS 中的数据“这一基本相似点外,两者没有太多共同之处。但是Ado使用OLE DB 接口并基于微软的COM 技术,而https://www.360docs.net/doc/0d11944376.html, 拥有自己的https://www.360docs.net/doc/0d11944376.html, 接口并且基于微软的.NET 体系架构。众所周知.NET 体系不同于COM 体系,https://www.360docs.net/doc/0d11944376.html, 接口也就完全不同于ADO和OLE DB 接口,这也就是说https://www.360docs.net/doc/0d11944376.html, 和ADO 是两种数据访问方式。https://www.360docs.net/doc/0d11944376.html, 提供对XML 的支持。

21. New delete 与malloc free 的联系与区别?

答案:都是在堆(heap)上进行动态的内存操作。用malloc函数需要指定内存分配的字节数并且不能初始化对象,new 会自动调用对象的构造函数。delete 会调用对象的destructor,而free 不会调用对象的destructor.

22. #define DOUBLE(x) x+x ,i = 5*DOUBLE(5);i 是多少?i=5*5+5

答案:i 为30。

23. 有哪几种情况只能用intialization list 而不能用assignment?

答案:当类中含有const、reference 成员变量;基类的构造函数都需要初始化表。

24. C++是不是类型安全的?

答案:不是。两个不同类型的指针之间可以强制转换(用reinterpret cast)。C#是类型安全的。

25. main 函数执行以前,还会执行什么代码?

答案:全局对象的构造函数会在main 函数之前执行。

26. 描述内存分配方式以及它们的区别?

1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。

2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集。

3)从堆上分配,亦称动态内存分配。程序在运行的时候用malloc 或new 申请任意多少的内存,程序员自己负责在何时用free 或delete 释放内存。动态内存的生存期由程序员决定,使用非常灵活,但问题也最多。

27.struct 和class 的区别

答案:struct 的成员默认是公有的,而类的成员默认是私有的。struct 和class 在其他方面是功能相当的。

从感情上讲,大多数的开发者感到类和结构有很大的差别。感觉上结构仅仅象一堆缺乏封装和功能的开放的内存位,而类就象活的并且可靠的社会成员,它有智能服务,有牢固的封装屏障和一个良好定义的接口。既然大多数人都这么认为,那么只有在你的类有很少的方法并且有公有数据(这种事情在良好设计的系统中是存在的!)时,你也许应该使用struct 关键字,否则,你应该使用class 关键字。

28.当一个类A 中没有生命任何成员变量与成员函数,这时sizeof(A)的值是多少,1

29.如果不是零,请解释一下编译器为什么没有让它为零。(Autodesk)

答案:肯定不是零。举个反例,如果是零的话,声明一个class A[10]对象数组,而每一个对象占用的空间是零,这时就没办法区分A[0],A[1]…了。

29. 在8086 汇编下,逻辑地址和物理地址是怎样转换的?(Intel)

答案:通用寄存器给出的地址,是段内偏移地址,相应段寄存器地址*10H+通用寄存器内地址,就得到了真正要访问

深信服技术支持

深圳市深信服电子科技有限公司:(部分笔试题) 招聘职位:技术支持工程师 面试反馈一: 1.Linux下查询路由的命令有哪些? 2.在Windows下,如何使用命令行实现IP地址与MAC地址的绑定? 答:在代理服务器端 捆绑IP和MAC地址,解决局域网内盗用IP: ARP -s 192.168.10.59 00-50-ff-6c-08-75 解除网卡的IP与MAC地址的绑定: arp -d 网卡IP 3.主机要获得其他主机的MAC地址用到什么协议? 答:ARP协议 4.DNS请求服务使用什么协议? 答: DNS使用的是“不可靠”协议UDP,使用这个协议的还有nfs wins netbios-over-tcp/ip 5.描述一下TCP三次握手的过程 6.谈谈你对对动态域名服务(花生壳一类的)工作原理的理解 7.IP地址202.101.100.137,子网掩码255.255.255.224,其网络地址和广播地址是什么 8.谈谈你所熟悉的路由协议,各自的主要作用是什么? 9.在路由表项中,network destinatio n、netmask、gateway、interface、metric各代表什么 意思? 10.请说明以下端口各自代表什么服务:80、21、53、443、23、1433、25、110 80:HTTP 21:FTP 53:DNS 443:SSL协议 23:TELNET 1433: SQL端口25: SMTP(邮件客户端发送服务器)110:POP3收邮件端口 11.两台电脑互连用什么线?线序是什么?电脑和交换机相连用什么线?线序是什么? 12.一台主机通过代理上网,主机IP是192.168.1.2,代理服务器的内网IP是192.168.1.2, 外网IP是222.123.23.11,主机访问SINA网站的过程。 a)数据包经过网关后,源IP:源端口: 目的IP:目的端口: b)SINA网发往网关,源IP:源端口: 目的IP:目的端口: c)网关发往主机,源IP:源端口: 目的IP:目的端口: 13.公司原来的WEB服务器使用一个固定的公网IP地址,现在为了节约成本,公司使用ADSL 拨号,并且配置硬件防火墙来保证Internet出口安全,如果你是网管,你有什么方法使外网可以访问公司WEB服务器 14.PC1在没有拨号时,可以ping通PC2,但是在拨号后就不能ping通PC2,是什么你觉得 原因造成的?有什么解决方法可以同时拨号,又能ping通PC2?

[转载]华为技术支持笔试题

[转载]华为技术支持笔试题 原文地址:华为技术支持笔试题作者:卖女孩的小雪人【第一部分公司篇】 1、华为公司的全称为() A、深圳市华为技术有限公司 B、华为技术有限公司 C、华为公司D、我司(答案:B,答A、C者酌情给分,答D者立即辞退,我司三令五申禁止使用该华为内部土语,屡禁不止,老员工不可教也,只好从新员工抓起,格杀勿论)2、华为公司的企业性质是() A、民营 B、私营 C、国营 D、上市公司(答案:A,本题主要让考生了解公司的性质) 3、华为公司的商标象征() A、红太阳 B、菊花 C、扇贝(答案:B,答A者酌情给分,答C者立即辞退,天天就想着吃) 4、从下列选项中选择出公司的常务副总裁() A、任正非 B、孙亚芳 C、李一男 D、郑宝用 E、张燕燕(答案:BD,答C者立即辞退,让他到李一男的公司去报到吧) 5、华为公司的年终奖一般是在每年的什么时候发() A、元旦后 B、春节前 C、7月下旬或8月上旬 D、劳动节前E、国庆节前(答案:C,切记,因为是年中奖,而不是年终奖) 6、华为公司的配给你的股票是() A、发的 B、用自己的奖金去买(答案:B) 7、老板常说的土八路,是指() A、老板自己的革命年代的光辉历史 B、本地化的用服兄弟C、季度考核为D的兄弟(答案:B)【第二部分部门篇】 1、你所在的一级部门为() A、技术支援部 B、国际技术支援部 C、国际技术支援部国内分部D、用服(答案:B,答A、C者酌情给分,答D者作不合格处理,为了提高技术支援部形象,公司早就取消用服这个字眼,而且于xx年春节后悄悄地将技术支援部

前加“国际”二字) 2、你所在的二级部门为() A、传输产品技术支援管理部 B、传输工程部 C、传输用服工程中心D、光网络产品技术支援管理部(答案:A,首先得把自己的部门搞清楚,答D者,有远见,有潜力,可以酌情给分,很可能在xx年未就改成这个名字,因为市场中研已经改了,就差技术支援部了) 3、传输的商标为()A、SBS B、SDH C、OptiX D、Metro (答案:C,答A者酌情给分,最起码还知道老商标) 4、技术支援部与国际技术支援部的关系()A、国际技术支援部是技术支援部下面的一个部门,负责海外 B、技术支援部是国际技术支援部下面的一个部门,负责国内 C、技术支援部是国际技术支援部的前身 D、国际技术支援部是技术支援部的前身(答案:C)【第三部分业务篇】 1、SBS是() A、传输产品的老商标 B、同步骨干系统 C、傻不傻的拼音缩写D、帅不帅的拼音缩写(答案:AB,答CD者立即辞退) 2、SDH是() A、传输产品商标 B、同步数字序列 C、傻得很的拼音缩写D、傻得好的拼音缩写(答案:B,答CD者立即辞退) 3、由于你是新员工,没有公配手机时,当你在现场遇到紧急事故时,你会()向公司求助 A、打用户机房内的电话 B、借用户手机 C、拔110 D、拔200或300E、立即打车回办事处(答案:D,答CE者立即辞退,按照公司规定,不能随便使用用户的电话,以提高公司形象) 4、在开局时,用户问你在华为干几年了,你会回答() A、我是新员工 B、1年多了 C、2年多了 D、3年多了(答案:B,答A者按不合格处理,按照公司规定,不能说自己是新员工,几千万的设备,怎能让一个新员工用来练兵,

技术支持面试题集锦!!!

技术支持面试题集锦!!! 2011-08-01 21:03 技术支持面试题集锦!!! 1、杀毒软件:金山,瑞星,卡巴,赛门铁克 2、常见的internet接入方式:无线接入、异步拨号、ISDN 3、VPN特点:利用现有的公共ip网络,实现专线接入,采用隧道和加密技术,隐藏内部网络细节,成本低 4、硬件种类:IDE、SATA、SCSI 5、windows常见的磁盘分区方式:一主+一扩+扩中N个逻辑分区、2主+扩,逻辑分区 6、网络命令及用途:ping 网络连通性、tracert 网络节点数、telnet 远程连接、nslookup 域名解析 ipconfig 网络链接的详细信息、regedit 注册表、ftp 登陆到ftp 服务器 7、如何将FAT32分区转为NTFS分区:开始-运行-cmd 在命令提示符下输入: convert X:/FS:NTFS(其中X 是盘符) 8、局域网无法上网故障诊断方法: 1:网络连接 2:接着检查“本地连接”的状态。如果本地连接的图标是两个小电脑闪亮,提示“已连接上”,这代表从交换机HUB到电脑的 线路是正常的,网卡基本能正常工作,不能上网是由于操作系统设置不当或软件限制等原因引起的。用Ping命令Ping远程主 机,看能否Ping通,如果能Ping通则说明网络连接正常,接着检查电脑中的防火墙设置、代理服务器设置等。 3:如果Ping不通,则可能是网络协议配置问题。检查电脑IP地址、网关、DNS等配置。 4:如果“网络连接”窗口中的本地连接图标是灰色,说明本地连接(网卡)被禁用了,这时只须双击本地连接图标重新启用即 可。 5:如果“网络连接”窗口中本地连接图标提示“本地电缆被拔出”,则表明交换机或HUB到用户网卡的网线接头有一端松动了 或网线有问题,接着检查网线是否接触良好,如果接触良好接着检查网线。 9、能上QQ但不能上网问题精解: 一、感染了病毒所致 二、与设置代理服务器有关 三、DNS服务器解释出错 四、系统文件丢失导致IE不能正常启动 五、IE损坏

海康威视2016年技术支持笔试题

2016海康威视校园招聘技术支持类笔试题(一)填空题 1.在windons server 2003下若选择安全登录,则首先需要按 Ctrl+Alt+Del 组合键 2.按网络的覆盖范围划分,网络可分为局域网(LAN)、广域网 (WAN)和城域网(MAN)。 3.计算机中的数据都是以二进制码码的形式发送的。(存储,传 输,加工处理的数据或指令) 4.ARP请求帧在物理网络中是以广播方式发送的。 5.FTP和HTTP协议在TCP/IP参考模型中属于应用层。 TCP/IP参考模型在网络层定义了IP协议,在传输层定义了传输控制协议TCP和用户数据报UDP,在传输层之上是应用层,它包括了所有的高层协议,并且总是不断有新的协议加入。应用层的协议主要有:网络终端协议Telnet、文件传输协议FTP、电子邮件协议SMTP、路由协议RIP、网络文件系统NFS和HTTP协。

6.带有奇偶校验的RAID的类型是 RAID是“Redundant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列。 RAID 0:无差错控制的带区组RAID 1:镜象结构 RAID2:带海明码校验RAID3:带奇偶校验码的并行传送 RAID4:带奇偶校验码的独立磁盘结构 RAID5:分布式奇偶校验的独立磁盘结构 7.SQL语言的SELECT命令中,表示条件表达式用WHERE子句, 分组用GROUP BY 子句,排序用ORDERBY 子句。 8.下列FTTX组网方案中,光纤覆盖面最广的是FTTH FTTN (光纤到节点) FTTC (光纤到路边) FTTH (光纤到户) FTTZ (光纤到小区) FTTH将光纤直接铺到千家万户,覆盖面是最广的 9.HIKVISION 的权限描述为:drwxrw-r~~则该文件类型为: r代表4 w代表2 x代表1 所有者权限是rw,为6 所属组权限是r,为4 其他人权限是r,为4 10.存储器一般分成高速缓冲器、__内存__和__外存__三个层次, 其中___高速缓冲器__是造价最高、存取速度最快。 (二)名词解释 1.Linux系统重/home目录下存放的什么内容? Linux系统根目录下的几个主要目录的作用: root:用于存放root用户的的相关文档。

往年的深信服笔试题(齐全)

一,六道选择题(可以多选) 1 char *p = "hello world"; p存储在()指向//堆栈 char p[] = "hello world"; p存储在()指向 全局变量//数据段 static变量//数据段 分别在哪个地方? 1数据段 2代码段 3堆 4堆栈 (此题可以配合同文件夹下的char.cpp) (二、例子程序 这是一个前辈写的,非常详细 //main.cpp int a = 0; 全局初始化区 char *p1; 全局未初始化区 main() { int b; 栈 char s[] = "abc"; 栈 char *p2; 栈 char *p3 = "123456"; 123456\0在常量区,p3在栈上。 static int c =0;全局(静态)初始化区 p1 = (char *)malloc(10); p2 = (char *)malloc(20); 分配得来得10和20字节的区域就在堆区。 strcpy(p1, "123456"); 123456\0放在常量区,编译器可能会将它与p3所指向的"123456" 优化成一个地方。 } 不知道是那个高人怎么想的和我一样,我估计中间应该有错误) 2 % & . && <= =那个优先级别最高 . & % <= && = 3 4以下哪些通信方式是可靠的通讯方式 1信号2管道3消息4tcp 5udp 6串口I/O 5是(M)?(a++):(a--),此处的M等于我选C A,M==O,B,M==1,C,M!=O,D,M!=1 6是Unix的启动顺序排序。(6个选项) 二 1是数制转换151转2进制和九进制。10010111 177 2已知0的ASCII码为0x40,那么int 120;在内存中的表示形式是0x__ 78(0的AS CII码为0x40,应该为0x30) 3 1、在linux下,查看目录大小的命令是:du –sh dirname 2、修改文件属性的命令是:chomd/chgrp 3、切换为其他用户身份的命令是:su

深信服技术支持笔试题教学内容

深信服2014技术支 持笔试题

深信服科技2014技术支持笔试题 考试时间120分钟 一、不定项选择题 1、SNMP协议使用UDP 161和162端口,则该协议属于TCP/IP模型中的:() A、网络层 B、数据链路层 C、应用层 D、传输层 2、我们常用的ping命令所使用的协议,属于TCP/IP模型中的:() A、应用层 B、传输层 C、网络层 D、数据链路层 3、关于DNS的相关描述,以下哪些是错误的?() A、PC到DNS服务器之间的查询一般为递归查询,DNS服务器到DNS服务器之间的查询一般为迭代查询 B、当PC设置的当地DNS服务器故障无法解析域名时,会出现能够打开网页却无法上QQ 的现象 C、互联网上的邮件服务器一般注册邮件地址中使用域名的MX记录 D、IPv4和IPv6都使用A记录作为主机记录 4、HTTPS、SMTP、DNS协议或服务默认使用的端口是?() A、443、25、53 B、8080、25、53 C、110、25、23 D、80、110、53 5、关于TCP端口使用的描述,以下哪些是对的?() A、HTTP使用80端口指的是客户端发起的HTTP请求目的端口为80端口 B、FTP协议主动模式使用21端口,被动模式不使用21端口 C、客户端PC发起HTTP请求,源端口默认小于1024 D、在服务器上,不可以同时有两个程序监听同一个TCP 0.0.0.0:80 6、下列哪些应用层协议使用的是UDP协议()

A、SNMP B、FTP C、TFTP D、DHCP E、SMTP 7、下面关于简单网络管理协议(SNMP)说法正确的是?() A、在新组建的网络中不能使用简单网络协议(SNMP) B、SNMP分为V1、V2和V3三个版本 C、简单网络管理协议(SNMP)使用一个被称为管理信息库(MIB)的概念 D、SNMP Agent使用UDP 161端口 8、以下关于Telnet协议的说法中,正确的是() A、Telnet协议支持用户身份验证,但是不支持加密数据的传输 B、通过telnet IP 端口号可以测试某个TCP连接是否可用 C、Telnet协议通过使用预共享密钥验证用户身份 D、Telnet协议以明文形式传输用户内容,而用户名、密码的传输是以加密形式传输的 9、关于NetBIOS协议,以下说法正确的是:() A、可以用netstat查询涉及到NetBIOS信息的网络机器 B、在Windows操作系统中,默认情况下在安装TCP/IP协议后会自动安装NetBIOS C、NetBIOS的作用是为了给局域网提供网络以及其他特殊功能,当目标地址不在本地cache上时,电脑会广播一个包含目标计算机NetBIOS名称的数据包来让其返回IP地址 D、NetBIOS 是一种会话层协议,应用于各种 LAN (Ethernet、Token Ring 等)和 WAN 环境,诸如 TCP/IP、PPP 和 X.25 网络 10、在Windows系统下,tracert命令通过多次向目标发送以下哪个报文来确定到达目标的路径,在连续发送多个IP包中,TTL字段都是不同的?() A、ICMP地址请求报文 B、ICMP回声请求报文 C、ARP请求报文 D、ARP响应报文 11、下列对于VPN的描述中,正确的是:()

深信服SCSA认证考试模拟题

SCSA认证考试模拟题(2) 1.关于恢复设备出厂设置,以下说法不正确的是? A、可以通过SANGFOR Firmware Updater加载升级包恢复出厂设置 B、可以通过U盘恢复出厂设置 C、可以通过设备控制台恢复出厂设置 D、可以通过交叉线恢复出厂设置 2.下面关于外置数据中心的说法,错误的是? A、当客户需要长期保存日志时,推荐安装外置数据中心 B、外置数据中心才有附件内容搜索功能 C、外置数据中心支持安装在linux系统上 D、外置数据中心推荐安装在windows服务器系统上 3.下列哪个漏洞不是由于未对输入做过滤造成的? A、DOS攻击 B、SQL注入 C、XSS攻击 D、CSRF攻击 4.以下哪类网络攻击不属于DOS攻击? A、SYN Flood攻击 B、ICMP Flood攻击 C、IP Spoofing攻击

D、Tear Drop攻击 5.以下关于“公共用户”,描述正确的是?? A.“公共用户”支持本地密码认证和证书认证 B、“公共用户”支持短信认证,令牌认证等辅助认证 C、“公共用户”不支持硬件特征码认证 D、“公共用户”不允许用户在线修改登录密码 6.下列有关NGAF接口与区域的说法中,错误的是? A、NGAF的一个路由口下可以添加多个子接口,且路由接口的IP地址不能与子接口的IP地址在同网段 B、NGAF的一个区域可以包含多个接口,一个接口也可以属于多个区域 C、NGAF的虚拟网线区域只能包含虚拟网线接口,不能包含透明接口和三层接口 D、单进单出透明部署情况下,可以通过配置VLAN接口IP来对设备进行管理 7.关于不需要认证,以下说法错误的是? A.可以从数据包中获取到用户的IP地址 B、三层环境下可以直接从数据包中获取到用户的MAC地址 C、可以从数据包中获取到用户所属的VLAN ID D、设备通过NETBIOS协议可以获取到用户的计算机名 8.关于授权相关的说法中,正确的是? A、SSL VPN授权用户数就是可以创建的最大用户数 B、SANGFOR VPN PDLAN与SSL VPN用户数可以手动调整,保持授权总数不变 C、第三方对接标准IPSEC VPN对接不需要授权

海康威视2016年专业技术支持笔试题

2016海康威视校园招聘技术支持类笔试题(一)填空题 1.在windons server2003下若选择安全登录,则首先需要 按Ctrl+Alt+Del组合键 2.按网络的覆盖范围划分,网络可分为局域网(LAN)、广域网 (WAN)和城域网(MAN)。 3.计算机中的数据都是以二进制码码的形式发送的。(存储,传 输,加工处理的数据或指令) 4.ARP请求帧在物理网络中是以广播方式发送的。 5.协议在TCP/IP参考模型中属于应用层。 TCP/IP参考模型在网络层定义了IP协议,在传输层定义了传输控制协议TCP和用户数据报UDP,在传输层之上是应用层,它包括了所有的高层协议,并且总是不断有新的协议加入。应用层的协议主要有:网络终端协议Telnet、文件传输协议FTP、电子邮件协议SMTP、路由协议RIP、网络文件系统NFS和HTTP协。

6.带有奇偶校验的RAID的类型是 RAID是“Redundant ArrayofIndependent Disk”的缩写,中文意思是独立冗余磁盘阵列。 RAID 0:无差错控制的带区组RAID 1:镜象结构 RAID2:带海明码校验RAID3:带奇偶校验码的并行传送RAID4:带奇偶校验码的独立磁盘结构 RAID5:分布式奇偶校验的独立磁盘结构 7.SQL语言的SELECT命令中,表示条件表达式用WHERE子句, 分组用GROUP BY 子句,排序用ORDERBY子句。 8.下列FTTX组网方案中,光纤覆盖面最广的是FTTH FTTN (光纤到节点)FTTC(光纤到路边) FTTH (光纤到户)FTTZ (光纤到小区) FTTH将光纤直接铺到千家万户,覆盖面是最广的 9.HIKVISION 的权限描述为:drwxrw-r~~则该文件类型为: r代表4w代表2x代表1 所有者权限是rw,为6 所属组权限是r,为4 其他人权限是r,为4 10.存储器一般分成高速缓冲器、__内存__和__外存__三个 层次,其中___高速缓冲器__是造价最高、存取速度最快。(二)名词解释 1.Linux系统重/home目录下存放的什么内容? Linux系统根目录下的几个主要目录的作用: root:用于存放root用户的的相关文档。

深信服技术支持笔试题

深信服技术支持笔试题

深信服科技技术支持笔试题 考试时间120分钟 一、不定项选择题 1、SNMP协议使用UDP 161和162端口,则该协议属于TCP/IP模型中的:() A、网络层 B、数据链路层 C、应用层 D、传输层 2、我们常见的ping命令所使用的协议,属于TCP/IP 模型中的:() A、应用层 B、传输层 C、网络层 D、数据链路层 3、关于DNS的相关描述,以下哪些是错误的?() A、PC到DNS服务器之间的查询一般为递归查询,DNS 服务器到DNS服务器之间的查询一般为迭代查询 B、当PC设置的当地DNS服务器故障无法解析域名时,会出现能够打开网页却无法上QQ的现象 C、互联网上的邮件服务器一般注册邮件地址中使用域名的MX记录 D、IPv4和IPv6都使用A记录作为主机记录 4、HTTPS、SMTP、DNS协议或服务默认使用的端口是?() A、443、25、53 B、8080、25、53 C、110、25、

23 D、80、110、53 5、关于TCP端口使用的描述,以下哪些是正确?() A、HTTP使用80端口指的是客户端发起的HTTP请求目的端口为80端口 B、FTP协议主动模式使用21端口,被动模式不使用21端口 C、客户端PC发起HTTP请求,源端口默认小于1024 D、在服务器上,不能够同时有两个程序监听同一个TCP 0.0.0.0:80 6、下列哪些应用层协议使用的是UDP协议() A、SNMP B、FTP C、TFTP D、DHCP E、SMTP 7、下面关于简单网络管理协议(SNMP)说法正确的是?() A、在新组建的网络中不能使用简单网络协议(SNMP) B、SNMP分为V1、V2和V3三个版本 C、简单网络管理协议(SNMP)使用一个被称为管理信息库(MIB)的概念 D、SNMP Agent使用UDP 161端口 8、以下关于Telnet协议的说法中,正确的是() A、Telnet协议支持用户身份验证,可是不支持加密数据的传输

软件技术支持面试题

技术支持提问文档 常见的操作系统有哪些? Linux,unix,windows,Mac OS(苹果系统) 常见的windows操作系统版本有哪些(考察对windows操作系统版本的了解) WindowsXP,WindowsVista,Windows7,WindwosServer2003, WindwosServer2008 常见windwos下杀毒软件(列举超过五个,考察对常用杀软的了解情况) 金山,瑞星,360,江民,诺顿,卡巴,赛门铁克,mse,小红伞,nod32等( 一般软件的默认安装目录大多为? C:\Program Files 如何将FAT32分区转为NTFS分区:(对windows分区格式、分区格式转换的了解) 开始-运行-cmd 在命令提示符下输入:convert X:/FS:NTFS(其中X是盘符) 两笔记本电脑连起来后ping不通,你觉得可能有哪些问题可能的原因大体有以下几个:(对网络的简单了解) 1、网线不通; 2、某台笔记本上的tcp/ip协议安装的不完整; 3、ip地址配置有问题(不在一个网段上); 4、某台笔记本上有防火墙,把icmp端口给屏蔽了(端口号:139)。 指出以下服务所默认的端口号:FTP;Telnet;POP3;SMTP;Windows 终端服务(对windwos常用端口的了解) 答:FTP:21;Telnet:23;POP3:110;SMTP:25;Windows终端服务:3389 (最有名的3389)

请简述windows2003下IIS的安装方法(iis的安装部署了解) 开始---控制面板----添加/删除程序----添加/删除Windows组件(A)----应用程序服务器--- 将解压后的IIS文件路径复制到"文件复制来源"输入框(会出现多次,就多粘贴几次)--完成. 如出现需要"插入安装光盘"这类的提示,继续粘贴该路径即可. 简述软件开发流程(对软件开发的了解,意思对即可) 前期市场调查 可行性分析 系统设计 代码设计 编写代码 调试程序 交付客户使用 维护升级 其他提问: 了解面试者分析总结能力,是否能抓住用户要表达的思想,提炼出潜在需求。 提问是否曾有过软件测试的经验,了解哪些测试方法,测试工具。 提问面试者对常用OFFICE办公软件的使用情况,PPT制作能力,文档编写能力。 了解面试者是否有过组织培训经验,是否能根据项目需要针对产品对客户进行培训。

深信服外置数据中心安装

SANGFOR DC用户手册 2010年08月

目录 声明 ................................................................................................................................................. i v 前言 .. (v) 手册内容 (v) 本书约定 (v) 图形界面格式约定 (v) 各类标志 (v) 技术支持 ................................................................................................................................. v i 致谢 ......................................................................................................................................... v i 第1章数据中心的安装 . (2) 1.1. 服务器硬件要求 (2) 1.2. 服务器软件要求 (2) 1.3. 数据中心工作过程 (2) 1.4. 数据中心安装过程 (4) 第2章数据中心配置端 (9) 2.1. 数据库配置 (10) 2.2. 数据同步帐号 (12) 2.3. 同步器状态查看 (15) 2.4. 日志查看 (16) 2.5. 工具栏菜单 (17) 2.6. 数据中心同步 (20) 第3章数据中心日志查看 (22) 3.1. 登录WEBUI日志查看器 (22) 3.2. 首页 (23) 3.3. 历史报表 (23) 3.4. 自定义报表 (26) 3.4.1. 自定义报表向导 (27) 3.4.2. 报表模板 (44) 3.5. 风险行为智能报表 (47) 3.5.1. 智能报表向导 (47) 3.5.2. 智能报表模板 (51) 3.6. 对比报表 (52) 3.6.1. 汇总对比 (53) 3.6.2. 指定对比 (54) 3.7. 统计 (60) 3.7.1. 上网流量统计 (60) 3.7.2. 上网行为统计 (73) 3.7.3. 上网关键字统计 (98) 3.7.4. 病毒信息统计 (107) 3.7.5. 上网时间统计 (112) 3.7.6. 快速链接 (122) 3.8. 日志查询 (125) 3.8.1. 上网行为 (125)

往年的深信服笔试题齐全

往年的深信服笔试题齐全

?一,六道选择题(能够多选) 1 char *p = "hello world"; p存储在()指向//堆栈 char p[] = "hello worl d"; p存储在()指向 全局变量//数据段 static变量//数据段 分别在哪个地方? 1数据段 2代码段 3堆 4堆栈 (此题能够配合同文件夹下的char.cpp)(二、例子程序 这是一个前辈写的,非常详细 //main.cpp int a = 0; 全局初始化区 char *p1; 全局未初始化区 main() { int b; 栈 char s[] = "abc"; 栈 char *p2; 栈 char *p3 = "123456"; 123456\0在常量区,p3在栈上。 static int c =0;全局(静态)初始化区 p1 = (char *)malloc(10); p2 = (char *)malloc(20); 分配得来得10和20字节的区域就在堆区。 strcpy(p1, "123456"); 123456\0放在常量区,编译器可能会将它与p3所指向的"12 3456" 优化成一个地方。 } 不知道是那个高人怎么想的和我一样,我估计中间应该有错误)

2 % & . && <= =那个优先级别 最高 . & % <= && = 3 4以下哪些通信方式是可靠的通讯方式 1信号2管道3消息4tcp 5udp 6串口I /O 5是(M)?(a++):(a--),此处的M等于我选C A,M==O,B,M==1,C,M!=O,D,M!=1 6是Unix的启动顺序排序。(6个选项) 二 1是数制转换151转2进制和九进制。10010 111 177 2已知0的ASCII码为0x40,那么int 12 0;在内存中的表示形式是0x__ 78(0的A SCII码为0x40,应该为0x30) 3 1、在linux下,查看目录大小的命令是:du –sh dirname 2、修改文件属性的命令是:chomd/chgrp 3、切换为其它用户身份的命令是:su

深信服历年笔试

1.. release版本的可执行程序为什么非常大? 程序一般分为Debug版本和Release版本,Debug版本用于内部调试,Release版本发行给用户使用 Release和Debug有什么不同 Release版称为发行版,Debug版称为调试版。 Debug中可以单步执行、跟踪等功能,但生成的可执行文件比较大,代码运行速度较慢。Release版运行速度较快,可执行文件较小,但在其编译条件下无法执行调试功能。 Release的exe文件链接的是标准的MFC DLL(Use MFC in a shared or static dll)。这些DLL在安装Windows的时候,已经配置,所以这些程序能够在没有安装Visual C++ 6.0的机器上运行。而Debug版本的exe链接了调试版本的MFC DLL 文件,在没有安装Visual C++6.0的机器上不能运行,因为缺相应的DLL,除非选择use static dll when link。 sizeof(d)? 为什么在不同的平台上得到的值不一样? C++拷贝构造函数和赋值运算符有那些不同和相同点。 拷贝构造函数和赋值号的异同 同:都可以对对象的成员进行赋值 异: 拷贝构造函数首先是一个构造函数,它调用的时候产生一个对象,是通过参数传进来的那个对象来初始化,产生的对象。 赋值是把一个对象赋值给一个原有的对象,而且还要检查一下两个对象是不是同一个对象,如果是的话就不做任何操作。 软件开发过程包含哪些阶段?各阶段质量保证措施是什么? 、1.需求分析 需求分析是开发人员对系统需要做什么和如何做的定义过程。从系统分析的经验来看,这个过程往往是个循序渐进的过程,一次性对系统形成完整的认识是困难的。只有不断地和客户领域专家进行交流确认,方能逐步明了用户的需求。从系统开发的过程得知,系统分析时犯下的错误,会在接下来的阶段被成倍的放大,越是在开发的后期,纠正分析时犯下的错误所花费的代价越是昂贵,也越发影响系统的工期和系统的质量。 解决系统分析错误的方法我们公司通常采用邀请用户参与进行需求评定,然后对其用户的意见由质保成员跟踪检测是否纳入需求规格说明书,同时与用户签字确认形成需求基线,交由配置管理员放入配置管理库。 b、系统设计 优良的体系结构应当具备可扩展性和可配置性,而好的体系结构则需要好的设计方法,自然设计选型成为了系统设计首要的工作,究竟是采用哪种设计方法好呢? 对于设计选型不能一概而论,需要针对项目的结构、项目的特征和用户的需求来分析,同样也要考虑到参与项目小组成员的素质,如果其中大部分都没有从事过面向对象的设计且项目进对紧迫,这样没有多余的时间来培训小组成员来掌握面向对象的设计方法,尽管众所周知面向对象设计方法的优势,我们还是不如采用面向过程的方式(除用户指定开发设计方式外)可以减少项目承担的技术风险。 c、实现 实现也就是代码的生产过程。这里不仅包括代码的产生,同时也包括测试用例的产生。针对上一阶段提供详细设计,程序员开始编码并且调试程序,测试人员则根据设计进行测试用例的设计,设计出来的用例需要得到项目组成员认可由项目经理审核通过才能进入配置库。同时程序员调试完程序提交测试人员进行程序正确性检测。 d、文档管理 文档维护主要是配置管理小组的工作。文档从用途上分主要分为内部文档和外部文档。 内部文档包括:项目开发计划;需求分析;体系结构设计说明;详细设计说明;构件索引;构件成分说明;构件接口及调用说明;组件索引;组件接口及调用说明;类索引;类属性及方法说明;测试报告;测试统计报告;质量监督报告;源代码;文档分类版本索引;软件安装打包文件。 外部文档主要包括:软件安装手册;软件操作手册;在线帮助;系统性能指标报告;系统操作索引。 3、系统维护质量保证 2.使用C++赋值运算符应注意什么地方?

深信服2014技术支持笔试题

深信服科技2014技术支持笔试题 考试时间120分钟 一、不定项选择题 1、SNMP协议使用UDP 161和162端口,则该协议属于TCP/IP模型中的:() A、网络层 B、数据链路层 C、应用层 D、传输层 2、我们常用的ping命令所使用的协议,属于TCP/IP模型中的:() A、应用层 B、传输层 C、网络层 D、数据链路层 3、关于DNS的相关描述,以下哪些是错误的?() A、PC到DNS服务器之间的查询一般为递归查询,DNS服务器到DNS服务器之间的查询一般为迭代查询 B、当PC设置的当地DNS服务器故障无法解析域名时,会出现能够打开网页却无法上QQ的现象 C、互联网上的服务器一般注册地址中使用域名的MX记录 D、IPv4和IPv6都使用A记录作为主机记录 4、HTTPS、SMTP、DNS协议或服务默认使用的端口是?() A、443、25、53 B、8080、25、53 C、110、25、23 D、80、110、53 5、关于TCP端口使用的描述,以下哪些是对的?() A、 HTTP使用80端口指的是客户端发起的HTTP请求目的端口为80端口 B、 FTP协议主动模式使用21端口,被动模式不使用21端口 C、客户端PC发起HTTP请求,源端口默认小于1024 D、在服务器上,不可以同时有两个程序监听同一个TCP 0.0.0.0:80 6、下列哪些应用层协议使用的是UDP协议() A、 SNMP B、FTP C、TFTP D、DHCP E、SMTP 7、下面关于简单网络管理协议(SNMP)说确的是?() A、在新组建的网络中不能使用简单网络协议(SNMP) B、 SNMP分为V1、V2和V3三个版本 C、简单网络管理协议(SNMP)使用一个被称为管理信息库(MIB)的概念 D、 SNMP Agent使用UDP 161端口 8、以下关于Telnet协议的说法中,正确的是() A、 Telnet协议支持用户身份验证,但是不支持加密数据的传输 B、通过telnet IP 端口号可以测试某个TCP连接是否可用 C、 Telnet协议通过使用预共享密钥验证用户身份 D、 Telnet协议以明文形式传输用户容,而用户名、密码的传输是以加密形式传输的 9、关于NetBIOS协议,以下说确的是:() A、可以用netstat查询涉及到NetBIOS信息的网络机器 B、在Windows操作系统中,默认情况下在安装TCP/IP协议后会自动安装NetBIOS C、 NetBIOS的作用是为了给局域网提供网络以及其他特殊功能,当目标地址不在本地cache上时,电脑会广播一个包含目标计算机NetBIOS名称的数据包来让其返回IP地址 D、 NetBIOS 是一种会话层协议,应用于各种LAN (Ethernet、Token Ring 等)和WAN 环境,诸如TCP/IP、PPP 和X.25 网络 10、在Windows系统下,tracert命令通过多次向目标发送以下哪个报文来确定到达目标的路径,在连续发 送多个IP包中,TTL字段都是不同的?()

深信服负载均衡AD常维护手册

深信服科技AD日常维护手册 深信服科技大客户服务部2015年04月

有特别注明,版权均属深信服所有,受到有关产权及版权法保护。任何个人、机构未经深信服的书面授权许可,不得以任何方式复制或引用本文的任何片断。目录 SANGFOR AD设备的每天例行检查 例行检查前需准备: (1)安装了WINDOWS系统的电脑一台 (2)设备与步骤1所描述的电脑在网络上是可连通的 (3)附件中所带的工具包一份

(包括:升级客户端程序) 设备硬件状态例行检查项 为了保证设备的稳定运行,工作人员需要以天为周期对设备进行检查,例行检查的项目如下: 1.2.1设备状态灯的检查 SANGFOR AD系列硬件设备正常工作时电源灯常亮,设备的状态指示灯(设备面板左上角标示“状态”字样)只在设备启动时因系统加载会长亮(约一分钟),正常工作时熄灭。如果在使用过程中此灯长亮(注意双机热备的备机此灯会以闪烁),且设备无法正常使用请按照如下步骤进行操作: (1)请立即将设备断电关闭,将系统切换到备机; (2)半小时后将设备重启,若重启后红灯仍一直长亮不能熄灭,请速与我司 技术支持取得联系。 1.2.2接口指示灯的检查 正常情况下,网口link灯在感知到电信号的时候会呈绿色(百兆链路,如果是千兆链路,该灯会成橙色)且长亮,网口ACT灯在有数据通过的时候会呈橙色且会不停闪烁,如果link或者ACT灯不闪或者不亮,请按照如下步骤进行操作: (1)检查该网线是否破损 (2)检查网口水晶头是否有破损 (3)检查网卡双工模式是否协商匹配 (4)上述均没有问题,请及时重启设备切换主备,并及时联系深信服技术支 持 1.2.3设备CPU运行检查 通过设备控制台的网关运行状态,检查CPU占用率是否长期居高,注:登陆设备后显示的第一页面就是网关运行状态,如果CPU长期居高,请按照如下步骤进行操作: (1)在线用户数是否超过了设备能够承受的并发参数 (2)设备是否遭受到了DOS攻击?(设备默认关闭防dos攻击,开启后可产 生日志) (3)某个进程是否异常?(需联系深信服技术支持确认) 1.2.4设备异常状况检查 检查设备硬件是否有异常(风扇,硬盘是否有异常声响) 如果设备内部有异常声响,可能是硬盘或风扇的异常工作导致,请立即断开电源停止设备工作,如有备用机,请立即将系统切换到备用机;并及时联系我司客服部门以确认故障并返修设备。

深信服科技校园招聘笔试题

深信服科技校园招聘笔试题

深信服科技校园招聘笔试题 一、选择题(单选多选都有,每题2分,时间:120分钟) 1. 正则表示式(a | b) + [0 - 9]*c 可匹配下列哪些字符串?() A. abac B. 90c C. aba10c D. ac 2. 已知a, b 都是double类型,下列哪些判断a, b相等的方法是正确的?() A. a == b B. fabs(a-b) < DBL_EPSILON C. fabs(a-b) <= FLT_EPSILON D. fabs(a-b) <= DBL_EPSILON E. fabs(a-b) < FLT_EPSILON 3. 下列哪些是可能引起错误的代码?() A. char c = 233; tables[c] = c; B. #define equal(a, b) a==b; int a = 3, b=7; printf(“a&3 %s b&3\n”, equal(a&3, b&3)? “==”: “!=”); C. 已知Derived 是Base的派生类Base *p = new

Derived; delete (Derived *)p; D. std::string str1(“hello”), str2; memcpy(&str2, &str1, sizeof(str1)); 4. 下列哪些指令执行之后,标志寄存器的ZF一定会置位为1? () A. XOR EAX EAX B. CMP EAX EAX C. MOV EAX 0H D. TEST EAX EAX 5. 下列哪些数据结构最适合医疗仪器设备中的大型数据量插入、查找?() A. 数组 B. 哈希表 C. 红黑树/二叉平衡树 D. 链表 6. 下列哪些排序算法的平均时间复杂度是O(Nlog2N) (),哪些是稳定排序() A. 冒泡排序 B. 希尔排序 C. 快速排序

深信服销售工程师、华为技术支持笔试面试经历

深信服销售工程师、华为技术支持笔试面试经历您需要登录后才可以回帖登录 | 注册发布 感谢应届生网给了我这么多笔经面经,前辈们留下的那些财富就像旧约圣经一样,最后都在面试的当天一一验证了。今天心情哈哈也写一些经历作为回报。本人重庆邮电大学,通信与信息系统专业小硕。和所有应届生一样的心情(对未来的迷茫,面试激动心情)去准备找工作,最后经历之后的感觉是:无论什么工作,实力是一部分,运气也是很重要的一部分。总之,保持一颗平常心去面对工作才是正确的,不要因为收到通知就高兴,收不到就气馁,(切记此处不留爷,自幼留爷处)不是自己去选择合适的工作,而是有缘分的工作最终会看到我们的。 深信服:一个年轻的企业,不做详细的介绍啦,总之“最佳雇主”肯定会很吸引人的。 笔试:深信服销售工程师(产品线)笔试考试:计算机网络。并且全是计算机网络,重点是安全方面的,因为深信服是靠VPN技术起家的,安全加密的技术非常重要。不过笔试要求不是太高基本大家都能做个差不多,差不多都可以收到面试的通知,提前复习计算机网络很有必要的,因为,很多公司面试都会问道这个问题。 群面:这个群面有点特别,不是群P啊,是集体大演讲啊,每一个人在前面的同学上去演讲之前会收到题目,所以你收到的题目的思考时间是由上一位同学的演讲时间决定的,大部分的题目是如何看待成功。失败、幸福、不抛弃不放弃、千里之堤毁于蚁穴,等等,总

结是要关注生活吧,讲的要有点道理,然后要结合自身的经历。其实讲的很有道理也是不太重要的。我认为最重要的是要把你为什么适合这个岗位说出来。还要注意不要激动,深呼吸,别激动,淡定,很关键。 终面:这一面就比较轻松啦,就是聊聊人生、聊聊理想、感觉说的生动真实感人就挺好的,但是一定要把你为啥选这个岗位、凭啥适合这个岗位说出来。你以后可是销售工程师啊,就要靠那张大嘴吃饭啦,放开的说吧!! 华为对我们重邮还是挺好的,哈哈,技术支持的岗位不要笔试的。所有的在重邮招生的岗位,除了软研之外,提前上机一次,剩下的直接等着去面试就OK啦。华为这方面做的很好,毕竟我们重邮是专业的嘛,要是再去笔试也是浪费时间,浪费感情不是吗? 技服的第一、二关是性格测试和英语口语,这个我们都不用担心,只需要认真对待展现真实的自己就可以啦。我抽到的英语topic 的题目是1.讲一个感人的电影;2.明星们应不应该有私人生活;当时是难哭了啊,我准备的啥家庭、运动、爱好、宠物统统没用上,嘿嘿,不过两分钟居然很快就过去啦,注意不要太担心说什么,大声说就OK。所有的同学都会收到通知的,不要担心。 下面的面试都很关键啦!所以我们六点多就早早的起来,梳妆打扮,衣着光鲜,漂漂亮亮的才行。技服啊,服务类行业,是与人交流的工作,华为还是很看重正装文化的,如果不是大牛,还是穿上正装吧!