C和C++经典笔试题及答案 软件测试笔试题及答案
语言两函数名称不能相否则会导致编译错误。
而++函数名相而参数数据类型不或参数数不或二者皆不两函数被释重。
用预处理指令#声明常数用以表明年有多少秒(忽略闰年问题)。
答案# _R_R(6060365)L。
应该识到表达式将使6位机整形数溢出因要用到长整型L表达式L表示无长整型。
写标准宏这宏输入连参数并返回较。
答案# (,B) (()(B)?()(B));懂得宏心吧参数用括扩起。
3 z 些考察。
r 0356789; r []0356789; r 3[00]0356789;。
[00]; r q[]b; r q[]\; r q3\;。
是数组这数组初定填充值是0356789占位再加上隐含\0共是位。
q与类似占位。
Q里面有\\算作位加上隐含共是3位。
llg ?。
#l。
g ;。
l {};。
l {r ,;};。
r B{};。
r { r x,;};。
r { x,;};。
()。
{。
();。
;。
3;。
rr 0;。
}。
答案对类而言即便它是空类编译器仍然要要给它空所以类即便什么也没有它空依然而类是类连和所以它空依然是至3和3是指针是致而且是定值是对象所以它和类相等B和得释和至它和不结构体有两整型变量每整型变量所占空所以所占空8。
结是 8。
5 llg ?。
#l g ;。
l { bl ; b;(); ~();};。
l { bl ; r ; (); ~();}; 8。
l 3 { bl l ; r ; 3(); ~3();}; 8。
l { bl l ; b; r ; (); ~();};。
l 5 { bl bl ; l ; b; r ; 5(); ~5();}。
() {。
答案因静态变量是存放全局数据区z计算栈分配是不会计算所以z()是;了照顾数据对其r所以z()是8;了照顾数据对其lr所以z(3)8;了照顾数据对其lr所以z();了照顾数据对其bl8lr所以z(5)。
6 以下代码输出结是()。
r vr[]。
(r vr[]){ rr z(vr);}。
7 以下代码输出结是()。
l B { l ; r ; [3];};。
答案l 占了节r 占了节 [3]占了节总共是7根据存对齐原则要选择倍数是0节。
8 以下代码输出结是()。
l B { bl ; r ; [];};。
答案bl 占了8节r 占了节 []占了6节总共是5根据存对齐原则要选择8倍数是3节。
9 空类所占空多重继承空类所占空还是但是虚继承涉及到虚表(虚指针)所以虚继承空类占空。
0 指针是实例化对象产生,并且指向对象身比如实例化对象,那么;用取地取对象地样,如定义对象这类,有bl变量x,那么就可以用x0定义x值,等x0。
#l g ;。
V Gr( z) { z5; }。
() { v; Gr(v);。
Gr把v地传了,z是地里值,是v副通直接修改地里值,不要有返回值,也把v给修改了,因v所指向地值发生了改变,终程序会崩溃。
下面数据声明都代表什么思?。
()l()[0]。
()bl(g)[0]。
(3) bl([0])()。
是数组有十元素元素都是函数指针指向函数类型是没有参数且返回bl函数。
()((b)[0])。
(5)lg()()。
(6)(()(,))()。
是函数指针指向函数类型是有两参数并且返回函数指针函数返回函数指针指向参数且返回函数。
指针数组是指数组里面装着指针数组指针代表它是指针指向真数组。
(r)[] B r[] (r[]) r[]。
它指向位置值就是r[0],r[],r[]不要存r[0]5,r[]6,因里面没有相应地。
(r[])与B相。
用变量给出下面定义。
()整型数。
(8)有0指针数组该指针指向函数该函数有整型参数并返回整数。
; ; ; [0]; [0]; ()[0]; ()(); ([0])()。
l。
{ bl。
};。
答案对空类,编译器默认产生成员函数默认构造函数,析构函数,拷贝构造函数和赋值函数。
那种成员变量可以类实例共享?。
答案必须使用静态成员变量类所有实例共享数据如想限制对静态成员变量访问,则必须把他们声明成保护型或私有型不允许使用静态成员变量存放对象数据。
静态数据成员静态成员可以实现多对象数据共享并且使用静态数据成员还不会破坏隐藏原则即保证了安全性。
节省存;提高效率。
使用静态数据成员可以因它是所有对象所公有因对多对象说静态数据成员只存储处供所有对象共用。
这表明。
() 初始化类体外进行而前面不加以免与般静态变量或对象相混淆。
(3) 初始化使用作用域运算标明它所属类静态数据成员是类成员而不是对象成员。
3、静态数据成员是静态存储它是静态生存期必须对它进行初始化。
静态数据成员访问权限允许话(即bl成员)可程序按上述格式引用静态数据成员。
#l。
l l。
{。
bl。
l( , b, );。
v Gbr();。
v G();。
rv。
, B, ;。
;。
};。
l 0;。
ll( , b, )。
{。
;。
B b;。
;。
+ +B+;。
}。
v lGbr()。
{。
br。
}。
v lG()。
{。
}。
v ()。
{。
l (3, 7, 0),(, 9, );。
Gbr();。
Gbr();。
G();。
G();。
}。
初始化对象对将对象三型数据成员值和又加到已有值上是将保存另值。
静态成员函数和静态数据成员样它们都属类静态成员它们都不是对象成员。
静态成员函数实现不能直接引用类说明非静态成员可以引用类说明静态成员。
下面通例子说明这。
#l。
l。
{。
bl。
( ) { ; B+;}。
v ( );。
rv。
;。
B;。
};。
v ( )。
{。
B。
}。
B0;。
v ()。
{。
(5),Q(0);。
(); l调用不用对象名。
(Q);。
}。
者可以行分析其结。
判断选择。
++语言没有可移植性。
B不正确。
定义数组可以不确定元素数。
B不正确。
3 指针是种特殊变量只能用保存地。
正确。
通引用或者指针调用对象成员函数如引用或者指针类型跟对象类型不致能动正确调用对象所属类对这函数定义。
B不正确。
5类ll类对象以成员函数形式重++运算声明应该 l rr++( );。
l rr++();。
B l rr++();。
l rr++( );。
5 父类和子类各定义成员函数函数名相参数表不那么 子类函数会覆盖父类函数。
6 如l类定义了拷贝构造函数和整型参数构造函数还重了赋值运算那么语句。
等价 l b l(00)。
7 抽象类指是 有纯虚函数类。
8 多重继承如派生类两父类有共虚基类那么虚基类初始化参数由 派生类。
构造函数传递。
9 多态性是通 虚函数 实现。
0 如有如下语句。
r r[0];。
r;。
r;。
执行输入是 l!则输出容是。
l!
B l。
执行语句。
r [] ll;。
r [0];。
;。
结是输出。
ll。
3以下生面是否正确?。
l { z0;};。
正确程序如下。
l。
{ (){ z0; }};。
或者。
l。
{ z0; };。