C++模拟试题打包2.docx
- 文档编号:12358494
- 上传时间:2023-04-18
- 格式:DOCX
- 页数:66
- 大小:38.82KB
C++模拟试题打包2.docx
《C++模拟试题打包2.docx》由会员分享,可在线阅读,更多相关《C++模拟试题打包2.docx(66页珍藏版)》请在冰豆网上搜索。
C++模拟试题打包2
模拟试题五
班级________________姓名________________学号________________
一
二
三
四
五
六
总分
一、单项选择题:
从每题给出的四个答案中,在ABCD中选择一个正确答案,填入【】。
1.C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是【】
A.增加了一些新的运算符
B.允许函数重载,并允许设置缺省参数
C.规定函数说明符必须用原型
D.引进了类和对象的概念
2.下列符号不能组成标识符的是【】
A.连接符B.下划线
C.大小写字母D.数字字符
3.类型修饰符unsigned不能修饰【】
A.charB.int
C.longintD.float
4.在inta=3,int*p=&a;中,*p的值是()
A.变量a的地址值B.无意义
C.变量p的地址值D.3
5.下列关于指针的操作中,错误的是【】
A.两个同类型的指针可以进行比较运算
B.可以用一个空指针赋给某个指针
C.一个指针可以加上两个整数之差
D.两个同类型的指针可以相加
6.重载函数在调用时选择的依据中,错误的是【】
A.函数的参数B.参数的类型
C.函数的名字D.函数的类型
7.一个函数功能不太复杂,但要求被频繁调用,选用【】
A.内联函数B.重载函数
C.递归函数D.嵌套函数
8.下列不是描述类的成员函数的是【】
A.构造函数B.析构函数
C.友元函数D.拷贝构造函数
9.构造函数不具备的特征的是【】
A.构造函数的函数名与类名相同
B.构造函数可以重载
C.构造函数可以设置默认参数
D.构造函数必须指定类型说明
10.通常,拷贝构造函数的参数是【】
A.某个对象名B.某个对象的成员名
C.某个对象的引用名D.某个对象的指针名
11.继承机制的作用是【】
A.信息隐藏B.数据封装
C.定义新类D.数据抽象
12.类的析构函数的作用是【】
A.一般成员函数B.类的初始化
C.对象的初始化D.删除对象创建的所有对象
13.类的析构函数是在【】调用的。
A.类创建时B.创建对象时
C.删除对象时D.不自动调用
14.在【】情况下适宜采用inline定义内联函数。
A.函数体含有循环语句
B.函数体含有递归语句
C.函数代码少、频繁调用
D.函数代码多、不常调用
15.如果类A被说明成类B的友元,则【】
A.类A的成员即类B的成员
B.类B的成员即类A的成员
C.类A的成员函数不得访问类B的成员
D.类B不一定是类A的友元
16.在类中声明转换函数时不能指定【】
A.参数B.访问权限
C.操作D.标识符
17.在公有继承的情况下,基类成员在派生类中的访问权限【】
A.受限制B.保持不变
C.受保护D.不受保护
18.C++类体系中,不能被派生类继承的有【】
A.转换函数B.构造函数
C.虚函数D.静态成员函数
19.假定AB为一个类,则执行ABx;语句时将自动调用该类的【】
A.有参构造函数B.无参构造函数
C.拷贝构造函数D.赋值构造函数
20.C++语言建立类族是通过【】
A.类的嵌套B.类的继承
C.虚函数D.抽象类
二.多项选择题:
下面的每小题有一个或多个答案是正确的,请选出正确选项并将其填入【】
1.C++的特点是【】
A.是机构化的程序设计语言
B.C的类型检查机制相对较强
C.可以部分地取代汇编语言
D.具有较强的可移植性
2.下面说法正确的是【】
A.所有的函数都可以说明内联函数
B.具有循环语句switch语句的函数不能说明为内联函数
C.使用内联函数可以加快程序执行的速度,但会增加程序代码的大小
D.使用内联函数可以减小程序代码大小,但使程序的执行速度减慢
3.C++中封装可以由下列哪些关键字提供【】
A.structB.unionC.classD.type
4.下面有关类的说法正确的是【】
A.一个类可以有多个构造函数
B.一个类只有一个析构函数
C.析构函数不能被指定参数
D.在一个类中可以说明具有类型的数据成员
5.有关析构函数说法正确的是【】
A.析构函数在对象生存期结束时被自动调用
B.析构函数名与类名相同
C.定义析构函数时可以指定返回类行为void
D.析构函数不能指定参数
6.简单成员函数的声明一般不含哪些关键字?
【】
A.constB.staticC.voidD.volatile
7.一个类的友员函数可以访问该类的所有对象的【】
A.公有成员B.私有成员C.保护成员D.静态成员
8.下列哪些算子不能被重载?
【】
A.B< : D? : 9函数(a,ios: adjustif: led)中的值可以是【】 A.ios: : leftB.ios: : rightC.ios: : hecD.ios: : oct 10.下列术语等价的是【】 A."函数模板"与"模板实例" B."模板函数"与"模板实例" C."类模板"与重载函数模板" D.特定模板函数"与替换模板函数" 三.程序填空 1.请将下面求平均值的程序补充完整: #include _____________ classAvClass {private: floatdarray[MAX]; public: voidsetarray(); floatgetaval(); }; voidAvClass: : setarray() {inti; for(i=0;i {cout<<"NO."< "; ______________________ } } floatAvClass: : getaval() {inti; floatsum=0; for(i=0;i _____________________ returnsum/MAX; } //------------------------------- voidmain() {AsClassMyData;//定义对象 MyData.setarray();//录入数据 Cout<<"Theaveragevalueis: "<<___________________< } 2完成下面类中的成员函数的定义。 Classtest {private: intnum; floatf1; public: test(int,floatf); test(test&) }; test: : test(______________) {num=n; ______=f; } test: : test(_____test&t_____) {num=________t.num__; f1=t.f1; } 四、给出下列程序运行后的输出结果. 1.#include #include doubleSD(inta,intb,charop){ doublex; switch(op){ case'+': x=double(a)+b;break; case'-': x=double(a)-b;break; case'*': x=double(a)*b;break; case'/': if(b)x=double(a)/b; elseexit (1); break; default: exit (1); } returnx; } voidmain(){ intx=20,y=5; cout< cout< cout< } 输出结果: ___________________ 2.#include #include voidmain(){ char*a[5]={"student","worker","cadre","soldier","apen"}; char*p1,*p2; p1=p2=a[0]; for(inti=0;i<5;i++) { if(strcmp(a[i],p1)>0)p1=a[i]; if(strcmp(a[i],p2)<0)p2=a[i]; } cout< 程序的输出结果是: ______________ 3.#include voidWF(intx,inty){ x=x+y; y=x+y; cout<<"subs: "<<"x,y="< } voidmain(){ intx=8,y=15; cout<<"main: "<<"x,y="< WF(x,y); x=2*x; cout<<"main: "<<"x,y="< } 程序运行结果: ____________ ___________ ____________ 4.#include voidLG(int*&a,int&m){ a=newint[m]; int*p=a; for(inti=0;i *p++=i*i+1; } voidmain(){ int*b,n=5; LG(b,n); for(inti=0;i cout< cout< delete[]b; } 程序运行结果: ___________ 5.#include intAB(int*a,intn){ intj=0; for(inti=0;i j+=*a++; returnj;} voidmain(){ inta[]={8,7,6,5,4,3,2,1}; intb=AB(a,5)+AB(&a[3],3); cout<<"b="< } 程序的输出结果是: _______ 6.#include voidLC(inta,intb){ intx=a; a=b;b=x; cout< } voidmain(){ intx=10,y=25; LC(x,y);cout< } 程序运行结果: _________ __________ 五.判断题 1.char*constp表明p是一个指针,它只能指向一个字符串常量。 () 2.因为类的目的是封装代码和数据,所以它不允许定义类体为空的类。 ( ) 3.判断下面程序是否正确() classmyClass; myClassobjA; myClass*objptr; voidfun(myClassobj); … classmyClass{ private: inti=0; }; … myClass objB; 4.对对象成员的构造函数的调用顺序,取决于这些对象成员在成员初始化列表中的顺序。 ( ) 5.保护成员具有私有成员和公有成员的双重角色: 对派生类的成员函数而言,它是公有成员,可以被 访问;而对其他函数而言则仍是私有成员不能被访问。 ( ) 6.构造函数(包括析构函数)也被继承,一个派生类不能调用它的直接基类的构造函数。 ( ) 7.一个类中的虚函数说明只对基类中的同名函数有影响,对它的派生类中重定义的函数并没有影响( ) 8.一个抽象函数只能作为基类来派生新类,不能说明抽象类的对象,但是可以说明指向抽象类对象的指针(和引用)。 ( ) 9.构造函数和析构函数均不能被说明为虚函数。 ( ) 10.引用性说明所说明的类名不能用来建立对象,只能用来说明指针或引用,或用在函数说明中。 ( ) 简答题 1.类和结构什么区别? 2.c++中有几种继承,它们的区别是什么? 3.什么是c++的多态性? 他是通过什么函数来实现的? 六.编程题。 1.编一程序,计算并输出它的值,其中n值由键盘输入。 2.编写程序,从保存整数的文本文件“a: xxkl.dat”中依次读取每个数据并显示出来,同时统计并显示出所有数据的个数。 3.从键盘输入10个整数存放到数组a[10]中,然后再把该数组中的元素输出到a盘上的s8.dat文件中。 4.编写一个程序计算两个给定长方形的面积之和,其中在设计类成员函数addarea()(用于计算两个长方形的总面积之和)时使用对象作为参数 一、答案如下: 1.D2.A3.D4.D5.D6.A7.A8.C9.D10.C11.C12.C13.D14.C15.D16.C17.B18.C19.B20.B 二、答案: 1.ABC2.BC3.ABC4.ABCD5.AD6.ABD7.ABC8.ACD9.AB10.ABD 三.程序填空 1.请将下面求平均值的程序补充完整: #include __________________(#defineMAX5) classAvClass {private: floatdarray[MAX]; public: voidsetarray(); floatgetaval(); }; voidAvClass: : setarray() {inti; for(i=0;i {cout<<"NO."< "; ______________________(cin>>darray[i];) } } floatAvClass: : getaval() {inti; floatsum=0; for(i=0;i _____________________(sum+=darray[i];) returnsum/MAX; } //------------------------------- voidmain() {AsClassMyData;//定义对象 MyData.setarray();//录入数据 Cout<<"Theaveragevalueis: "<<___________________< } 2完成下面类中的成员函数的定义。 Classtest {private: intnum; floatf1; public: test(int,floatf); test(test&) }; test: : test(______________)(intn,floatf) {num=n; ______=f;(f1=f;) } test: : test(__________)(test&t) {num=__________;(t.num) f1=t.f1; } 四、给出下列程序运行后的输出结果. 1.#include #include doubleSD(inta,intb,charop){ doublex; switch(op){ case'+': x=double(a)+b;break; case'-': x=double(a)-b;break; case'*': x=double(a)*b;break; case'/': if(b)x=double(a)/b; elseexit (1); break; default: exit (1); } returnx; } voidmain(){ intx=20,y=5; cout< cout< cout< } 输出结果: 251003 2.#include #include voidmain(){ char*a[5]={"student","worker","cadre","soldier","apen"}; char*p1,*p2; p1=p2=a[0]; for(inti=0;i<5;i++) { if(strcmp(a[i],p1)>0)p1=a[i]; if(strcmp(a[i],p2)<0)p2=a[i]; } cout< 程序的输出结果是: workerapen 3.#include voidWF(intx,inty){ x=x+y; y=x+y; cout<<"subs: "<<"x,y="< } voidmain(){ intx=8,y=15; cout<<"main: "<<"x,y="< WF(x,y); x=2*x; cout<<"main: "<<"x,y="< } 程序运行结果: main: x,y=8,15 subs: x,y=23,38 main: x,y=16,15 4.#include voidLG(int*&a,int&m){ a=newint[m]; int*p=a; for(inti=0;i *p++=i*i+1; } voidmain(){ int*b,n=5; LG(b,n); for(inti=0;i cout< cout< delete[]b; } 程序运行结果: 1251017 5.#include intAB(int*a,intn){ intj=0; for(inti=0;i j+=*a++; returnj;} voidmain(){ inta[]={8,7,6,5,4,3,2,1}; intb=AB(a,5)+AB(&a[3],3); cout<<"b="< } 程序的输出结果是: b=42 6.#include voidLC(inta,intb){ intx=a; a=b;b=x; cout< } voidmain(){ intx=10,y=25; LC(x,y);cout< } 程序运行结果: 2510 1025 五、答案: 1.错误因为char*constp表明指针p本身是常量,即p指向一个固定的char类型的地址,而p的内容却是可以修改的。 2.错误 尽管类的目的是装代码和数据,但它的类体中也可以不包括任何声明(即为空)。 3.错误 "myClassobjA;"错了,引用性说明所说明的类名不能用来建立对象! "inti=0;"也错了,不能在类说明中对数据成员使用表达式进行初始化。 4.错误 对对象成员的构造函数的调用顺序,取决于这些对象成员在类中说明的顺序。 5.正确 6.错误 构造函数(包括析构函数)是不被继承的,所以一个派生类只能调用它的直接基类的构造函数。 7.错误 一个类中的虚函数说明只对派生类中重定义的函数有影响,对基类中的同名函数没有有影响。 8.正确 9.错误 构造函数不能被说明为虚函数,但析构函数可以。 10.正确 六、简答题: 1.结构是类的一种特例,早结构中也可以定义成员函数。 结构和类唯一的区别是: 在缺省情况下,结构中的所有成员都是公有的,而在类中是私有的。 2.c++中有两种继承,一种是单一继承,另外一种是多重继承。 对于单一继承,派生类只能有一个基类;对于多重继承,派生类可以有多个基类。 3.多态性就是为同一个函数和运算符定义几个版本。 多态性的真实含义为"多种形态"。 他是指c++的代码可以根据运行情况的不同而执行不同的操作。 编程题 1、参考答案: #include voidmain() { intn; cout< "; cin>>n; floats=0.0; for(inti=1;i<=n;i++) s+=i*i; cout< "< } 2、参考答案: #include #include voidmain(){ ifstreamfl("a: xxkl.dat"); if(! fl){cerr<<"a: xxkl.dat文件找不到! "< (1);} intx; intNum=0;//计数器 while(fl>>x){cout< cout< cout<<"文件中包含的整数个数为: "< } 3、参考答案: #include #include voidmain(){ inta[10]; inti; for(i=0;i<10;i++)cin>>a[i]; ofstreamf1("a: s8.dat"); if(! f1){ cerr<<"a: s8.dat文件打不开! "< exit (1); } for(i=0;i<10;i++)f1< f1.close(); } 4、程序如下: #include
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 模拟 试题 打包