违法信息举报 客服热线:400-118-7898
广告
?
专接本栏目测试广告

​自考C++程序设计2015年10月试题

自考 责任编辑:彭雅倩 2019-06-24

摘要:自考C++程序设计2015年10月试题及答案解析,该试卷为自考C++程序设计历年真题试卷,包含答案及详细解析。

自考C++程序设计2015年10月试题及答案解析

自考C++程序设计2015年10月试题及答案解析,该试卷为自考C++程序设计历年真题试卷,包含答案及详细解析。

一、单项选择题(本大题共20小题,每小题1分,共20分。)在每小题列出的备选项中只有一项是最符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均不得分。

1.在C++语言中用于注释的标识符是(  )

A.&
B.//
C.*
D./

2.编写C++程序一般需经过的几个步骤依次是(  )

A.编辑、调试、编译、连接
B.编译、调试、编辑、连接
C.编译、编辑、连接、运行
D.编辑、编译、连接、运行

3.要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用(  )

A.内联函数
B.重载函数
C.内部函数
D.函数模板

4.设x=8,执行语句y=x++,则y等于(  )

A.6
B.7
C.9
D.8

5.下列运算符中,优先级最高的是(  )

A.*
B.-﹥
C.&&
D.﹥=

6.关于new运算符的下列描述中,错误的是(  )

A.它可以用来动态创建对象和对象数组
B.使用它创建的对象和对象数组可以使用运算符delete删除
C.使用它创建对象时要调用构造函数
D.使用它创建对象数组时必须指定初始值

7.存储下列数据,占用存储字节最多的是(  )

A.0
B."0"
C."0"
D.0.0

8.关于类和对象不正确的说法是(  )

A.类是一种类型,它封装了数据和操作
B.对象是类的实例
C.一个类的对象只有一个
D.一个对象必属于某个类

9.下列有关构造函数的描述中,正确的是(  )

A.构造函数可以带有返回值
B.构造函数的名字与类名完全相同
C.构造函数必须带有参数
D.构造函数必须定义,不能缺省

10.假定a为一个整型数组名,则元素a[4]的字节地址为(  )

A.a+4
B.a+8
C.a+16
D.a+32

11.类中能访问静态成员的函数是(  )

A.虚函数
B.静态成员函数
C.构造函数
D.析构函数

12.下列说明语句中正确的是(  )

A.int a, &ra=a, &&ref=ra;
B.int&refa[10];
C.int a, &ra=a, &*refp=&ra;
D.int *pi, *&pref=pi;

13.关于对象概念的描述中,说法错误的是(  )

A.对象就是C语言中的结构体
B.对象代表着正在创建的系统中的一个实体
C.对象是类的一个变量
D.对象之间的信息传递是通过消息进行的

14.有关多态性说法不正确的是(  )

A.C++语言的多态性分为编译时的多态性和运行时的多态性
B.编译时的多态性可通过函数重载实现
C.运行时的多态性可通过模板和虚函数实现
D.实现运行时多态性的机制称为动态多态性

15.关于友元函数的描述中,错误的是(  )

A.友元函数不是成员函数
B.友元函数只能访问类中私有成员
C.友元函数破坏隐藏性,尽量少用
D.友元函数说明在类体内,使用关键字friend

16.类中定义的成员默认访问属性为(  )

A.public
B.private
C.protected
D.friend

17.拷贝构造函数的参数是(  )

A.某个对象名
B.某个对象的成员名
C.某个对象的引用名
D.某个对象的指针名

18.关于类模板的说法正确的是(  )

A.类模板的主要作用是生成抽象类
B.类模板实例化时,编译器将根据给出的模板实参生成一个类
C.在类模板中的数据成员具有同样类型
D.类模板中的成员函数没有返回值

19.下列有关重载函数的说法中正确的是(  )

A.重载函数必须具有不同的返回值类型
B.重载函数参数个数必须相同
C.重载函数必须有不同的形参列表
D.重载函数名可以不同

20.当一个类的某个函数被说明为virtual时,在该类的所有派生类中的同原型函数(  )

