自考C++程序设计2011年10月试题
摘要:自考C++程序设计2011年10月试题及答案解析,该试卷为自考C++程序设计历年真题试卷,包含答案及详细解析。
自考C++程序设计2011年10月试题及答案解析
自考C++程序设计2011年10月试题及答案解析,该试卷为自考C++程序设计历年真题试卷,包含答案及详细解析。
一、单项选择题(本大题共20小题,每小题1分,共20分。)在每小题列出的备选项中只有一项是最符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均不得分。
1.C++中注释“/*”的有效范围是( )
A.从“/*”开始到行尾
B.从“/*”开始后不终止
C.从“/*”开始到“//”为止
D.从“/*”开始到“*/”为止
2.如想使用std命名空间,正确的程序语句是( )
A.using std;
B.namespace std;
C.using namespace;
D.using namespace std;
3.下列选项中不是C++关键字的是( )
A.bool
B.int
C.float
D.vat
4.用于标识长整型常量的前缀或后缀是( )
A.无前后缀
B.后缀L或l
C.前缀零
D.前缀0x
5.对于new类型名[size]描述正确的是( )
A.申请可以存储size个字节的空间
B.申请可以存储1个该数据类型的空间
C.申请可以存储size个该数据类型对象的空间
D.申请可以存储1个字节的空间
6.使用下列哪个流格式控制符可以设置转换基数为十六进制( )
A.dec
B.oct
C.hex
D.endl
7.构造函数用于( )
A.定义对象
B.初始化对象
C.清除对象
D.普通计算
8.设函数void swap(int,int)将交换两形参数值,如有两整型变量int a=10; int b=15,则执行swap(a,b); 之后,a,b值分别为( )
A.15,10
B.15,15
C.10,15
D.10,10
9.设函数void subone(int)将形参值减1,如有整型变量int b=10;则执行subone(b)后,b的值为( )
A.9
B.10
C.11
D.未知
10.C++中函数返回值类型不可以是( )
A.引用
B.指
C.结构
D.数组
11.声明函数int Func(int a =0,int b=3,int c=4)相当于声明了几个函数形式( )
A.1
B.2
C.3
D.4
12.c++中专门定义一个仅在模板中使用的参数类型的关键字是( )
A.const
B.inline
C.short
D.typename
13.对于类中的成员,使用private修饰,表明该成员的访问权限是( )
A.公有的
B.私有的
C.保护的
D.不可见的
14.使用new创建的对象,对其生命周期描述正确的是( )
A.由系统决定
B.由用户控制
C.全局生命周期
D.永久存在
15.析构函数被调用的时间点是( )
A.对象被创建时
B.对象被销毁时
C.不会被调用
D.主函数被调用时
16.对象的构造函数调用顺序取决于( )
A.对象成员在初始化列表中给出的顺序
B.对象成员在类中声明的顺序
C.对象成员与在初始化列表中顺序和类中声明顺序均有关
D.随机顺序
17.下列对静态成员函数描述正确的是( )
A.静态成员函数中可使用1个this指针
B.静态成员函数中不能使用this指针
C.静态成员函数中可使用多个this指针
D.静态成员函数中只可使用1个that指针
18.友元的声明可出现在( )
A.类的私有部分
B.类的公有部分
C.类的保护部分
D.类的任何部分
19.在下列派生中,子类和父类间是isa关系的是( )
A.private
B.protected
C.public
D.publish
20.面向对象不仅进行功能抽象,还要进行( )
A.动态抽象
B.消息抽象
C.数据抽象
D.算法抽象
二、填空题(本大题共20小题,每小题1分,共20分)请在每小题的空格中填上正确答案。错填、不填均无分。
11.在调用函数f1( )的过程中,又调用了函数f1( ),这种调用称为_________调用。
12.C++中重载“+”运算符的函数名是_________。
13.设为类A添加一个纯虚函数Fun,其第一个参数类型为整型,第二个参数类型为字符型,函数返回值类型为整型。实现此操作的语句是_________。
14.C++程序的头文件和源程序文件扩展名分别为_________和.cpp。
15.在C++中,利用向量类模板定义一个具有20个int类型的向量B,实现此操作的语句是:_________。
16.通过私有派生,基类的私有和不可访问成员在派生类中是不可访问的,而公有和保护成员这时就成了派生类的_________。
17.字符串类型的变量一般用_________和字符数组类型的变量表示。
18.在一个C++程序中,每个变量都必须遵循_________的原则。
19.在常成员函数里不能更新对象的数据成员,也不能调用该类中没用_________关键字修饰的成员函数。
110.UML是一种可视化建模语言,主要用于面向对象的_________和建模。
111.复制构造函数采用拷贝方式使用已有对象来建立新对象,又称为_________函数。
112.对于c++类中的成员,若未使用访问权限关键字进行说明,默认的权限是_________。
113.对象的行为是定义在对象属性上的一组_________的集合。
114.设int max(int,int)表示计算两个整数中的最大值,则执行语句“cout﹤﹤max(max(2,3),max(7,8));”的输出结果是_________。
115.函数fun的返回值是字符指针类型,该函数有两个参数,其中一个参数是字符类型,另一个参数是int类型引用,声明函数fun的原型的语句为_________。
116.string类中用于交换两个字符串对象的值的成员函数为_________。
117.无论变量x和y是整型还是浮点类型,x*y都表示这两个变量的积,这是典型的_________的例子。
118.执行下列代码 int a=29, b=1001; cout﹤﹤a﹤﹤setw(6)﹤﹤b﹤﹤endl;} 程序输出结果是:_________。
119.在C++中,赋值表达式y=x++的含义是_________。
120.设有如下定义:int x; 若要将整型变量y定义为变量x的引用,则应使用的语句是_________。
三、改错题(本大题共5小题,每小题2分,共10分)
21.#include ﹤ iostream. h ﹥void main( ){float * p; p = new float[ 5 ] ;for( i =0;i ﹤5 ;i++ ) { cin ﹥﹥ * (p+i) ;cout ﹤﹤ * (p+i) ﹤﹤ endl;}delete [ ] p;}
22.#include ﹤ iostream.h ﹥template ﹤ class T ﹥class f{private: T x, y;public: void f1(T a,T b){x=a;y=b;}T max( ){retum(x﹥y)? x:y;}};void main( ){f ﹤int﹥a; a. f1( 3.5, 3.8) ;cout ﹤﹤ a. max( ) ﹤﹤ endl;}
23.#include ﹤ iostream. h ﹥class test{private: static int x; int y;public: void test1( int a, int b) { x = a; y = b; }};void main( ) {test a;a. testl (2,3) ;}
24.#include ﹤ iostream. h ﹥class f{private: float x, y;public: void f1 ( float a, float b) { x = a; y = b; }f( ) {x=0;y=0;}void move(float a,float b){x =x +a; y =y-b;}void get ( ) { cout ﹤﹤ x ﹤﹤' '﹤﹤ y ﹤﹤ endl; }};void main( ){f *p,a;a. f1( 1.6, 3.8) ;p=&a; p. get( ) ;}
25.#include ﹤ iostream. h ﹥class point{int x; public: void init ( int a) { x = a; }int getx( ){ return x;}void setx ( int a) { x = a; }};void main( ){ point a;a. init (20,30) ;cout ﹤﹤ a. getx( ) ﹤﹤ endl;}
四、完成程序题(本大题共5小题,每小题4分,共20分)
31.完成下面类中成员函数的定义。class test{private:int n1;float f1;public:test(int,float f);test(test&);};test::test( _________ ){n1=n; f1=f;}test:: test(test&t){n1=t.n1;f1=_________; }
32.在下面程序中的下划线处填上适当的语句,使程序的输出结果如下: 11,77 11,77 源程序如下:#include ﹤ iostream﹥using namespace std;class base {private:int x,y;public:void initxy(int a,int b){x=a;y=b;}void show( ){ _________ }} ;void main( ){base a,b;_________a.show( );b=a; b.show( );}
33.在下面程序中的下划线处填上适当的程序,使程序的输出结果如下: x=1,y=2 x=30,y=40 源程序如下:#include ﹤ iostream﹥class Sample {int x,y;public:Sample( ){x=y=0;}Sample(int i,int j){x=i;y=j;}void copy(Sample & s);void setxy(int i,int j){x=i;y=j;}void print( ){cout﹤﹤"x="﹤﹤x﹤﹤",y="﹤﹤y﹤﹤endl;};void Sample::copy ( _________ ){x=s.x; y=s.y;}void func( _________ ){s 1.setxy(10,20);s 2.setxy(30,40);}void main( ){Sample p(1,2),q;q.copy(p);func(p,q);p.print( );q.print( );}Sample&s}
34.在下面程序的下划线处填上正确的语句,使其得到下面的输出结果。 20 21 22 a[0]=20 a[1]=21 a[2]=22 程序清单如下:#include ﹤ iostream ﹥using namespace std;class base {private:int x; public:void setx(int a){x=a;}int getx( ){return x;}} ;void main( ){base a[3],*p; a[0].setx(20);a[1].setx(21);a[2].setx(22);for(p=a; p﹤a+3; p++)_________for(int i=0;i﹤=2;i++)_________}
35.在下面程序中的下划线处填上适当的程序,使程序的输出结果如下: x=2,y=3 源程序如下:#include ﹤ iostream.h ﹥class Sample {int x,y;public:Sample( ){x=y=0;}Sample( _________ ){x=a; y=b;}void disp( ){cout﹤﹤"x="﹤﹤",y="﹤﹤y﹤﹤endl;}} ;void main( ){Sample s(2,3), _________p-﹥disp( );}
五、程序分析题(本大题共2小题,每小题10分,共20分)
41.请给出下面程序的输出结果#include ﹤ iostream﹥using namespace std;void fun( ){static int n=25;n--;cout﹤﹤"n="﹤﹤n﹤﹤endl;}void main( ){for(int i=0;i﹤=2;i++) fun( );}
42.请给出下面程序的输出结果#include ﹤ iostream﹥using namespace std;class point {int num;public:point(int n){cout﹤﹤"Initializing"﹤﹤n﹤﹤endl; num=n; }} ;void main( ){point A(88);cout﹤﹤"Entering main"﹤﹤endl;}
六、程序设计题(本大题共1小题,共10分)
51.给定两个字符串对象S,P(P的长度小于S),实现一判断函数find,检测S是否完全包含P(串P是S的子串),若包含则返回P第一个字符在串S中的起始地址,否则返回-1。#include ﹤ iostream.h ﹥#include ﹤string﹥class str{string s,p;public:str(string&a,string&b){s=a;p=b;}...find(...);};请写出函数的过程(如果需要形式参数,请给出形参类型和数量,以及返回值类型)
延伸阅读
- 考前自救指南:希赛自考题库快速提分
- 自考专属刷题工具,刷题即提分!
- 最后9天,自考历年真题应该怎么刷?
- 自考备考一站式服务:希赛自考题库APP
- 0基础逆袭秘籍:希赛全套自考学习包(含智能题库)
- 避开备考误区!用希赛自考APP快速提分!
自考微信公众号
扫码添加
自考备考资料免费领取
去领取
扫描二维码