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\;。

答案指针指针是确定值就是z();。

数组数组初定填充值是0356789占位再加上隐含\0共是位。

3是数组数组开始预分配00所以它是00位。

整型数组但是每整型变量所占空是所以它共是00位。

q与类似占位。

Q里面有\\算作位加上隐含共是3位。

Q3是指针指针得是定值就是。

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);}。

答案因vr[]等价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]。

是二级指针指向是维数组指针数组元素都是l。

()bl(g)[0]。

G是指针指向数组数组元素都是bl。

(3) bl([0])()。

数组有十元素元素都是函数指针指向函数类型是没有参数且返回bl函数

()((b)[0])。

就跟(b)[0]是样b是维数组指针

(5)lg()()。

函数指针

(6)(()(,))()。

函数指针指向函数类型是有两参数并且返回函数指针函数返回函数指针指向参数且返回函数

3 指针数组数组指针

指针数组是指数组里面装着指针数组指针代表它是指针指向数组

指向整型数组指针定义()。

(r)[] B r[] (r[]) r[]。

(r)[]是以指向整型数组指针

r[]是指针数组r[]里面存是地。

指向位置值就是r[0],r[],r[]不要存r[0]5,r[]6,因里面没有相应地。

(r[])与B相。

用变量给出下面定义。

()整型数。

()指向整形数指针

(3)指向指针指针指向指针整型数。

()有0整型数组

(5)有0指针数组指针指向整型数。

(6)指向有0整型数组指针

(7)指向函数指针函数整型参数并返回整型数。

(8)有0指针数组指针指向函数函数整型参数并返回整数。

; ; ; [0]; [0]; ()[0]; ()(); ([0])()。

5++空类默认产生那些类成员函数?。

l。

{ bl。

};。

答案对空类,编译器默认产生成员函数默认构造函数,析构函数,拷贝构造函数和赋值函数

和++笔试题及答案3。

那种成员变量可以类实例共享?。

答案必须使用静态成员变量类所有实例共享数据如想限制对静态成员变量访问,则必须把他们声明成保护型或私有型不允许使用静态成员变量存放对象数据。

静态成员数据是这类所有对象共享。

静态数据成员静态成员可以实现多对象数据共享并且使用静态数据成员还不会破坏隐藏原则即保证了安全性。

节省存;提高效率。

使用静态数据成员可以因它是所有对象所公有因对多对象静态数据成员只存储处供所有对象共用。

静态数据成员值对每对象都是样但它值是可以更新。

只要对静态数据成员值更新次保证所有对象存取更新相值。

静态数据成员定义或说明前面加关键。

静态成员初始化与般数据成员初始化不。

静态数据成员初始化格式如下。

数据类型类名静态数据成员名值。

这表明。

() 初始化类体外进行而前面不加以免与般静态变量或对象相混淆。

() 初始化不加该成员访问权限控制rvbl等。

(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();。

}。

从输出结可以看到值对对象和对对象都是相等。

这是因初始化对象对象三型数据成员值和赋给了是保存了该值。

初始化对象对将对象三型数据成员值和又加到已有值上是将保存另值。

所以不论是通对象还是通对象引用值都是样即5。

静态成员函数

静态成员函数静态数据成员样它们都属类静态成员它们都不是对象成员

因对静态成员引用不要用对象名。

静态成员函数实现不能直接引用类说明非静态成员可以引用类说明静态成员

静态成员函数要引用非静态成员可通对象引用。

下面通例子说明这。

#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 00;会 B调用整型参数构造函数

等价 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; };

4 次访问