川大《面向对象程序设计2261》22春在线作业2[答案]
正确答案:B
《面向对象程序设计2261》22春在线作业2-00001
正确答案:B
试卷总分:100 得分:100
一、单选题 (共 30 道试题,共 60 分)
1.两个指针变量不可以()
A.相加
B.比较
C.相减
D.指向同一地址
正确答案:C
2.有如下类定义: class MyClass{ int value; public: MyClass(int n): value (n) {} int gerValue()const{ return value;} }; 则类 MyClass 的构造函数的个数是 ( )
A.1个
B.2个
C.3个
D.4个
正确答案:D
3.以下对二维数组a的正确说明是:()
A.inta[3][];
B.floata(3,4);
C.doublea[1][4];
正确答案:D
D.floata(3)(4);
正确答案:C
4.假定a为一个短整型(shortint)数组名,则元素a[8]的地址为()
A.a+4
B.a+8
C.a+16
D.a+32
正确答案:A
5.若有定义:intaa[8];则以下表达式中不能代表数组元aa[1]的地址的是()
A.&aa[0]+1
B.&aa[1]
C.&aa[0]++
D.aa+1
正确答案:B
6.如果短整型的长度是2字节,有一个短整型指针p的值是0xFFED1200,那么p+1的值为()
正确答案:B
A.0xFFED1201
正确答案:D
B.0xFFED1202
正确答案:B
C.0xFFED1203
正确答案:D
D.0xFFED1204
正确答案:A
7.数组名作为实参传递给形参时,数组名被处理为该数组的()
A.长度
B.元素个数
C.首地址
D.各元素的值
正确答案:B
8.已知Value是一个类,Value是Value的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是()
A.Valueoperator+(Valuev,inti);
B.Valueoperator+(Valuev=value,inti);
C.Valueoperator+(Valuevinti=0);
D.Valueoperator+(Valuev=value,inti=0);
正确答案:C
9.如果有如下定义:constchar*str="OK";那么,sizeof(str)的值应该是()
A.1
B.2
C.3
D.4
正确答案:D
10.下列哪个是C++语言的有效标识符?()
A._No1
B.No、1
C.12345
D.int
正确答案:B
11.如果定义了一个类myclass,则为myclass类对象以成员函数形式重载后++运算符的声明应该为()
A.myclassoperator++();
B.myclass& operator++();
C.myclassoperator++(int);
D.myclass& operator++(int);
正确答案:D
12.二叉查找树按()遍历时访问到节点的数据是排好序的
A.前序
B.中序
C.后序
D.层次
正确答案:B
13.十进制数127转换成二进制数是()
A.11111111
B.01111111
C.10000000
D.11111110
正确答案:B
14.若k为整形,则while循环执行( )次。 k=2; while(k==0) printf(“%d”,k); k--; printf(“ ”);
正确答案:C
A.10
B.9
C.0
D.1
正确答案:D
15.执行下列语句段后,输出字符“*”的个数是()for(inti=50;i>1;I-=2)cout<<~*~;
正确答案:D
A.24
B.25
C.26
D.50
正确答案:A
16.下列排序算法中,平均效率最低的排序算法是()
A.插入法
B.冒泡法
C.选择法
D.快速排序法
正确答案:A
17.在下列关键字中,不能用来表示继承方式的是()
A.private
B.static
C.public
D.protected
正确答案:C
21.如果在try块中用throw"error";语句抛出一个异常,则参数类型是()的catch块能够捕获这个异常。
A.char*
B.constchar*
C.Char
D.constchar
正确答案:D
19.当需要使用istrstream流类定义一个流类对象并联系一个字符串时,应在文件开始使用#include命令,使之包含()文件
正确答案:B
A.iostream、h
B.iomanip、h
C.fstream、h
D.ststreh
正确答案:B
20.下列语句分别是不同程序中的第一个输入输出语句,若去掉其中的“<<left”,输出效果将发生变化的是()
正确答案:C
A.cout<<left<<setfill(~*~)<<357;
B.cout<<left<<setw(5)<<357;
C.cout<<left<<setw(5)<<"ABCDE";
正确答案:B
D.cout<<left<<"ABCDE";
正确答案:D
21.下面是一个模板声明的开始部分: templute<typename T> double __ 由此可知 ( )
正确答案:A
A.这可能是一个函数模板的声明
B.这可能是一个类模板的声明
C.这既可能是一个函数模板的声明,也可能是一个类模板的声明
D.这肯定是一个错误的模板声明
正确答案:D
22.多重继承时,如果派生类的两个父类有一个共同的虚基类,那么虚基类的初始化参数由()的构造函数来传递
A.第一个父类
B.第二个父类
C.派生类
D.以上都不是
正确答案:D
23.在每个C++程序中都必须包含有这样一个函数,该函数的名称为()
A.main
B.MAIN
C.name
D.function
正确答案:B
24.有如下类和对象的定义: class Constants{ public: static double getPI(){return 3.1416;} }; Constants constants; 下列各组语句中,能输出 3.1416 的是 ( )
正确答案:A
A.cout<<constants->getPI();和cout<<Constants::gerPI();
B.cout<<constants.getPI();和cout<<Constants.getPI();
C.cout<<constants->getPI();和cout<<Constants->getPI();
D.cout<<constants.getPI();和cout<<Constants::getPI();
正确答案:D
25.下面函数调用语句含有实参的个数为: ( ) func((exp1,exp2),(exp3,exp4,exp5))
A.1
B.2
C.4
D.5
正确答案:D
26.父类和子类各自定义一个成员函数,函数名相同,参数表不同,那么()
A.在子类中这两个函数构成重载关系
B.子类不会继承父类的这个函数
C.子类中的函数会覆盖父类中的函数
D.编译时会发生错误
正确答案:C
27.C++异常处理机制中没有()
A.try
B.throw
C.catch
D.finally
正确答案:A