版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2023年自考类计算机类(工学类)C++程序设计历年高频考点试题附答案难题带详解卷I一.历年考点试题黑钻版(共50题)1.析构函数被调用的时间点是
A.对象被创建时B.对象被销毁时C.不会被调用D.主函数被调用时2.C++函数有库函数(标准函数)和______两类。3.C++的合法注释是______A./*ThisisaCprogram/*B.//ThisisaCprogramC."ThisisaCprogram"D.//ThisisaCprogram//4.下面程序实现数值、字符串的交换。
#include<iostream>
#include<string>
usingnamespacestd;
template<classT>
voidSwap(T&a,T&b)
{Ttemp;
temp=a;a=b;b=temp;
}
voidmain()
{inta=5,b=9;
chars1[]="Hello",s2[]="hi";
Swap(a,b);
Swap(s1,s2);
cout<<"a="<<a<<",b="<<b<<endl;
cout<<"s1="<<s1<<",s2="<<s2<<endl;
}5.给出下面程序的输出结果。
#include<iostream>
usingnamespacestd;
classbase
{
private:
intx;
public:
voidsetx(inta){x=a;}
intgetx(){returnx;}
};
voidmain()
{
basea,b;
a.setx(89);
b=a;
cout<<a.getx()<<endl;
cout<<b.getx()<<endl;
}6.设有函数模板
template<classQ>
QSum(Qx,Qy)
{return(x)+(y);}
则下列语句中对该函数模板的使用错误的是
A.Sum(10,2);B.Sum(5.0,6.7);C.Sum(15.2f,16.0f);D.Sum("AB","CD");7.#include<iostream.h>
template<classT>
classf{
private:
Tx,y;
public:
voidf1(Ta,Tb){x=a;y=b;}
Tmax(){return(x>y)?x:y;}
};
voidmain(){
f<int>a;
a.f1(3.5,3.8);
cout<<a.max()<<endl;
}8.#include<iostream>
usingnamespacestd;
intadd(intx,inty){returnx+y;}
voidadd(intx,inty){returnx+y}
voidmain(){
inta=add(1,2);
add(2,3);
}9.在C++程序设计中,建立继承关系倒挂的树应使用______继承。10.虚函数必须是类的______A.成员函数B.友元函数C.构造函数D.析构函数11.预处理命令以______符号开头。12.对classBase,如使用Base*pt=newBase[2];创建对象数组,则删除此数组使用的语句是
A.deletept[2];B.deletept[];C.delete[]pt;D.delete[2]pt;13.一个类中是否可以允许一个无参数构造函数和一个全部都是默认参数的构造函数共存
A.不允许B.允许C.无法确定D.视构造函数的函数,可确定14.给出下面程序输出结果。
#include<iostream.h>
classBase
{private:
intY;
public:
Base(inty=0){Y=y;cout<<"Base("<<y<<")\n";}
~Base(){cout<<"~Base()\n";}
voidprint(){cout<<Y<<"";}
};
classDerived:publicBase
{private:
intZ;
public:
Derived(inty,intz):Base(y)
{Z=z;
cout<<"Derived("<<y<<","<<z<<")\n";
}
~Derived(){cout<<"~Derived()\n";}
voidprint()
{Base::print();
cout<<Z<<endl;
}
};
voidmain()
{Derivedd(10,20);
d.print();
}15.在C++中,注释“/*”的有效范围是______A.从“/*”开始到行尾B.从“/*”开始到“*/”结束C.从“/*”开始到程序结束D.“/*”及其后一个字符16.虚函数未定义,留给派生类去定义的虚函数称为______。17.返回向量中的第1个对象的成员函数是______。18.一个通讯录contacts有姓名name和电话tel两个属性,有三个成员函数searchN、insertN和deleteN分别完成查找、插入和删除功能,请完成contacts的类图。
19.在下面程序横线处填上适当内容,使程序执行结果为:Y=1,Y=3,Z=5。
#include<iostream.h>
classB
{private:
intY;
public:
B(inty=0){Y=y;}
voidprint(){cout<<"Y="<<Y<<",";}
};
classD:publicB
{private:
Bb;
intZ;
public:
D(intx,inty,intz):B(X),b(y){Z=z;}
voidprint()
{______;//打印基类B中的成员Y
______;//打印类成员b中的Y值
cout<<"Z="<<Z<<endl;
}
};
voidmain()
{Dd(1,3,5);
d.print();
}20.假设类X的对象X是类Y的成员对象,则“YObj'’语句执行时,先调用类______的构造函数。21.类的构造函数被自动调用执行的情况是在定义该类的
A.成员函数时B.数据成员时C.对象时D.友元函数时22.有以下程序段:
int*p,a[7]={-5,0,4,2,7,1};p=a+5;
执行该程序段后,*p的值为______A.4B.2C.7D.123.程序的输出结果如下:
m=4.3,n=3
m=6,n=9
请根据输出数据在下面程序的横线处填写正确的语句。
#include<iostream.h>
______
classTest
private:
T1m,n;
public:
Test(T1i,T1j){m=i;n=j;}
voidshow(){cout<<"m="<<m<<",n="<<n<<endl;}
};
voidmain()
{Test<double>a(4.3,3);
a.show();
______b(6,9.6);
b.show();}24.下述静态成员的特性中,正确的是______A.静态成员函数可以利用this指针B.静态数据成员要在类体内进行初始化C.引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符D.静态数据成员不是所有对象所共有的25.下述静态数据成员的特征中,错误的是______A.说明静态数据成员时前边要加修饰符staticB.静态数据成员要在类体外进行初始化C.引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符D.静态数据成员不是所有对象所共用的26.下面说法正确的是______A.类的内联函数必须在类体内定义B.类的内联函数必须在类体外通过加关键字inine定义C.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方D.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方27.对于友元描述正确的是
A.友元是本类的成员函数B.友元不是本类的成员函数C.友元不是函数D.友元不能访问本类的私有成员28.修改程序中的错误,使其输出为10,20。
#include<iostream>
usingnamespacestd;
voidswap(inta,intb)
{inttemp;
temp=a;a=b;b=temp;}
voidmain()
{intx=20,y=10;
swap(x,y);
cout<<x<<"
"<<y<<endl;
}29.C++程序设计语言中的______机制,可以从现存类中构建其子类。30.______通常使用对象的引用来初始化创建中的对象。31.在派生中,访问控制方式没有下列哪种
A.publishB.publicC.protectedD.private32.运算符::叫做
A.下标运算符B.自增运算符C.成员访问运算符D.作用域运算符33.C++中定义标准输入/输出的库为______A.stdioB.mathC.iostreamD.stdlib34.已知基类若要保证一个公共的基类在派生类中只产生一个基类子对象,则必须都以______的方式直接继承它。35.C++语言支持______,实际上就是变量的别名。36.结构体中,没有使用private定义的成员函数,默认为______。37.在C++中,编写一个内联函数Fun,使用int类型的参数,求其平方并返回,返回值也为int类型,下列定义正确的是______A.intFun(intx){returnx*x;}B.intinlineFun(intx){returnx*x;}C.inlineintFun(intx){returnx*x;}D.intFun(intx){inlinereturnx*x;}38.下列合法的常量中,属于八进制的常量的是______A.32767B.123LC.0461D.0x83239.#include<iostream.h>
classBase{
public:
virtualvoidfun()=0;
};
classTest:publicBase{
public:
virtualvoidfun(){cout<<"Test.fun="<<endl;}
};
voidmain(){
Basea;
Test*p;p=&a;
}40.以下叙述中正确的是______A.类成员的定义必须放在类体内部B.在类中,不作特别说明的数据成员均为私有类型C.在类中,不作特别说明的数据成员均为公有类型D.类成员的定义必须是成员变量在前,成员函数在后41.为了避免因为类的数据类型不同而产生重复性设计,而引入类型T,称之为______,它是对类的一种描述。42.关于new运算符的描述中,错误的是______A.它可以用来动态创建对象和对象数组B.使用它创建的对象或对象数组可以使用运算符delete删除C.使用它创建对象时要调用构造函数D.使用它创建对象数组时必须指定初始值43.程序的输出结果如下:
30
9
请根据输出数据在下面程序中的下横线处填写正确的语句。
#include<iostream.h>
classTest
{private:
intm;
public:
Test(inti=0)
{m=i;}
voidshow()
{cout<<m<<endl;}
voidset(inti)
{m=i;}
};
voidmain()
{Test*p1=newTest[2],*p2;
p2=p1;
p1->set(30);
p1->show();
Testa[2]={1,9};
______
p1->show();
p1=p2;
______//释放空间
}44.设在程序中使用如下语句申请一个对象数组:
base*p=newbase[2]
则在需要释放p指向的数组对象时,使用的语句是______。45.#include<iostream>
usingnamespacestd;
voidmain()
{
intx1(3),x2(8);
int*constp=&x1;
cout*pendl;
p=&x2;
cout*pendl;
}46.C++程序的执行总是从______开始的。A.main函数B.第一行C.头文件D.函数注释47.#include<iostream.h>
classtest{
private:
intx,y;
public:
voidtest1(inta,intb){x=a;y=b;}
intmax();
};
inttest:max()
{if(x>y)returnx;
elsereturny;}
voidmain(){
testa;
a.test1(1,3);
cout<<a.max()<<endl;
}48.使用C++标准类库时,用于指定相应命名空间的语句是______。49.静态成员函数是______的成员,不是对象的成员。50.使用指针时,用户给它分配地址后,不再使用时,释放空间需要使用的关键字是______A.newB.deleteC.externD.auto卷I参考答案一.历年考点试题黑钻版1.参考答案:B[解析]析构函数在对象的生存期结束时被自动调用。2.参考答案:自定义函数3.参考答案:B[考点]本题主要考查的知识点为C++的注释方式。[解析]C++有两种注释方式:一种是从“/*”开始,直到“*/”结束;另一种是“//”,注释的有效范围从“//”至本行结束。4.参考答案:chars1[]="Hello",s2[]="hi";使用Swap(s1,s2)调用交换的是地址。字符指针作实参,形参值发生改变,实参也就发生变化。应改为char*s1="Hello",*s2="hi";。5.参考答案:8989[考点]类和对象[解析]b=a,使对象b的数据成员取a的数据成员的值,所以对象a、b数据成员x的值都为89。6.参考答案:D[解析]本题主要考查的知识点为函数模板。[要点透析]由QSum(Qx,Qy)可知形参和函数返回值都是同一种数据类型。A、B、C三项都正确。而D项用字符串作为实参,字符串的操作与数值类型不同,要用特殊方法进行字符串的连接和运算。7.参考答案:a.f1(3.5,3.8);或f<int>a;模板类型不一致8.参考答案:voidadd(intx,inty){returnx+y}[考点]函数重载[解析]重载函数的形参必须不同,即或者个数不同或者类型不同,题中,编译器不以返回值来区分函数。9.参考答案:单一10.参考答案:A11.参考答案:#12.参考答案:C[解析]主要考查的知识点为使用delete释放动态内存空间。[要点透析]使用delete对动态分配的数组进行释放的语法格式为:delete[]指针。13.参考答案:A14.参考答案:Base(10)
Derived(10,20)
1020
~Derived()
~Base()15.参考答案:B[考点]C++的注释方式[解析]C++沿用C语言的从“/*”开始,直到“*/”结束的注释方式。16.参考答案:纯虚函数[考点]纯虚函数与抽象类[解析]在许多情况下,不能在基类中为虚函数给出一个有意义的定义,这时可以将它说明为纯虚函数,将其定义留给派生类去做。17.参考答案:front()18.参考答案:contacts,insertN(){}19.参考答案:B::print()
b.print()20.参考答案:X21.参考答案:C[解析]本题主要考查的知识点为构造函数的调用。[要点透析]创建对象时,系统自动调用构造函数初始化对象。而成员函数、友元函数需要用户直接调用。本题选C。22.参考答案:D[考点]数组与指针[解析]定义int型指针,p=a+6,使其指向数组a的第六个元素,即1。23.参考答案:template<classT1>
Test<int>24.参考答案:C[考点]静态成员[解析]静态成员函数属于整个类,是类的所有对象共享的成员函数,它与一般成员函数不同,没有指向调用该成员函数的对象的this指针,A项错误;静态数据成员的初始化应在类体外进行,B项错误;静态数据成员是属于整个类的,因此可以不通过对象名,而直接使用类名和作用域运算符表明其所属的类即可,C项正确;静态数据成员被类的所有对象所共享,D项错误。25.参考答案:D[考点]本题主要考查的知识点为静态数据成员的特征。
静态数据成员被类的所有对象所共享,它不属于类的任何一个对象,其作用域是类范围,故D项错误;A、B、C项说法正确。26.参考答案:D[考点]内联函数[解析]内联函数不产生函数调用,只在编译时用内联函数体替换调用语句,节省了调用开销,但相应增加了目标代码量。27.参考答案:B[解析]主要考查的知识点为友元。[要点透析]友元不是该类的成员,只是提供了访问该类的一种捷径或方法,A项错误;友元可以是函数,也可以是类,C项错误;友元可以访问该类的所有成员,D项错误。28.参考答案:voidswap(inta,intb)语句有误[考点]引用作为函数参数[解析]可以使用引用作为函数参数,实参对象名传给形参对象名,实参对象和形参对象代表同一个对象,所以改变形参对象的值就是改变实参对象的值。29.参考答案:继承[考点]继承[解析]继承使得程序员可以在一个一般的类的基础上很快建立一个新类,而不必从零开始设计每个类。30.参考答案:拷贝构造函数31.参考答案:A[解析]所谓“访问控制”是指如何控制基类成员在派生类中的访问属性,它是3个关键字public、protected和private中的一个。32.参考答案:D33.参考答案:C[考点]使用输出和输入对象[解析]C++中标
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年内蒙古自治区通辽市医疗系统事业编人员招聘笔试备考试题及答案详解
- 2026年济南市天桥区医疗系统事业编人员招聘笔试备考试题及答案详解
- 2026年芜湖市马塘区政务服务中心(窗口人员)招聘考试参考题库及答案详解
- 2026年酒泉市肃州区政务服务中心(窗口人员)招聘笔试参考试题及答案详解
- 2026年江苏省南通市政务服务中心(窗口人员)招聘考试参考题库及答案详解
- 2026年四川省遂宁市政务服务中心(窗口人员)招聘考试备考试题及答案详解
- 2026年8月浙江台州三门县人民医院招聘劳务派遣工作人员考试备考题库及答案详解
- 2025年山东省滨州市政务服务中心(窗口人员)招聘笔试试题及答案详解
- 2026年东营市东营区工会人员招聘考试参考题库及答案详解
- 2026年崇左市江洲区医疗系统事业编人员招聘笔试参考题库及答案详解
- 2025至2030全球及中国锂离子电池保护集成电路行业发展趋势分析与未来投资战略咨询研究报告
- 政法维稳工作课件
- 园区车辆安全管理培训课件
- 《农业技术推广》课件
- 啤酒市场营销策略考核试卷
- PCB多层压合工艺流程解析
- 安全环保主管竞聘
- 检测合同三方协议
- 小儿隐匿性阴茎手术
- 《稻草人》阅读指导课件
- 金属非金属矿山重大事故隐患判定标准-露天矿山
评论
0/150
提交评论