川大20年秋《面向对象程序设计2261》在线作业1【答案】奥鹏作业满分答案
《面向对象程序设计2261》在线作业1
试卷总分:100 得分:100
一、单选题 (共 30 道试题,共 60 分)
1.多态性是通过()实现的
A.构造函数
B.析构函数
C.虚函数
D.函数重载
2.二进制数00001001跟01000011异或的结果为()
A.01001011
B.00000001
C.01001010
D.01001100
3.C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是()
A.增加了一些ABC运算符
B.允许函数重载,并允许设置缺省参数
C.规定函数说明符必须用原型
D.引进了类和对象的概念
4.判断一个ofstream类对象file打开文件是否失败,应该判断()
A.创建文件流对象时是否抛出异常
B.open成员函数的返回值
C.feof成员函数的返回值
D.!file是否为真
5.C++泛型编程通过()实现
A.void
B.template
C.NULL
D.typedef
6.下面不支持下标操作的容器是()
A.vector
B.deque
C.list
D.map
7.二叉查找树按()遍历时访问到节点的数据是排好序的
A.前序
B.中序
C.后序
D.层次
8.若已定义inta=5;下面对(1),(2)两个语句正确理解的是()(1)int*p=&a;(2)*p=a;
A.(1)(2)中的*P含义相同,都表示给指针变量P附值
B.(1)(2)的执行结果都是把变量a的地址值赋给指针变量P
C.(1)在对P进行说明的同时进行初始化,使P指向a,(2)将变量a的值赋给指针变量P
D.(1)在对P进行说明的同时进行初始化,使P指向a,(2)将变量a的值赋给*P
9.下面的选项中正确的赋值语句是(chara[5],*p=a;)()
A.p=“abcd”;
B.a=“abcd”;
C.*p=“abcd”;D*a=“abcd”;
10.十进制数127转换成二进制数是()
A.11111111
B.01111111
C.10000000
D.11111110
11.在下列关键字中,不能用来表示继承方式的是()
A.private
B.static
C.public
D.protected
12.程序运行中需要从键盘上输入多于一个数据时,各数据之间应该使用()符号作为分隔符
A.空格或逗号
B.逗号或回车
C.逗号或分号
D.空格或回车
13.当需要使用istrstream流类定义一个流类对象并联系一个字符串时,应在文件开始使用#include命令,使之包含()文件
A.iostream、h
B.iomanip、h
C.fstream、h
D.ststreh
14.有如下类定义: class Point{ private; static int how_many; }; ___________ how_many=0; 要初始化 Point 类的静态成员 how_many,下划线处应填入的内容是
A.ing
B.staticint
C.intPoint::
D.staticintPoint::
15.若有定义:intaa[8];则以下表达式中不能代表数组元aa[1]的地址的是()
A.&aa[0]+1
B.&aa[1]
C.&aa[0]++
D.aa+1
16.如果在try块中用throw"error";语句抛出一个异常,则参数类型是()的catch块能够捕获这个异常。
A.char*
B.constchar*
C.Char
D.constchar
17.两个指针变量不可以()
A.相加
B.比较
C.相减
D.指向同一地址
21.C++源文件的缺省扩展名为()
A.cpp
B.exe
C.obj
D.lik
19.若k为整形,则while循环执行( )次。 k=2; while(k==0) printf(“%d”,k); k--; printf(“ ”);
A.10
B.9
C.0
D.1
20.执行语句 char ch[] = "Hello"; char * p = &ch[0]; cout<<*p 结果是输出 ( )。
A.一个地址
B.H
C.Hello
D.乱码
21.下面是一个模板声明的开始部分: templute<typename T> double __ 由此可知 ( )
A.这可能是一个函数模板的声明
B.这可能是一个类模板的声明
C.这既可能是一个函数模板的声明,也可能是一个类模板的声明
D.这肯定是一个错误的模板声明
22.C++异常处理机制中没有()
A.try
B.throw
C.catch
D.finally
23.已知Value是一个类,Value是Value的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是()
A.Valueoperator+(Valuev,inti);
B.Valueoperator+(Valuev=value,inti);
C.Valueoperator+(Valuevinti=0);
D.Valueoperator+(Valuev=value,inti=0);
24.一个类如果没有定义任何函数,编译器不会自动为这个类产生()
A.拷贝构造函数
B.无参构造函数
C.输出流运算符
D.赋值运算符
25.在每个C++程序中都必须包含有这样一个函数,该函数的名称为()
A.main
B.MAIN
C.name
D.function
26.以下对二维数组a的正确说明是:()
A.inta[3][];
B.floata(3,4);
C.doublea[1][4];
D.floata(3)(4);
27.用cin为整型变量输入数据时,如果从键盘输入的不是数字,输入后整型变量中的结果会是:()
A.0
B.负数
C.正数
D.不确定
28.数组名作为实参传递给形参时,数组名被处理为该数组的()
A.长度
B.元素个数
C.首地址
D.各元素的值
29.如果有如下定义:constchar*str="OK";那么,sizeof(str)的值应该是()
A.1
B.2
C.3
D.4
30.如果定义了一个类myclass,则为myclass类对象以成员函数形式重载后++运算符的声明应该为()
A.myclassoperator++();
B.myclass& operator++();
C.myclassoperator++(int);
D.myclass& operator++(int);
川大20年秋《面向对象程序设计2261》在线作业1【答案】奥鹏作业多选题答案
二、多选题 (共 5 道试题,共 20 分)
31.关于公共静态数据成员,下面说法正确的是()
A.在main函数之前创建
B.跟某个具体对象无关
C.可以用类名和成员名直接访问
D.需要在类体外初始化
32.设有定义语句: int x[6]={2,4,6,8,5,7},*p=x,i; 要求依次输出x数组6个元素中的值,下列选项中能完成次操作的语句有_( )、
A.for(i=0;i<6;i++)printf(“%2d”,*(p++));
B.for(i=0;i<6;i++)printf(“%2d”,*(p+i));
C.for(i=0;i<6;i++)printf(“%2d”,*p++);
D.for(i=0;i<6;i++)printf(“%2d”,(*p)++);
33.面向对象的编程方法的主要特征包括()
A.封装
B.继承
C.多态
D.消息
34.构造函数()
A.函数名只能是类名
B.返回类型可以是任意的
C.参数个数和类型可以是任意的
D.在对象创建时自动调用
35.模板定义中的类型参数可以用作()
A.局部变量类型
B.函数参数类型
C.函数返回值类型
D.数据成员类型
三、判断题 (共 5 道试题,共 20 分)
36.宏名必须用大写字母表示。()
37.逻辑运算符两侧运算对象的数据类型只能是0或1。()
38.1.234e0为C++语言合法常量。()
39.字符串"ab "在机器中占6个字节。()
川大20年秋《面向对象程序设计2261》在线作业1【答案】奥鹏作业标准满分答案