收藏 分销(赏)

自考C++试题及答案(9套合集)-3-4..doc

上传人:精**** 文档编号:3888019 上传时间:2024-07-23 格式:DOC 页数:18 大小:66.04KB
下载 相关 举报
自考C++试题及答案(9套合集)-3-4..doc_第1页
第1页 / 共18页
自考C++试题及答案(9套合集)-3-4..doc_第2页
第2页 / 共18页
自考C++试题及答案(9套合集)-3-4..doc_第3页
第3页 / 共18页
自考C++试题及答案(9套合集)-3-4..doc_第4页
第4页 / 共18页
自考C++试题及答案(9套合集)-3-4..doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、2010年全国自考C+程序设计模拟试卷(三)一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1. 设有定义int i;double j5;,则10+i+j值的数据类型是()A。 intB. doubleC。 floatD。 不确定2. 要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为()A. const char *p=“ABCD;B。 char *const p=“ABCD”;C。 char const *p=“ABCD”;D。 const char cons

2、t p=“ABCD”;3。 类的构造函数被自动调用执行的情况是在定义该类的()A。 成员函数时B. 数据成员时C。 对象时D. 友元函数时4。 已知类A是类B的友元,类B是类C的友元,则()A。 类A一定是类C的友元B。 类C一定是类A的友元C。 类C的成员函数可以访问类B的对象的任何成员D. 类A的成员函数可以访问类B的对象的任何成员5。 假定一个类的构造函数为“A(int i=4, int j=0) a=i;b=j;”, 则执行“A x (1);”语句后,x。a和x.b的值分别为()A。 1和0B. 1和4C。 4和0D. 4和16. 关于this指针使用说法正确的是()A. 保证每个对象

3、拥有自己的数据成员,但共享处理这些数据的代码B。 保证基类私有成员在子类中可以被访问.C. 保证基类保护成员在子类中可以被访问.D. 保证基类公有成员在子类中可以被访问。7。 所谓多态性是指 ()A. 不同的对象调用不同名称的函数B。 不同的对象调用相同名称的函数C。 一个对象调用不同名称的函数D. 一个对象调用不同名称的对象8. 友元关系不能()A. 提高程序的运行效率B。 是类与类的关系C. 是一个类的成员函数与另一个类的关系D。 继承9. 语句ofstream f(“TEMP。DAT”,ios:appios:binary)?的功能是建立流对象f,试图打开文件TEMP.DAT 并与之连接,

4、并且()A。 若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B. 若文件存在,将其置为空文件;若文件不存在,打开失败C. 若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D。 若文件存在,打开失败;若文件不存在,建立一个新文件10。 构造函数不具备的特征是()A. 构造函数的函数名与类名相同B. 构造函数可以重载C. 构造函数可以设置默认参数D. 构造函数必须指定类型说明11. 在公有继承的情况下,基类的公有或保护成员在派生类中的访问权限()A. 受限制B. 保持不变C。 受保护D. 不受保护12. 假定一个类的构造函数为A(int aa,int bb)

5、a=aa-;b=a*bb;,则执行A x(4,5);语句后,x。a和x。b的值分别为()A。 3和15B。 5和4C。 4和20D。 20和513。 C+对C语言做了很多改进,即从面向过程变成为面向对象的主要原因是()A。 增加了一些新的运算符B。 允许函数重载,并允许设置缺省参数C。 规定函数说明符必须用原型D。 引进了类和对象的概念14。 在类中说明的成员可以使用关键字的是()A。 publicB。 externC. cpuD. register15。 C+语言中所有在函数中定义的变量,连同形式参数,都属于()A。 全局变量B。 局部变量C. 静态变量D。 函数16. 在私有继承的情况下,

