sokaoti.com
深圳力维智联技术有限公司6月招聘面试题120道2020623

下列程序执行后的输出结果是

void func1(int i);

void func2(int i);

char st[]="hello,friend!";

void func1(int i)

{ printf("%c",st[i]);

if(i<3){i+=2;func2(i);}}

void func2(int i)

{ printf("%c",st[i]);

if(i<3){i+=2;func1(i);}}

main()

{ int i=0; func1(i); printf("\n");}

A.hello

B.hel

C.hlo

D.hlm


正确答案:C


以下程序的执行结果是______ includevoid func(int); void main(){ int k=4 func(k)

以下程序的执行结果是______

include<iostream.h>

void func(int);

void main()

{

int k=4

func(k) ;

func(k) :

cout<<end1;

}

void func(int a)

{

static int m=0;

m+=a;

cout<<m<<" ";

}


正确答案:48
48


( 35 ) 有如下程序

#include

using namespace std;

class A{

public:

virtual void func1( ){ cout<<"A1"; }

void func2( ){ cout<<"A2"; }

};

class B:public A{

public:

void func1( ){ cout<<"B1"; }

void func2( ){ cout<<"B2"; }

};

int main( ){

A *p=new B;

p->func1( );

p->func2( );

return 0;

}

运行此程序 , 屏幕上将显示输出

A) B1B2

B) A1A2

C) B1A2

D) A1B2


正确答案:C


( 21 )有如下函数定义:

void func ( int a,int & b ) {a++; b++;}

若执行代码段:

int x=0 ,y=1

func ( x,y ) ;

则变量 x 和 y 值分别是

A ) 0 和 1

B ) 1 和 1

C ) 0 和 2

D ) 1 和 2


正确答案:C


