亚信C面试题
#include <iostream>
class A
{ public:
A(){std::cout<<"A"<<std::endl;}
};
int main()
{A a[4], b,*p;}
会输出多少个A?(C)
A.2
B.3
C.5
D.6
6、派生类的对象对它的基类成员中哪些是可以访问的?(DE)
A.公有继承的成员
A.GetNextCdr(x,&y);
B.GetNextCdr(&x,y);
C.GetNextCdr(&x,&y);
D.GetNextCdr(x,y);
4、下列关于结构体的使用哪些是正确的?(C)
A.structStdCdr
{
charswitch[3];
int number;
StdCdr* next;
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的定义是StdCdrx; inty,把x和y分别作为第一参数和第二参数来调用函数GetNextCdr,正确的调用语句是(B)
1、下面这段关于指针和常量的关系的程序哪些是错误的(D)
void f(char * p)
{
char s[ ] = “HW5,V,0,”;
const char * pc =s;//A
pc[3] = ’g’;//B
pc= p;//C
char * const cp = s;
cp[3] = ‘a’;//D
}
C++程序设计语言
技术能力考试1级
课程名称C++程序设计语言课程号MC考试时间120分钟
考试方式(闭)卷(共5页)
(本试卷满分100分,60分合格,答案请写在答题卡上)
一、选择题
在每小题列出的四个备选项中只有1个或2个是符合题目要求的,多选题已用*标识出来,请将其答案填写在题后的括号内,错选或未选均无分。
}
B.structStdCdr
{
charswitch[3];
int number;
StdCdrnext;
}
C.structStdCdr
{
charswitch[3];
int number;
StdCdr* next;
};
D.StdCdrpStd=newStdCdr;
pStd.number= 10;
5、对于如下程序
B.公有继承的私有成员
C.公有继承的保护成员
D.公有继承的公有成员
E.私有继承的公有成员
7、下面派生类的虚函数的重新声明哪些是良好的?( )
A.Base * Base::copy(Base *);
Base * Derived::copy(Derived * );
B.Base * Base::copy(Base *);
A.将该文件的位移量设置为距文件开始处offset个字节。
B.将该文件的位移量设置为其当前值加offset, offset可为正或负。
C.将该文件的位移量设置为文件长度加offset, offset可为正或负。
D.将该文件的位移量设置文件起始位置。
10、在打开一个ASCII文本格式的语音清单文件时,需要用到open函数,在open函数的oflag参数中,下面的哪个选项代表“若此文件不存在则创建它”的含义(B)
char* strfun()
{
char str[20];
strcpy(str, “连接号码异常”);
printf(“%s \n”, str);//printf语句1
return str;
}
main()
{
char *pstr = strfun() ;
printf(“%s \n”, pstr);//printf语句2
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;
}
问题1 : printf语句1和printf语句2哪个能在屏幕上正在打印出来?
问题2 :如果不能正常在屏幕上打印出字符串,请说明原因。
问题3 :如果不修改strfun的声明,请问该如何修改上述程序的错误。
4、(7分)下面是交换两个double型数据的函数,
*8、已知下列类层次结构,他们都定义了缺省的构造函数(CD)
class X{ };
class A{ };
class B: public A{ };
class C: private B{ };
class D:public X,public C{ };
D * 是不允许的?
Base * Derived::copy(Base * );
C.ostream & Base::print(int,ostream&= cout);
ostream & Derived::print(int,ostream&);
D.void Base::eval()const;
void Derived::eval();
A.O_APPEND
B.O_CREAT
C.O_EXCL
D.O_TRUNC
二
1、(5分)头文件中的ifndef/define/endif有什么作用?
避免重定义
2、(6分)const有什么用途?(请至少说明两种)
防止传递的函数参数不被修改提高程序健壮性
创建数组常量、指针常量、指向常量的指针
3、(8分)如下的字符串函数,用于生存一个字符串”连接号码异常”,并返回它的指针
A. X * px = pd;
B. B * pb = pd;
C. A * pa = pd;
D. C * pc = pd;
9、在对语音话单文件进行取话单字段信息操作时,需要用刀lseek函数,在lseek函数的
(intfiledes, off_t offset, int whence)参数中,若whence参数为SEEK_CUR,则offset参数代表下列的哪个含义(B)