6、基类成员在派生类中的访问权限()A. 受限制B。 保持不变C。 受保护D。 不受保护17。 使用地址作为实参传给形参,下列说法正确的是()A。 实参是形参的备份B。 实参与形参无联系C。 形参是实参的备份D. 实参与形参是同一对象18。 C+的继承性允许派生类继承基类的()A. 部分特性,并允许增加新的特性或重定义基类的特性B. 部分特性,但不允许增加新的特性或重定义基类的特性C。 所有特性,并允许增加新的特性或重定义基类的特性D. 所有特性,但不允许增加新的特性或重定义基类的特性19. 对于int *pa5;的描述,正确的是()A。 pa是一个指向数组的指针,所指向的数组是5个int型元素B

7、。 pa是一个指向某个数组中第5个元素的指针,该元素是int型变量C. pa5表示某个数组的第5个元素的值D。 pa是一个具有5个元素的指针数组,每个元素是一个int型指针20。 以下基类中的成员函数表示纯虚函数的是()A。 virtual void tt()=0B。 void tt(int)=0C。 virtual void tt(int)D。 virtual void tt(int)二、填空题(本大题共20小题,每小题1分,共20分)请在每小题的空格中填上正确答案。错填、不填均无分。1。 单目运算符作为类成员函数重载时,形参个数为_0_个。2。 抽象类中至少要有一个_纯虚_函数。3. 设类

8、A有成员函数void f(void);若要定义一个指向类成员函数的指针变量pf来指向f,该指针变量的声明语句是:_void (A::pf)(void);_。4。 执行下列程序double a=3.1415926,b=3.14;coutsetprecision(5)a”, setprecision(5)bclass Atonint X,Y;protected:int zx,zy;public:void init(int i,int j)zx=i;zy=j;Aton(int i,int j,int n=0,int m=0)X=i,Y=j,zx=m,zy=n;添加inline int X()retu

9、rn X;void main()Aton A(25,20,3,5);A。init(5,9);coutA.X()endl;3。 include iostream.hclass Baspublic:Bas()coutBas constructendl;virtual void f()=0;class Dev:public Baspublic:Dev()coutBas constructendl;virtual void f()cout”Dev::ff();4. 以下程序实现交换a,b变量的值,请用下横线标出错误所在行并给出修改意见。include void swap(int &a,int b)a=

10、a+b;b=ab;a=a-b;void main()int a=19,b=15;cout”a=a,b=”bendl;swap(&a,&b); swap(a,b);cout”a=a”,b=”bendl;5. include iostream.hvoid main()int i(3),j(8);int * const p=i; int *p=i;coutpendl;p=j;cout*pendl;四、完成程序题(本大题共5小题,每小题4分,共20分)1. 在下面程序横线处填上适当内容,使程序执行结果为:”hello, andylin.include iostreaminclude string。hu

11、sing namespace std;class mystringpublic:char * pdata;mystring(int len)pdata=new charlen+1;mystring()delete pdata;void show()coutpdataendl;;void fun(mystring* array,int len)mystring*old=*array;_array=new mystring(len)_;memcpy(*array, old, len);void main()mystring str(20);mystring*pstr=str;mystringpps

12、tr=pstr;strcpy(str。pdata,”hello,andylin”);fun(ppstr, 20);str.show();_2. 在下面程序横线处填上适当字句,完成类的定义。class line;class box private:int color;int upx, upy;int lowx, lowy;public:friend int same_color(line l, box b);void set_color (int c)color=c;void define_box (int x1, int y1, int x2, int y2)upx=x1;upy=y1;low

13、x=x2;lowy=y2;;class line private:int color;int startx, starty;int endx, endy;public:friend int same_color(line l,box b);void set_color (int c) color=c;void define_line (int x1,int y1,int x2,int y2)startx=x1;starty=y1;endx=x2;endy=y2;;int same_color(line l, box b)if (l。color=b.color) return 1;return

14、0;3. 下面程序用来求直角三角形斜边长度。#include iostream。h#include math.hclass Pointprivate:double x,y;friend Line;_public:Point(double i=0,double j=0)x=i;y=j;Point(Point &p)x=p.x;y=p.y;class Lineprivate:Point p1,p2;public:Line(Point xp1,Point xp2):p1(xp1),p2(xp2)_double GetLength();;double Line::GetLength()double d

