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

    【计算机类职业资格】二级C++-172及答案解析.doc

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

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

    【计算机类职业资格】二级C++-172及答案解析.doc

    1、二级 C+-172 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:29,分数:72.00)1.C+流中重载了运算符,它是一个_。(分数:2.50)A.用于输出操作的成员函数B.用于输入操作的成员函数C.用于输入操作的非成员函数D.用于输出操作的非成员函数2.语句 ofstream f(“DATA.DAT“,ios_base:app |ios_base:binary);的功能是建立流对象 f,并试图打开文件 DATA.DAT 并与之连接,而且_。(分数:2.50)A.若文件存在,将文件指针定位于文件首;若文件不存在,建立一个新文件B.若文件存在,将其截为空文件;若文件

    2、不存在,打开失败C.若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件D.若文件存在,打开失败;若文件不存在,建立一个新文件3.在进行了任何 C+流的操作后,都可以用 C+流的有关成员函数检测流的状态;其中只能用于检测输入操作的函数的函数名是_。(分数:2.50)A.failB.eofC.badD.good4.执行语句序列 ofstream outfile(“DATA. DAT“); if(.)cout“OK“;else cout“FAIL“; 后,如果文件打开成功,显示“OK”,否则显示“FAIL”。由此可知,上面 if 语句的处的表达式是_。(分数:2.50)A.outfil

    3、e.fail()或 outfileB.outfile.good()或!outfileC.out.file.good()或 outfileD.outfile.fail()或!outfile5.下列关于函数的说法中,正确的是(分数:2.50)A.C+允许在函数体中定义其他函数B.所有的内联函数都要用 inline 说明C.仅函数返回类型不同的同名函数不能作为重载函数使用D.有默认值的参数应从左至右逐个定义6.下列关于构造函数的说法中,正确的是(分数:2.50)A.构造函数不能重载B.构造函数的返回值为 voidC.构造函数中可以使用 this 指针D.用户必须为定义的类提供构造函数7.下列不属于

    4、C+规定的类继承方式的是(分数:2.50)A.protectiveB.privateC.protectedD.public8.下列关于运算符重载的说法,错误的是(分数:2.50)A.new 和 delete 运算符可以重载B.重载运算符不能改变其原有的操作数个数C.三元运算符“?:”不能重载D.所有运算符既可以作为类的成员函数重载,又可以作为非成员函数重载9.下列关于函数模板的说法,正确的是(分数:2.50)A.在定义模板参数时关键字 typename 和 class 可以互换B.函数模板的形参表中只能有虚拟类型参数C.调用函数模板时,模板实参永远不能省略D.在函数模板的声明中,只能使用 1

    5、个虚拟类型参数10.下列不属于 C+预定义的流对象的是(分数:2.50)A.cfileB.cinC.coutD.clog11.下列不属于 C+关键字的是(分数:2.50)A.defaultB.unsignedC.goD.try12.若变量 a 的定义为“int a=8;”,则下列逻辑表达式中其值为 false 的是(分数:2.50)A.a do i *=i; cout“#“; if(i1000) break; while(1); 运行这个程序段时,输出字符“#“的个数是(分数:2.50)A.3B.4C.5D.614.有如下程序段: int *a=new int2; a0=0; a1=1; in

    6、t *b= cout*b; 运行这个程序段将输出(分数:2.50)A.整数 1B.a0的地址C.a1的地址D.整数 015.已知函数 foo 定义如下: void foo(int a, intb+;(*c)+; 且有如下程序段: int a=1,b=2,c=3; foo(a,b, coutabc; 运行这个程序段的输出是(分数:2.50)A.134B.123C.234D.编译错误16.已知类 MyClass 的定义如下: #include iostream using namespace std; class MyClass private: static int static:_data;

    7、const int const_data; public: MyClass(int d):const_data(d) static void fool() coutconst_data; / void foo2()const coutstatic_data;/ ; int MyClass:static_data=0; 下列说法中正确的是(分数:2.50)A.编译时语句有错B.编译时语句有错C.编译时语句均有错D.编译时语句均无错17.已知类 Base 和类 Derived 的定义如下: class Base int n; public: Base(int d):n(d) ; class Der

    8、ived: public Base public: _ ; 其中横线处应为类 Derived 的构造函数的定义。在下列构造函数的定义中,正确的是(分数:2.50)A.Derived(int i)Base(i);B.Derived(int i):Base(i)C.Derived(int i)n=i;D.Derived(int i):n(i)18.已知类 CC 以成员函数方式重载了二元运算符*,c1 和 c2 是 CC 类的两个对象,则下列对该运算符的调用中错误的是(分数:2.50)A.c1*c2;B.c1.operator*(c2);C.operator*(c1,c2);D.c2.operato

    9、r*(c1);19.已知类模板 Test 定义如下: template typename T1, typename T2 class Test public: void foo(T2 t); ; 则以下针对 foo 函数的类外定义中语法正确的是(分数:2.50)A.template typename T1, typename T2 void Test:fooT2(T2 t)B.template typename T1, typename T2 void Test:fooT1,T2(T2 t)C.template typename T1, typename T2 void TestT2:foo(

    10、T2 t)D.template typename T1, typename T2 void TestT1,T2:foo(T2 t)20.有如下输出语句: coutsetw(5)fixedsetprecision(3)3.1415926; 此语句的输出结果是(分数:2.50)A.3.141B.3.142C.3.1415D.3.141621.已知类 MyClass 的定义如下: class MyClass private: int num; public: MyClass(int d):num(d) MyClass(const MyClass 且有如下程序段: MyClass c(5); MyCl

    11、ass *p1; p1= print(*p1); print(c); 运行这个程序段的过程中,对类 MyClass 的复制构造函数的调用次数是(分数:2.50)A.4B.3C.2D.122.已知类 Test 的定义如下: class Test private: static int num; public: void print(int num) cout+num; cout+this-num: ; int Test:num=0; 且有如下程序段: int main() Test t1.t2; t1. print(0); t2. print(1); return0; 运行这个程序段的输出是(分

    12、数:2.50)A.1234B.1233C.1122D.122323.已知类 CC 和函数 test 的定义如下: class CC public: CC()cout“1“; CC()cout“0“; ; void test(CC c)cout“2“; 且有如下 main 函数: int main() CC c; test(c); return0; 运行这个 main 函数的输出是(分数:2.50)A.1200B.11200C.1020D.112024.已知类 AA 和 BB 的定义如下: class AA public: AA() cout“0“; AA() cout“1“; ; class

    13、BB:public AA public: BB()cout“2“; BB()cout“3“; ; 且有如下主函数定义: int main() BB b: return0; 运行这个 main 函数的输出是(分数:2.50)A.0123B.0213C.2013D.023125.已知类 Base、Middle 和 Derived 的定义如下: class Base public: virtual void foo()cout“a“; ; class Middle: public Base public: void foo()cout“b“; ; class Derived: public Midd

    14、le public: void foo()cout“c“; ; 且有如下程序段: Base *p1; Middle *p2; Derived d; p1= p1-foo(); p2= p2-foo(); 运行这个程序段的输出是(分数:2.50)A.aaB.bbC.ccD.ab26.类 Base 及其派生类 Derived 的定义如下: class Base private: int a; public: int b; friend class Derived; ; class Derived: public Base public: void foo() a=0;/ b=0;/ ; 则下列说法

    15、正确的是(分数:2.50)A.编译时语句有错B.编译时语句有错C.编译时语句和均有错D.编译时语句和均无错27.已知类 Time 的定义如下: class Time/时间类 private: int hour, minute, second;/时、分、秒 public: Time(int h,int m, int s):hour(h),minute(m),second(s) _ switch(index) case0: return hour; case 1: return minute; default: return second; ; 其中横线处应为下标访问运算符的重载函数的函数头,横线

    16、处应填入的代码是(分数:2.50)A.int Array(int n=0) int start; if(n=1)start=n-1; else start=n; data0=start; data1=start+1; ; 且有如下程序段: Array arr(2); coutarr.data0arr.data1; 则执行这个程序段的输出是(分数:2.00)A.23B.32C.12D.21二、填空题(总题数:8,分数:28.00)30.在 ios_base 类中定义的用于控制输入输出格式的枚举常量中,用于控制对齐方式的 3 个常量的名字是 1。 (分数:3.50)31.在 ios_base 类中

    17、定义的用于控制输入输出格式的枚举常量中,用于控制浮点数表示形式(科学计数法、定点表示法)的 2 个常量的名字是 1。 (分数:3.50)32.表达式 cout“/n“还可表示为 1。 (分数:3.50)33.有如下的程序: #include iostream #include fstream using namespace std; int main() char s25=“Programming language“; ofstream f1(“DATA.TXT“); f1“C+Programming“; f1.close(); ifstream f2(“DATA.TXT“); if(f2.g

    18、ood()f2s; f2.close(); couts; return0; 执行上面的程序将输出 1。 (分数:3.50)34.下面的程序的输出是: TTTTTTTTTT5.23 5.23TTTTTTTTTT 请将下横线上遗漏部分补充完整: #include iomanip using namespace std; int main() double i=5.23; cout 1setw(14)i; coutendl 2setw( 3)i; return0; (分数:3.50)35.有如下的程序: #include iostream using namespace std; class AT

    19、friend ostream at; ostream int main() cout“MyHome“at“isH“; return0; 执行上面的程序将输出 1。 (分数:3.50)36.有如下的程序: #include iostream #include cstring using namespace std; class rev char*s; public: rev(const char*s) this-s=new charstrlen(s)+1; strcpy(this-s,s); rev(rev for(int i=0;istrlen(r.s);i+)si=r.sstrlen(r.s

    20、)-1-i; sstrlen(r.s)=0; rev() delete s; friend ostream ; ostreami=0;i-) osc.si; return os; int main() char *p=“Hello,world!“; rev hay(“Hay!“); coutrev(p)endl; coutrev(hay); return0; 执行上面的程序将输出 1。 (分数:3.50)37.有如下的程序: #include fstream using namespace std; int main () ofstream outf(“D: /temp“ ,ios_base:

    21、trunc); outf“World Wide Web“; outf.close (); ifstream inf(“D: /temp“); char s20; infs; inf.close(); couts; return0; 执行上面的程序将输出 1。 (分数:3.50)二级 C+-172 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:29,分数:72.00)1.C+流中重载了运算符,它是一个_。(分数:2.50)A.用于输出操作的成员函数B.用于输入操作的成员函数C.用于输入操作的非成员函数D.用于输出操作的非成员函数 解析:2.语句 ofstream f(“

    22、DATA.DAT“,ios_base:app |ios_base:binary);的功能是建立流对象 f,并试图打开文件 DATA.DAT 并与之连接,而且_。(分数:2.50)A.若文件存在,将文件指针定位于文件首;若文件不存在,建立一个新文件B.若文件存在,将其截为空文件;若文件不存在,打开失败C.若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件 D.若文件存在,打开失败;若文件不存在,建立一个新文件解析:3.在进行了任何 C+流的操作后,都可以用 C+流的有关成员函数检测流的状态;其中只能用于检测输入操作的函数的函数名是_。(分数:2.50)A.failB.eof C.b

    23、adD.good解析:4.执行语句序列 ofstream outfile(“DATA. DAT“); if(.)cout“OK“;else cout“FAIL“; 后,如果文件打开成功,显示“OK”,否则显示“FAIL”。由此可知,上面 if 语句的处的表达式是_。(分数:2.50)A.outfile.fail()或 outfileB.outfile.good()或!outfileC.out.file.good()或 outfile D.outfile.fail()或!outfile解析:5.下列关于函数的说法中,正确的是(分数:2.50)A.C+允许在函数体中定义其他函数B.所有的内联函数都

    24、要用 inline 说明C.仅函数返回类型不同的同名函数不能作为重载函数使用 D.有默认值的参数应从左至右逐个定义解析:6.下列关于构造函数的说法中,正确的是(分数:2.50)A.构造函数不能重载B.构造函数的返回值为 voidC.构造函数中可以使用 this 指针 D.用户必须为定义的类提供构造函数解析:7.下列不属于 C+规定的类继承方式的是(分数:2.50)A.protective B.privateC.protectedD.public解析:8.下列关于运算符重载的说法,错误的是(分数:2.50)A.new 和 delete 运算符可以重载B.重载运算符不能改变其原有的操作数个数C.三

    25、元运算符“?:”不能重载D.所有运算符既可以作为类的成员函数重载,又可以作为非成员函数重载 解析:9.下列关于函数模板的说法,正确的是(分数:2.50)A.在定义模板参数时关键字 typename 和 class 可以互换 B.函数模板的形参表中只能有虚拟类型参数C.调用函数模板时,模板实参永远不能省略D.在函数模板的声明中,只能使用 1 个虚拟类型参数解析:10.下列不属于 C+预定义的流对象的是(分数:2.50)A.cfile B.cinC.coutD.clog解析:11.下列不属于 C+关键字的是(分数:2.50)A.defaultB.unsignedC.go D.try解析:12.若变

    26、量 a 的定义为“int a=8;”,则下列逻辑表达式中其值为 false 的是(分数:2.50)A.a do i *=i; cout“#“; if(i1000) break; while(1); 运行这个程序段时,输出字符“#“的个数是(分数:2.50)A.3B.4 C.5D.6解析:14.有如下程序段: int *a=new int2; a0=0; a1=1; int *b= cout*b; 运行这个程序段将输出(分数:2.50)A.整数 1B.a0的地址C.a1的地址D.整数 0 解析:15.已知函数 foo 定义如下: void foo(int a, intb+;(*c)+; 且有如下

    27、程序段: int a=1,b=2,c=3; foo(a,b, coutabc; 运行这个程序段的输出是(分数:2.50)A.134 B.123C.234D.编译错误解析:16.已知类 MyClass 的定义如下: #include iostream using namespace std; class MyClass private: static int static:_data; const int const_data; public: MyClass(int d):const_data(d) static void fool() coutconst_data; / void foo2(

    28、)const coutstatic_data;/ ; int MyClass:static_data=0; 下列说法中正确的是(分数:2.50)A.编译时语句有错 B.编译时语句有错C.编译时语句均有错D.编译时语句均无错解析:17.已知类 Base 和类 Derived 的定义如下: class Base int n; public: Base(int d):n(d) ; class Derived: public Base public: _ ; 其中横线处应为类 Derived 的构造函数的定义。在下列构造函数的定义中,正确的是(分数:2.50)A.Derived(int i)Base(

    29、i);B.Derived(int i):Base(i) C.Derived(int i)n=i;D.Derived(int i):n(i)解析:18.已知类 CC 以成员函数方式重载了二元运算符*,c1 和 c2 是 CC 类的两个对象,则下列对该运算符的调用中错误的是(分数:2.50)A.c1*c2;B.c1.operator*(c2);C.operator*(c1,c2); D.c2.operator*(c1);解析:19.已知类模板 Test 定义如下: template typename T1, typename T2 class Test public: void foo(T2 t)

    30、; ; 则以下针对 foo 函数的类外定义中语法正确的是(分数:2.50)A.template typename T1, typename T2 void Test:fooT2(T2 t)B.template typename T1, typename T2 void Test:fooT1,T2(T2 t)C.template typename T1, typename T2 void TestT2:foo(T2 t)D.template typename T1, typename T2 void TestT1,T2:foo(T2 t) 解析:20.有如下输出语句: coutsetw(5)fi

    31、xedsetprecision(3)3.1415926; 此语句的输出结果是(分数:2.50)A.3.141B.3.142 C.3.1415D.3.1416解析:21.已知类 MyClass 的定义如下: class MyClass private: int num; public: MyClass(int d):num(d) MyClass(const MyClass 且有如下程序段: MyClass c(5); MyClass *p1; p1= print(*p1); print(c); 运行这个程序段的过程中,对类 MyClass 的复制构造函数的调用次数是(分数:2.50)A.4B.3

    32、C.2 D.1解析:22.已知类 Test 的定义如下: class Test private: static int num; public: void print(int num) cout+num; cout+this-num: ; int Test:num=0; 且有如下程序段: int main() Test t1.t2; t1. print(0); t2. print(1); return0; 运行这个程序段的输出是(分数:2.50)A.1234B.1233C.1122 D.1223解析:23.已知类 CC 和函数 test 的定义如下: class CC public: CC()

    33、cout“1“; CC()cout“0“; ; void test(CC c)cout“2“; 且有如下 main 函数: int main() CC c; test(c); return0; 运行这个 main 函数的输出是(分数:2.50)A.1200 B.11200C.1020D.1120解析:24.已知类 AA 和 BB 的定义如下: class AA public: AA() cout“0“; AA() cout“1“; ; class BB:public AA public: BB()cout“2“; BB()cout“3“; ; 且有如下主函数定义: int main() BB

    34、b: return0; 运行这个 main 函数的输出是(分数:2.50)A.0123B.0213C.2013D.0231 解析:25.已知类 Base、Middle 和 Derived 的定义如下: class Base public: virtual void foo()cout“a“; ; class Middle: public Base public: void foo()cout“b“; ; class Derived: public Middle public: void foo()cout“c“; ; 且有如下程序段: Base *p1; Middle *p2; Derived

    35、 d; p1= p1-foo(); p2= p2-foo(); 运行这个程序段的输出是(分数:2.50)A.aaB.bbC.cc D.ab解析:26.类 Base 及其派生类 Derived 的定义如下: class Base private: int a; public: int b; friend class Derived; ; class Derived: public Base public: void foo() a=0;/ b=0;/ ; 则下列说法正确的是(分数:2.50)A.编译时语句有错B.编译时语句有错C.编译时语句和均有错D.编译时语句和均无错 解析:27.已知类 Ti

    36、me 的定义如下: class Time/时间类 private: int hour, minute, second;/时、分、秒 public: Time(int h,int m, int s):hour(h),minute(m),second(s) _ switch(index) case0: return hour; case 1: return minute; default: return second; ; 其中横线处应为下标访问运算符的重载函数的函数头,横线处应填入的代码是(分数:2.50)A.int Array(int n=0) int start; if(n=1)start=

    37、n-1; else start=n; data0=start; data1=start+1; ; 且有如下程序段: Array arr(2); coutarr.data0arr.data1; 则执行这个程序段的输出是(分数:2.00)A.23 B.32C.12D.21解析:二、填空题(总题数:8,分数:28.00)30.在 ios_base 类中定义的用于控制输入输出格式的枚举常量中,用于控制对齐方式的 3 个常量的名字是 1。 (分数:3.50)解析:left, right, internal31.在 ios_base 类中定义的用于控制输入输出格式的枚举常量中,用于控制浮点数表示形式(科学

    38、计数法、定点表示法)的 2 个常量的名字是 1。 (分数:3.50)解析:fixed, scientific32.表达式 cout“/n“还可表示为 1。 (分数:3.50)解析:coutendl33.有如下的程序: #include iostream #include fstream using namespace std; int main() char s25=“Programming language“; ofstream f1(“DATA.TXT“); f1“C+Programming“; f1.close(); ifstream f2(“DATA.TXT“); if(f2.good

    39、()f2s; f2.close(); couts; return0; 执行上面的程序将输出 1。 (分数:3.50)解析:C+34.下面的程序的输出是: TTTTTTTTTT5.23 5.23TTTTTTTTTT 请将下横线上遗漏部分补充完整: #include iomanip using namespace std; int main() double i=5.23; cout 1setw(14)i; coutendl 2setw( 3)i; return0; (分数:3.50)解析:setfill(“T“) left 1435.有如下的程序: #include iostream using

    40、 namespace std; class AT friend ostream at; ostream int main() cout“MyHome“at“isH“; return0; 执行上面的程序将输出 1。 (分数:3.50)解析:MyHomeisH36.有如下的程序: #include iostream #include cstring using namespace std; class rev char*s; public: rev(const char*s) this-s=new charstrlen(s)+1; strcpy(this-s,s); rev(rev for(int

    41、 i=0;istrlen(r.s);i+)si=r.sstrlen(r.s)-1-i; sstrlen(r.s)=0; rev() delete s; friend ostream ; ostreami=0;i-) osc.si; return os; int main() char *p=“Hello,world!“; rev hay(“Hay!“); coutrev(p)endl; coutrev(hay); return0; 执行上面的程序将输出 1。 (分数:3.50)解析:!dlrow,olleH Hay!37.有如下的程序: #include fstream using namespace std; int main () ofstream outf(“D: /temp“ ,ios_base:trunc); outf“World Wide Web“; outf.close (); ifstream inf(“D: /temp“); char s20; infs; inf.close(); couts; return0; 执行上面的程序将输出 1。 (分数:3.50)解析:World


    注意事项

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




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

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

    收起
    展开