亚信C+面试题.docx

上传人:b****6 文档编号:6161718 上传时间:2023-01-04 格式:DOCX 页数:7 大小:49.54KB
下载 相关 举报
亚信C+面试题.docx_第1页
第1页 / 共7页
亚信C+面试题.docx_第2页
第2页 / 共7页
亚信C+面试题.docx_第3页
第3页 / 共7页
亚信C+面试题.docx_第4页
第4页 / 共7页
亚信C+面试题.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

亚信C+面试题.docx

《亚信C+面试题.docx》由会员分享,可在线阅读,更多相关《亚信C+面试题.docx(7页珍藏版)》请在冰豆网上搜索。

亚信C+面试题.docx

亚信C+面试题

亚信C+面试题

A.constchar*pc=s;

B.pc[3]=’g’;

C.pc=p;

D.cp[3]=‘a’

*2、下列关于函数指针的初始化哪些是错误的?

()

A.voidreset(int*);

void(*pf)(void*)=reset;

B.intcalc(int,int);

int(*pf1)(int,int)=calc;

C.extern“c”intcompute(int*,int);

int(*pf3)(int*,int)=compute;

D.void(*pf4)(constmatrix&)=0;

3、在计费预处理程序中,取话单函数GetNextCdr的原形类似于

intGetNextCdr(StdCdr*pd,int&ri),变量x和y的定义是StdCdrx;inty,把x和y分别作为第一参数和第二参数来调用函数GetNextCdr,正确的调用语句是(B)

A.GetNextCdr(x,&y);

B.GetNextCdr(&x,y);

C.GetNextCdr(&x,&y);

D.GetNextCdr(x,y);

4、下列关于结构体的使用哪些是正确的?

(C)

A.struct StdCdr

    char switch[3]; 

   intnumber; 

    StdCdr*next; 

}

B.struct StdCdr

    char switch[3]; 

   intnumber; 

    StdCdrnext; 

}

C.struct StdCdr

    char switch[3]; 

   intnumber; 

    StdCdr*next; 

};

D.StdCdrpStd=newStdCdr;

pStd.number=10;

5、对于如下程序

#include

classA

{public:

A(){std:

:

cout<<"A"<

:

endl;}

};

intmain()

{Aa[4],b,*p;}

会输出多少个A?

(C)

A.2

B.3

C.5

D.6

6、派生类的对象对它的基类成员中哪些是可以访问的?

(DE)

A.公有继承的成员

B.公有继承的私有成员

C.公有继承的保护成员

D.公有继承的公有成员

E.私有继承的公有成员

7、下面派生类的虚函数的重新声明哪些是良好的?

()

A.Base*Base:

:

copy(Base*);

Base*Derived:

:

copy(Derived*);

B.Base*Base:

:

copy(Base*);

Base*Derived:

:

copy(Base*);

C.ostream&Base:

:

print(int,ostream&=cout);

ostream&Derived:

:

print(int,ostream&);

D.voidBase:

:

eval()const;

voidDerived:

:

eval();

*8、已知下列类层次结构,他们都定义了缺省的构造函数(CD)

classX{};

classA{};

classB:

publicA{};

classC:

privateB{};

classD:

publicX,publicC{};

D*pd=newD;

对于下列哪些转换是不允许的?

A.X*px=pd;

B.B*pb=pd;

C.A*pa=pd;

D.C*pc=pd;

9、在对语音话单文件进行取话单字段信息操作时,需要用刀lseek函数,在lseek函数的

(intfiledes,off_toffset,intwhence)参数中,若whence参数为SEEK_CUR,则offset参数代表下列的哪个含义(B)

A.将该文件的位移量设置为距文件开始处offset个字节。

B.将该文件的位移量设置为其当前值加offset,offset可为正或负。

C.将该文件的位移量设置为文件长度加offset,offset可为正或负。

D.将该文件的位移量设置文件起始位置。

10、在打开一个ASCII文本格式的语音清单文件时,需要用到open函数,在open函数的oflag参数中,下面的哪个选项代表“若此文件不存在则创建它”的含义(B)

A.O_APPEND

B.O_CREAT

C.O_EXCL

D.O_TRUNC

二、问答题(共38分)

1、(5分)头文件中的ifndef/define/endif有什么作用?

避免重定义

2、(6分)const有什么用途?

(请至少说明两种)

防止传递的函数参数不被修改提高程序健壮性

创建数组常量、指针常量、指向常量的指针

3、(8分)如下的字符串函数,用于生存一个字符串”连接号码异常”,并返回它的指针

char*strfun()

{

charstr[20];

strcpy(str,“连接号码异常”);

printf(“%s\n”,str);//printf语句1

returnstr;

}

main()

{

char*pstr=strfun() ;

printf(“%s\n”,pstr);//printf语句2

}

问题1 :

printf语句1和printf语句2哪个能在屏幕上正在打印出来?

问题2 :

如果不能正常在屏幕上打印出字符串,请说明原因。

问题3:

如果不修改strfun的声明,请问该如何修改上述程序的错误。

4、(7分)下面是交换两个double型数据的函数,

swap(double*p1,double*p2)

{

double*p;

*p=*p1;

*p1=*p2;

*p2=*p;

}

main()

{

doublea=0.1;

doubleb=0.2;

swap(&a,&b);

}

请找出上述代码的错误,指出错误的原因,并改正。

5、(7分)如果Win32程序的消息处理函数的定义由

LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam)

修改为

LRESULTCALLBACKWndProc(MSGmsg)

//MSG结构体中的成员变量包含有hWnd、message、wParam和lParam等

这种修改可行吗?

为什么?

6、(5分)MFC中,CWnd类作为所有窗体封装类的根类,它定义的一些成员函数名称与Win32API函数名称完全相同,且功能也完全相同,如ShowWindow、UpdateWindow等。

但函数参数却不同,如:

CWnd类——BOOLShowWindow(intnCmdShow);

Win32API——BOOLShowWindow(HWNDhWnd,intnCmdShow);

问题:

为什么CWnd:

:

ShowWindow函数少了一个参数也能实现相同的功能

三、程序题(共30分)

1、(14分)在计费系统的预处理程序中,对话单进行格式转换时,需要使用strcpy函数已知strcpy,此函数的原型是

char*strcpy(char*strDest,constchar*strSrc);

其中strDest是目的字符串,strSrc是源字符串。

编写strcpy函数

(1)不调用C++/C的字符串库函数,请编写函数strcpy

(2)strcpy能把strSrc的内容复制到strDest,为什么还要char*类型的返回值?

2、(16分)在电信业务的后台处理程序中,经常会涉及到处理字符串,除了用char*处理字符串之外,C++还为我们提供了封装了的字符串类string,其本质也是用一个动态数组来保存字符串,类String的原型为:

classString

{

public:

String(constchar*str=NULL);//普通构造函数

String(constString&other);//拷贝构造函数

~String(void);//析构函数

String&operate=(constString&other);//赋值函数

private:

char*m_data;//用于保存字符串

};

请编写String的上述4个函数普通构造函数、拷贝构造函数、析构函数和赋值函数。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1