下列程序的输出结果为includeint func (int n){if ( n <1)return l;else return n+

下列程序的输出结果为 #include<iostream.h> int func (int n) { if ( n <1)return l; else return n+func ( n-1 ); return O; } void main( 0 { cout <<func(5)<<end1; }

A.0

B.10

C.15

D.16


正确答案:D
解析:本题考查的是递归函数的使用,题中递归函数的结束条件为n1,递推公式为f(n)=n +f(n-1),所以计算结果为5+4+3+2+1+1,最后一个1为n=0时的返回值。


深圳力维智联技术有限公司6月招聘面试题面试题面试官常问到的一些题目整理如下:问题 Q1:生成器?可用的回答 :生成器的本质就是一个逐个返回元素的函数,即“本质函数”最大的好处在于它是“延迟加载”,即对于处理长序列问题,更加的节省存储空间。即生成器每次在内存中只存储一个值问题 Q2:def func(a,b=) 这种写法有什么坑?可用的回答 : def func(a,b=): b.append(a) print(b) func(1) func(1) func(1) func(1) 如:看下结果 1 1, 1 1, 1, 1 1, 1, 1, 1 函数的第二个默认参数是一个list,当第一次执行的时候实例化了一个list,第二次执行还是用第一次执行的时候实例化的地址存储, 所以三次执行的结果就是 1, 1, 1 ,想每次执行只输出1 ,默认参数应该设置为None。 问题 Q3:如何跨模块共享全局变量?可用的回答 :要在单个程序中跨模块共享全局变量,请创建一个特殊模块。在应用程序的所有模块中导入配置模块。该模块将作为跨模块的全局变量提供。问题 Q4:你常用的mysql引擎有哪些?各引擎间有什么区别?可用的回答 : 主要 MyISAM 与 InnoDB 两个引擎,其主要区别如下: 一、 InnoDB 支持事务,MyISAM 不支持,这一点是非常之重要。 事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而 MyISAM就不可以了; 二、 MyISAM 适合查询以及插入为主的应用,InnoDB 适合频繁修改以及涉及到安全性较高的应用; 三、 InnoDB 支持外键,MyISAM 不支持; 四、 MyISAM 是默认引擎,InnoDB 需要指定; 五、 InnoDB 不支持 FULLTEXT 类型的索引; 六、 InnoDB 中不保存表的行数,如 select count(*) from table 时,InnoDB; 需要扫描一遍整个表来计算有多少行,但是 MyISAM 只要简单的读出保存好的行数即可。 注意的是,当 count(*)语句包含 where 条件时 MyISAM 也需要扫描整个表; 七、 对于自增长的字段,InnoDB 中必须包含只有该字段的索引,但是在 MyISAM 表中可以和其他字段一起建立联合索引; 八、 清空整个表时,InnoDB 是一行一行的删除,效率非常慢。MyISAM 则会重建表; 九、 InnoDB 支持行锁(某些情况下还是锁整表,如 update table set a=1 where user like %lee% 问题 Q5:列举网络爬虫所用到的网络数据包,解析包?可用的回答 : 网络数据包 urllib、urllib2、requests 解析包 re、xpath、beautiful soup、lxml 问题 Q6:ngnix的正向代理与反向代理?可用的回答 : 正向代理 是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容, 客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。 客户端必须要进行一些特别的设置才能使用正向代理。 反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。 客户端向反向代理的命名空间中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求, 并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。 问题 Q7:如何在Python中实现多线程?可用的回答 :Python有一个多线程库,但是用多线程来加速代码的效果并不是那么的好,Python有一个名为Global Interpreter Lock(GIL)的结构。GIL确保每次只能执行一个“线程”。一个线程获取GIL执行相关操作,然后将GIL传递到下一个线程。虽然看起来程序被多线程并行执行,但它们实际上只是轮流使用相同的CPU核心。有这些GIL传递都增加了执行的开销。这意味着多线程并不能让程序运行的更快问题 Q8:写爬虫使用多进程好,还是用多线程好?可用的回答 : IO密集型代码(文件处理、网络爬虫等), 多线程能够有效提升效率(单线程下有IO操作会进行IO等待,造成不必要的时间浪费,而开启多线程能在线程A等待时,自动切换到线程B,可以不浪费CPU的资源,从而能提升程序执行效率)。 在实际的数据采集过程中,既考虑网速和响应的问题,也需要考虑自身机器的硬件情况,来设置多进程或多线程 问题 Q9:Python中的lambda是什么?可用的回答 :它是一个单独的表达式匿名函数,通常用作内联函数。问题 Q10:描述数组、链表、队列、堆栈的区别?可用的回答 : 数组与链表是数据存储方式的概念,数组在连续的空间中存储数据,而链表可以在非连续的空间中存储数据; 队列和堆栈是描述数据存取方式的概念,队列是先进先出,而堆栈是后进先出; 队列和堆栈可以用数组来实现,也可以用链表实现。 算法题面试官常问到的一些算法题目整理如下(大概率会机考):算题题 A1:翻转整数题目描述如下:Given a 32-bit signed integer, reverse digits of an integer.Example 1:Input: 123Output: 321Example 2:Input: -123Output: -321Example 3:Input: 120Output: 21Note:Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: 231, 231 1. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.翻转一个整数。我直接用了转成字符串,然后取反然后转成整数的方法。效率过得去。beat 45%.测试地址:https:/

下列程序的输出结果为 include int func(int n) {if(n<1) return 1; else retur n

下列程序的输出结果为

#include<iostream.h>

int func(int n)

{

if(n<1) return 1;

else retur n+func(n-1) ;

return 0;

}

void main( )

{

cout < < func(5) < < endl;

}

A.0

B.10

C.15

D.16


正确答案:D
解析:本题考查的是递归函数的使用,题中递归函数的结束条件为n1,递推公式为f(n) =n +f(n-1) ,所以计算结果为5+4+3+2+1+1,最后一个1为n=0时的返回值。


对于类定义

class A{

public:

virtual void func1( ) {}

void func2( ) {}

};

class B: public A{

public:

void func1( ) {cout < < "class B func 1" < < endl;}

virtua1 void func2( ) {cout < < "class B func 2" < < endl;}

};

下面正确的叙述是

A.A: :func2( ) 和B: :func1( ) 都是虚函数

B.A: :func2( ) 和B: :func1( ) 都不是虚函数

C.B: :func1( ) 是虚函数,而A: :func2( ) 不是虚函数

D.B: :func1( ) 不是虚函数,而A: :func2( ) 是虚函数


正确答案:C
解析:基类中说明的虚函数,在派生类中自然就是虚函数,所以类B中func1( ) 是虚函数;而类A中的func2没有被关键字virtual修饰,所以不是虚函数。


窗体上有一个按钮和一个列表框,执行下列程序后的输出结果为【 】。

Private Sub Command1_Click()

List1.Addltem"China"

List1.Addltem"USA"

List1.Addltem"Japan",1

Print List1.List(2)

End Sub


正确答案:USA
USA


有如下函数定义;void func(int a,int & b){a++;b++;}若执行代码段:int x=0,y=1;func(x,y);则变量x和y的值分别是

A.0和1

B.1和1

C.0和2

D.1和2


正确答案:C
解析:本题考查的知识点是:函数参数的传递方式。C++的默认参数传递方式是传值,即将实参值的副本传递(拷贝)给被调用函数的形参。如果需要传地址,可通过传递指针、引用或数组类型的参数来实现。传值时,对形参的改变不会影响到实参;而传地址,则会同时改变实参。本题中形参a是普通参数,即传值调用,函数中对a增1不会影响到实参x的值;而形参b是引用,即传址调用,函数中对b增1同时也改变了实参y的值(y也增1了)。故最终结果是0和2,应该选择C。


有如下程序include using namespace std;class A{public:virtual void func1 (){ cou

有如下程序#include <iostream>using namespace std;class A{public:virtual void func1 (){ cout<<"A1"; }void func2(){ cout<<"A2"; }};class B: public A{public:void func l(){ cout<<"B1"; }void func2(){ cout<<"B2"; }};int main() {A *p=new B;p->func1();p->func2();return 0;}运行此程序,屏幕上将显示输出( )。

A.B1B2

B.A1A2

C.B1A2

D.A1B2


正确答案:C

更多 “深圳力维智联技术有限公司6月招聘面试题120道2020623” 相关考题
考题 下列程序写法不正确的是( )。A.func1(){…func2(){…}…}B.func1(){…}func2(){…}C.func2();func1(){…func2();…}func2(){…}D.func1(){…func1();…}正确答案:A解析:一个函数不能在另一个函数中定义,即不能嵌套定义。

考题 下面程序执行后的结果是()。includeusing namespace std;void func1(int i);void func下面程序执行后的结果是( )。 #include<iostream> using namespace std; void func1(int i); void func2(int i); char st[]="hello, friend!"; void func1(int i) { cout<<st[i]; if(i<3){i+=2;func2(i);} } void func2(int i) { cout<<st[i]; if(i<3){i+=2;func1(i);} } void main() { int i=0;func1(i);cout<<endl;}A.elloB.helC.hloD.him正确答案:C解析:主函数中调用func1()函数,实参赋值为0,在该函数中先输出st[0],即“h,,;然后func1()函数又调用func2()函数,实参赋值为2,func2()函数运行时先输出st[2],即“1”;然后又调用func1()函数,实参赋值为4,func1()函数运行时先输出st[4],即“o”。

考题 int func1(int& b){return 0;}void func2(){int bbb = 3;func1(&bbb);func1(bbb);}func2中有何错误,func1的参数b 的类型是什么。正确答案:

考题 下列程序执行后的输出结果是______。A.helloB.helC.hloD.hlm void func1 (int i); void func2 (int i); char st[]="hello,friend!"; void func1(int i) { printf("%c",st[i]); if(i<3){ i+=2;func2(i); } } void func2 (int i) { printf("%c",st[i]); if(i<3){ i+=2;func1(i); } } main() { int i=0;func1(i);printf("\n");}正确答案:C

考题 有如下函数定义: void funC(int a,int&B. {a++;b++;} 若执行代码段: int x=0,Y = 1; funC(X,Y); 则变量x和y的值分别是( )。A.0和1B.1和1C.0和2D.1和2正确答案:C函数参数的3种传递方式:①将变量名作为形参和实参,即传值方式;②传递变量指针;③引用形参本题中实参x为传值方式,所以x的值不会改变;Y为引用形参,所以会改变。故本题答案为c。

考题 对于类定义: class A{ public: virtual void func1(){} Void func2 (){} }; class B:public A{ public: void func1(){cout<<"class B func 1"<<end1;} virtual void func2(){cout<<"class B func 2"<<end1;} };下面叙述正确的是( )。A.A::func2()和B::func1()都是虚函数 B.A::func2()和B::func1()都不是虚函数 C.B::func1()是虚函数,而A::func2()不是虚函数 D.B::func1()不是虚函数,而A::func2()是虚函数 答案:C解析:继承是面向对象程序设计最重要的特征,指的是一个新类从已有的类那里获得其已有的特征,并可以添加新的特征。虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。题中类A声明了两个函数,一个虚函数func1()和一个函数func2(),类B继承于类A,那就继承了类A的特征,因此,类B中的func1()是一个虚函数。在类B中又把func2()声明成虚函数,给func2()增加了新的特征,所以,类B中的两个函数都是虚函数,而在类A中只有func1()是虚函数。

考题 单选题有如下函数定义:void func(int a,int&b)a++;b++;若执行代码段:int x=0;y=1;func(x,y);则变量x和y的值分别是(  )。A 0和1B 1和1C 0和2D 1和2正确答案:D解析:函数func中形参a采用传值调用,函数func对a加1不会影响实参x的值;形参b是传址调用,函数func对b加1的同时会改变实参y的值。因此,调用函数func后,x=0,y=2。

考题 有如下程序: #included<iostream> usingnamespacestd; classA{ public: virtualvoidfuncl(){cout<<"A1";) voidrune2(){cout<<"A2";}}; classB:publicA{ public: voidfuncl(){cout<<:"B1";} voidfunc2(){eout<<"B2";}}; intmain(){ A*p=newB; p->func1(); P->func2(); return0;} 执行该程序,屏幕上将显示输出( )。A.B1B2B.A1A2C.B1A2D.A1B2正确答案:CC。【解析】程序中B为A的派生类,由主函数入手,主函数中定义了类A的指针P指向类B。根据基类中的“virtualvoidfuncl”知道A中的funcl为虚函数,执行“P->fund;”语句,通过指针变量调用此虚函数,此时调用的就是指针变量指向的同名函数,即派生类的fund函数,输出B1。而fun2不是虚函数,所以执行“p->func2;”输出为A2。

考题 对于类定义 class A{ public: virtual void func1( ){} void func2( ){} }; class B:public A{ public: void func1( ){cout<<"class B func 1"< < end1;} virtual void func2( ){cout << "class B func2"<< end1;} }; 下面正确的A.A::func2( )和B::func1( )都是虚函数B.A::func2( )和B::func1( )都不是虚函数C.B::func1( )是虚函数,而A::func2( )不是虚函数D.B::func1( )不是虚函数,而A::func2( )是虚函数正确答案:C解析:基类中说明的虚函数,在派生类中自然就是虚函数,所以类B中funcl()是虚函数;而类A中的func2没有被关键字virtual修饰,所以不是虚函数。

考题 对于类定义 class A { public: virtual void funcl(){} void func2(){} }; class D:public A{ public: void funcl(){cout<< "class B rune 1"<<end1;} virtual void func2(){cout<< "class B func 2"<<end1;} }; 下面正确的叙述是 ______。A.A::func2()和B::funcl()都是虚函数B.A::func2()和B::funcl()都不是虚函数C.B::func1()是虚函数,而A::func2()不是虚函数D.B::func1()不是虚函数,而A::func2()是虚函数正确答案:C