15、x=p2。xp1。x;double dy=p2。y-p1。y;return sqrt(dx*dx+dy*dy);void main() Point p1,p2(6,8);Line L1(p1,p2);coutL1。GetLength()class Test public:static int x_;Test (int i=0)x=i+x;int Getnum()return Test::x+7;int Test::x=33_;void main()Test test;couttest。Getnum()endl;;5. 在下列程序的空格处填上适当的字句,使输出为:0,2,10。include i

16、ostream。h#include class Magicdouble x;public:Magic(double d=0.00):x(fabs(d))Magic operator+(Magic &c_)return Magic(sqrt(xx+c.x*c。x);friend ostream operator(ostream & stream,Magic c) streamc。x;return stream;void main()Magic ma;coutma”, Magic(2)”, achbc;/从键盘上输入1。5c1020,表示一个空格coutaendlchendlbendlcclass

17、 Apublic:A()cout”As cons。”endl;virtual A()cout”As des。”endl;virtual void f()cout”As f()。”endl;void g()f();class B:public Apublic:B()f();coutBs cons。endl;B()cout”Bs des。endl;;class C:public Bpublic:C()cout”Cs cons。endl;C()coutCs des.endl;void f()cout”Cs f().wheels=wheels;this-weight=weight;coutwheels

18、endl;int vehicle::get_wheels()return wheels;float vehicle:get_weight()return weight;void vehicle:print()cout车轮数:”wheels”,重量:weightendl;2009年全国自考C+程序设计模拟试卷(四)一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分.1。 当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中()A. 都是虚函数B. 只有被重新说明时才是虚

19、函数C. 只有被重新说明为virtual时才是虚函数D. 都不是虚函数2. 要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为()A。 const char p=“ABCD”;B. char *const p=“ABCD”;C。 char const p=“ABCD”;D. const char * const p=“ABCD”;3. 函数调用func((exp1,exp2),(exp3,exp4,exp5)中所含实参的个数为()A。 1B. 2C。 4D. 54. 设有函数模板template =C. :D。 /19. C+语言建立类族是通过()A。 类的嵌套B。 类的继承

20、C。 虚函数D。 抽象类20。 在C+语言中,数据封装要解决的问题是()A. 数据的规范化B. 便于数据转换C。 避免数据丢失D. 防止不同模块之间数据的非法访问二、填空题(本大题共20小题,每小题1分,共20分)请在每小题的空格中填上正确答案。错填、不填均无分。1. 若要使用string类,需要引入的头文件是_string。h_.2. 在函数前面用_inline_保留字修饰时,则表示该函数表为内联函数。3. 向量操作方法中_方法返回向量中的第一个对象。4. C+派生类使用两种基本的面向对象技术:第一种称为性质约束,即对基类的性质加以限制;第二种称为_性质扩展_,即增加派生类的性质.5. 重载

21、的运算符保持其原有的_操作数_、优先级和结合性不变。6。 编译时的多态性通过_重载_函数实现。7。 预处理语句有三种,分别是宏定义、文件包含和_条件编译_。8. 构造函数、析构函数和友元函数中,不是该类成员的是_友元函数_.9。 控制格式输入输出的操作中,函数_setw(int)_是设置域宽的。要求给出函数名和参数类型).10。 派生类的成员一般分为两部分,一部分是_从基类继承的成员_,另一部分是自己定义的新成员。11. C中ostream的直接基类_ios_。12。 vector的_方法返回向量中的最后一个对象.13。 执行下列代码int i=230;cout i=”hex iendl;程序

22、的输出结果为_i=E6_。14. 在C+中有两种参数传递方式即值传递和_引用_传递.15。 使用new为int数组动态分配10个存储空间是_new int 10;_。16. 面向对象的四个基本特性是多态性、继承性、和封装性_抽象_。17. 定义虚函数所用的关键字是_virtual_.18. 执行下列代码cout“oct:oct34;程序的输出结果是_oct:42_。19。 在C+中要创建一个文件输入流对象fin,同时该对象打开文件“Test.txt”用于输入,则正确的声明语句是_ifstream fin(“Test.txt);_.20。 如果一个派生类只有一个唯一的基类,则这样的继承关系称为_

