欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【学历类职业资格】C++程序设计自考题模拟7及答案解析.doc

    • 资源ID:1367352       资源大小:76.50KB        全文页数:20页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【学历类职业资格】C++程序设计自考题模拟7及答案解析.doc

    1、C+程序设计自考题模拟 7 及答案解析(总分:100.00,做题时间:90 分钟)一、第部分 选择题(总题数:20,分数:20.00)1.在 C+中,源文件经编译后生成的文件扩展名为_(分数:1.00)AcppBhClibDobj2.下列字符串中不能作为 C+标识符使用的是_(分数:1.00)A.WHILEB.userC._lvarD.9star3.与 C 语言 printf(“Hello, World/n“); 语句功能相同的 C+语句是_(分数:1.00)A.cout“Hello, World/n“;B.cout“Hello, World/n“;C.cin“Hello, World/n“;

    2、D.cin“Hello, World/n“;4.用于标识十进制常量的前缀或后缀是_(分数:1.00)A.无前后缀B.后缀 L 或 lC.前缀 0D.前缀 0x5.使用下列哪个流格式控制符可设置转换基数为十六进制_(分数:1.00)A.decB.octC.hexD.endl6.若 Sample 类中的一个成员函数说明如下: void Set(Sample 可与下列哪个函数同时声明_(分数:1.00)A.double sum(int);B.char sum(int, int);C.int sum(double);D.int sum(int, int, int);10.以下叙述错误的是_(分数:1.

    3、00)A.基类的保护成员在公有派生类中仍然是保护成员B.基类的保护成员在派生类中仍然是保护成员C.基类的保护成员在私有派生类中是私有成员D.基类的保护成员在私有派生类中能够被访问11.设函数 void inc(int)的功能是将形参加 1,如有整型变量 int i=10; ,则执行 inc(i); 后,i 的值为 _(分数:1.00)A.9B.10C.11D.1212.假设 Class Y:public X,即类 Y 是类 X 的派生类,则说明一个 Y 类的对象时和删除 Y 类对象时,调用构造函数和析构函数的次序分别为_(分数:1.00)A.X,Y;Y,XB.X,Y;X,YC.Y,X;X,YD

    4、.Y,X;Y,X13.实现两个相同类型数加法的函数模板的声明是_(分数:1.00)A.add(T x, T y)B.T add(x, y)C.T add(T x, y)D.T add(T x, T y)14.在 int a=3; int *p= 中,*p 的值是_(分数:1.00)A.变量 a 的地址值B.无意义C.变量 p 的地址值D.315.在公有继承的情况下,基类的公有或保护成员在派生类中的访问权限_(分数:1.00)A.受限制B.保持不变C.受保护D.不受保护16.在没有为一个类定义任何构造函数的情况下,下列描述正确的是_(分数:1.00)A.编译器总是自动创建一个不带参数的构造函数B

    5、.这个类没有构造函数C.这个类不需要构造函数D.该类不能通过编译17.在派生类中定义虚函数时,可以与基类中相应的虚函数不同的是_(分数:1.00)A.参数类型B.参数个数C.函数名称D.函数体18.关于类的静态成员函数描述错误的是_(分数:1.00)A.在创建对象之前不存在B.不能说明为虚函数C.不能直接访问非静态函数D.不是对象的成员19.在构造向量时,不正确的叙述是_(分数:1.00)A.可以使用基本数据类型B.可以使用类C.可以使用向量D.不可以使用容器20.使用函数 setprecision(int n)必须包含的头文件是_(分数:1.00)A.iostreamB.fstreamC.i

    6、fstreamD.iomanip二、第部分 非选择题(总题数:20,分数:20.00)21.下列程序段的输出结果是 1。 cout.setf(ios:showpos); cout509.3endl; (分数:1.00)22.将对象作为函数参数,是将实参对象的 1 传递给形参对象,这种传递是单向的。 (分数:1.00)23.结构体中,没有使用 private 定义的成员函数,默认为 1。 (分数:1.00)24.局部对象和全局对象中,在同一程序中 1 生存期最长。 (分数:1.00)25.类的定义以 class 开始,以 1 结束。 (分数:1.00)26.类的构造函数可以重载,类的析构函数 1

    7、 重载。 (分数:1.00)27.this 指针始终指向调用成员函数的 1。 (分数:1.00)28.派生类可以定义其 1 中不具备的数据和操作。 (分数:1.00)29.C+的 1 允许一个派生类继承多个基类。 (分数:1.00)30.派生类的成员一般分为两部分,一部分是 1,另一部分是自己定义的新成员。 (分数:1.00)31.C+语言中的“聚合”隐含了两种实现方式,一种是 1,另一种是用一个类的对象作为一种广义的数据类型来定义整体对象的一种属性。 (分数:1.00)32.在 C+中,利用向量类模板定义一个具有 10 个 int 的向量 V,其元素均被置为字符 2,实现此操作的语句是 1。

    8、 (分数:1.00)33.派生类继承基类的虚函数后 1 不重新定义该函数。 (分数:1.00)34.通过一个对象调用虚函数时,C+系统对该调用采用 1。 (分数:1.00)35.下列程序段的输出结果是 1。 for(i=0. j=10, k=0; i=j; i+, j-=3, k=i+j); coutk; (分数:1.00)36. 1 规则是指在公有派生情况下,一个派生类的对象可以作为基类的对象来使用。 (分数:1.00)37.用 1 修饰的函数称为虚函数。 (分数:1.00)38.重载的运算符仍保留原有的 1、结合性和语法结构。 (分数:1.00)39.对已有的运算符赋予多重含义,使同一运算

    9、符能够对不同类型的数据进行操作,称为 1。 (分数:1.00)40.设要把一个文件输出流对象 outfile 与文件“d:/Text.txt”相关联,设置以二进制形式打开。所用的C+语句是 1。 (分数:1.00)三、改错题(总题数:5,分数:20.00)41.#includeiostream.h class Test private: int x, y=20; public: Test(int i, int j)x=i; y=j; int getx()return x; int gety()return y; ; void main() Test mt(10, 20); coutmt.get

    10、x()endl; coutmt.gety()endl; (分数:4.00)_42.以下程序实现交换 a,b 变量的值,请用下横线标出错误所在行并给出修改意见。 #include iostream.h void swap( int b=a-b; a=a-b; void main() int a = 19, b = 15; cout “a = “ a “, b = “ b endl; swap ( cout “a = “ a “, b = “ b endl; (分数:4.00)_43.#include iostream using namespace std; class CMax private

    11、: 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 = “ m.max() endl; (分数:4.00)_44.#include iostream.h void main() int i(3), j(8); int * constp= cout * p endl; p

    12、 = cout * p endl; (分数:4.00)_45.#include iostream.h class test private: int x, y; public: void test1 (int a, int b) x = a; y = b; int max(); ; int test:max() if(xy) return x; else return y; void main() test a; a.test1 (1,3); cout a.max() endl; (分数:4.00)_四、完成程序题(总题数:5,分数:20.00)46.完成下面类中构造函数的定义。 #inclu

    13、de iostream.h class A private: int y; int x; public: A ( int, int); A (const A void show() cout “x = “ x “, y = “ y endl; ; A:A(int i, int j):_ A:A(_) x=t.x; y=t.y; void main () A a1(3,5); a1.show(); A a2(a1); a2.show(); (分数:4.00)_47.在下面横线处填上求两个浮点数之差的 cha 函数的原型声明、调用方法。 #include iostream using namesp

    14、ace std; void main() float a, b; _/函数 cha 的原型声明 a=12.5; b=6.5; float c =_; /调用函数 cha cout c endl; float cha(float x, float y) float w; w=x-y; return w; (分数:4.00)_48.一个类的头文件如下所示,num 初始化值为 5,程序产生对象 T,且修改 num 为 10,并使用 show()函数输出 num 的值 10。 #include iostream.h class Test private: static int num; public:

    15、 Test(int); void show(); ; _ Test:Test( int n) num = n; void Test:show() cout num endl; void main() Test t(10); _ (分数:4.00)_49.完成下面类中成员函数的定义。 #include iostream.h class A private: int val; public: A(int i) val=i; _ int(); ; A:operator int() _ class B:public A public: B(int i):A(i) ; void main() B n(1

    16、00); int i =n; cout i + n endl; (分数:4.00)_50.程序的输出结果如下: 30 9 请根据输出数据在下面程序中的下横线处填写正确的语句。 #include iostream.h class Test private: int m; public: Test( int i = 0) m=i; void show() cout m endl; void set(int i) m=i; ; void main() Test *p1 =newTest2, *p2; p2 =p1; p1 - set(30); p1 -show(); Testa2 =1,9; _ p

    17、1 - show(); p1 =p2; _ /释放空间 (分数:4.00)_五、程序分析题(总题数:2,分数:10.00)51.给出下面程序的输出结果。 #include math.h #include iostream.h #include iomanip.h bool fun( long n); void main() long a = 10, b =30, 1=0; if(a%2=0) a+; for(long m = a; m = b; m + = 2) if( fun (m) if(1 +%10 =0) cout endl; cout setw(5) m; bool fun( lon

    18、g n) int sqrtm = (int) sqrt(n); for(int i =2; i = sqrtm; i + ) if( n% i = = 0) return false; return true; (分数:5.00)_52.给出下面程序的输出结果。 #include iostream.h class Test int x, y; public: Test(int i, int j =0) x=i; y=j; int get( int i, int j) return i + j; ; void main() Test t1 (2), t2(4,6); int (Test: * p

    19、) (int, int = 10); p =Test:get; cout ( t1. * p) (5) endl; Test * p1 = cout ( p1 - * p) (7,20) endl; (分数:5.00)_六、程序设计题(总题数:1,分数:10.00)53.求 n(n=3)个学生的最高分和最低分及姓名,已有 student 类声明和 main 函数,完成 student 类的实现部分。 #include iostream.h #include string.h class student char name10; int deg; public: student(char na

    20、= “ “, int d = 0); char * getname(); friend int compare(student int getdeg(); ; void main() student st = student ( “王强“, 74 ), student ( “李刚“, 68 ), student ( “张雪“, 84 ) ; int i =0, min =0, max =0; for(i =1 ; i 3; i +) if(compare ( st max , st i ) = = - 1 ) max=i; if( compare( stmin, sti ) = = 1 ) m

    21、in = i; cout “最高分:“ stmax.getdeg() “姓名:“ stmax.getname() endl; cout “最低分:“ ( * ( st + min) ).getdeg() “姓名:“ st min .getname () endl; (分数:10.00)_C+程序设计自考题模拟 7 答案解析(总分:100.00,做题时间:90 分钟)一、第部分 选择题(总题数:20,分数:20.00)1.在 C+中,源文件经编译后生成的文件扩展名为_(分数:1.00)AcppBhClibDobj 解析:2.下列字符串中不能作为 C+标识符使用的是_(分数:1.00)A.WHIL

    22、EB.userC._lvarD.9star 解析:考点 本题主要考查的知识点为 C+标识符。 C+标识符的命名规则:所有标识符必须由一个字母(az 或 AZ)或下划线开头;标识符的其他部分可以由字母、下划线或数字(09)组成;大小写字母表示不同意义,即代表不同的标识符。3.与 C 语言 printf(“Hello, World/n“); 语句功能相同的 C+语句是_(分数:1.00)A.cout“Hello, World/n“;B.cout“Hello, World/n“; C.cin“Hello, World/n“;D.cin“Hello, World/n“;解析:4.用于标识十进制常量的前

    23、缀或后缀是_(分数:1.00)A.无前后缀 B.后缀 L 或 lC.前缀 0D.前缀 0x解析:5.使用下列哪个流格式控制符可设置转换基数为十六进制_(分数:1.00)A.decB.octC.hex D.endl解析:考点 本题主要考查的知识点为操控符的含义。 dec:设置转换基数为十进制;oct:设置转换基数为八进制;hex:设置转换基数为十六进制;endl:输出一个换行符并刷新流。故本题选 C。6.若 Sample 类中的一个成员函数说明如下: void Set(Sample 可与下列哪个函数同时声明_(分数:1.00)A.double sum(int);B.char sum(int, i

    24、nt);C.int sum(double); D.int sum(int, int, int);解析:考点 本题主要考查的知识点为函数重载和默认参数。 A、B、D 项中函数参数类型同题干中函数参数类型相同,且参数个数小于 3 个,编译器不能区别它们。C项中参数类型为 double 同题干中函数参数类型不同,故本题选 C。10.以下叙述错误的是_(分数:1.00)A.基类的保护成员在公有派生类中仍然是保护成员B.基类的保护成员在派生类中仍然是保护成员 C.基类的保护成员在私有派生类中是私有成员D.基类的保护成员在私有派生类中能够被访问解析:考点 本题主要考查的知识点为基类的保护成员在派生类中的访

    25、问权限。 基类的保护成员在派生类中的访问权限是由派生方式决定的。如果是私有派生,则其在派生类中是私有的;如果是公有或保护派生,则其在派生类中是保护的。11.设函数 void inc(int)的功能是将形参加 1,如有整型变量 int i=10; ,则执行 inc(i); 后,i 的值为 _(分数:1.00)A.9B.10 C.11D.12解析:考点 本题主要考查的知识点为参数的传值方式。 传值是将实参值的副本拷贝给被调用函数的形参,所以形参的值改变时并不改变实参的值,本题选 B。12.假设 Class Y:public X,即类 Y 是类 X 的派生类,则说明一个 Y 类的对象时和删除 Y 类

    26、对象时,调用构造函数和析构函数的次序分别为_(分数:1.00)A.X,Y;Y,X B.X,Y;X,YC.Y,X;X,YD.Y,X;Y,X解析:考点 本题主要考查的知识点为构造函数和析构函数的调用顺序。 派生类构造函数必须对这三类成员进行初始化,其执行顺序为:调用基类构造函数;调用子对象的构造函数;执行派生类的构造函数体。析构函数在执行过程中也要对基类和成员对象进行操作,但它的执行过程与构造函数正好相反,即对派生类新增普通成员进行清理;调用成员对象析构函数,对派生类新增的成员对象进行清理;调用基类析构函数,对基类进行清理。所以选择 A 项。13.实现两个相同类型数加法的函数模板的声明是_(分数:

    27、1.00)A.add(T x, T y)B.T add(x, y)C.T add(T x, y)D.T add(T x, T y) 解析:考点 本题主要考查的知识点为函数模板。 实现两个相同类型数的加法,结果应该和操作数具有相同类型。A 项无返回值要用 void;B 项形参无类型,C 项形参 y 没有类型,所以选择 D 项。14.在 int a=3; int *p= 中,*p 的值是_(分数:1.00)A.变量 a 的地址值B.无意义C.变量 p 的地址值D.3 解析:考点 本题主要考查的知识点为指针。 指针 p 指向变量 a,*p 表示变量 a 的值。本题选择 D 项。15.在公有继承的情况

    28、下,基类的公有或保护成员在派生类中的访问权限_(分数:1.00)A.受限制B.保持不变 C.受保护D.不受保护解析:考点 本题主要考查的知识点为基类成员在派生类中的访问权限。 继承方式不同,派生类成员的权限也不同。采用公有继承,除了私有成员无法访问外,公有、保护成员在派生类中访问权限保持不变,所以选择 B 项。16.在没有为一个类定义任何构造函数的情况下,下列描述正确的是_(分数:1.00)A.编译器总是自动创建一个不带参数的构造函数 B.这个类没有构造函数C.这个类不需要构造函数D.该类不能通过编译解析:考点 本题主要考查的知识点为类的构造函数。 在类中如果没有定义构造函数,系统自动生成一个

    29、无参数的构造函数即默认构造函数;只要定义一个构造函数,系统就不会再生成默认构造函数,A 项正确。17.在派生类中定义虚函数时,可以与基类中相应的虚函数不同的是_(分数:1.00)A.参数类型B.参数个数C.函数名称D.函数体 解析:考点 本题主要考查的知识点为虚函数。 虚函数在基类和派生类中具有相同的返回类型、形参类型和形参个数,而函数体可以根据不同的派生类或基类实现不同的操作,即不同的函数体。18.关于类的静态成员函数描述错误的是_(分数:1.00)A.在创建对象之前不存在 B.不能说明为虚函数C.不能直接访问非静态函数D.不是对象的成员解析:19.在构造向量时,不正确的叙述是_(分数:1.

    30、00)A.可以使用基本数据类型B.可以使用类 C.可以使用向量D.不可以使用容器解析:20.使用函数 setprecision(int n)必须包含的头文件是_(分数:1.00)A.iostreamB.fstreamC.ifstreamD.iomanip 解析:二、第部分 非选择题(总题数:20,分数:20.00)21.下列程序段的输出结果是 1。 cout.setf(ios:showpos); cout509.3endl; (分数:1.00)解析:+509.322.将对象作为函数参数,是将实参对象的 1 传递给形参对象,这种传递是单向的。 (分数:1.00)解析:值23.结构体中,没有使用

    31、private 定义的成员函数,默认为 1。 (分数:1.00)解析:public24.局部对象和全局对象中,在同一程序中 1 生存期最长。 (分数:1.00)解析:全局对象25.类的定义以 class 开始,以 1 结束。 (分数:1.00)解析:;26.类的构造函数可以重载,类的析构函数 1 重载。 (分数:1.00)解析:不可以27.this 指针始终指向调用成员函数的 1。 (分数:1.00)解析:对象28.派生类可以定义其 1 中不具备的数据和操作。 (分数:1.00)解析:基类29.C+的 1 允许一个派生类继承多个基类。 (分数:1.00)解析:多重继承30.派生类的成员一般分为

    32、两部分,一部分是 1,另一部分是自己定义的新成员。 (分数:1.00)解析:从基类继承的成员31.C+语言中的“聚合”隐含了两种实现方式,一种是 1,另一种是用一个类的对象作为一种广义的数据类型来定义整体对象的一种属性。 (分数:1.00)解析:独立的定义32.在 C+中,利用向量类模板定义一个具有 10 个 int 的向量 V,其元素均被置为字符 2,实现此操作的语句是 1。 (分数:1.00)解析:vectorintV(10,2);33.派生类继承基类的虚函数后 1 不重新定义该函数。 (分数:1.00)解析:可以34.通过一个对象调用虚函数时,C+系统对该调用采用 1。 (分数:1.00

    33、)解析:静态绑定35.下列程序段的输出结果是 1。 for(i=0. j=10, k=0; i=j; i+, j-=3, k=i+j); coutk; (分数:1.00)解析:436. 1 规则是指在公有派生情况下,一个派生类的对象可以作为基类的对象来使用。 (分数:1.00)解析:赋值兼容37.用 1 修饰的函数称为虚函数。 (分数:1.00)解析:virtual38.重载的运算符仍保留原有的 1、结合性和语法结构。 (分数:1.00)解析:优先级39.对已有的运算符赋予多重含义,使同一运算符能够对不同类型的数据进行操作,称为 1。 (分数:1.00)解析:运算符重载40.设要把一个文件输出

    34、流对象 outfile 与文件“d:/Text.txt”相关联,设置以二进制形式打开。所用的C+语句是 1。 (分数:1.00)解析:outfile.open(“d:/Text.txt“, ios_base:out | ios_base:binary);三、改错题(总题数:5,分数:20.00)41.#includeiostream.h class Test private: int x, y=20; public: Test(int i, int j)x=i; y=j; int getx()return x; int gety()return y; ; void main() Test mt

    35、(10, 20); coutmt.getx()endl; coutmt.gety()endl; (分数:4.00)_正确答案:()解析:int x, y=20; 在类内部不能对数据成员直接赋值。应改为 int x, y; 。42.以下程序实现交换 a,b 变量的值,请用下横线标出错误所在行并给出修改意见。 #include iostream.h void swap( int b=a-b; a=a-b; void main() int a = 19, b = 15; cout “a = “ a “, b = “ b endl; swap ( cout “a = “ a “, b = “ b en

    36、dl; (分数:4.00)_正确答案:()解析:swap( 函数的形参是变量的引用,调用时的实参应该是地址。应改为 swap(a, b); 。43.#include iostream 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.setVa

    37、lue(20,30); cout “Max = “ m.max() endl; (分数:4.00)_正确答案:()解析:CMax m(); 定义对象时,参数和给出的构造函数不一致。可修改为 CMax m(2,3); 。44.#include iostream.h void main() int i(3), j(8); int * constp= cout * p endl; p = cout * p endl; (分数:4.00)_正确答案:()解析:int *const p= 在指针变量前加 const 表示一个常指针即地址不能变化,它指向的变量不能改变,且定义时必须设置指向变量或对象的地址

    38、。应改为 int *p= 。45.#include iostream.h class test private: int x, y; public: void test1 (int a, int b) x = a; y = b; int max(); ; int test:max() if(xy) return x; else return y; void main() test a; a.test1 (1,3); cout a.max() endl; (分数:4.00)_正确答案:()解析:int test:max()成员函数定义时用“:”。应改为 int test:max()。四、完成程序

    39、题(总题数:5,分数:20.00)46.完成下面类中构造函数的定义。 #include iostream.h class A private: int y; int x; public: A ( int, int); A (const A void show() cout “x = “ x “, y = “ y endl; ; A:A(int i, int j):_ A:A(_) x=t.x; y=t.y; void main () A a1(3,5); a1.show(); A a2(a1); a2.show(); (分数:4.00)_正确答案:()解析:x(i), y(j) const A

    40、 void main() float a, b; _/函数 cha 的原型声明 a=12.5; b=6.5; float c =_; /调用函数 cha cout c endl; float cha(float x, float y) float w; w=x-y; return w; (分数:4.00)_正确答案:()解析:float cha(float, float); cha(a, b)48.一个类的头文件如下所示,num 初始化值为 5,程序产生对象 T,且修改 num 为 10,并使用 show()函数输出 num 的值 10。 #include iostream.h class Test private: static int num; public: Test(int); void show(); ; _ Test:Test( int n) num = n; void Test:show() cout num endl; void main() Test t(10); _ (分数:4.00)_


    注意事项

    本文(【学历类职业资格】C++程序设计自考题模拟7及答案解析.doc)为本站会员(feelhesitate105)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开