川大《面向对象程序设计2261》21春在线作业1[答案]满分答案
《面向对象程序设计2261》21春在线作业1
试卷总分:100 得分:100
一、单选题 (共 30 道试题,共 60 分)
1.下面函数调用语句含有实参的个数为: ( ) func((exp1,exp2),(exp3,exp4,exp5))
A.1
B.2
C.4
D.5
正确答案:-----
2.要打开一个文件并从中读取数据,应该使用()类的对象
A.istream
B.ostream
C.ifstream
D.ofstream
正确答案:-----
3.用cin为整型变量输入数据时,如果从键盘输入的不是数字,输入后整型变量中的结果会是:()
A.0
B.负数
C.正数
D.不确定
正确答案:-----
4.在下列关键字中,不能用来表示继承方式的是()
A.private
B.static
C.public
D.protected
正确答案:-----
5.多态性是通过()实现的
A.构造函数
B.析构函数
C.虚函数
D.函数重载
正确答案:-----
6.有如下定义: int a[5]={1,3,5,7,9},*p=a; 下列表达式中不能得到数值 5 的是 ( )
A.a[2]
B.a[3]
C.*(p+2)
D.*p+4
正确答案:-----
7.假定AB为一个类,则执行“ABa(4),b[4],*p[5]”语句时,自动调用该类构造函数的次数为()
正确答案:-----
A.4
B.5
C.8
D.13
正确答案:-----
8.有如下类定义: class Point{ private; static int how_many; }; ___________ how_many=0; 要初始化 Point 类的静态成员 how_many,下划线处应填入的内容是
A.ing
B.staticint
C.intPoint::
D.staticintPoint::
正确答案:-----
9.一个类如果没有定义任何函数,编译器不会自动为这个类产生()
A.拷贝构造函数
B.无参构造函数
C.输出流运算符
D.赋值运算符
正确答案:-----
10.多重继承时,如果派生类的两个父类有一个共同的虚基类,那么虚基类的初始化参数由()的构造函数来传递
A.第一个父类
B.第二个父类
C.派生类
D.以上都不是
正确答案:-----
11.C++函数的声明和定义可以分开,函数声明不需要()
A.返回类型
B.函数名
C.参数表
D.函数体
正确答案:-----
12.若k为整形,则while循环执行( )次。 k=2; while(k==0) printf(“%d”,k); k--; printf(“ ”);
正确答案:-----
A.10
B.9
C.0
D.1
正确答案:-----
13.C++源文件的缺省扩展名为()
A.cpp
B.exe
C.obj
D.lik
正确答案:-----
14.以下对二维数组a的正确说明是:()
A.inta[3][];
B.floata(3,4);
C.doublea[1][4];
正确答案:-----
D.floata(3)(4);
正确答案:-----
15.下列哪个是C++语言的有效标识符?()
A._No1
B.No、1
C.12345
D.int
正确答案:-----
16.当需要使用istrstream流类定义一个流类对象并联系一个字符串时,应在文件开始使用#include命令,使之包含()文件
正确答案:-----
A.iostream、h
B.iomanip、h
C.fstream、h
D.ststreh
正确答案:-----
17.C++异常处理机制中没有()
A.try
B.throw
C.catch
D.finally
正确答案:-----
21.有如下类定义: class MyClass{ int value; public: MyClass(int n): value (n) {} int gerValue()const{ return value;} }; 则类 MyClass 的构造函数的个数是 ( )
A.1个
B.2个
C.3个
D.4个
正确答案:-----
19.下列有关抽象类和纯虚函数的叙述中,错误的是()
A.拥有纯虚函数的类是抽象类,不能用来定义对象
B.抽象类的派生类若不实现纯虚函数,它也是抽象类
C.纯虚函数的声明以“=0;”结束
正确答案:-----
D.纯虚函数都不能有函数体
正确答案:-----
20.链表的基本单元是()
A.节点
B.头指针
C.尾指针
D.数据域
正确答案:-----
21.如果myclass类定义了拷贝构造函数和一个整型参数的构造函数,还重载了赋值运算符,那么语句myclassobj=100;会( )
A.调用拷贝构造函数
B.调用整型参数的构造函数
C.调用赋值运算符
D.引起编译错误
正确答案:-----
22.有如下 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.②和④
正确答案:-----
23.数组名作为实参传递给形参时,数组名被处理为该数组的()
A.长度
B.元素个数
C.首地址
D.各元素的值
正确答案:-----
24.以下不能正确进行字符串赋初值的语句是()
A.charstr[5]="good!";
正确答案:-----
正确答案:-----
正确答案:-----
B.charstr[]="good!";
C.char*str="good!";
D.charstr[5]={‘g',‘o',‘o',‘d'};
正确答案:-----
25.有如下类和对象的定义: class Constants{ public: static double getPI(){return 3.1416;} }; Constants constants; 下列各组语句中,能输出 3.1416 的是 ( )
正确答案:-----
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();
正确答案:-----
26.十进制数127转换成二进制数是()
A.11111111
B.01111111
C.10000000
D.11111110
正确答案:-----
27.在每个C++程序中都必须包含有这样一个函数,该函数的名称为()
A.main
B.MAIN
C.name
D.function
正确答案:-----
28.判断一个ofstream类对象file打开文件是否失败,应该判断()
A.创建文件流对象时是否抛出异常
B.open成员函数的返回值
C.feof成员函数的返回值
D.!file是否为真
正确答案:-----
29.父类和子类各自定义一个成员函数,函数名相同,参数表不同,那么()
A.在子类中这两个函数构成重载关系
B.子类不会继承父类的这个函数
C.子类中的函数会覆盖父类中的函数
D.编译时会发生错误
正确答案:-----
30.在定义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]
正确答案:-----
川大《面向对象程序设计2261》21春在线作业1[答案]多选题答案
二、多选题 (共 5 道试题,共 20 分)
31.关于公共静态数据成员,下面说法正确的是()
A.在main函数之前创建
B.跟某个具体对象无关
C.可以用类名和成员名直接访问
D.需要在类体外初始化
正确答案:-----
32.for语句的格式为for(表达式1;表达式2;表达式3),其中可以省略的是()
A.两个分号
B.表达式1
C.表达式2
D.表达式3
正确答案:-----
33.C++中变量要求()
A.有明确的类型
B.先声明后使用
C.名字中不能使用下划线
D.严格区分大小写
正确答案:-----
34.类成员的访问属性可以是()
A.public
B.protected
C.private
正确答案:-----
D.default
正确答案:-----
35.设有定义语句: 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)++);
正确答案:-----
三、判断题 (共 5 道试题,共 20 分)
36.逻辑运算符两侧运算对象的数据类型只能是0或1。()
37._int可以定义为用户标识符。()
38.C++语言的跳转语句中,break语句只应用于循环体中。()
39.字符串"ab "在机器中占6个字节。()
40.1.234e0为C++语言合法常量。()
川大《面向对象程序设计2261》21春在线作业1[答案]历年参考题目如下:
《面向对象程序设计2261》18春在线作业1-0001
试卷总分:100 得分:0
一、 单选题 (共 30 道试题,共 60 分)
1.以下不能正确进行字符串赋初值的语句是()
A.charstr[5]="good!";
B.charstr[]="good!";
C.char*str="good!";
D.charstr[5]={‘g',‘o',‘o',‘d'};
2.如果定义了一个类myclass,则为myclass类对象以成员函数形式重载后++运算符的声明应该为()
A.myclassoperator++();
B.myclass& operator++();
C.myclassoperator++(int);
D.myclass& operator++(int);
3.下列语句分别是不同程序中的第一个输入输出语句,若去掉其中的“<<left”,输出效果将发生变化的是()
A.cout<<left<<setfill(~*~)<<357;
B.cout<<left<<setw(5)<<357;
C.cout<<left<<setw(5)<<"ABCDE";
D.cout<<left<<"ABCDE";
4.在每个C++程序中都必须包含有这样一个函数,该函数的名称为()
A.main
B.MAIN
C.name
D.function
5.下列有关抽象类和纯虚函数的叙述中,错误的是()
A.拥有纯虚函数的类是抽象类,不能用来定义对象
B.抽象类的派生类若不实现纯虚函数,它也是抽象类
C.纯虚函数的声明以“=0;”结束
D.纯虚函数都不能有函数体
6.下面不支持下标操作的容器是()
A.vector
B.deque
C.list
D.map
7.要打开一个文件并从中读取数据,应该使用()类的对象
A.istream
B.ostream
C.ifstream
D.ofstream
8.二叉查找树按()遍历时访问到节点的数据是排好序的
A.前序
B.中序
C.后序
D.层次
9.一个类如果没有定义任何函数,编译器不会自动为这个类产生()
A.拷贝构造函数
B.无参构造函数
C.输出流运算符
D.赋值运算符
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::