华塑控股股份有限公司8月招聘面试题90道2020816

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

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时的返回值。


华塑控股股份有限公司8月招聘面试题面试题面试官常问到的一些题目整理如下:问题 Q1:Python中的反向索引是什么?可用的回答 :Python序列可以是正数和负数的索引。对于正索引,0是第一个索引,1是第二个索引,依此类推。对于负索引,( - 1)是最后一个索引,( - 2)是倒数第二个索引,依此类推。问题 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:什么是Python pass?可用的回答 :pass意味着,无操作的Python语句,或者换句话说,它是复合语句中的占位符,其中应该留有空白,并且不必在那里写入任何内容。问题 Q4:你对Django的认识?可用的回答 : Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。 Django内置的ORM跟框架内的其他模块耦合程度高。 应用程序必须使用Django内置的ORM,否则就不能享受到框架内提供的种种基于其ORM的便利; 理论上可以切换掉其ORM模块,但这就相当于要把装修完毕的房子拆除重新装修,倒不如一开始就去毛胚房做全新的装修。 Django的卖点是超高的开发效率,其性能扩展有限;采用Django的项目,在流量达到一定规模后,都需要对其进行重构,才能满足性能的要求。 Django适用的是中小型的网站,或者是作为大型网站快速实现产品雏形的工具。 Django模板的设计哲学是彻底的将代码、样式分离; Django从根本上杜绝在模板中进行编码、处理数据的可能。 问题 Q5:迭代器和生成器的区别?可用的回答 : 1)迭代器是一个更抽象的概念,任何对象,如果它的类有next方法和iter方法返回自己本身。对于 string、list、dict、tuple等这类容器对象,使用for循环遍历是很方便的。在后台for语句对容器对象调 用iter()函数,iter()是python的内置函数。iter()会返回一个定义了next()方法的迭代器对象,它在容器中 逐个访问容器内元素,next()也是python的内置函数。在没有后续元素时,next()会抛出一个 StopIteration异常 2)生成器(Generator)是创建迭代器的简单而强大的工具。它们写起来就像是正规的函数,只是在需 要返回数据的时候使用yield语句。每次next()被调用时,生成器会返回它脱离的位置(它记忆语句最后 一次执行的位置和所有的数据值) 区别:生成器能做到迭代器能做的所有事,而且因为自动创建了iter()和next()方法,生成器显得特别简洁, 而且生成器也是高效的,使用生成器表达式取代列表解析可以同时节省内存。除了创建和保存程序状态 的自动方法,当发生器终结时,还会自动抛出StopIteration异常 问题 Q6: Tornado 的核心是什么?可用的回答 : Tornado 的核心是 ioloop 和 iostream 这两个模块, 前者提供了一个高效的 I/O 事件循环,后者则封装了 一个无阻塞的 socket 。 通过向 ioloop 中添加网络 I/O 事件,利用无阻塞的 socket, 再搭配相应的回调函数,便可达到梦寐以求的高效异步执行。 问题 Q7:单引号,双引号,三引号的区别?可用的回答 : 单引号和双引号是等效的,如果要换行,需要符号(),三引号则可以直接换行,并且可以包含注释 如果要表示Lets go 这个字符串 单引号:s4 = Lets go 双引号:s5 = “Lets go” s6 = I realy like“python”! 这就是单引号和双引号都可以表示字符串的原因了 问题 Q8:在Python中切片是什么?可用的回答 :从序列类型(如列表,元组,字符串等)中选择一系列项目的机制称为切片。问题 Q9:介绍一下except的用法和作用?可用的回答 : tryexceptexceptelsefinally 执行try下的语句,如果引发异常,则执行过程会跳到except语句。 对每个except分支顺序尝试执行,如果引发的异常与except中的异常组匹配,执行相应的语句。 如果所有的except都不匹配,则异常会传递到下一个调用本代码的最高层try代码中。 try下的语句正常执行,则执行else块代码。如果发生异常,就不会执行 如果存在finally语句,最后总是会执行。 问题 Q10:urllib 和 urllib2 的区别?可用的回答 : urllib 和urllib2都是接受URL请求的相关模块, 但是urllib2可以接受一个Request类的实例来设置URL请求的headers, urllib仅可以接受URL。urllib不可以伪装你的User-Agent字符串。 urllib提供urlencode()方法用来GET查询字符串的产生,而urllib2没有。 这是为何urllib常和urllib2一起使用的原因。 算法题面试官常问到的一些算法题目整理如下(大概率会机考):算题题 A1:能组合成的最大的数题目描述如下:Given a list of non negative integers, arrange them such that they form the largest number.Example 1:Input: 10,2Output: 210Example 2:Input: 3,30,34,5,9Output: 9534330Note: The result may be very large, so you need to return a st

下列程序的输出结果为 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

更多 “华塑控股股份有限公司8月招聘面试题90道2020816” 相关考题
考题 下列程序执行后的输出结果是( )。 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);}A.helloB.helC.holD.hlm正确答案: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()是虚函数。

考题 窗体上有一个按钮和一个列表框,执行下列程序后,输出的结果为 Private Sub Command1_Click() List1.AddItem "Visual" List1.AddItem "Basic" List1.AddItem "Programming", 1 Print list1.List(2) End SubA.VisualB.BasicC.ProgrammingD.2正确答案:C解析:列表框控件使用AddItem方法增加列表项,格式如下:object.AddItemitem[,index]Index参数为可选参数,当不带该参数使用AddItem方法时,增加项自动添加到列表框最后一条;当带Index参数时,则将增加项添加到Index指定的位置。注意Index只能在0到ListCount间取值。本题中由于最后一个AddItem方法使用了Index(为1),所以“Programming”插入到第2行的位置,“Basic”则被挤进最后一行的位置(对应Index=2)。

考题 有如下函数定义: 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。

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

考题 有如下程序: #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。

考题 有如下程序:includeusing namespace std;class A{public:virtual void func1(){cout有如下程序: #include<iostream> 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.B1B2B.A1A2C.B1A2D.A1B2正确答案:C解析:程序中B为A的派生类,由主函数入手,主函数中定义了类A的指针p指向类B。根据基类中的“virtualvoidfunc1()”知道A中的func1为虚函数,执行“p->func1();”语句,通过指针变量调用此虚函数,此时调用的就是指针变量指向的同名函数,即派生类的func1函数,输出B1。而fun2不是虚函数,所以执行“p->func2();”输出为A2。

考题 下面程序执行后的结果是()。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”。

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

考题 下列程序写法不正确的是( )。A.func1(){…func2(){…}…}B.func1(){…}func2(){…}C.func2();func1(){…func2();…}func2(){…}D.func1(){…func1();…}正确答案:A解析:一个函数不能在另一个函数中定义,即不能嵌套定义。