A.都是虚函数
B.只有被重新说明时才是虚函数
C.都不是虚函数
D.只有被重新说明为virtual时才是虚函数

二、  填空题(本大题共20小题,每小题1分,共20分)请在每小题的空格中填上正确答案。错填、不填均无分。

11.C语言中scanf命令在C++中改用:_______。

12.假定类AB中有一个公用属性的静态数据成员static int bb;在类外不通过对象名给该成员bb赋值为10的写法:_______。

13.在类内部定义的公有(public)数据可以在类外进行存取,但_______和私有(private)数据不能在类外直接存取。

14.在C++中,虚函数帮助实现了类的_______。

15.如果要把类B的成员函数void fun( )说明为类A的友元函数,则应在类A中加入语句_______。

16.执行下列程序double a= 3.1415926, b= 3.14; cout﹤﹤setprecision(5)﹤﹤a﹤﹤ "," ﹤﹤setprecision(5)﹤﹤b﹤﹤endl; 程序的输出结果是_______。

17.在C++中,访问一个指针所指向的对象的成员所用的指向运算符是_______。

18.基类的公有成员在派生类中的访问权限由_______决定。

19.由const修饰的对象称为_______。

110.如果通过同一个基类派生一系列的类,则将这些类总称为_______。

111. 为了实现运行时的多态性,派生类需重新定义基类中的_______。

112.在C++中有两种参数传递方式:传值和传_______。

113.C++中ostream的直接基类_______。

114.已知int *p=NULL,使用new为指针P申请一个存储大小为10的存放int型的空间,代码为_______。

115.在编译指令中,宏定义使用_______指令。

116.每个对象都是所属类的一个_______。

117.函数重载时,编译系统会根据_______或形参的个数来区分。

118.静态成员函数、友元函数、构造函数和析构函数中,不属于成员函数的是_______。

119.如果要把类B的成员函数void fun( )说明为类A的友元函数,则应在类A中加入语句_______。

120.局部对象和全局对象中,在同一程序中_______生存期最长。

三、改错题(本大题共5小题,每小题2分,共10分)

21.#include ﹤iostream﹥   using namespace std;   class base {   int *p;   public:   base (int a) {   p=&a;   }   int get( ){   return p;   }   };   int main( )   {  base b(3);   cout﹤﹤b. get( );   }

22.  #include ﹤iostream﹥   using namespace std;   clss base{   int a;   int get( ){   return a;   }   void setValue(int b) {   a=b;   }   int geta( ){   return a;   }   };   int main( )   {   base b;   b. setValue (7);   retum 0;   }

23.  #include ﹤iostream﹥   using namespace std;   class A{   static int x;   int y;   public:   A(int a, int b){   x=a;   y=b;   }  int get( ){   return x +y;   }   };   x=5;   int main( )   {   A a(1,2);   cout ﹤﹤ a. get( )﹤﹤endl;   return 0;   }

24.#include ﹤iostream﹥   using namespace std;   class A{   int x;   public:   A(int a){   x=a;   }   void set( int a){  x=a;   }   void get( ){   cout﹤﹤x﹤﹤endl;   }   };   int main( )   {   const A a(4);   a. set(6);   a. get( );   a. get(10);   a. get( );   return 0;   }

25.  #include ﹤iostream﹥   using namespace std;   class base{   int a, b;   pubic:   void setzero( ){   x=0; y=0;   }   void show( ){   cout ﹤﹤x﹤﹤" "﹤﹤y﹤﹤endl;   }   };   int main( ){   base b;   b. setzero 0, 0);   return 0;   }

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

31.用简单选择法对10个数排序,使其从小到大排列。   #include "stdafx. h"   #include ﹤iostream﹥   using namespace std;   int main( void)   {   int t;   int num[ 10], t, j;   for( _________ )   cin ﹥﹥num[i];   for(i=0;i﹤9;i++)   for(j=i+1;j﹤10;j++)   if(num[i]﹥ num[j])   {   t=num[i];   num[i]=num[j];   _________;   }   for(i=0;i﹤10;i++)   cout ﹤﹤num[i]﹤﹤" ";   }

