最新的亚信面试题目及参考答案(三篇)
对面试题目的回答情况,决定着亚信求职者是否可以拥有一份工作。今天百文网小编要与大家分享的是最新的亚信面试题目及参考答案,希望对大家的学习有帮助!
最新的亚信面试题目及参考答案:程序题
(共30分)
String(const char *str = NULL); // 普通构造函数
String(const String &other); // 拷贝构造函数
~ String(void); // 析构函数
String & operate =(const String &other); // 赋值函数
private:
char *m_data; // 用于保存字符串
};
请编写String的上述4个函数普通构造函数、拷贝构造函数、析构函数和赋值函数。
1、(14分)在计费系统的预处理程序中,对话单进行格式转换时,需要使用strcpy函数已知strcpy,此函数的原型是
char *strcpy(char *strDest, const char *strSrc);
其中strDest是目的字符串,strSrc是源字符串。编写strcpy函数
(1)不调用C++/C的字符串库函数,请编写函数 strcpy
(2)strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?
2、(16分)在电信业务的后台处理程序中,经常会涉及到处理字符串,除了用char *处理字符串之外,C++还为我们提供了封装了的字符串类string,其本质也是用一个动态数组来保存字符串,类String的原型为:
class String
{
public:
最新的亚信面试题目及参考答案:选择题
(单选题3分,多选题4分,共32分)
在每小题列出的四个备选项中只有1个或2个是符合题目要求的,多选题已用*标识出来,请将其答案填写在题后的括号内,错选或未选均无分。
1、下面这段关于指针和常量的关系的程序哪些是错误的( D )
void f(char * p)
{
char s[ ] = “HW5,V,0,13821801333”;
const char * pc =s; //A
pc[3] = ’g’; //B
pc = p; //C
char * const cp = s;
cp[3] = ‘a’; //D
}
A.const char * pc =s;
B.pc[3] = ’g’;
C.pc = p;
D.cp[3] = ‘a’
*2、下列关于函数指针的初始化哪些是错误的?( )
A. void reset(int *);
void (*pf) (void *) = reset;
B. int calc(int ,int );
int (*pf1)(int ,int ) =calc;
C. extern “c” int compute(int * ,int);
int (*pf3)(int *,int) = compute;
D. void (*pf4)(const matrix &)=0;
3、在计费预处理程序中,取话单函数GetNextCdr的原形类似于
int GetNextCdr(StdCdr *pd, int &ri),变量x和y的定义是 StdCdr x; int y,把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];
int number;
StdCdr * next;
}
B. struct StdCdr
{
char switch[3];
int number;
StdCdr next;
}
C. struct StdCdr
{
char switch[3];
int number;
StdCdr * next;
};
D. StdCdr pStd = new StdCdr;
pStd. number = 10;
5、对于如下程序
class A
{ public:
A() {std::cout<<"A"<
};
int main()
{ A a[4], b,*p; }
会输出多少个A?( C )
A.2
B.3
C.5
D.6
6、派生类的对象对它的基类成员中哪些是可以访问的?(
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.void Base::eval()const; D E )
void Derived::eval();
* 8、已知下列类层次结构,他们都定义了缺省的构造函数( C D )
class X{ };
class A{ };
class B: public A{ };
class C: private B{ };
class D:public X,public C{ };
D * pd = new D;
对于下列哪些转换是不允许的?
A. X * px = pd;
B. B * pb = pd;
C. A * pa = pd;
D. C * pc = pd;
9、在对语音话单文件进行取话单字段信息操作时,需要用刀lseek函数,在lseek函数的 (int filedes, off_t offset, int whence)参数中,若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()
{
char str[20];
strcpy(str, “连接号码异常”);
printf(“%s ”, str); //printf语句1
return str;
}
main()
{
char *pstr = strfun() ;
printf(“%s ”, 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()
{
double a = 0.1;
double b = 0.2;
swap( &a, &b );
}
请找出上述代码的错误,指出错误的原因,并改正。
5、(7分)如果Win32程序的消息处理函数的定义由
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
修改为
LRESULT CALLBACK WndProc(MSG msg)
//MSG结构体中的成员变量包含有hWnd、message、wParam 和lParam等
这种修改可行吗?为什么?
6、(5分)MFC中,CWnd类作为所有窗体封装类的根类,它定义的一些成员函数名称与Win32 API函数名称完全相同,且功能也完全相同,如ShowWindow、UpdateWindow等。但函数参数却不同,如:
CWnd类 —— BOOL ShowWindow( int nCmdShow );
Win32 API —— BOOL ShowWindow(HWND hWnd, int nCmdShow);
问题:为什么CWnd:: ShowWindow函数少了一个参数也能实现相同的功能