C++程序设计知识点实例解析 知到智慧树答案2024 z27188
第一章 单元测试
1、 若有定义 double xx=3.14,pp=&xx; 则pp等价于( )
A:xx
B:&xx
C:*xx
D:3.14
答案: 3.14
2、 有以下程序片段:
string str(“HelloC++”);
cout<<str.substr(5,3);
则程序的输出结果是( )
A:loC++
B:Hello
C:C++
D:++
答案: C++
3、 有以下程序片段:
string str(“HelloC++”);
cout<<str.insert(8, “World”);
则程序的输出结果是( )
A:HelloWorldC++
B:HelloWorld
C:HelloC++World
D:HelloC+World+
答案: HelloC+World+
4、
对引用的描述错误的是( )
A:建立引用时,要对它初始化
B:对引用初始化可以使用任意类型的变量
C:引用与其代表的对象具有相同的地址
D:引用是某个变量或对象的别名
答案: 对引用初始化可以使用任意类型的变量
5、 编译系统区分重载函数的依据是( )。
A:总的参数个数不同
B:函数的返回值类型不同
C:对应位次上参数的名字不同
D:对应位次上参数的类型不同
答案: 总的参数个数不同
,对应位次上参数的类型不同
6、 一个返回值为引用的函数可以作为赋值表达式的左值。( )
A:对
B:错
答案: 对
7、 函数可设置默认参数,但不允许将一个函数的所有参数都设置为默认参数。( )
A:对
B:错
答案: 错
8、 函数具有一个参数时不能设置默认值( )
A:对
B:错
答案: 错
9、 运算符new分配的空间由运算符delete释放。( )
A:错
B:对
答案: 对
10、 所有函数都可以说明为内联函数( )
A:错
B:对
答案: 错
11、
对函数模板描述错误的是( )。
A:
函数模板定义中的虚拟类型,在函数调用发生时要被实际类型所取代
B:函数模板定义中的虚拟类型个数,是根据需要确定的
C:template关键字是函数模板定义的标志
D:函数模板定义中的虚拟类型,只能位于函数的参数位置
答案: 函数模板定义中的虚拟类型,只能位于函数的参数位置
12、
对函数的默认值参数描述正确的是( )。
A:带有默认值的参数必须集中在函数参数列表的开头
B:带有默认值的参数必须集中在函数参数列表的尾部
C:带有默认值的参数可以出现在函数参数列表的任意位置
D:C++不支持函数参数具有默认值
答案: 带有默认值的参数必须集中在函数参数列表的开头
13、
不属于函数原型在声明时必须具有的是( )。
A:函数参数类型
B:函数名称
C: 函数参数名称
D:函数返回值类型
答案: 函数参数名称
14、
函数组成要素中,用于区分具有重载关系的一组函数的是( )。
A:函数体内容
B:函数名称
C:函数返回值类型
D:函数参数
答案: 函数体内容
15、
语句int (fptr)(int,int);中函数指针变量是( )。
A:(fptr)(int,int)
B:fptr
C: fptr
D:fptr(int,int)
答案: fptr
第二章 单元测试
1、 定义析构函数时,应注意( )
A:其名与类名完全相同
B:返回类型是void类型
C:函数体中必须有delet语句
D:无形参,也不可重载
答案: 无形参,也不可重载
2、 类的构造函数被自动调用执行的情况是在创建该类的( )
A:对象时
B:成员函数时
C:数据成员时
D:友元函数时
答案: 对象时
3、
有如下类定义:
成员函数setValue在类外实现的正确形式是( )
A:Sample::setValue(int n0) { n=n0; }
B:void Sample::setValue(int n0) { n=n0; }
C:setValue(int n0) { n=n0; }
D:void setValue(int n0) { n=n0; }
答案: void Sample::setValue(int n0) { n=n0; }
4、 在类定义的外部,可以被访问的成员有( )
A:private类成员
B:public或private类成员
C:public的类成员
D:所有类成员
答案: public的类成员
5、 下类有关类的构造函数和析构函数叙述正确的是( )
A:类的析构函数只能有一个
B:类的析构函数可以有多个,互为重载关系
C:类的构造函数只能有一个
D:类的构造函数可以有多个,互为重载关系
答案: 类的析构函数只能有一个
6、
有如下类定义:
则类中成员定义错误的序号是( )
A:③
B:④
C:①
D:②
答案: ③
,④
,①
7、 类中的私有成员只能被类中的成员函访问,不能被任何类以外的函数访问。( )
A:对
B:错
答案: 对
8、 作用域运算符::只能用于类成员名的所属类限定。( )
A:错
B:对
答案: 错
9、 访问类对象成员或结构变量成员时,使用的运算符有.和->。( )
A:错
B:对
答案: 对
10、 假如类AB的声明中没有析构函数,则系统自动添加缺省的析构函数~AB(){ }。( )
A:对
B:错
答案: 对
第三章 单元测试
1、
有如下类声明:
则下列构造函数的定义形式中错误的是( )
A:Sample::Sample(int k1, int m1): m(m1),k(k1) { }
B:Sample::Sample(int k1, int m1):k(k1) {m=m1;}
C:Sample::Sample(int k1, int m1):k(k1),m(m1) { }
D:
Sample::Sample(int k1, int m1):m(m1) {k=k1;}
答案: Sample::Sample(int k1, int m1):k(k1) {m=m1;}
2、
关于常类型const的叙述错误的是( )。
A:常成员函数中不能修改对象的数据成员
B:不能修改常对象的数据成员
C:通过常对象可以调用一般成员函数
D:必须使用成员初始化列表初始化常数据成员
答案: 通过常对象可以调用一般成员函数
3、
关于常成员的叙述正确的是( )。
A:常成员函数不能更新对象的状态
B:常数据成员可以被类对象共享
C:常数据成员可以在构造函数体中初始化
D:常成员函数只能由常对象调用
答案: 常成员函数不能更新对象的状态
4、 Print()函数是某类中无返回值的常成员函数,则正确的声明形式是( )。
A:void const Print();
B:void Print() const;
C:void Print(const);
D:const void Print();
答案: void Print() const;
5、
这个程序中横线部分应填入的内容是( )
A:int TEST::
B: static int TEST::
C:static int
D: int
答案: int TEST::
6、
关于静态成员的描述错误的是( )。
A:静态数据成员的初始化不使用其构造函数
B:静态成员可分为静态数据成员和静态成员函数
C:静态数据成员函数中不能直接访问非静态数据成员
D:静态数据成员定义后必须在类体内进行初始化
答案: 静态数据成员定义后必须在类体内进行初始化
7、
此程序的执行结果是( )
A:10
B:40
C:30
D:20
答案: 30
8、
关于友元关系描述正确的是( )。
A:友元关系具有传递性,即 B是A的友元,C是B的友元,则C一定是A的友元
B:友元不是类的成员,但具有和类的成员函数一样的数据访问权限
C:友元关系具有对称性,即 B是A的友元,则A一定是B的友元
D:友元属于类的成员,因此具有和类的成员函数一样的数据访问权限
答案: 友元不是类的成员,但具有和类的成员函数一样的数据访问权限
9、
关于数据共享在类中描述正确的是( )。
A:类的封装性决定了类是封闭的,和外界不建立共享机制
B:类通过友元函数实现类内数据向外界共享
C:一个类的所有对象都是独立的,彼此间不共享任何数据
D:类通过静态数据成员实现类对象间数据共享
答案: 类通过友元函数实现类内数据向外界共享
,类通过静态数据成员实现类对象间数据共享
10、 下列函数中具有当前类的隐含指针this的是( )。
A:友元函数
B:静态成员函数
C:构造函数
D:析构函数
答案: 构造函数
,析构函数
第四章 单元测试
1、
函数不能重载的是( )
A:构造函数
B:析构函数
C:友元函数
D:静态成员函数
答案: 析构函数
2、
运算符中不能重载的是( )
A:!
B:delete
C:new
D:sizeof
答案: sizeof
3、 下列运算符必须重载为类成员函数的是( )
A:<=
B:++
C:==
D:=
答案: =
4、 假定复数类MyComplex声明如下:
有MyComplex X(1,2),Y(3,4),Z(5,6); 则对表达式X+Y;以及XZ;理解正确的是( )
A:X.operator+(Y); X.operator(Z);
B:operator+(X,Y); operator(X,Z);
C:X.operator+(Y); operator(X,Z);
D:operator+(X,Y); X.operator(Z);
答案: X.operator+(Y); operator(X,Z);
5、 假定复数类MyComplex声明如下:
有MyComplex X(1,2),Y(3,4),Z(5,6); 则对表达式X+YZ;的理解正确的是( )
A:X.operator+(operator(Y,Z));
B:(operator+(X,Y)).operator(Z);
C:operator(X.operator+(Y),Z);
D:operator+(X,operator(Y,Z));
答案: X.operator+(operator(Y,Z));
6、 下列关于类成员运算符重载和友元运算符重载说法正确的是( )
A:成员运算符重载函数中不具有this指针,友元运算符重载函数中也不具有this指针
B:成员运算符重载函数中具有this指针,友元运算符重载函数中不具有this指针
C:成员运算符重载函数中具有this指针,友元运算符重载函数中也具有this指针
D:成员运算符重载函数中不具有this指针,友元运算符重载函数中具有this指针
答案: 成员运算符重载函数中具有this指针,友元运算符重载函数中不具有this指针
7、 假定类TEST中重载运算符<<,则运算符<<在类TEST中正确的声明形式为( )
A:ostream& operator<<(const TEST& obj);
B:ostream& operator<<(ostream& output, const TEST& obj);
C:friend ostream& operator<<(ostream& output, const TEST& obj);
D:friend ostream& operator<<(const TEST& obj);
答案: friend ostream& operator<<(ostream& output, const TEST& obj);
8、 假定类Sample中重载运算符>>,则运算符>>在类Sample中正确的声明形式为( )
A:friend ostream& operator>>(ostream& output, const Sample& obj);
B:friend Sample& operator>>(ostream& output, const Sample& obj);
C:friend ostream& operator>>(const Sample& obj);
D:friend Sample& operator>>(const Sample& obj);
答案: friend ostream& operator>>(ostream& output, const Sample& obj);
9、 下标运算符[],既可以重载为类成员函数,又可重载为友元函数。( )
A:错
B:对
答案: 错
10、 重载的运算符保持原来的优先级和结合性以及操作数的个数。( )
A:对
B:错
答案: 对
下方是付费阅读内容:本平台商品均为虚拟商品,无法用作二次销售,不支持退换货,请在购买前确认您需要购买的资料准确无误后再购买,望知悉!
完整答案需点击上方按钮支付5元购买,所有答案均为章节测试答案,无期末答案。购买后上方矩形框将出现已付费的隐藏内容。
点关注,不迷路,微信扫一扫下方二维码
关注我们的公众号:阿布查查 随时查看答案,网课轻松过
为了方便下次阅读,建议在浏览器添加书签收藏本网页
电脑浏览器添加/查看书签方法
1.按键盘的ctrl键+D键,收藏本页面
2.下次如何查看收藏的网页?
点击浏览器右上角-【工具】或者【收藏夹】查看收藏的网页
手机浏览器添加/查看书签方法
一、百度APP添加/查看书签方法
1.点击底部五角星收藏本网页
2.下次如何查看收藏的网页?
点击右上角【┇】-再点击【收藏中心】查看
二、其他手机浏览器添加/查看书签方法
1.点击【设置】-【添加书签】收藏本网页
2.下次如何查看收藏的网页?
点击【设置】-【书签/历史】查看收藏的网页