32.打印以下图案:   #include "stdafx. h"   #include ﹤iostream﹥   using namespace std;   void main( void)   {   int j, n;   for( _________ ) //i控制行号   {   for(j=1;j﹤i;j++) //j控制空格   cout ﹤﹤" ";   for( _________ ) //n控制星号   cout ﹤﹤"*";   cout ﹤﹤ endl;   }   }

33.任意输入10个同学的成绩,计算其平均成绩。要求用函数average( )计算平均成绩,主函数输入数据并输出结果。   #include "stdafx. h"   #include ﹤iostream﹥   using namespace std;   void main( void)   {   float average( float a[ ]);   float score[10];   for( _________ )   {   cin﹥ score[i];   }   cout﹤﹤"average: "﹤﹤ average( score)﹤﹤ endl;   }   float average(float a[ ])   {   float sum=0;   for( int i=0; i ﹤10; i++) {   _________;   }   return (sum/10);   }

34.编一个函数to_ lower( ),实现将字符串中的大写字母转换成相应小写字母。主函数输入数据并输出结果。   #include "stdafx. h"   #include ﹤iostream﹥   _________;   void main(void)   {   void to_lower (char a[ ]);   char str[10];   cin﹥﹥str;   to_lower(str);   cout﹤﹤str﹤﹤endl;   }   void to_ lower(char a[ ])   {   for(int i=0; i﹤10&&a[i]!='0'; i++)   if( _________ )   a[i]+=32;   }

35.下面程序用来求直角三角形斜边长度。   #include ﹤iostream. h﹥   #include ﹤math.h﹥   class Line;   class Point;   { private:   double x, y;   _________   public:   Point(double i=0, double j=0)   { x=i; y=j; }   Point(Point &p)   { x=p.x; y=p.y; }   };   class Line   { private:   Point p1, p2;   Line( Point &xp1, Point &xp2): _________ { }   double GetLength( );   };   double Line:: GetLength( )   {double dx =p 2. x-p 1. x;   double dy =p 2. y-p 1. y;   return sqrt( dx*dx +dy*dy);   }   void main( )   { Point p1, p2(6, 8);   Line L1(p1, p2);   cout ﹤﹤L 1. GetLength( )﹤﹤endl;   }

五、程序分析题(本大题共2小题,每小题10分,共20分)

41.给如下面程序输出结果。   #include ﹤iostream. h﹥   class Base   { private:   int Y;   public:   Base (int y=0){Y=y;cout ﹤﹤"Base ("﹤﹤y ﹤﹤") ";}   ~Base( ){ cout ﹤﹤"~Base( ) ";}   void print( ){cout ﹤﹤Y﹤﹤" "; }   };   class Derived: public Base   { private:   int Z;   public:   Derived (int y, int z): Base(y)   { Z=z;   cout﹤﹤"Derived ("﹤﹤y﹤﹤","﹤﹤z﹤﹤" ";   }   ~Derived( ){ cout﹤﹤"~Derived( ) "; }   void print( )   {Base:: print( );   cout ﹤﹤Z﹤﹤endl;   }   };   void main( )   { Derived d(10, 20);   d. print( );   }

42.给出下面程序输出结果。   include "iostream. h"   void main( )   {   int x, y, z;   x=3;   y=x++;   z=++x;   cout﹤﹤"x="﹤﹤x﹤﹤";y="﹤﹤y﹤﹤";z="﹤﹤z﹤﹤endl;   }

六、程序设计题(本大题共1小题,共10分)

51.写一个程序,定义一个抽象类Shape,由它派生3个类:Square(正方形)、Trapezoid(梯形)和Triangle(三角形)。用虚函数分别计算几种图形面积、并求它们的和。要求用基类指针数组,使它每一个元素指向一个派生类对象。   #include ﹤iostream.h﹥   class Shape   { public:   virtual double area( )const=0;   };

更多资料

00058《市场营销学》14章复习重点

2025年10月自考 00037《美学》真题及答案解析

00159《高级财务会计》通关宝典12章

温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

自考备考资料免费领取

去领取