1、全国高等教育自学考试C+程序设计试题绝密考试结束前全国2 0 1 3年1 0月高等教育自学考试C+程序设计试题课程代码:04737 请考生按规定用笔将所有试题的答案涂、写在答题纸上。选择题部分注意事项: 1答题前,考生务必将自己的考试课程名称、姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸规定的位置上。 2每小题选出答案后,用2B铅笔把答题纸上对应题目的答案标号涂黑。如需改动,用橡皮擦干净后,再选涂其他答案标号。不能答在试题卷上。一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸”的相应代码涂黑。错涂、多涂或
2、未涂均无分。1下列不属于C+关键字的是 A. extern B.goto C.free D.default 2C+中定义标准输入的库为 A.stdio B.math C.istream D.stdlib 3My是一个类,则执行语句My a3,*2;之后,自动调用构造函数次数为 A2 B3 C4 D.5 4下列语句错误的是 A. int val( 20); B.extern int val( 20); C. const int val; D.extern const int val;5下列说法中,有关构造函数是正确的是 A任何一类必定有构造函数 B可定义没有构造函数的类 C构造函数不能重载 D.
3、任何一类必定有缺省的构造函数6下面关于类和对象说法不正确是 A类由数据与函数组成 B.一个对象必属于某个类 C对象是类的实例 D.一个类的对象只有一个7下面选项中不是类成员函数的是 A构造函数 B.析构函数 C友元函数 D.静态函数8在C+中类之间的继承关系具有 A自反性 B.对称性 C传递性 D.反对称性9C+中类的成员默认为 A. public B.private C.protected D.static10C+中要实现动态联编,调用虚函数时必须使用 A.基类指针 B.类名 C派生类指针 D.对象名11.下面对析构函数的正确描述是 A.系统不能提供默认的析构函数 B.析构函数必须由用户定义
4、 C.析构函数没有参数 D.析构函数可以设置默认参数12在下面的二维数定义正确的是 A.int ary5 ; B.int ary 5=0,1,2; C.int ary 5; D.int ary5,5;13以下说法中正确的是 A.C+程序总是从第一个定义的函数开始执行 B.C+程序总是从main函数开始执行 C.C+中函数必须有返回值 D.C+中函数名必须唯一14对C+中主函数描述正确的是 A名称为main,可为多个 B.名称不限,可为多个 C名称为main,必须有且只能有个 D.名称不限,必须有且只能有个15下面声明纯虚函数语句正确的是 A. void fun( ) =0; B.virtual
5、 void fun( )=0; C. virtual voicl fun( ); D.virtual void fun( ) ;16对于拷贝构造函数和赋值操作的关系,正确的描述是 A拷贝构造函数和赋值操作是完全一样的操作 B.进行赋值操作时,不会调用类的构造函数 C当调用拷贝构造函数时,类的对象正在被建立并被初始化 D.拷贝构造函数和赋值操作不能在同一个类中被同时定义17使用重载函数的目的是 A共享函数数据 B.减少代码量 C优化运行效率 D.提高可读性18.C+语言对C语言做了很多改进,C+语言相对于C语言的最根本的变化是 A增加了一些新的运算符 B.允许函数重载,并允许设置缺省参数 C规定
6、函数说明符必须用原型 D.引进了类和对象的概念19假定有“char * p=Hello;”,若要输出这个字符串的地址值正确的写法为 A. cout*p; B.coutp; C. coutp; D.cout(void*)p;20从本质上看,引用变量是被引用变量的A.拷贝 B.别名 C复制 D.克隆非选择题部分注意事项: 用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。二、填空题(本大题共20小题,每小题1分,共20分)21C+程序的编译是以_为单位进行的。22C+语言支持的两种多态性分别是编译时的多态性和_的多态性。23重载的运算符保持其原有的操作符个数、_和结合性不变。24在C+
7、中,函数的参数有两种传递方式,它们分别是值传递和_ 。25含有_的类称为抽象类。26C+程序运行时的内存空间可以分成全局数据区,堆区,栈区和_。27对于无返回值函数,定义函数时要用_修饰函数类型。28定义重载函数必须在参数的个数或参数的_上与其它同名函数不同。29拷贝构造函数是在用一个对象初始化另一个对象时被调用,系统缺省的拷贝构造函数 的工作方法是_。30以面向对象方法构造的系统,其基本单位是_。3 1C+中定义友元函数使用的关键字为_ 。32当一个成员函数被调用时,该成员函数的_ 指向调用它的对象。33类可将实现细节隐藏起来,这种机制称为_ 。34在面向对象的程序设计中,通过封装实现数据隐
8、藏;通过_实现代码的复用。35在公有继承的中基类数据成员在派生类中的访问权限_ 。36复杂对象可以由简单对象构成,这种现象称为_ 。37如有“char * p=Hello;”,则语句“cout*(p+1);”输出值是_。38基类和派生类的关系称为_。39C+对其对象的数据成员和成员函数的访问是通过_来限制的。40假定x =10,则表达式x =10? 20:30的值为_ 。三、改错题(本大题共5小题,每小题4分,共20分)下面的每题中有一处错误,请在“答题纸”上将错误所在行写出并给出修改意见。41. #include class point private: float x,y; public:
9、 point( float a,float b)x=a;y=b; void f()x=0;y =0; void getx()coutxendl; void gety()coutyendl; ; main( ) point a(3.5); a.getx( ); 42. #include main( ) int x =7; const int *p = &x; *p =99; cout *p endl; 43. #include class test private: int x;y; public: voicl f( int a,int b) x = a;y = b; int max( ) re
10、turn(x y) ? x:y; ; main( ) test a; a. f( 1 ,3) ; cout a. max( ) endl; 44. #include class test private: int x; public:test(int a) x = a; void set(int a) x = a; void get( ) cout x endl; ; class testl: public test private: int x; public :testl ( int a) x = a; void set( int a) x = a; void get( ) cout en
11、dl; ;45. #include class f private: int x,y; public: fl ( int a,int b) x = a;y = b; void print( ) cout x - y endl; ; main( ) f a; float x = 1.0,y = 2. 0; a. fl ( x,y) ; a. print( ) ; 四、完成程序题(本大题共5小题,每题4分,共20分)46在答题纸上填上缺少的部分。源程序如下: #include using namespace std; class base int a,b; public: base( int x,
12、int y)a=x;b=y;void show( ) coutp.a, p.bendl; void main( )base b(78,87);b.show(b);47在答题纸上填上缺少的部分。源程序如下: #include #include using namespace std; void main( ) myf(ab. txt);/定义输出流文件,并初始化 This ia a TXT file;/向文件输入字符串 myf. close ( ); 48在下面程序中的答题纸上填上适当的程序,使程序的输出结果如下: 67 ,90 源程序如下: #include using namespace s
13、td; class base pnvate: int x,y; priblic: void initxy( int a,int b)x=a;y=b; void show( base*p); ; inline void base:show( ) coutxy show(p); void main() base a; ainitxy(67 ,90); print( ); 49下面程序给出了一个从普通的基类派生出一个模板类的方法,在答题纸上填上缺少的 部分。 #include using namespace std; class Base public: Base(int a)x=a; int Ge
14、tx()return x; void showb()coutxendl; private: int x; ;template class derived: public Base public: derived(T a,int b):_ y=a; T Gety( )return y; void showd( )couty Gets ( ) endl; private: ; void main ( ) Base A(458); A.showb ( ); derived B (It is ,1357); B.showd ( ); 50下面程序的运行结果如下: 20,22 60,22 在答题纸上填上
15、缺少的部分。源程序如下: #include using namespace std; class base private: const int a; static const int b; public: base( int); void Show(); ; =22; : a (i) /初始化 void base : :Show( ) couta,bendl; void main ( ) base al (20) ,a2 (60); al. Show ( ); a2. Show ( ); 五、程序分析题(本大题共2小题,每小题5分,共10分)51给出下面程序的输出结果 #include us
16、ing namespace std; class base int x; public: void setx( int a)x=a; int getx ( )return x; ; void main ( ) int*p; base a; a.setx (15); p= new int (a. getx( ); cout * p; 52给出下面程序的输出结果 #include using namespace std; class base private: int x; public:void setx (int a)x=a; int getx ( )return x; ; void main
17、 ( ) base a,b; a.setx (89); b =a; cout a.getx ( ) endl; cout b.getx ( ) endl;六、程序设计题(本大题共10分)53在字符串类string中实现一个判断函数,该函数功能是统计某一字符串类对象(仅有单词和空格组成)有多少个单词,同时保存所有单词在字符串中的起始地址(设该字符串不超过100个单词)#include #include class str string s; int n,a 100 ,j ,1; public:str ( stringa)s=a;n=0;j=0;l=0; test (); int * geta ( ) return a; ; 请写出test函数的过程(如果需要形式参数,请给出形参类型和数量,以及返回值类型)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1