您当前的位置: 湖南自考网 > 历年真题 > 理学类 > 文章详情

2009年10月自考04737C++程序设计真题及答案

2018-12-21 15:28:21
来源:湖南自考生网

     【相关推荐】:2008-20013年自考04737C++程序设计真题及答案汇总
       以下是湖南自考本科小编为考生们整理的“2009年10月自考04737C++程序设计真题及答案”,考生们可通过真题来检测自己的学习结果,以便更好的进行复习。

 
全国2009年10月自学考试 
 
C++程序设计试题 

课程代码:04737

        一、单项选择题(本大题共20小题,每小题1分,共20分)

        在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 

        1.对C++中主函数描述正确的是( )

        A.名称为main,可为多个 

        B.名称不限,可为多个 

        C.名称为main,必须有且只能有一个 

        D.名称不限,必须有且只能有一个

        2.调用声明为int result(int a,int b)的函数时,正确的方法是( )

        A.result(1,2) 

        B.result(1)

        C.result(0.1,0.3) 

        D.result(1,2,3)

        3.用于包含C++标准库iostream的预处理指令是( )

        A.#define 

        B.#include

        C.#define ‘iostream’ 

        D.#include‘iostream’

        4.无类型标识符是指( )

        A.void 

        B.bool

        C.short 

        D.long

        5.从本质上看,引用是被引用变量的( )

        A.拷贝 

        B.别名 

        C.复制 

        D.克隆

        6.下面关于数组的初始化正确的是( )

        A.char str[ ]={'a','b','c'}; 

        B.char str[2]={'a','b','c'}; 

        C.char str[1][2]={{'a','b'},{'e','d'}}; 

        D.char str[ ][ ]={'a','b','c'};

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

        A.public 

        B.private

        C.protected 

        D.friend

        8.决定C++语言中函数的返回值类型的是( )

        A.return语句中的表达式类型 

        B.调用该函数时系统随机产生的类型 

        C.调用该函数时的主调用函数类型 

        D.在定义该函数时所指定的数据类型

        9.函数int & min(int &,int &)返回参数中较小者,设有两整型变量int a=10;int b=15;在执行语句min(a,b)--;之后,a,b值分别为( )

        A.9,14 

        B.9,15

        C.10,14 

        D.10,15

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

        A.const 

        B.inline

        C.short 

        D.signed

        11.函数int sum(int a=l,int b=1,int c=3)可与下列哪个函数同时声明( )

        A.double sum(int); 

        B.char sum(int,int); 

        C.int sum(double); 

        D.int sum(int,int,int);

        12.函数模板template void Func(T,T)可具有下列哪种实例化形式( )

        A.void Func(float,int) 

        B.void Func(char,char)

        C.void Func(int,double) 

        D.void Func(bool,float)

        13.下列访问成员的方式哪个是正确的( )

        A.对象名.对象成员名 

        B.对象指针名.对象成员名 

        C.对象名→对象成员名 

        D.类名→对象成员名

        14.对类A,复制构造函数的原型是( )

        A.A::A(const A&); 

        B.A::A(const A *); 

        C.A::A(const A); 

        D.A::A( );

        15.对class point,如使用point * ptr=new point[2];创建对象数组,则删除此数组使用的语句是( )

        A.delete ptr[2]; 

        B.delete[ ] ptr; 

        C.delete ptr[ ]; 

        D.delete[2] ptr;

        16.下列哪个编译指令不属于条件编译指令( )

        A.#if 

        B.#else

        C.#endif 

        D.#error

        17.类A中存在静态数据成员x,设a和b是类A的两个对象,在执行a.x=10之后,b.x

        的值为( )

        A.未初始化 

        B.等于a.x

        C.等于0 

        D.随机

        18.使用string.h库操纵字符串时,将两个字符串连接成一个字符串的函数是( )

        A.strlen() 

        B.strcap()

        C.strcat() 

        D.strcmp()

        19.基类中的public成员,通过public派生,其在派生类中的访问权限为( )

        A.不可访问 

        B.private

        C.protected 

        D.public

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

        A.抽象 

        B.封装 

        C.继承 

        D.多态性

        二、填空题(本大题共20小题,每小题1分,共20分) 

        请在每小题的空格中填上正确答案。错填、不填均无分。 

        21.在C++语言的面向对象设计框架中,_______是程序的基本组成单元。

        22.执行代码double pi=3.1415192; cout < < setprecision (3) < < pi;程序的输出结果是_______。

        23.C++语言提供的的基本控制结构可以分为3种类型:顺序结构、_______和循环结构。

        24.要使用STL库提供的对数组进行降幂排序算法,在源程序中需要包含的头文件是______。

        25.在C++标准库中,用_______类来表示复数。

        26.将对象作为函数参数,是将实参对象的_______传递给形参对象,这种传递是单向的。

        27.C++函数的返回类型可以是除数组与_______以外的任何类型。

        28.能提供封装的C++关键字是_______。

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

        30.开发一个C++语言程序的步骤通常包括编辑、_______、连接、运行和调试。

        31.C++类中的_______函数在对象的生存期结束时被自动调用。

        32.友元函数可以存取类的_______、公有成员和保护成员。

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

        34.在C++中,创建派生类对象时,总是先从_______的初始化开始的。

        35.类的继承是指派生类继承基类的数据成员和_______。

        36.在C++中,利用向量类模板定义一个具有20个double的向量,其元素均被置为0.5,实现此操作的语句是_______。

        37.vector类中用于返回向量中的最后一个对象的方法是_________。

        38.虚函数类似于重载函数,但与重载函数的实现策略不同,对虚函数声明时应使用_______关键字。

        39.在C++中,虽然友元提供了类之间数据进行访问的一种方式,但它破坏了面向对象程序设计的_______特性。

        40.执行下列代码

        cout < < showpoint < < 123.0;程序的输出结果是_______。

        三、改错题(本大题共5小题,每小题4分,共20分) 

        下面的每个程序都有一处错误,请用下横线标出错误所在行并给出修改意见。

        41.#include 

        using namespace std;

        int main ( ){

        int num; max=10; num =1

        while (num < max) num + + ;

        cout <<″Num = ″<< num;

        return 0;

        }

        42.#include 

        using namespace std;

        class A {

        void show ( ) {

        cout<<″Hello!″;

        }

        };

        int main ( ) {

        A a;a. show ( );

        return 0;

        }

        43.#include 

        using namespace std;

        int main ( ) {

        const int num = 20;

        int scores[num];

        for (int i=1;i<=num;i + +){

        scores[i]=i; 

        }

        return 0; 

        }

        44.#include 

        using namespace std; 

        class CMax {

        private:

        int xx; int yy; 

        public:

        CMax(int x,int y)

        { xx = x;yy = y ; }

        void setValue(int x,int y)

        { xx = x;yy = y;}

        int max( ){

        return xx > yy? xx:yy; 

        }

        }; 

        void main( ){

        CMax m( ); 

        m.setValue(20,30); 

        cout <<″Max=″<

        <}

        45.#include 

        using namespace std; 

        class A{

        public: 

        char name[255]; 

        private: 

        char * getName( )

        { return name; }

        }; 

        class B:public A{

        public: 

        B(char * n){

        strcpy ( name,n); 

        }

        }; 

        void main( ){

        B b(″Hello!″); 

        cout <<″Name:″<

        }

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

        46.将下面程序补充完整,使程序输出结果为: 

        Begin

        Welcome

        Show

        End

        程序如下: 

        #include 

        using namespace std; 

        class A{

        public:

        __________{

        cout <<″Begin″<

        }

        void show( ){

        cout<<″Show″<

        }

        ___________{

        cout<<″End″<

        }

        }; 

        A object; 

        int main( ){

        cout <<″Welcome″<

        object.show( ); 

        return 0; 

        }

        47.请将下面程序补充完整,使程序可以正常打印9×9乘法口诀。 

        #include 

        using namespace std; 

        class A {

        private:

        int a;int b; 

        public:

        __________

        { a = x;b = y; }

        void set(int x,int y)

        { a = x;b = y; }

        void display( ){

        cout<

        }

        }; 

        int main( ){

        A a(1,1); 

        for(int i=1;i<=9;i++){

        for(int j=1;____;j++){

        a.set(j,i); 

        a.display( ); 

        cout<<″″; 

        }

        cout<

        }

        return 0; 

        }

        48.将下面程序补充完整,使程序可以输入学生信息并计算平均成绩。 

        #include 

        #include 

        using namespace std; 

        class Student{

        private: 

        char name[255]; 

        int score[10]; 

        public: 

        Student(char n[ ],int s[ ]){

        ___________;

        for(int i=0;i<10;i++){

        score[i]=s[i]; 

        }

        }

        void Show( ){

        int sum=0; 

        for(int i=0;i<10;i++){

        _______________;

        }

        cout<<″名字:″< < name<<″,平均成绩:″<

        }

        }; 

        void main( ){

        char name[255]; 

        int score[10]; 

        cout<<″姓名:″;cin>>name; 

        for(int i=0;i<10;i++){

        cout<<″成绩″<

        cin>>score[i]; 

        }

        Student s(name,score); 

        s.Show( ); 

        }

        49.将下面程序补充完整,使程序可以正常运行,并释放内存。 

        #include 

        _______

        class A {

        private: 

        T * data; 

        int length; 

        public: 

        A (int len){

        length=len; 

        data=new T[len]; 

        }

        ~A( ){

        _________

        }

        T& operator[](int i){

        return data[i]; 

        }

        }; 

        int main( ){

        A obj(2); 

        obj[0]=1; 

        obj[1]=2; 

        cout<

        cout<

        return 0; 

        }

        50.将下面程序补充完整,使程序运行结果为: 

        C1ass A

        Class B

        程序如下: 

        #include 

        #include 

        class A{

        public: 

        virtual void GetA( ) = 0; 

        }; 

        class B:public A{

        private: 

        char str[32]; 

        public: 

        void GetA( ){

        cout<<″Class A″<

        }

        const char * GetB( ) {_____

        }

        B(char * s){

        strcpy(str,s); 

        }

        }; 

        void main( ){

        A * a; 

        B b(″Class B″); 

        a=_________; 

        a-> GetA( ); 

        cout<

       

        }

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

        51. #include 

        using namespace std; 

        int main( ){

        int i,j; 

        for(i=l;i<=4;i+=1)

        for(j=2;j<=4;j+=j){

        if(i+j<5)

        cout<<″ + ″; 

        else

        cout<<″ * ″; 

        }

        return 0; 

        }

        52. #include 

        using namespace std; 

        class A {

        int a; 

        public: 

        A(int aa=0){a=aa;}

        ~A( ){cout <<″Destructor A!″<

        }; 

        class B:public A{

        int b;

        public:

        B(int aa = 0,int bb = 0):A(aa){b = bb;}

        ~B( ){cout <<″Destructor B!″<< b << endl;}

        };

        void main( ){

        B x(5),y(6,7);

        }

        六、程序设计题(本大题10分) 

        53.下面Shape类是一个表示形状的抽象类,Area ( )为求图形面积的函数。请从Shape类派生梯形类(Trapezoid)、圆形类(Circle),三角形类(Triangle),并给出具体的求面积函数。其中,所有派生类计算面积需要用到的参数由构造函数给出,梯形面积计算需要上底、下底和高,三角形面积需要底和高,圆形面积需要半径。

        形状的抽象类声明如下:考试大收集整理

        class Shape {

        public:

        virtual double Area( ) = 0;

        };

        以上历年真题试卷及答案由湖南自考生网http://www.zikaosw.com/收集、提供。希望能够帮助同学们更好地将书本上的知识与实际案例联系起来,通过真题练习在考试时取得更好地成绩!更多真题及答案,可在我办网站“自考历年真题”栏目中查看。


 

湖南学历提升报名热线:
蒋老师QQ咨询 QQ咨询

TEL:蒋老师17773102705

2024年自考、成考、网教报名进行中,点击立即报考咨询>>

扫一扫下方二维码关注湖南自考生网微信公众号、客服咨询号,即时获取湖南自考、成考、网教最新考试资讯。

  • 湖南自考官方公众号

    关注公众号免费拿资料

  • 微信扫一扫咨询

  • 微信扫一扫咨询

免责声明

1、鉴于各方面资讯时常调整与变化,本网所提供的信息仅供参考,实际以考试院通知文件为准。

2、本网部分内容来源于网络,如有内容、版权等问题请与本网联系,我们将会及时处理。联系方式 :QQ(393848300)

3、如转载湖南自考生网声明为“原创”的内容,请注明出处及网址链接,违者必究!

市区导航: 长沙市自考  |   株洲市自考  |   湘潭市自考  |   衡阳市自考  |   邵阳市自考  |   岳阳市自考  |   常德市自考  |   张家界自考  |   益阳市自考  |   郴州市自考  |   永州市自考  |   怀化市自考  |   娄底市自考  |   湘西州自考  |  

特别声明:本站信息大部分来源于各高校,真实可靠!部分内容来自互联网,仅供参考!所有信息以实际政策和官方公告为准!

湖南求实创新教育科技有限公司 版权所有 湘ICP备18023047号-2