23、单继承_.三、改错题(本大题共5小题,每小题2分,共10分)下面的类定义中有一处错误,请用下横线标出错误所在行并给出修改意见.1。 class ABCint a;public:ABC(int aa)a(aa) ABC(int aa):a(aa);2。 include iostream.hclass Tprotected:int p;public:T(int m)p=m;;void main() T a(10);couta.pendl;3。 #include iostreamusing namespace std;class Date;class Timepublic:Time(int h,in

24、t m,int s)hour=h,minute=m,sec=s;void show(Date d);private:int hour,minute,sec;;class Datepublic:Date(int m,int d,int y)month=m,day=d,year=y;friend void Time:show(Date );private:int month,day,year;;void Time::show(Date & d)coutd。month d。day”d。yearendl;couthour:”minute”:secendl;void main()Time t1(9,23

25、,50);Date d1(12,20,2008);t1.show(d1);4。 输出最小值,有一处错误。#include iostream。hclass Testint a,b;int getmin()return (ab?a:b);public:int c;void setValue(int x1,int x2,int x3)a=x1;b=x2;c=x3;int GetMin();;int Test:GetMin()int d=getmin();return (d=dc?d:c);void main()Test t1;t1.setValue(34,6,2);coutt1。getmin ()e

26、ndl; coutt1.getMin ()endl5。 实现数值、字符串的交换.include #include using namespace std;templateclass Tvoid Swap(T a,T b)T temp;temp=a,a=b,b=temp;void main()int a=5,b=9;char s1=”Hello,s2=hi”;Swap(a,b);Swap(s1,s2);couta=a,b=”bendl;couts1=s1”,s2=s2endl;四、完成程序题(本大题共5小题,每小题4分,共20分)1. 在下划线处填上缺少的部分.include iostream。

27、hclass Aint a,b;public:A(int i=0,int j=0)_;/定义构造函数,使参数i和j的默认值为0a=i;b=j;/在函数体中用i初始化a,用j初始化b;main()A *p;p=new A(4,5)_;/调用带参构造函数生成由p指向的动态对象/使a和b成员分别被初始化为4和52。 在下面程序横线处填上适当内容,使程序执行结果为:S=2S=5S=9include void sum(int i)static int s;_s=s+i+2_;cout”s=sendl;void main (void)int i;for (i=0;i3;i+_)sum(i);3。 下面程序

28、运行的结果是:5+10=15。include iostream.hclass Test private:int x,y;public:Test() x=y=0;void Setxy(int x,int y) (this)。x=x;(*this).y=y_void show()coutx”+”y”=”x+yinclude iomanip。hclass Arrprotected:float p;int n;/数组大小(元素个数)public:Arr(int sz=10) n=sz;p=new floatn;Arr(void)_delete p;_int Getn(void) constreturn

29、 n;float operator(int i)return pi;_void Print();void Arr::Print()int i;for(i=0;i this-Getn();i+)if (i%10=0)cout endl;coutsetw(6)pi;coutendl;void main()Arr a(20);for (int i=0;ia。Getn();i+)ai=i 2;a。Print();5. 请在下面程序的横线处填上适当内容,以使程序完整,并使程序的输出为:11,1013,12#include iostream。hclass Aint a;public:A(int i=0)a

30、=i;int Geta()return a;void show()coutaendl;;class BA a;int b;public:B(int i,int j):a(j),b(i)_void show()couta.Geta()”,bclass apublic:a(int i=10)x=i;couta:”xendl;int x;;class b:public apublic:b(int i):A(i)x=i;cout”b:x”, class Locationpublic:int X,Y;void init(int initX,int initY);int GetX();int GetY();void Location:init (int initX,int initY)X=initX;Y=initY;int Location::GetX()return X;int Location:GetY()return Y;void display(Locat

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 考试专区 > 自考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服