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

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

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

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

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

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

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

1.在编译指令中,宏定义使用的指令是(  )

A.#include
B.#define
C.#if
D.#else

2.基类中的protected成员,通过哪种派生,其在派生类中的可见性为protected?(  )

A.public和private
B.public和protected
C.protected和private
D.仅protected

3.基类中的public成员,通过public派生,基在派生类中的可见性为(  )

A.不可访问
B.private
C.protected
D.public

4.不同对象调用同名函数,但导致完全不同行为的现象称为(  )

A.抽象
B.封装
C.继承
D.多态性

5.头文件扩展名为(  )

A..cpp
B..h
C..ub
D..ob

6.声明函数为内联使用的关键字为(  )

A.const
B.inline
C.short
D.signed

7.设类A中有静态数据成员x,两个A类对象a和b,若

A.x=10,则
B.x的值为(  )
C.9
D.10
E.11
F.不能确定

8.C ++允许在结构中定义函数,这些函数称为(  )

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

9.下列哪种类型的函数适合声明为内联函数?(  )

A.函数体语句较多
B.函数体逻辑较复杂
C.函数执行时间较长
D.函数语句较少,执行速度要求高

10.析构函数的返回值类型为(  )

A.void
B.bool
C.int
D.无类型

11.函数重载必须满足的条件是(  )

A.函数名相同
B.参数个数不同
C.参数类型不同
D.函数名不相同

12.下列表达式,哪个是声明P为指向常量的常量指针?(  )

A.const int*P
B.int *const P
C.const int * const P
D.int *P

13.C++中函数中的return指令可以(  )

A.只能有一条
B.0或多条
C.至少有一条
D.只能主函数调用

14.类声明的内容用花括号括起来,在花括号后跟哪个符号表示类声明结束(  )

A.:
B.;
C.,
D..

15.使用new Point(5,7)创建对象,调用的是下列哪个构造函数?(  )

A.Point:: Point( )
B.Point:: Point(int, int)
C.Point:: Creat( )
D.Point:: Creat(int, int)

16.类中的protected成员在何处访问?(  )

A.只类自身成员函数中
B.只子类成员函数中
C.类和子类的成员函数中
D.通过对象类外访问

17.在类中使用static关键字修饰的成员函数称为(  )

A.全局成员函数
B.公有成员函数
C.静态成员函数
D.非静态成员函数

18.用于标识十六进制常量的前缀或后缀是(  )

A.无
B.后缀L或l
C.前缀零
D.前缀0x

19.在定义结构时,为产生封装性,则需使用哪个关键字数据成员?(  )

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

20.函数模板template﹤typename T﹥void Func(T,T)不能具有哪种实例化形式?(  )

A.void Func(int, int)
B.void Func(bool, bool)
C.void Func(double, int)
D.void Func(char, char)

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

11.在标准C++输入/输出方式中,用于设置转换基数为十进制的操控符是_______。

12.在C++的类声明中,用public关键字声明的类成员的访问权限是_______。

13.若类的成员函数用关键字static进行修饰,这样的成员函数称为_______。

14.虚函数类似于重载函数,但与重载函数的实现策略不同,对虚函数的调用使用_______。

15.执行下列代码   cout﹤﹤showpoint﹤﹤ 123.0;   程序的输出结果是_______。

16.C++语言中用于释放动态分配内存的关键字是_______。

17.string类中用于查找字符串中是否含有某一字符串的成员函数的第1个参数是_______。

18.C++类的构造函数名与_______名称一样,且没有返回值。

19.私有派生时,在派生类中基类的public权限变为_______。

110.C++重载“=”运算符的函数名是_______。

111.在使用string类的find成员函数来检索主串中是否含有指定的子串时,若在主串中不含指定的子串,find函数的返回值是_______。

112.类A有如下成员函数   int A:: fun(double x) { return (int)x/2; }   int A:: fun(int x) { return x*2; }   在主函数中有int s=fun( 6.0)+fun(2),则执行该语句后s的值为_______。

113.重载运算符保持其原有的操作符个数,_______和结合性不变。

114.若一个程序中使用如下语句申请了一个对象数组:point *prt=new point[2];则在需要释放pn指向的动态数组对象时,所使用的语句是_______.

115.定义虚函数所用的关键字是_______。

116.设要把一个文件输出流对象myFile与文件“f:myText.txt”相关联,所用的C++语句是_______。

117.为了使用C++语言标准程序库提供的string类,在程序中必须使用宏语句是_______。

118.C++函数中传递对象地址值时使用_______作为参数。

119.UML中实例连接反映对象之间的静态关系,消息连接描述对象之间的_______ 关系。

120.使用引用作为函数参数,实参对象和形参对象代表同一对象。改变形参对象的值就是改变_______对象的值。

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

21.#include ﹤iostream.h﹥   class point{   private:   float x, y;   public:   void f1(float a, float b){   x=a; y=b;   }   void get( ) {   cout ﹤﹤a﹤﹤b﹤﹤endl;   }   };   main( ) {   point a;   a. f1( 2.2, 3.3);   a. get( );   }

22.#include ﹤iostream.h﹥   class f {   private:   int x =0, y =0;   public:   void set( int a, int b) {   x=a;   y=b;   }   void get( ) {   cout﹤﹤x﹤﹤"; "﹤﹤y ﹤﹤endl;   }   };   main( ) {   f a;   a.set(1,3);   a. get( );   }

