aopeng 发表于 2017-5-11 02:50:13

川大17春《面向对象程序设计(1)》在线作业12答案

《面向对象程序设计(1)》17春在线作业1

一、单选题:
1.数组名表示的是数组的(    )。          (满分:2)
A. 类型
B. 用途
C. 地址
D. 长度
2.下列排序算法中,平均效率最低的排序算法是(    )。          (满分:2)
A. 插入法
B. 冒泡法
C. 选择法
D. 快速排序法
3.二叉查找树按(    )遍历时访问到节点的数据是排好序的。          (满分:2)
A. 前序
B. 中序
C. 后序
D. 层次
4.如果在try块中用throw "error";语句抛出一个异常,则参数类型是(    )的catch块能够捕获这个异常。          (满分:2)
A. char *
B. const char *
C. Char
D. const char
5.使用流控制符(    )需要头文件。          (满分:2)
A. endl
B. hex
C. setw
D. left
6.C++异常处理机制中没有(    )。          (满分:2)
A. try
B. throw
C. catch
D. finally
7.如果myclass类定义了拷贝构造函数和一个整型参数的构造函数,还重载了赋值运算符,那么语句myclass obj = 100;会(  )。          (满分:2)
A. 调用拷贝构造函数
B. 调用整型参数的构造函数
C. 调用赋值运算符
D. 引起编译错误
8.private访问属性限制对象的成员可以在(    )中访问。          (满分:2)
A. 本类的成员函数
B. main函数
C. 父类的成员函数
D. 子类的成员函数
9.链表的基本单元是(    )。          (满分:2)
A. 节点
B. 头指针
C. 尾指针
D. 数据域
10.执行语句char ch[] = "Hello";char * p = &ch;cout结果是输出 (    )。          (满分:2)
A. 一个地址
B. H
C. Hello
D. 乱码
11.要打开一个文件并从中读取数据,应该使用(    )类的对象。          (满分:2)
A. istream
B. ostream
C. ifstream
D. ofstream
12.队列的最大特征是(    )。          (满分:2)
A. 先进先出
B. 后进先出
C. 自动排序
D. 大数优先
13.二进制数00001001跟01000011异或的结果为(    )。          (满分:2)
A. 01001011
B. 00000001
C. 01001010
D. 01001100
14.如果有如下定义: const char* str = "OK";那么,sizeof(str)的值应该是(    )。          (满分:2)
A. 1
B. 2
C. 3
D. 4
15.用cin为整型变量输入数据时,如果从键盘输入的不是数字,输入后整型变量中的结果会是:          (满分:2)
A. 0
B. 负数
C. 正数
D. 不确定
16.C++函数的声明和定义可以分开,函数声明不需要(    )。          (满分:2)
A. 返回类型
B. 函数名
C. 参数表
D. 函数体
17.以下不能正确进行字符串赋初值的语句是(    )。          (满分:2)
A. char str="good!";
B. char str[]="good!";
C. char *str="good!";
D. char str={'g'
'o'
'o'
'd'};
18.一个类如果没有定义任何函数,编译器不会自动为这个类产生(    )。          (满分:2)
A. 拷贝构造函数
B. 无参构造函数
C. 输出流运算符
D. 赋值运算符
19.C++泛型编程通过(    )实现。          (满分:2)
A. void
B. template
C. NULL
D. typedef
20.函数的形参是(    )。          (满分:2)
A. 全局变量
B. 局部变量
C. 静态变量
D. 部变量
21.如果定义了一个类myclass,则为myclass类对象以成员函数形式重载后++运算符的声明应该为(    )。          (满分:2)
A. myclass operator++(    );
B. myclass& operator++(    );
C. myclass operator++( int );
D. myclass&  operator++( int );
22.多重继承时,如果派生类的两个父类有一个共同的虚基类,那么虚基类的初始化参数由(    )的构造函数来传递。          (满分:2)
A. 第一个父类
B. 第二个父类
C. 派生类
D. 以上都不是
23.如果短整型的长度是2字节,有一个短整型指针p的值是0xFFED1200,那么p+1的值为(    )。          (满分:2)
A. 0xFFED1201
B. 0xFFED1202
C. 0xFFED1203
D. 0xFFED1204
24.十进制数127转换成二进制数是(    )。          (满分:2)
A. 11111111
B. 01111111
C. 10000000
D. 11111110
25.父类和子类各自定义一个成员函数,函数名相同,参数表不同,那么(    )。          (满分:2)
A. 在子类中这两个函数构成重载关系
B. 子类不会继承父类的这个函数
C. 子类中的函数会覆盖父类中的函数
D. 编译时会发生错误
26.判断一个ofstream类对象file打开文件是否失败,应该判断(    )。          (满分:2)
A. 创建文件流对象时是否抛出异常
B. open成员函数的返回值
C. feof成员函数的返回值
D. !file是否为真
27.多态性是通过(    )实现的。          (满分:2)
A. 构造函数
B. 析构函数
C. 虚函数
D. 函数重载
28.若有定义:int aa[ 8];。则以下表达式中不能代表数组元aa的地址的是(    )。          (满分:2)
A. &aa+1
B. &aa
C. &aa++
D. aa+1
29.抽象类指的是(    )。          (满分:2)
A. 没有任何成员的类
B. 只有成员函数没有数据成员的类
C. 有虚函数的类
D. 有纯虚函数的类
30.下面不支持下标操作的容器是(    )。          (满分:2)
A. vector
B. deque
C. list
D. map
二、多选题:
1.面向对象的编程方法的主要特征包括(    )。          (满分:4)
A. 封装
B. 继承
C. 多态
D. 消息
2.流程控制语句有(    )几种。          (满分:4)
A. 条件语句
B. 循环语句
C. 分支语句
D. 表达式语句
3.类成员的访问属性可以是(    )。          (满分:4)
A. public
B. protected
C. private
D. default
4.for语句的格式为for(表达式1;表达式2;表达式3),其中可以省略的是 (    )。          (满分:4)
A. 两个分号
B. 表达式1
C. 表达式2
D. 表达式3
5.C++中变量要求(    )。          (满分:4)
A. 有明确的类型
B. 先声明后使用
C. 名字中不能使用下划线
D. 严格区分大小写
三、判断题:
1.int可以定义为用户标识符。          (满分:4)
A. 错误
B. 正确
2.重载函数形参个数可以不同。          (满分:4)
A. 错误
B. 正确
3.C++语言是从早期的C语言逐渐发展演变而来的,与C语言相比,它在求解问题方法上进行的最大改进是面向过程。          (满分:4)
A. 错误
B. 正确
4.C++语言的跳转语句中,break语句只应用于循环体中。          (满分:4)
A. 错误
B. 正确
5.结构化程序设计的基本方法是递归法。          (满分:4)
A. 错误
B. 正确
《面向对象程序设计(1)》17春在线作业2

