【计算机类职业资格】二级C++模拟501及答案解析.doc
《【计算机类职业资格】二级C++模拟501及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++模拟501及答案解析.doc(31页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+模拟 501 及答案解析(总分:171.00,做题时间:90 分钟)一、选择题(总题数:40,分数:71.00)1.有如下程序: # include ioslreclm Using namespace std; class Base public: Base(int x=0):valB(x)coutvalB; Base()coutvalB; Private: int valB; ; class, Derived: public Base public: Dcrived(int x=0,int y=0):Base(x),valD(y) coutvalD; Derived()coutva
2、lD; private: int valD; ; int main() Derived obj12(2,3); return 0; 运行时的输出结果是 _ ,(分数:2.50)A.2332B.2323C.3232D.32232.设有定义: class C public: int value; ; int x,*p; 则以下引用形式中,正确的是(分数:2.00)A.x=value;B.x=C:value;C.p= 则对数组元素不正确的引用是_。(分数:2.50)A.ap-aB.*(ai)C.piD.*(*(a+i)5.下列程序段中包含 4 个函数,其中具有隐含 this 指针的是 _ 。 int
3、 fun1(); class Test public: int fun2(); friend int fun3(); static int fun4(); ;(分数:2.00)A.fun1B.fun2C.fun3D.fun46.程序段“int x=12; double y=3.141593; printf(“%d%8.6“f“,x,y);”的输出结果是_。(分数:2.50)A.123.141593B.12 3.141593C.12,3.141593D.123.14159307.某二叉树有 5 个度为 2 的结点,则该二叉树中的叶子结点数是_。(分数:1.00)A.10B.8C.6D.48.下列
4、有关模板的叙述中,正确的是_。(分数:1.00)A.函数模板不能含有常规形参B.函数模板的一个实例就是一个函数定义C.类模板的成员函数不能是模板函数D.用类模板定义对象时,绝对不能省略模板实参9.下列程序的运行结果为 #includeiostream.h void main( ) int a2; int ba1; cout a/b endl; (分数:2.00)A.0.66667B.0C.0.7D.0.6666666610.有如下程序: #includeiostream using namespace std; class XX int x; public: XX(int xx=0):x(xx
5、) int getX()return x; ; class YY:public XX int y; public: YY(int xx,int yy):XX(xx),y(yy) int getV()return getX()+y; ; int main() YY c(3,4); coutc.getV()+c.getX()endl; return 0; 运行这个程序的输出结果是_。(分数:2.50)A.3B.4C.7D.1011.设有定义 char str80;以下不能将输入数据 first/nsecond/nCR读取到数组 str 中的语句是_。(分数:1.00)A.cin.get(str,s
6、trlen(str);B.cin.getline(str,strlen(str);C.cinstr;D.cin.read(str,strlen(str);12.一个函数带有参数说明时,则参数的默认值应该在 _ 中给出。(分数:2.00)A.函数定义B.函数声明C.函数定义或声明D.函数调用13.将下面类 TestClass 中的函数 fun()的对象成员 n 值修改为 100 的语句应该是 _ 。 class TcstClass public: TestClass(int x)n=x; void SetNum(int n1)n=n1; private: int n; int fun() Tes
7、tClass * ptr=new TestClass(45); _; (分数:2.00)A.TestClass(100)B.ptr-SetNum(100)C.SetNum(100)D.ptr-n=10014.下列程序的执行结果是_。 #include class Sampleint x,y;public:Sample()x=y=0;Sample(int a,int b)x=a;y=b;Sample()if(x=y)cout“x=y“endl;elsecout“x!=y“endl;void disp()cout“x=“x“,y=“yendl;void main()Sample s1(2,3);s
8、1.disp(); A.x=2,y=2 B.x=3,y=3 C.x=2,y=3 D.x=3,y=2A B C D C解析 本题考查类的构造函数和析构函数。首先,Samples1(2,3);会调用含有两个参数的构造函数Sample(int a,int b)x=a;y=b;,disp()函数输出成员变量 x 和 y 的值 x=2,y=3;然后结束时调用析构函数,因为 x 和 y 值不等,故输出 x!=y。(分数:1.00)A.x=2,y=2B.x=3,y=3C.x=2,y=3D.x=3,y=215.有如下程序段: int i=2; do i *=i; cout“#“; if(i1000) brea
9、k; while(1); 运行这个程序段时,输出字符“#“的个数是(分数:2.50)A.3B.4C.5D.616.有如下程序: #includeiostream #includestring using namespace std; class TV public: Tv(int s=2):size(s) TV(const TV private: int size; ; int main() TV room1(1), room2(room1), room3; TV*roomPtr=new TV(3); delete roomPtr; return 0; 运行时的输出结果是_。(分数:1.00)
10、A.3211B.3210C.3121D.232317.若要对 Data 类中重载的加法运算符成员函数进行声明,下列选项中正确的是_。(分数:2.50)A.Data+(Data);B.Data operator+(Data);C.Data+operator(Data);D.opcrator+(Data, Data);18.己知类 X 是类 Y 的友元,类 Y 是类 Z 的友元,则 _。(分数:2.00)A.类 X 一定是类 Z 的友元B.类 Z 一定是类 X 的友元C.类 Z 的成员函数可以访问类 Y 的对象的任何成员D.类 K 的成员函数可以访问类 Y 的对象的任何成员19.有如下程序: #i
11、ncludeiostream #includecstring using namespace std; class MyString public: char str80; MyString(const char*s) strcpy(str,s); MyString return*this; ; ostream int main() MyString x(“abc“),y(“cde“); cout(x+=y)endl; return 0; 运行这个程序的输出结果是_。(分数:2.00)A.abcB.cdeC.abcdeD.abccde20.下面类的定义,有 _ 处错误。 class MyCla
12、ss public: void MyClass(); MyClass(int value); private: int i0;(分数:2.00)A.1B.2C.3D.421.有如下类定义: class AA int a; public: int getRef()constreturn / int getValue()constreturn a; / void set(int n)consta=n; / friend void show(AA aa)constcouta;) / ; 其中的四个函数定义中正确的是_。(分数:2.00)A.B.C.D.22.以下非法的赋值语句是(分数:2.00)A.
13、n=(i=2,+i);B.j+;C.+(i+1);D.x=j0;23.下列关于 this 指针的描述中,正确的是_。(分数:2.00)A.类的成员函数都有 this 指针B.类的友元函数都有 this 指针C.任何与类相关的函数都有 this 指针D.类的非静态成员函数都有 this 指针24.若调用一个函数,且此函数中没有 return 语句,则正确的说法是该函数 _ 。(分数:1.00)A.没有返回值B.返回若干个系统默认值C.有返回值,但返回一个不确定的值D.返回一个用户所希望的函数值25.下面有关 for 循环的正确描述是(分数:1.00)A.for 循环只能用于循环次数已经确定的情况
14、B.for 循环是先执行循环体语句,后判断表达式C.在 for 循环中,不能用 break 语句跳出循环体D.for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来26.一棵二叉树共有 25 个结点,其中 5 个是叶子结点,则度为 1 的结点数为_。(分数:2.50)A.16B.10C.6D.427.关于 continue 语句叙述不正确的是_。(分数:1.00)A.continue 语句用于循环体中,结束循环B.continue 语句用于循环体中,它使执行流跳出循环体中尚未执行的语句,并进行下一循环判断C.continue 可以用于 if 语句中D.continue 语句不能代替
15、 break 语句28.有如下程序: #includeiostream using namespace std; class Pair int m,n; public: Pair(int j,int k):m(j),n(k) int get()return m; int get()constreturn m+n; ; int main() Pair a(3,5); const Pair b(3,5); couta.get()b.get(); return 0; 执行这个程序的输出结果是_。(分数:1.00)A.33B.38C.83D.8829.有如下类定义: class Sample publ
16、ic: Sample(int x):ref(x) / private: Sample():ref(0) / static int val=5; / const int ref; / ; 上述程序段中,错误的语句是_。(分数:1.00)A.B.C.D.30.下列叙述中错误的是_。(分数:2.50)A.用户定义的函数中可以没有 return 语句B.用户定义的函数中可以有多个 return 语句,以便可以调用一次返回多个函数值C.用户定义的函数中若没有 return 语句,则应当定义函数为 void 类型D.函数的 return 语句中可以没有表达式31.下列控制格式输入/输出的操作符中,能够设置
17、浮点数精度的是_。(分数:2.50)A.setprecisionB.setwC.setfillD.showpoint32.有如下类定义: class AA int a; public: AA(int n=0):a(n) ; class BB:public AA public: BB(int n)_ ; 其中横线处缺失部分是_。(分数:3.00)A.:a(n)B.:AA(n)C.a(n);D.a=n;33.下列叙述中正确的是(分数:2.00)A.所有形态的二叉树都只能采用链式存储结构B.循环队列是队列的一种存储方式C.栈只能采用顺序存储结构D.循环队列与循环链表都属于链式存储结构34.有如下头文
18、件: int f1(); static int f2(); class MA public: int f3(); static int f4(); ; 在所描述的函数中,具有隐含的 this 指针的是_。(分数:1.00)Af1Bf2Cf3Df435.将运算符重载为类成员函数时,其参数表中没有参数,说明该运算符是_。(分数:1.00)A.不合法的运算符B.一元运算符C.无操作数的运算符D.二元运算符36.下列叙述中正确的是_。(分数:1.00)A.栈是“先进先出”的线性表B.队列是“先进后出”的线性表C.循环队列是非线性结构D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构37.对于
19、一个类定义,下列叙述中错误的是_。(分数:1.00)A.如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数B.如果没有定义缺省的构造函数,编译器一定将生成一个缺省的构造函数C.如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数D.如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数38.下列关于纯虚函数与抽象类的描述中,错误的是_。(分数:2.50)A.纯虚函数是一种特殊的虚函数,它没有具体的实现B.抽象类是指具有纯虚函数的类C.一个基类声明了纯虚函数,该基类的派生类一定不是抽象类D.抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出39.关于 getl
20、ine()函数的下列描述中, _ 是错误的。(分数:1.00)A.该函数是用来从键盘上读取字符串的B.该函数读取的字符串长度是受限制的C.该函数读取字符串时,遇到终止符时便停止D.该函数中所使用的终止符只能是换行符40.下列符号中,正确的 C+标识符是_。(分数:2.00)A.enumB.100bitC.s-1D._int二、基本操作题(总题数:1,分数:30.00)41.请使用 VC6 或使用【答题】菜单打开 prog1 下的工程 prog1。此工程中包含程序文件 main.cpp,其中有类 Score(“成绩”)和主函数 main 的定义。程序中位于每个“/ ERROR *found*”之
21、后的一行语句有错误,请加以改正。改正后程序的输出结果应为: 学号:12345678 课程:英语 总评成绩:85 注意:只修改每个“/ ERROR *found*”下的一行,不要改动程序中的其他内容。 #include iostream using namespace std; class Score public: Score (const char * the_course, const char * the_id, int the_normal, int the_midterm, int the_end_of_term : course(the_course), normal(the_no
22、rmal), midterm(the_midterm), end_of_term(the_end_of_term) / ERROR *found* strcpy (the_id, student_id); const char * getCourse() const return course; /返回课程名称 / ERROR *found* const char * getID() const return /返回学号 int getNormal() const return normal; /返回平时成绩 int getMidterm() const return midterm; /返回
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 模拟 501 答案 解析 DOC
