下面代码有何错误void func1(){int *pa = NULL;func2(pa);delete pa;}void func2(int *pb){pb = new int(5);}

题目

下面代码有何错误

void func1()

{

int *pa = NULL;

func2(pa);

delete pa;

}

void func2(int *pb)

{

pb = new int(5);

}

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

void funcl(int i);

void func2(int i);

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

void fund(int i)

{ cout<<st[i];

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

}

void func2(int i)

{ cout<<st[i];

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

}

main( )

{int i=0;fund(i);cout<<endl;}

A.hello

B.hel

C.hlo

D.hlm


正确答案:C
解析:本题考察递归调用。分析funcl可知,当i=0时,首先输出h,然后i变为2,调用func (2),则输出str[2],应为1。分析到此就可以排除选项A和B。然后调用runcl(4),此时输出str [4],为o,故正确答案为C。

第2题:

有如下程序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

第3题:

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

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

第4题:

下面程序编译时发现ma[3]=9错误,其原因是______。 include class FunArray { int*pa;

下面程序编译时发现ma[3]=9错误,其原因是______。

include<iostream.h>

class FunArray

{

int*pa; //指向一个数组空问

int size; //数组元素个数

public:

FunArray(int a[],int thesize):pa(a),size(thesize){}

int Size( ){return size;}

}

};

void main( )

{

int s[]={3,7,2,1,5,4};

FunArray ma(s,sizeof(s)/sizeof(int));

ma[3]=9;

cout<<ma[3]<<endl;

}


正确答案:没有重载[]运算符
没有重载[]运算符 解析:ma不是一般的数组,而是一个新定义的类,尽管该类封装了一个数组,但新类并没有提供[]操作符的具体实现,因此是错误的。

第5题:

已知一个类A,类A有三个公有成员:void f1(int),void f2(int)和int a;定义指向类A成员函数的指针是( )。

A.A*p;

B.int A::*Pc=&A.a;

C.void(A::*pA) ();

D.void(A::*p


正确答案:C
解析:A定义了一个类的对象指针;B定义一个类A数据成员指针;C定义了一个类A的成员函数指针;D定义一个类A的对象指针数组。

第6题:

已知一个类Sample,( )是定义指向类Sample成员函数的指针,假设类有三个公有成员:voidf1(int),void f2(int)和int a。

A.Sample*p

B.Int Samale::*pc=&Sample::a

C.Void(Sample::*Pa)()

D.Sample*P[10]


正确答案:C

第7题:

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

A.hello

B.hel

C.hlo

D.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

第8题:

( 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

第9题:

下列程序执行后的输出结果是 void funcl(int i); void func2(int i); char st[]="hello,friend!"; void funcl(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=

A.hello

B.hel

C.hlo

D.hlm


正确答案:C

第10题:

已知一个类Sample,( )是定义指向类Sample成员函数的指针,假设类有三个公有成员:voidfl(int),void f2(int)和int a。

A.Sample*p

B.Int Samale::*pc=&Sample::a

C.Void (Sample::*Pa) ()

D.Sample *P[10]


正确答案:C

更多相关问题