2024年2月7日发(作者:)
面向对象技术C++(知识要点)
课程编号:BWCST3007
学习中心:______________________
注意事项:1、本试卷满分100分,考试时间120分钟;
2、请将答案一律写在答题纸上。
学籍号:______________________
姓 名:______________________
一、单选题(每题2分,共50分。)
1. 下面关于重载函数的说明中正确的是( )。
A、重载函数必须具有不同的返回类型
B、重载函数形参的个数必须不同
C、重载函数必须具有不同的形式参数表
D、重载函数名可以不同
2. 以下C++语言中用于单行注释的是( )。
A、// B、/* C、*/ D、|
3. 公有继承的派生类对象可以访问其基类的( )。
A、公有成员
C、受保护成员
B、公有成员及受保护成员
D、私有成员
4. 若一个类的成员函数前用static关键字修饰,则该成员函数( )。
A、可以被声明为const
C、可以访问该类的所有成员
5. 类中定义的成员默认为( )访问属性。
A、public B、private
B、没有this指针
D、只能用对象名来调用
C、protected
6. 下列不是描述类的成员函数的是( ) 。
A、构造函数 B、析构函数
D、friend
C、友元函数 D、拷贝构造函数
7. 下列各类函数中,( )不是类的成员函数。
A、构造函数
C、友元函数
B、析构函数
D、拷贝初始化构造函数
8. 派生类的派生类不可访问的基类成员是( )
A、先公有继承方式再私有继承方式的基类中的公有成员和保护成员B、先公有继承方式再保护继承方式的基类中的公有成员和保护成员C、先私有继承方式再公有继承方式的基类中的公有成员和保护成员D、先保护继承方式再公有继承方式的基类中的公有成员和保护成员9. C++语言中用于定义类的关键字是( )。
A、class B、struct C、default
10. 下列虚基类的声明中正确的是( )。
A、class virtual B: public A
B、class B: virtual public A
C、class B: public A virtual
D、virtual class B: public A
11. 重载函数在调用时选择的依据中,( )是错误的。
A、参数个数 B、参数类型 C、函数名字
12. 执行下列语句后的输出结果是( )。
int cool=10;
int &rad=cool;
cool+=100;
cout< A、10 B、110 C、1000 D、100 D、sizeof D、函数的类型 13. 如果a=1,b=2,c=3,d=4,则条件表达式“a>b?a:c A、3 B、2 C、1 D、4 14. 若X是一个bool型变量,则X && 5<3的值( )。 A、为true B、为false C、与X的值相同 D、与X的值相反 15. 下列语句中错误的是( ): A、const int a; B、const int a=1; C、const int*point=0; D、const int*point=new int(5); 16. 从程序片断:student person("Tom","M",22); ("2005131000");可判断id是一个( )。 A、私有成员数据 B、私有成员函数 C、公有成员数据 D、公有成员函数 17. 下面描述中,表达错误的是( ) A、公有继承时基类中的public成员在派生类中仍是public的 B、公有继承是基类中的private成员在派生类中仍是private的 C、公有继承时基类中的protected成员在派生类中仍是protected的 D、私有继承时基类中的public成员在派生类中是private的 18. 在int a[][3]={{1},{3,2},{4,5,7},{9}}中,a[2][2]的值是( ) 。 A、3 B、2 C、7 D、4 19. 执行下列语句后的输出结果是 ( )。 int cool=100; int &rad=cool; cool+=100; cout< A、0 B、100 C、200 D、300 20. 在程序代码:A::A(int tom, int *cat) { this->x = tom; this->y = cat; }中,this的类型是( )。 A、int B、int * C、A D、A * 21. 在C++中,当一个对象被创建后,它的每一个成员函数都含有一个系统自动生成的隐含的 指针,称之为( )指针。 A、对象 B、派生 C、基类 D、this 22. 若++重载为友元运算符,则C++编译器对表达式obj++的解释为( )。 A、operator++(obj) B、operator++(obj,0) C、or++( ) D、or++(0)() 23. 下列关于纯虚函数和抽象类的描述中,不正确的是 ( )。 A、纯虚函数是一个没有具体实现的虚函数 B、抽象类是包括纯虚函数的类 C、抽象类只能作为基类,其纯虚函数的实现在派生类中给出 D、可以定义一个抽象类的对象 24. 执行下列语句后的输出结果是( )。 int cool=200; int rad=cool; int &cat=cool cool+=100; cout< A、200, 300 C、100, 200 B、200, 100 D、300, 100 25. 若有说明int a[3][4];,则a数组元素的非法引用是( )。 A、a[0][1*2] C、a[4-2][0] B、a[1][3] D、a[0][4] 二、是非题(正确的填写“T”,错误的填写“F”。每题1分,共20分。) 1. 一般类中包含有数据成员和成员函数。 2. 指向类成员指针与指向对象的指针是不同的。 3. 析构函数不能被继承。 4. new运算符可以用来动态创建对象和对象数组。 5. 若有char a[80];则cin>>a表示从键盘上读入一个字符串到数组a中。 6. int x=10,n=10;计算表达式x+=n++后x的值为20,n的值为11。 7. 对象数组的数组名是一个常量指针。 8. 函数的默认参数没有顺序要求,可以随意定义。 9. extern不是类中定义数据成员使用的关键字。 10. 构造函数的函数名与类名相同。 11. 一个类中只能定义一个析构函数。 12. 运算符重载是为了保持原有的结合性。 13. 友元类中的成员函数都是友元函数。 14. 使用new运算符创建对象时要调用构造函数。 15. 私有继承中,基类中所有成员对派生类的对象都是不可见的。 16. 只要基类的析构函数被说明为虚函数,则派生类的析构函数,无论是否使用virtual进行说明,都自动地成为虚构函数。 17. 成员函数都应是公有的、数据成员都应是私有的。 18. 子对象是类的一种数据成员,对子对象的初始化要包含在该类的构造函数中。 19. 友元函数的实现必须在类的内部定义。 20. 多继承情况下,派生类的构造函数的执行顺序取决于定义派生时所指定的各基类的顺序。 三、问答题(每题15分,共30分。) 1. 读程序,回答问题 (1)下面循环语句中内层循环体S语句的执行总次数?并解释原因。 (2)假定x=5,y=6,则执行表达式x--*--y的值是多少?并解释原因。如果是执行--x*y--呢? 2. 编写求一维数组a[8]={1,2,3,4,5,6,7,8}平均值的函数,用引用类型变量作为函数参数返回平均值。在主函数中输入数组元素值,并输出平均值。 面向对象技术C++(知识要点) 答案 一、单选题(每题2分,共50分。) 1 C 11 D 21 D 2 A 12 B 22 B 3 A 13 A 23 D 4 B 14 B 24 A 5 B 15 A 25 D 6 C 16 D 7 C 17 B 8 C 18 C 9 A 19 C 10 B 20 C 二、是非题(正确的填写“T”,错误的填写“F”。每题1分,共20分。) 1 T 11 T 2 T 12 T 3 T 13 T 4 T 14 T 5 T 15 T 6 T 16 T 7 T 17 F 8 T 18 T 9 T 19 F 10 T 20 T 三、问答题(每题15分,共30分。) 1. 读程序,回答问题 (1)下面循环语句中内层循环体S语句的执行总次数?并解释原因。 (2)假定x=5,y=6,则执行表达式x--*--y的值是多少?并解释原因。如果是执行--x*y--呢? 答案: (1) 运行的次数是n(n+1)/2次,原因是对于每一个i,内循环会运行(n-i)次,i取0到n-1,所以总的运行 次数是n+(n-1)+(n-2)+…+1,这个求和的值为n(n+1)/2。(7分) (2) x和y的值分别为5和6。x--*--y语句中,x是先用做乘法再减1,而--y则是先减去1后再做乘法,所以得到的值是5*5=25。如果执行--x*y--,则结果是4*6=24。(8分) 2. 编写求一维数组a[8]={1,2,3,4,5,6,7,8}平均值的函数,用引用类型变量作为函数参数返回平均值。在主函数中输入数组元素值,并输出平均值。 答案:
本文发布于:2024-02-07 18:17:05,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170730102565613.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |