第一范文网 - 专业文章范例文档资料分享平台

软件开发工程师C++试题库

来源:用户分享 时间:2025/6/17 3:12:46 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

ITAT—教育部教育管理信息中心 樊本宏

[解析]类模板的使用。template ,也可以引入多参数的如:template

5. 定义类的动态对象数组时,系统只能够自动调用该类的___构造函数对其进行初始化。 答案:(考点80)无参

[解析]使用new创建对象数组,调用无参构造函数。 6. 表达式cout<

[解析]endl与字符常量‘\n’等价。

7. 在C++中,访问一个指针所指向的对象的成员所用的指向运算符是___。 答案:->

[解析]指针使用成员有两种方法:“->”指向运算符和“.”成员访问运算符。

8. 假如一个类的名称为MyClass,使用这个类的一个对象初始化该类的另一个对象时,可以调 用___构造函数来完成此功能。 答案:(考点80)复制或拷贝

复制或拷贝构造函数就是用对象初始化新的对象。 9. 对赋值运算符进行重载时,应声明为___函数。 答案:(考点183)类成员

[解析]运算符重载的方法有友元或者成员函数两种途径,但是赋值运算符只能使用成员函数的 方法来实现。

10. 如果要把A类成员函数f()且返回值为void声明为类B的友元函数,则应在类B的定义中加 入的语句___。

答案:(考点109)friend void A::f();

[解析]成员函数作为另一个类的友元函数,格式为:friend 返回类型 类名::函数(形参)。 11. 下列程序段的输出结果是___。

for(i=0,j=10,k=0;i<=j;i++,j-=3,k=i+j);cout<

[解析]for循环结构,三个表达式的作用,初始化、循环判断条件和循环变量变化。循环执行了 三次,k的作用是计算i、j的和。

12. String 类的___方法返回查找到的字符串在主串的位置。 答案:(考点40)find

[解析]string类对象方法的find,查不到字符串,则返回-1。 13. int n=0; while(n=1)n++;

while循环执行次数是___。 答案:无限次

[解析]=是赋值运算符,不是关系运算符,且不等0,所以死循环。

14. 控制格式输入输出的操作中,函数___是用来设置填充字符。要求给出函数名和参数类型 答案:(考点195)setfill(char)

[解析]格式控制方法的使用,如setw,setfill等等。

15. C++语言支持的两种多态性分别是编译时的多态性和___的多态性。 答案:(考点167)运行时

[解析]多态性包括静态的(编译时)多态性和动态的(运行时)多态性。

16. 设函数sum是由函数模板实现的,并且sum(3,6)和sum(4.6,8)都是正确的函数调用,则函 数模板具有___个类型参数。 答案:(考点61)2 17. 执行下列代码

string str(\cout<

[解析]substr取子字符串,第1个参数表示要截取子串在字符串中的位置,第2个表示取多少个 字符。

5

ITAT—教育部教育管理信息中心 樊本宏

18. 在面向对象的程序设计中,将一组对象的共同特性抽象出来形成___。 答案:(考点38)类

[解析]类是相似特征的对象的抽象,对象是类的一个实例。

19. 定义类动态对象数组时,元素只能靠自动调用该类的___来进行初始化。 答案:(考点77)无参构造函数

[解析]使用new 创建动态对象数组,不能有参数,所以只能调用无参的构造函数,初始化对象 20. 已知有20个元素int类型向量V1,若用V1初始化为V2向量,语句是___。 答案:(考点151)ector V2(V1);

[解析]采用向量初始化另一个向量的形式:vector name1(name);

三、改错题(本大题共5小题,每小题2分,共10分)下面的类定义中有一处错误,请用下 横线标出错误所在行并给出修改意见。 1. #include class Test {private: int x,y=20; public:

Test(int i,int j){x=i,y=j;} int getx(){return x;} int gety(){return y;} };

void main()

{Test mt(10,20);

cout<

答案:int x,y=20;在类内部不能对数据成员直接赋值。 [修改]int x,y;

2. #include class Test {int x,y; public:

fun(int i,int j) {x=i;y=j;} show()

{cout<<\if(y)

cout<<\cout<

void main() {Test a; a.fun(1); a.show(); a.fun(2,4); a.show(); }

答案:int i,int j调用时,既有一个参数,也有两个参数,且没有重载,所以参数需要带默认 值。所以int i,int j错误。

[修改]int i,int j=0//注j只要有一个int类型的数据就行。 3. #include class A {int i;

6

ITAT—教育部教育管理信息中心 樊本宏

public:

virtual void fun()=0; A(int a) {i=a;} };

class B:public A {int j; public: void fun()

{cout<<\\n\

B(int m,int n=0):A(m),j(n){} };

void main() {A *pa; B b(7); pa=&b; }

答案:B(int m,int n=0):A(m),j(n){}因为基类是抽象类,不能被实例化,所以在派生类中不能 调用初始化基类对象。所以B(int m,int n=0):A(m),j(n){}错误,删去A(m)。 [修改]B(int m,int n=0):j(n){} 4. #include class X {public: int x; public: X(int x)

{cout<x=x<

cout<

void fun(X); };

void fun(X t)

{cout<

答案:cout<x=x<x=x表达式的值要加括号。 [修改]cout<<(this->x=x)< #include class Bas {public:

Bas(char *s=\\0\void show(); protected:

char name[20]; }; Bas b;

void show()

{cout<<\void main()

7

ITAT—教育部教育管理信息中心 樊本宏

{Bas d2(\show(); }

答案:void show();是普通函数不是成员函数,但是要访问类成员,需要定义为友元函数。 [修改]friend void show();

四、完成程序题(本大题共5小题,每小题4分,共20分)

1. 在下面程序横线处填上适当字句,以使该程序执行结果为: 50 4 34 21 10

0 7.1 8.1 9.1 10.1 11.1 #include template void f (__________) {__________;

for (int i=0;i

t=a[i], a[i]=a[n-1-i], a[n-1-i]=t; }

void main ()

{int a[5]={10,21,34,4,50};

double d[6]={11.1,10.1,9.1,8.1,7.1}; f(a,5);f(d,6);

for (int i=0;i<5;i++) cout <

for (i=0;i<6;i++) cout << d[i] << \cout << endl; }

答案:T a[],int n,T t=0;

[解析]不同的数据类型的调用,使用了模板。f函数增加t变量,因为实参类型不同,所以t的 类型应该是T类型的。

2. 在下面程序的底画线处填上适当的字句,使该程序执行结果为40。 #include class Test { public: ______;

Test (int i=0) {x=i+x;} int Getnum()

{return Test::x+7;} };

_______; void main() {Test test;

cout<

答案:static int x;,int Test::x=30;

[解析]从成员函数访问方式类名::成员可知是静态成员所以static int x;从结果要对初始 化为30,且在类外进行初始化, int Test::x=30;。

3. 在下列程序的空格处填上适当的字句,使输出为:0,2,10。 #include #include class Magic

8

搜索更多关于: 软件开发工程师C++试题库 的文档
软件开发工程师C++试题库.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c7mewy0zkk35136q5shms_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top