《面向对象程序设计2261》18春在线作业1
试卷总分:100 得分:100
一、 单选题 (共 30 道试题,共 60 分)
1.以下不能正确进行字符串赋初值的语句是()
A.charstr[5]="good!";
B.charstr[]="good!";
C.char*str="good!";
D.charstr[5]={‘g',‘o',‘o',‘d'};
正确答案: A
2.如果定义了一个类myclass,则为myclass类对象以成员函数形式重载后++运算符的声明应该为()
A.myclassoperator++();
B.myclass& operator++();
C.myclassoperator++(int);
D.myclass& operator++(int);
正确答案: C
3.下列语句分别是不同程序中的第一个输入输出语句,若去掉其中的“<<left”,输出效果将发生变化的是()
A.cout<<left<<setfill(~*~)<<357;
B.cout<<left<<setw(5)<<357;
C.cout<<left<<setw(5)<<"ABCDE";
D.cout<<left<<"ABCDE";
正确答案: B
4.在每个C++程序中都必须包含有这样一个函数,该函数的名称为()
A.main
B.MAIN
C.name
D.function
正确答案: A
5.下列有关抽象类和纯虚函数的叙述中,错误的是()
A.拥有纯虚函数的类是抽象类,不能用来定义对象
B.抽象类的派生类若不实现纯虚函数,它也是抽象类
C.纯虚函数的声明以“=0;”结束
D.纯虚函数都不能有函数体
正确答案: D
6.下面不支持下标操作的容器是()
A.vector
B.deque
C.list
D.map
正确答案: C
7.要打开一个文件并从中读取数据,应该使用()类的对象
A.istream
B.ostream
C.ifstream
D.ofstream
正确答案: C
8.二叉查找树按()遍历时访问到节点的数据是排好序的
A.前序
B.中序
C.后序
D.层次
正确答案: B
9.一个类如果没有定义任何函数,编译器不会自动为这个类产生()
A.拷贝构造函数
B.无参构造函数
C.输出流运算符
D.赋值运算符
正确答案:www.youxue100f.com
10.程序运行中需要从键盘上输入多于一个数据时,各数据之间应该使用()符号作为分隔符
A.空格或逗号
B.逗号或回车
C.逗号或分号
D.空格或回车
正确答案:
11.多态性是通过()实现的
A.构造函数
B.析构函数
C.虚函数
D.函数重载
正确答案:
12.两个指针变量不可以()
A.相加
B.比较
C.相减
D.指向同一地址
正确答案:
13.假定a为一个短整型(shortint)数组名,则元素a[8]的地址为()
A.a+4
B.a+8
C.a+16
D.a+32
正确答案:
14.private访问属性限制对象的成员可以在()中访问
A.本类的成员函数
B.main函数
C.父类的成员函数
D.子类的成员函数
正确答案:
15.在下列关键字中,不能用来表示继承方式的是()
A.private
B.static
C.public
D.protected
正确答案:
16.抽象类指的是()
A.没有任何成员的类
B.只有成员函数没有数据成员的类
C.有虚函数的类
D.有纯虚函数的类
正确答案:
17.C++函数的声明和定义可以分开,函数声明不需要()
A.返回类型
B.函数名
C.参数表
D.函数体
正确答案:
18.执行下列语句段后,输出字符“*”的个数是()for(inti=50;i>1;I-=2)cout<<~*~;
A.24
B.25
C.26
D.50
正确答案:
19.在定义inta[3][4][2];后,第10个元素是()
A.a[2][1][2]
B.a[1][0][1]
C.a[2][0][1]
D.a[2][2][1]
正确答案:
20.已知Value是一个类,Value是Value的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是()
A.Valueoperator+(Valuev,inti);
B.Valueoperator+(Valuev=value,inti);
C.Valueoperator+(Valuevinti=0);
D.Valueoperator+(Valuev=value,inti=0);
正确答案:
21.链表的基本单元是()
A.节点
B.头指针
C.尾指针
D.数据域
正确答案:
22.下列排序算法中,平均效率最低的排序算法是()
A.插入法
B.冒泡法
C.选择法
D.快速排序法
正确答案:
23.C++源文件的缺省扩展名为()
A.cpp
B.exe
C.obj
D.lik
正确答案:
24.有如下类定义: class Point{ private; static int how_many; }; ___________ how_many=0; 要初始化 Point 类的静态成员 how_many,下划线处应填入的内容是
A.ing
B.staticint
C.intPoint::
D.staticintPoint::
正确答案:
25.有如下 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 的是
A.①和③
B.①和④
C.②和③
D.②和④
正确答案:
26.数组名作为实参传递给形参时,数组名被处理为该数组的()
A.长度
B.元素个数
C.首地址
D.各元素的值
正确答案:
27.函数的形参是()
A.全局变量
B.局部变量
C.静态变量
D.部变量
正确答案:
28.二进制数00001001跟01000011异或的结果为()
A.01001011
B.00000001
C.01001010
D.01001100
正确答案:
29.下面的选项中正确的赋值语句是(chara[5],*p=a;)()
A.p=“abcd”;
B.a=“abcd”;
C.*p=“abcd”;D*a=“abcd”;
正确答案:
30.队列的最大特征是()
A.先进先出
B.后进先出
C.自动排序
D.大数优先
正确答案:
二、 多选题 (共 5 道试题,共 20 分)
1.C++中变量要求()
A.有明确的类型
B.先声明后使用
C.名字中不能使用下划线
D.严格区分大小写
正确答案:
2.设有定义语句: 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)++);
正确答案:
3.for语句的格式为for(表达式1;表达式2;表达式3),其中可以省略的是()
A.两个分号
B.表达式1
C.表达式2
D.表达式3
正确答案:
4.模板定义中的类型参数可以用作()
A.局部变量类型
B.函数参数类型
C.函数返回值类型
D.数据成员类型
正确答案:
5.构造函数()
A.函数名只能是类名
B.返回类型可以是任意的
C.参数个数和类型可以是任意的
D.在对象创建时自动调用
正确答案:
三、 判断题 (共 5 道试题,共 20 分)
1.C++语言是从早期的C语言逐渐发展演变而来的,与C语言相比,它在求解问题方法上进行的最大改进是面向过程。()
A.错误
B.正确
正确答案:
2.逻辑运算符两侧运算对象的数据类型只能是0或1。()
A.错误
B.正确
正确答案:
3.重载函数形参个数可以不同。()
A.错误
B.正确
正确答案:
4.结构化程序设计的基本方法是递归法。()
A.错误
B.正确
正确答案:
5.字符串"ab\\\n"在机器中占6个字节。()
A.错误
B.正确
正确答案: