2008年9月计算机等级考试 |
第1题:在下列原型所示的C++函数中,按“传值”方式传递参数的是()。 A.voidf1(intx); B.voidf2(int*x); C.voidf3(constint*x); D.voidf4(int&x); |
【单选题】: |
第2题:在C++中,编译系统自动为一个类生成缺省构造函数的条件是()。 A.该类没有定义任何有参构造函数 B.该类没有定义任何无参构造函数 C.该类没有定义任何构造函数 D.该类没有定义任何成员函数 |
【单选题】: |
第3题:在一个派生类的成员函数中,试图调用其基类的成员函数“voidf();”,但无法通过编译。这说明()。 A.f()是基类的私有成员 C.派生类的继承方式为私有 B.f()是基类的保护成员 D.派生类的继承方式为保护 |
【单选题】: |
第4题:下列关于运算符重载的叙述中,错误的是()。 A.有的运算符可以作为非成员函数重载 B.所有的运算符都可以通过重载而被赋予新的含义 C.不得为重载的运算符函数的参数设置默认值 D.有的运算符只能作为成员函数重载 |
【单选题】: |
第5题:下列关于模板的叙述中,错误的是()。 A.调用模版函数时,在一定条件下可以省略模板实参 B.可以用int、double这样的类型修饰符来声明模版参数 C.模板声明中的关键字class都可以用关键字typename替代 D.模板的形参表中可以有多个参数 |
【单选题】: |
第6题:要利用C++流进行文件操作,必须在程序中包含的头文件是()。 A.iostream B.fstream C.strstream D.iomanip |
【单选题】: |
第7题:下列语句中错误的是()。 A.constinta; B.constinta=10; C.constint*point=0; D.constint*point=newint(10); |
【单选题】: |
第8题: 有如下程序: #inCluDE<iostrEAm>&nBsp; using nAmEspACE stD; int mAin(){ int sum;&nBsp; For(int i=0; i<6; i+=3){ sum=i;&nBsp;&nBsp;&nBsp;&nBsp;&nBsp;&nBsp; For(int j = i; j<6; j++)sum+=j; }&nBsp;&nBsp; Cout<<sum<<EnD1;&nBsp; rEturn 0; }&nBsp; 运行时的输出结果是( )。 A)3&nBsp;&nBsp; B)10&nBsp;&nBsp; C)12&nBsp;&nBsp; D)15 &nBsp; |
【单选题】: |
第9题:下列语句中,正确的是()。 A.char*myString="Hello-World!"; B.charmyString="Hello-World!"; C.charmyString[11]="Hello-World!"; D.charmyString[12]="Hello-World!"; |
【单选题】: |
第10题:若已经声明了函数原型“voidfun(inta,doubleb=0.0);”,则下列重载函数声明中正确的是()。 A.voidfun(inta=90,doubleb=0.0); B.intfun(inta,doubleB); C.voidfun(doublea,intB); D.boolfun(inta,doubleb=0.0); |
【单选题】: |
第11题: 有如下程序: #inCluDE<iostrEAm>&nBsp; using nAmEspACE stD; ClAss sAmplE{ puBliC:&nBsp; sAmplE(){}&nBsp;&nBsp; ~sAmplE(){Cout<<'*';} };&nBsp; int mAin(){&nBsp; sAmplE tEmp[2], *ptEmp[2];&nBsp; rEturn 0; }&nBsp; 执行这个程序输出星号(*)的个数为( )。 A)1&nBsp; B)2&nBsp;&nBsp; C)3&nBsp;&nBsp; D)4 |
【单选题】: |
第12题:下列选项中,与实现运行时多态性无关的是()。 A.重载函数 B.虚函数 C.指针 D.引用 |
【单选题】: |
第13题:下列模板声明中,有语法错误的是()。 A.templateT fun(T x){return x;} B.templateT fun(T x, int n){return x*n;} C.templateT fun(T *p){return *p;} D.templateT classA{T n;}; |
【单选题】: |
第14题:在语句“cout<<'A';”中,cout是()。 A.类名 B.对象名 C.函数名 D.C++的关键字 |
【单选题】: |
第15题: 有如下程序: #inCluDE<iostrEAm> using nAmEspACE stD; ClAss myClAss{&nBsp; puBliC:&nBsp; myClAss(int x):vAl(x){} voiD sEt(int x){vAl=x;}&nBsp;&nBsp; &nBsp;voiD print()Const{Cout<<"vAl="<<vAl<<'\t';} privAtE:&nBsp; int vAl;&nBsp; };&nBsp; int mAin(){&nBsp; Const myClAss oBj1(10); myClAss oBj2(20); oBj1.print(); //语句 1 oBj2.print(); //语句 2 oBj1.sEt(20); //语句 3 oBj2.sEt(30); //语句 4 rEturn 0; }&nBsp; 其主函数中错误的语句是( )。&nBsp; A)语句 1&nBsp;&nBsp;&nBsp; B)语句 2&nBsp;&nBsp;&nBsp;&nBsp;&nBsp;&nBsp;&nBsp;&nBsp; C)语句 3&nBsp;&nBsp;&nBsp; D)语句 4 |
【单选题】: |
第16题:在类声明中,紧跟在“public:”后声明的成员的访问权限是()。 A.私有 B.公有 C.保护 D.默认 |
【单选题】: |
第17题:对于通过公有继承定义的派生类,若其成员函数可以直接访问基类的某个成员,说明该基类成员的访问权限是()。 A.公有或私有 B.私有 C.保护或私有 D.公有或保护 |
【单选题】: |
第18题:定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为()。 A.私有继承 B.非私有继承 C.保护继承 D.公有继承 |
【单选题】: |
第19题:建立一个有成员对象的派生类对象时,各构造函数体的执行次序为()。 A.派生类、成员对象类、基类 B.成员对象类、基类、派生类 C.基类、成员对象类、派生类 D.基类、派生类、成员对象类 |
【单选题】: |
第20题:如果表达式a>=b中的“>=”是作为非成员函数重载的运算符,则可以等效地表示为()。 A.a.operator>=(b) B.b.operatotr>=(a) C.operator>=(a,b) D.operator>=(b,a) |
【单选题】: |
第21题:当使用ofstream流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为()。 A.iosbase::in B.ios_base::binary C.ios_base::in|ios_base::out D.ios_base::out |
【单选题】: |
第22题:在一个抽象类中,一定包含有()。 A.虚函数 B.纯虚函数 C.模板函数 D.重载函数 |
【单选题】: |
第23题:当使用关键字____作为函数返回类型时,该函数不返回任何值。 |
【填空题】: |
第24题: 已知数组 A 中有 n 个元素,下列语句将数组 A 中从下标 x1 开始的 k 个元素移动到从下标 x2 开始的 k 个元素中,其中 0<=x1<x2<n,x2+k<n,请将下列语句补充完整。 For (int i = x1+k-1; i>=x1; i--) A[__]=A[i];&nBsp; |
【填空题】: |
第25题: 有如下程序: #inCluDE<iostrEAm>&nBsp; using nAmEspACE stD;&nBsp; &nBsp;int Fun1(int x) {rEturn++x;}&nBsp; int Fun2(int &Amp;x) {rEturn++x;} int mAin(){ int x=1,y=2;&nBsp; y=Fun 1(Fun2(x)); Cout<<x<<','<<y;&nBsp; rEturn 0:&nBsp; }&nBsp; 程序的输出结果是__ &nBsp; |
【填空题】: |
第26题: 有如下程序: #inCluDE<iostrEAm>&nBsp; using nAmEspACE stD; ClAss pumpkin{&nBsp; puBliC:&nBsp; pumpkin(){++Count;} ~pumpkin(){--Count;} stAtiC voiD totAl_Count(){&nBsp; Cout<<Count<<"pumpkin(s)"<<EnDl; }&nBsp;&nBsp; privAtE:&nBsp;&nBsp; stAtiC int Count;&nBsp; };&nBsp; &nBsp;int pumpkin::Count=0; int mAin(){&nBsp; pumpkin pl[10];&nBsp; pumpkin::totAl_Count();&nBsp; rEturn 0;&nBsp; }&nBsp; 这个程序的输出结果是____。 &nBsp; |
【填空题】: |
第27题:有如下递归函数: int Fun(int n){ if(n<=1) return 1; __} 请补充完整,使得函数 Fun 能够正确计算形参 n 的阶乘。 |
【填空题】: |
第28题: 请在下列程序中的空格处填写正确的语句: ClAss sAmplE{ puBliC:&nBsp; sAmplE(){}&nBsp; ~sAmplE(){}&nBsp;&nBsp; voiD sEtDAtA(int DAtA)&nBsp;&nBsp; { //将 sAmplE 类成员变量 DAtA 设置成形参的值 ____ //注意形参与成员同名 }&nBsp;&nBsp; privAtE: int DAtA; };&nBsp; |
【填空题】: |
第29题: 有如下类定义,请将sAmplE类的拷贝构造函数补充完整。 ClAss sAmplE{&nBsp; puBliC: sAmplE(){)&nBsp; ~sAmplE() {iF(p) DElEtE p;) sAmplE (Const sAmplE&Amp; s){ ____&nBsp; }&nBsp;&nBsp; voiD sEtDAtA(int DAtA) {p=nEw int(DAtA);} privAtE:&nBsp; int*p;&nBsp; };&nBsp; |
【填空题】: |
第30题:重载加法运算符“+”,其函数名是__ |
【填空题】: |