一、单选题:
1.有如下类和对象的定义:class Constants{public:static double getPI(    ){return 3.1416;}};Constants constants;下列各组语句中,能输出 3.1416 的是(    )。          (满分:2)
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(    )。
2.有如下类定义:class MyClass{int value; public:MyClass(int n): value(n) {}int gerValue(    )const{ return value;}};则类 MyClass 的构造函数的个数是(    )。          (满分:2)
A. 1个
B. 2个
C. 3个
D. 4个
3.假定a 为一个短整型(short   int)数组名,则元素a的地址为(    )。          (满分:2)
A. a+4
B. a+8
C. a+16
D. a+32
4.在定义int a;后,第10个元素是(    )。          (满分:2)
A. a
B. a
C. a
D. a
5.有如下类定义:class Point{private;static int howmany;};(    )(    ) howmany=0; 要初始化 Point 类的静态成员 howmany,下划线处应填入的内容是:          (满分:2)
A. ing
B. static int
C. int Point::
D. static int Point::
6.已知函数 f 的原型是 void f(int *a
long & b);,变量 v1、v2 的定义是:int v1; loong v2;下列调用语句中正确的是 (    )。          (满分:2)
A. f(v1
&v2)
B. f(v1
v2)
C. f(&v1
&v2)
D. f(&v1
v2)
7.当需要使用istrstream流类定义一个流类对象并联系一个字符串时,应在文件开始使用#include命令,使之包含(    )文件。          (满分:2)
A. iostream、h
B. iomanip、h
C. fstream、h
D. ststrea、h
8.假定AB   为一个类,则执行“AB   a(4)
b
*p”语句时,自动调用该类构造函数的次数为(    )。          (满分:2)
A. 4
B. 5
C. 8
D. 13
9.有如下定义:int a={1
3
5
7
9}
*p=a;下列表达式中不能得到数值 5 的是 (    )。          (满分:2)
A. a
B. a
C. *(p+2)
D. *p+4
10.下列有关抽象类和纯虚函数的叙述中,错误的是(    )。          (满分:2)
A. 拥有纯虚函数的类是抽象类,不能用来定义对象;
B. 抽象类的派生类若不实现纯虚函数,它也是抽象类;
C. 纯虚函数的声明以“=0;”结束;
D. 纯虚函数都不能有函数体
11.若已定义int a=5;下面对(1),(2)两个语句正确理解的是(    )。(1)int *p=&a;(2)*p=a;          (满分:2)
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
12.在每个C++程序中都必须包含有这样一个函数,该函数的名称为(    )。          (满分:2)
A. main
B. MAIN
C. name
D. function
13.下面是一个模板声明的开始部分:templute double 由此可知(    )。          (满分:2)
A. 这可能是一个函数模板的声明
B. 这可能是一个类模板的声明
C. 这既可能是一个函数模板的声明,也可能是一个类模板的声明
D. 这肯定是一个错误的模板声明
14.若有说明:int *p1
*p2
m=5
n;以下均是正确赋值语句的是(    )。          (满分:2)
A. p1=&m
p2=&p1
B. p1=&m;p2=&n;*p1=*p2
C. p1=&m;p1=p2
D. p1=&m;*p2=*p1
15.C++源文件的缺省扩展名为(    )。          (满分:2)
A. cpp
B. exe
C. obj
D. lik
16.下面的选项中正确的赋值语句是(char a
*p=a;)。          (满分:2)
A. p=“abcd”;
B. a=“abcd”;
C. *p=“abcd”;D*a=“abcd”;
17.下列语句分别是不同程序中的第一个输入输出语句,若去掉其中的“<<left”,输出效果将发生变化的是(    )。          (满分:2)
A. cout<<left<<setfill(~*~)<<357;
B. cout<<left<<setw(5)<<357;
C. cout<<left<<setw(5)<<"ABCDE";
D. cout<<left<<"ABCDE";
18.执行下列语句段后,输出字符“*”的个数是 (    )。for(int i=50; i>1; I-=2)cout          (满分:2)
A. 24
B. 25
C. 26
D. 50
19.数组名作为实参传递给形参时
数组名被处理为该数组的(    )。          (满分:2)
A. 长度
B. 元素个数
C. 首地址
D. 各元素的值
20.以下对二维数组a的正确说明是:(    )。          (满分:2)
A. int a[];
B. float a(3
4);
C. double a;
D. float a(3)(4);
21.若k为整形,则while循环执行(    )次。k=2; while(k==0) printf(“%d”
k); k--; printf(“\n”);          (满分:2)
A. 10
B. 9
C. 0
D. 1
22.程序运行中需要从键盘上输入多于一个数据时,各数据之间应该使用(    )符号作为分隔符。          (满分:2)
A. 空格或逗号
B. 逗号或回车
C. 逗号或分号
D. 空格或回车
23.在下列关键字中,不能用来表示继承方式的是(    )。          (满分:2)
A. private
B. static
C. public
D. protected
24.两个指针变量不可以(    )。          (满分:2)
A. 相加
B. 比较
C. 相减
D. 指向同一地址
25.C++语言对C语言做了很多改进
C++语言相对于C语言的最根本的变化是(    )。          (满分:2)
A. 增加了一些新的运算符
B. 允许函数重载,并允许设置缺省参数
C. 规定函数说明符必须用原型
D. 引进了类和对象的概念
26.有如下 4 个语句:① cout② cout③ cout④ cout其中能显示 A******B 的是(    )。          (满分:2)
A. ①和③
B. ①和④
C. ②和③
D. ②和④
27.已知 Value 是一个类,Value 是 Value 的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是(    )。          (满分:2)
A. Value operator+(Value v
int i);
B. Value operator+(Value v=value
int i);
C. Value operator+(Value vint i=0);
D. Value operator+(Value v=value
int i=0);
28.下面函数调用语句含有实参的个数为:func((exp1
exp2)
(exp3
exp4
exp5))          (满分:2)
A. 1
B. 2
C. 4
D. 5
29.设有定义int x; float v;,则10+x+v值的数据类型是(    )。          (满分:2)
A. int
B. double
C. float
D. 不确定
30.下列哪个是C++语言的有效标识符?          (满分:2)
A. No1
B. No、1
C. 12345
D. int
二、多选题:
1.模板定义中的类型参数可以用作(    )。          (满分:4)
A. 局部变量类型
B. 函数参数类型
C. 函数返回值类型
D. 数据成员类型
2.两个同名函数构成重载关系,只要(    )不同。          (满分:4)
A. 返回类型
B. 参数个数
C. 参数类型
D. 函数头后有无const
3.构造函数(    )。          (满分:4)
A. 函数名只能是类名
B. 返回类型可以是任意的
C. 参数个数和类型可以是任意的
D. 在对象创建时自动调用
4.关于公共静态数据成员,下面说法正确的是(    )。          (满分:4)
A. 在main函数之前创建
B. 跟某个具体对象无关
C. 可以用类名和成员名直接访问
D. 需要在类体外初始化
5.设有定义语句:int x={2,4,6,8,5,7},*p=x,i; 要求依次输出x数组6个元素中的值,下列选项中能完成次操作的语句有(    )。          (满分:4)
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)++);
三、判断题:
1.C++程序从上机到得到结果的几个操作步骤依次是:编辑、编译、连接、运行。          (满分:4)
A. 错误
B. 正确
2.逻辑运算符两侧运算对象的数据类型只能是0或1。          (满分:4)
A. 错误
B. 正确
3.字符串"ab\\\n"在机器中占6个字节。          (满分:4)
A. 错误
B. 正确
4.宏名必须用大写字母表示。          (满分:4)
A. 错误
B. 正确
5.1.234e0为C++语言合法常量。          (满分:4)
A. 错误
B. 正确

转载请注明无忧答案网
页: [1]
查看完整版本: 川大17春《面向对象程序设计(1)》在线作业12答案