【计算机类职业资格】二级C++-172及答案解析.doc
《【计算机类职业资格】二级C++-172及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++-172及答案解析.doc(20页珍藏版)》请在麦多课文档分享上搜索。
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:
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 C172 答案 解析 DOC
