|
《面向对象程序设计2261》17春在线作业1
一、单选题:
1.执行语句char ch[] = "Hello";char * p = &ch[0];cout<<*p 结果是输出 ( )。 (满分:2)
A. 一个地址
B. H
C. Hello
D. 乱码
2.有如下类和对象的定义: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( );
3.在每个C++程序中都必须包含有这样一个函数,该函数的名称为( ) (满分:2)
A. main
B. MAIN
C. name
D. function
4.假定AB为一个类,则执行“ABa(4),b[4],*p[5]”语句时,自动调用该类构造函数的次数为( ) (满分:2)
A. 4
B. 5
C. 8
D. 13
5.private访问属性限制对象的成员可以在( )中访问 (满分:2)
A. 本类的成员函数
B. main函数
C. 父类的成员函数
D. 子类的成员函数
6.如果有如下定义:constchar*str="OK";那么,sizeof(str)的值应该是( ) (满分:2)
A. 1
B. 2
C. 3
D. 4
7.程序运行中需要从键盘上输入多于一个数据时,各数据之间应该使用( )符号作为分隔符 (满分:2)
A. 空格或逗号
B. 逗号或回车
C. 逗号或分号
D. 空格或回车
8.十进制数127转换成二进制数是( ) (满分:2)
A. 11111111
B. 01111111
C. 10000000
D. 11111110
9.下面是一个模板声明的开始部分:templute double 由此可知 ( ) (满分:2)
A. 这可能是一个函数模板的声明
B. 这可能是一个类模板的声明
C. 这既可能是一个函数模板的声明,也可能是一个类模板的声明
D. 这肯定是一个错误的模板声明
10.执行下列语句段后,输出字符“*”的个数是( )for(inti=50;i>1;I-=2)cout<<~*~; (满分:2)
A. 24
B. 25
C. 26
D. 50
11.数组名作为实参传递给形参时,数组名被处理为该数组的( ) (满分:2)
A. 长度
B. 元素个数
C. 首地址
D. 各元素的值
12.下列排序算法中,平均效率最低的排序算法是( ) (满分:2)
A. 插入法
B. 冒泡法
C. 选择法
D. 快速排序法
13.二进制数00001001跟01000011异或的结果为( ) (满分:2)
A. 01001011
B. 00000001
C. 01001010
D. 01001100
14.两个指针变量不可以( ) (满分:2)
A. 相加
B. 比较
C. 相减
D. 指向同一地址
15.多态性是通过( )实现的 (满分:2)
A. 构造函数
B. 析构函数
C. 虚函数
D. 函数重载
16.C++异常处理机制中没有( ) (满分:2)
A. try
B. throw
C. catch
D. finally
17.设有定义intx;floatv;,则10+x+v值的数据类型是( ) (满分:2)
A. int
B. double
C. float
D. 不确定
18.下面的选项中正确的赋值语句是(chara[5],*p=a;)( ) (满分:2)
A. p=“abcd”;
B. a=“abcd”;
C. *p=“abcd”;D*a=“abcd”;
19.若有说明: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
20.二叉查找树按( )遍历时访问到节点的数据是排好序的 (满分:2)
A. 前序
B. 中序
C. 后序
D. 层次
21.队列的最大特征是( ) (满分:2)
A. 先进先出
B. 后进先出
C. 自动排序
D. 大数优先
22.下列语句分别是不同程序中的第一个输入输出语句,若去掉其中的“<<left”,输出效果将发生变化的是( ) (满分:2)
A. cout<<left<<setfill(~*~)<<357;
B. cout<<left<<setw(5)<<357;
C. cout<<left<<setw(5)<<"ABCDE";
D. cout<<left<<"ABCDE";
23.有如下定义:int a[5]={1,3,5,7,9},*p=a;下列表达式中不能得到数值 5 的是 ( ) (满分:2)
A. a[2]
B. a[3]
C. *(p+2)
D. *p+4
24.有如下 4 个语句:① cout<<~A~<<setfill(~*~)<<left<<setw(7)<<~B~<<endl;② cout<<setfill(~*~)<<left<<setw(7)<<~A~<<~B~<<endl;③ cout<<~A~<<serfill(~*~)<<right<<setw(7)<<~B~<<endl;④ cout<<setfill(~*~)<<right<<setw(7)<<~A~<<~B~<<endl;其中能显示 A******B 的是 (满分:2)
A. ①和③
B. ①和④
C. ②和③
D. ②和④
25.要打开一个文件并从中读取数据,应该使用( )类的对象 (满分:2)
A. istream
B. ostream
C. ifstream
D. ofstream
26.如果myclass类定义了拷贝构造函数和一个整型参数的构造函数,还重载了赋值运算符,那么语句myclassobj=100;会( ) (满分:2)
A. 调用拷贝构造函数
B. 调用整型参数的构造函数
C. 调用赋值运算符
D. 引起编译错误
27.以下对二维数组a的正确说明是:( ) (满分:2)
A. inta[3][];
B. floata(3,4);
C. doublea[1][4];
D. floata(3)(4);
28.下列有关抽象类和纯虚函数的叙述中,错误的是( ) (满分:2)
A. 拥有纯虚函数的类是抽象类,不能用来定义对象
B. 抽象类的派生类若不实现纯虚函数,它也是抽象类
C. 纯虚函数的声明以“=0;”结束
D. 纯虚函数都不能有函数体
29.当需要使用istrstream流类定义一个流类对象并联系一个字符串时,应在文件开始使用#include命令,使之包含( )文件 (满分:2)
A. iostream、h
B. iomanip、h
C. fstream、h
D. ststreh
30.假定a为一个短整型(shortint)数组名,则元素a[8]的地址为( ) (满分:2)
A. a+4
B. a+8
C. a+16
D. a+32
二、多选题:
1.for语句的格式为for(表达式1;表达式2;表达式3),其中可以省略的是( ) (满分:4)
A. 两个分号
B. 表达式1
C. 表达式2
D. 表达式3
2.两个同名函数构成重载关系,只要( )不同 (满分:4)
A. 返回类型
B. 参数个数
C. 参数类型
D. 函数头后有无const
3.构造函数( ) (满分:4)
A. 函数名只能是类名
B. 返回类型可以是任意的
C. 参数个数和类型可以是任意的
D. 在对象创建时自动调用
4.面向对象的编程方法的主要特征包括( ) (满分:4)
A. 封装
B. 继承
C. 多态
D. 消息
5.类成员的访问属性可以是( ) (满分:4)
A. public
B. protected
C. private
D. default
三、判断题:
1.1.234e0为C++语言合法常量。( ) (满分:4)
A. 错误
B. 正确
2.重载函数形参个数可以不同。( ) (满分:4)
A. 错误
B. 正确
3.int可以定义为用户标识符。( ) (满分:4)
A. 错误
B. 正确
4.结构化程序设计的基本方法是递归法。( ) (满分:4)
A. 错误
B. 正确
5.逻辑运算符两侧运算对象的数据类型只能是0或1。( ) (满分:4)
A. 错误
B. 正确
更多免费学习资料请登录www.openhelp100.com
|
|