23.#include ﹤iostream.h﹥   class f {   private:   int x, y;   public:   void set( ) {   x=0; y=0;   }   void print( ) {   cout﹤﹤x﹤﹤" "﹤﹤y﹤﹤endl;   }   }   main( ) {   f a;   a. set(1,2);   a. print( );   }

24.#include ﹤iostream﹥   using namespace std;   main( ) {   int num;   max=10;   num=1;   while( num﹤max) num++;   cout ﹤﹤"num="﹤﹤num;   }

25.#include ﹤iostream.h﹥   main( ) {   int x=5, y=6;   const int *p=&x;   *p=y;   cout﹤﹤*p﹤﹤endl;   }

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

31.程序的输出结果如下:   Parent:: Parent( ) called.   Child:: Child( ) called.   Child:: ~Called( ) called.   Parent:: ~Parent( ) called.   根据输出结果在下面程序中的下划线出填写正确的语句   include ﹤iostream﹥   using namespace std;   class Parent   {   public:   Parent( ) { cout ﹤﹤"Parent:: Parent( ) called. "; }   vintual ~Parent( ) { cout ﹤﹤"Parent:: ~Parent( ) called. "; }   }:   class Child: public Parent   {   public:   Child(int i) {   cout﹤﹤"Child:: Child( ) called. ";   buf=new char[i];   }   virtual ~Child( ) {   delete [ ]buf;   cout﹤﹤"Child:: ~Child( ) called. ";   }   private:   char * buf;   };   void disp( _________ *a)   {   _________;   }   woid main( )   {   Parent *a=new Child(20);   disp(a);   int d;   cin ﹥﹥d;   }

32.在下面横线处填上适当的语句完成类的定义。   #include ﹤iostream﹥   using namespace std;   class Base {   int x;   static const int b;   public:   Base (int, int);   const int *a;   };   _________ b=15;   Base:: Base( int i, int j): _________ { }

33.输入一个字符串,将其逆序输出:   #include ﹤iostream﹥   using namespace std;   void main( ) {   char a[50];   memset(a, 0, sizeof(a));   int i=0, j;   char t;   cin. getline( a, 50, ' ');   for(i=0, j=_________; i﹤_________; i++, j--) {   t=a[i];   a[i]=a[j];   a[j]=t;   }   cout ﹤﹤a﹤﹤ endl;   }

34.完成下面类的定义,使其可以正确的初始化成员变量m和n:   class point {   private: int m, n;   public:   point( int, int);   point(point &t);   };   point:: point(int a, int b) {   m=a;   _________=b;   }   point:: point( _________ ) {m=t. m;   n=t. n;   }

35.在下面下划线处填上正确的语句使序输出结果为   201   402   3   4   5   #include ﹤iostream﹥   using namespace std;   template ﹤class T﹥   T f(T &a, T &b, int n) {   for(int i=0; i﹤n; i++) {   a[i]=a[i]+b[i];   }   return a;   }   void main( ) {   int a[5]={1,2,3,4,5};   int b[5]={100,200,300,400,500}, *p;   for(int i=0; i﹤2; i++) {   p=_________;   }   for( ; p﹤a+5; p++){   cout ﹤﹤_________﹤﹤endl;   }   }

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

41.请写出myText 1. txt文本文件中的内容   #include ﹤iostream﹥   #include ﹤string﹥   using namespace std;   #include ﹤fstream﹥   void main( )   {   ofstream myFile1;   myFile 1. open("myText 1. txt");   cout﹤﹤"Enter the data in Chinese format(e. g. , 2008, May 25): "﹤ endl;   string Date("2008, January 1");   string Year=Date. substr(0,4);   int k=Date. find( ",");   int i= Date. find(" ");   string Month= Date. substr(k+1, i-k-1);   tring Day = Date. substr(i+1, 2);   string NewDate=Day +" "+Month+" "+Year;   myFile1﹤﹤"original date: "﹤﹤ Date ﹤﹤ endl;   myFile1﹤﹤"Converted date: "﹤﹤NewDate ﹤﹤ endl;   myFile 1. close( );   }

42.给出下面程序的输出结果   #include ﹤iostream﹥   using namespace std;   class Simple   {   int x, y;   public:   Simple( ) { x=y=0; }   Simple( int i, int j) { x=i; y =j; }   void copy( Simple &s);   void setxy { int i, int j) { x=i; y=j; }   void print( ) { cout ﹤﹤"x="﹤﹤x﹤﹤",y="﹤﹤y ﹤﹤ endl; }   };   void Simple:: copy( Simple &s)   {   x=s.x; y=s.y;   }   void func ( Simple s1, Simple &s2)   {   s 1. setxy(30, 40);   s 2. setxy(70, 80);   }   vpid main( )   {   Simple obj1(1, 2), obj2;   obj 2. copy(obj1);   func(obj1, obj2);   obj 1. print( );   obj 2. print( );   }

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

51.定义堆栈类模板Stack(先进后出),栈的大小由使用者确定。要求该类模板对外提供如下二种基本操作:   (1)push入找(2)pop出栈,用数组来实现   #include ﹤iostream﹥   using namespace std;   template﹤class T, int size﹥   class Stack {   T x[size];   int current;   public:   Stack( ) { current =0; }   ....push(....);   ....pop(....);   }   请写出两个函数的过程(如果需要形式参数,请给出形参类型和数量,以及返回值类型)

更多资料

15044《马原》章节笔记23页

15044《马原》名词解释汇总

15044《马原》2026年10月考前10页纸

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

自考备考资料免费领取

去领取