奥鹏浙江大学2013年秋《面向对象程序设计》在线作业

所属学校:浙江大学 科目:面向对象程序设计 2015-03-17 11:37:02

您的本次作业分数为:100分  单选题  

1.下面有关析构函数特征的描述中,正确的是( )。

• A 一个类中可以定义多个析构函数

• B 析构函数名与类名完全相同

• C 析构函数不能指定返回类型

• D 析构函数可以有一个或多个参数

正确答案:C

单选题  

2.派生类中虚函数原型的( )。

• A 函数类型可以与基类中虚函数的原型不同

• B 参数个数可以与基类中虚函数的原型不同

• C 参数类型可以与基类中虚函数的原型不同

• D 以上都不对

正确答案:D

单选题  

3.类和派生类正确的关系是( )。

• A 从基类到派生类称为继承。

• B 从派生类到基类称为派生。

• C 派生类包含了基类。

• D 从基类到派生类称为派生。

正确答案:D

单选题  

4.析构函数的特征是( )。

• A 析构函数可以有多个参数。

• B 析构函数只能在类体内定义。

• C 一个类中只能定义一个析构函数。

• D 一个类中能定义多个析构函数。

正确答案:C

单选题  

5.如果在基类中将show声明为不带返回值的纯虚函数,正确的写法是( )。

• A virtualshow()=0;

• B virtualvoidshow();

• C virtualvoidshow()=0;

• D voidshow()=0virtual;

正确答案:C

单选题  

6.若有定义char *words[]={"FORTRAN", "BASIC","PASCAL","JAVA","C"}; 则输出结果为AVA的语句是( )。

• A printf("%s",*words[3]+1)

• B printf("%s",*words[4]+1)

• C printf("%s",*(words+3)+1)

• D printf("%s",(*words+4)+1)

正确答案:C

单选题  

7.已知有预编译指令#define s(a,b) (a*b),则执行语句i=1;Area=s(3, 5-i)+3;后,变量area的值为( )。

• A 14

• B 15

• C 16

• D 17

正确答案:D

单选题  

8.抽象类论述中,不正确的是( )。

• A 如果一个类至少有一个纯虚函数,那么该类为抽象类。

• B 抽象类只能用作其他类的基类,不能建立抽象类对象。

• C 抽象类可以用来定义指针。

• D 抽象类可以作为某个函数的返回类型。

正确答案:D

单选题  

9.下列条件语句中,功能与其他语句不同的是( )。

• A if(a)printf("%d/n",x);elseprintf("%d/n",y)

• B if(a==0)printf("%d/n",y);elseprintf("%d/n",x)

• C if(a!=0)printf("%d/n",x);elseprintf("%d/n",y)

• D if(a==0)printf("%d/n",x);elseprintf("%d/n",y)

正确答案:D

单选题  

10.类的友元可以访问该类的( )。

• A 只能是数据成员

• B 所有成员

• C 只能是成员函数

• D 只能是公有成员

正确答案:B

单选题  

11.面向对象的程序设计中,定义类时保留字是用( )。

• A type

• B class

• C private

• D public

正确答案:D

单选题  

12.置虚基类的目的是( )。

• A 简化程序

• B 消除二义性

• C 提高运行效率

• D 减少目标代码

正确答案:B

单选题  

13.表示year为闰年的C语言表达式为( )。

• A (year%4==0&&year%100?!=0)&&(year%400==0)

• B (year%4==0&&year%100?!=0)||(year%400==0)

• C (year%4==0)&&(year%400==0)

• D (year%4==0)||(year%400==0)

正确答案:B

单选题  

14.下列描述中,( )是错误的。

• A 内联函数主要解决程序的运行效率问题

• B 内联函数的定义必须出现在内联函数第一次被调用之前

• C 内联函数中可以包括各种语句

• D 对内联函数不可以进行异常接口声明

正确答案:C

单选题  

15.下面有关静态成员函数的描述中,正确的是( )。

• A 在静态成员函数中可以使用this指针

• B 在建立对象前,就可以为静态数据成员赋值

• C 静态成员函数在类外定义时,要用static前缀

• D 静态成员函数只能在类外定义

正确答案:B

单选题  

16.声明类时,下面的说法正确的是( )。

• A 可以在类的声明中给数据成员赋初值

• B 数据成员的数据类型可以是registe

• C private、public、protected可以按任意顺序出现

• D 没有用private、public、protected定义的数据成员是公有成员

正确答案:C

单选题  

17.C++进行文件操作时需要包含的文件是( ):

• A fstream、h

• B iostream、h

• C stdio、h

• D math、h

正确答案:A

单选题  

18.下列表达式中,不正确的表达式是( )。

• A a=1,b=1

• B y=int(x)

• C a=b=5

• D i++

正确答案:B

单选题  

19.关于虚函数,正确的描述是( )。

• A 构造函数不能是虚函数

• B 析构函数不能是虚函数

• C 虚函数可以是友元函数

• D 虚函数可以是静态成员函数

正确答案:A

单选题  

20.关于delete运算符的下列描述中,( )是错误的。

• A 它必须用于new返回的指针

• B 使用它删除对象时要调用析构函数

• C 对一个指针可以使用多次该运算符

• D 指针名前只有一对方括号符号,不管所删除数组的维数

正确答案:C

单选题  

21.下面有关重载函数的说法中正确的是( )。

• A 重载函数必须具有不同的返回值类型

• B 重载函数形参个数必须不同

• C 重载函数必须有不同的形参列表

• D 重载函数名可以不同

正确答案:C

单选题  

22.关于虚函数的下列描述中,正确的是( )。

• A 在基类中被关键字virtual说明,并在派生类重新定义的函数。

• B 在派生类重新定义函数时,用关键字virtual说明。

• C 在派生类前用关键字virtual说明。

• D 在派生类重新定义虚函数时,要求与基类的虚函数可具有不同的函数名。

正确答案:A

单选题  

23.对象是现实世界中的一个实体,不是其特性的是( )。

• A 必须有一个关键字,以示区别。

• B 每个对象必须有一个名字。

• C 有属性。

• D 有操作。

正确答案:A

单选题  

24.定义作运算符重载函数的是( )。

• A 构造函数

• B 析构函数

• C 主函数。

• D 类以外的函数

正确答案:D

单选题  

25.执行下列程序段后, int *p,A = 10,B=1;p = &b;A =a + (*p)++ ;变量a,b的值为:( )。

• A a=10,b=1

• B a=10,b=2

• C a=11,b=1

• D a=11,b=2

正确答案:D

单选题  

26.下列的各种函数中,是本类的成员函数( )。

• A 构造函数

• B 拷贝构造函数

• C 友元函数

• D 缺省参数的构造函数

正确答案:C

单选题  

27.元的作用之一是( )。

• A 提高程序的运行效率

• B 加强类的封装性

• C 实现数据的隐藏性

• D 增加成员函数的种类

正确答案:A

单选题  

28.现实世界中的对象,以下不是它的特性的是( )。

• A 每一个必须有一个名字以区别于其他对象;

• B 用属性来描述对象的某些特征;

• C 有一组操作,每组操作决定对象的一种行为;

• D 有一关键字class

正确答案:D

单选题  

29.类成员在派生类中的访问属性描述中,正确的是( )。

• A 无论哪种派生,基类的公有成员不允许派生类的成员函数访问。

• B 无论哪种派生,基类的保护成员不允许派生类的成员函数访问。

• C 无论哪种派生,基类的私有成员允许派生类的成员函数访问。

• D 无论哪种派生,基类的保护成员允许派生类的成员函数访问。

正确答案:D

单选题  

30.执行x=-1; do { x=x*x; } while (!x); 循环时,下列说法正确的是( )。

• A 循环体将执行一次

• B 循环体将执行两次

• C 循环体将执行无限次

• D 系统将提示有语法错误

正确答案:A

单选题  

31.通过基类指针或引用来访问基类和派生类中的同名函数,才考虑虚函数。正确的论述是( )。

• A 虚函数是在基类中用virtual说明,派生类中重新定义的函数。

• B 虚函数是一个static类型的成员函数。

• C 虚函数是一个非成员函数。

• D 派生类的虚函数与基类的虚函数具有不同的参数个数和类型。

正确答案:A

单选题  

32.关于成员函数特征的下述描述,不正确的是( )。

• A 成员函数一定要在类内定义。

• B 成员函数可以重载。

• C 成员函数可以设置参数的默认值。

• D 可在类内定义。

正确答案:A

单选题  

33.下面的类型声明中正确是( )。

• A int&a[4];

• B int&*p;

• C int&&q;

• D inti,*p=&i;

正确答案:D

单选题  

34.下面有关对构造函数的描述中,正确的是( )。

• A 构造函数可以带有返回值

• B 构造函数的名字与类名完全相同

• C 构造函数必须带有参数

• D 构造函数必须定义,不能默认

正确答案:B

单选题  

35.以下各语句或语句组中,正确的操作是( )。

• A chars[6]="123456";

• B char*s;s="123456";

• C char*s;gets(s);

• D chars[6];scanf("%s",&s);

正确答案:B

单选题  

36.面向对象的多态性正确的说法是( )。

• A 不同名字的函数定义相同功能。

• B 同一种运算符定义不同的操作。

• C 函数不允许同名。

• D 派生类中不可出现与基类同名的函数。

正确答案:B

单选题  

37.于成员函数的说法,不正确的是( )。

• A 成员函数可以是内置函数。

• B 成员函数可以在类内先声明,再在类外定义完整。

• C 成员函数可以设置参数的默认值。

• D 成员函数一定要在类内定义完整。

正确答案:D

单选题  

38.重载函数在调用时选择的依据中,( )是错误的。

• A 函数名字

• B 函数的返回类型

• C 参数个数

• D 参数的类型

正确答案:B

单选题  

39.打开磁盘文件的打开方式中,以写方式打开文件为( )。

• A ios::ate

• B ios::out

• C ios::in

• D ios::app

正确答案:B

单选题  

40.个基类可以派生出二个派生类,这种继承关系称为( )。

• A 多继承

• B 多重继承

• C 单继承

• D 双重继承

正确答案:C

单选题  

41.若定义intA[2][3]={1,2,3,4,5,6}; 则值为4的数组元素是( )。

• A a[1][0]

• B a[1][1]

• C a[2][0]

• D a[2][1]

正确答案:A

单选题  

42.与数学式子对应的C语言表达式是( )。

• A 3*x^n/(2*x-1)

• B 3*x*n/(2*x-1)

• C 3*pow(x,n)/(2*x-1)

• D 3*pow(n,x)/(2*x-1)

正确答案:C

单选题  

43.是面向对象系统的特性是( )。

• A 封装性、继承性、多态性

• B 封装性、继承性、保密性

• C 封装性、继承性、重载性

• D 完整性、继承性、多态性

正确答案:A

单选题  

44.派生类的对象对它的基类成员中,可以访问的是( )。

• A 公有继承的公有成员。

• B 公有继承的保护成员。

• C 公有继承的私有成员。

• D 公有继承的所有成员。

正确答案:A

单选题  

45.设已经定义好了一个类student,现在要定义类derived,它是从student私有派生的,定义类derived的正确写法是( )。

• A clasederived::studentprivate{…};

• B clasederived::studentpublic{…};

• C clasederived::privatestudent{…};

• D clasederived::publicstudent{…};

正确答案:C

单选题  

46.在C程序中,“e2”可以是( )。

• A 实型常数100

• B 值为100的整型常数

• C 非法标识符

• D 合法标识符

正确答案:D

单选题  

47.以下叙述中不正确的是( )。

• A 在不同的函数中可以使用相同名字的变量

• B 函数中的形式参数是局部变量

• C 在一个函数内定义的变量只在本函数范围内有效

• D 在一个函数内的复合语句中定义的变量在本函数范围内有效

正确答案:D

单选题  

48.类和派生类的相互关系不正确的是( )。

• A 从基类到派生类称为派生。

• B 派生类还可以再作为另一派生类的基类。

• C 从派生类到基类称为派生。

• D 从派生类到基类称为继承。

正确答案:C

单选题  

49.下列的各函数中,是成员函数的是( )。

• A 主函数

• B 返回对象的函数

• C 默认参数的构造函数

• D 友元函数

正确答案:C

单选题  

50.打开磁盘文件的打开方式中,以读方式打开文件为( )。

• A ios::ate

• B ios::out

• C ios::in

• D ios::app

正确答案:C

单选题  

51.如果定义并初始化一个数组 int s[10]={1,2,3,4,5,6,7,8,9,10}; 则执行printf("%d/n",a[a[1]*a[2]])语句后的输出结果是( )。

• A 3

• B 4

• C 7

• D 2

正确答案:C

单选题  

52.造函数是在( )时被执行的。

• A 程序编译

• B 创建对象

• C 创建类

• D 程序装人内存

正确答案:B

单选题  

53.假设已经有定义“constChar *Const name="chen";”下面的语句中正确的是( )。

• A name[3]='a';

• B name=

• C name=newChar[5];

• D cout<<NAME[3];

正确答案:D

单选题  

54.定义类,再用类定义对象是( )。

• A 结构化程序设计的主要特点。

• B C语言的主要特点。

• C 面向过程的程序设计的主要特点

• D 面向对象程序设计的主要特点。

正确答案:D

单选题  

55.是构造函数的特征是( )。

• A 构造函数不可以有形式参数。

• B 在创建对象时被执行。

• C 构造函数与类不同名。

• D 构造函数必须说明返回类型。

正确答案:B

单选题  

56.对虚基类的论述,正确的是( )。

• A 定义基类时加virtual。

• B 定义派生类时,在基类名前加virtual。

• C 成员函数前加virtual。

• D 在派生类名前加virtual。

正确答案:B

单选题  

57.一个派生类有多个父类,而这多个父类又有一个共同基类,这种情况,才考虑设置虚基类,目的是( )。

• A 消除二义性。

• B 简化程序。

• C 提高运行效率。

• D 减少目标代码。

正确答案:A

单选题  

58.先定义类,再用类定义对象、对象数组、对象指针是( )。

• A 结构化程序设计的主要特点。

• B C语言的主要特点。

• C 面向过程的程序设计的主要特点。

• D 面向对象程序设计的主要特点。

正确答案:D

单选题  

59.的概念是( )。

• A 所有对象的集合。

• B 同一类记录的集合。

• C 同一类数据的集合。

• D 对一组具有共同的属性特征和行为特征的对象的抽象。

正确答案:D

单选题  

60.下列语句中错误的是( )。

• A int*p=newint(10);

• B int*p=newint[10];

• C int*p=newint;

• D int*p=newint[40](0);

正确答案:D

单选题  

61.在( )情况下适宜采用内联函数。

• A 函数代码小,频繁调用

• B 函数代码多,频繁调用

• C 函数体含有递归语句

• D 函数体含有循环语句

正确答案:A

单选题  

62.C++中,类和对象之间的关系是( )。

• A 结构类型和结构体的关系。

• B 定义和被定义的关系。

• C 调用和被调用的关系。

• D 型和值的关系。

正确答案:A

单选题  

63.对象是现实世界中的一个实体,其特性的是( )。

• A 必须有一个关键字,以示区别。

• B 每个对象都有对象标识名。

• C 只有数据属性。

• D 只有操作函数。

正确答案:B

单选题  

64.多继承构造函数定义中,几个基类构造函数用( )分隔。

• A :

• B ;

• C ,

• D ::

正确答案:C

单选题  

65.在友元函数的下面说法中,正确的是( )。

• A 友元函数是独立于当前类的外部函数。

• B 一个友元函数不能同时定义为两个类的友元函数

• C 友元函数必须在类的外部定义。

• D 在外部定义友元函数时,必须加friend

正确答案:A

单选题  

66.面向对象(O-O)程序设计是一种新的程序设计范型。这种范型的主要特征是( )。

• A 程序=对象+消息

• B 程序=函数+调用

• C 程序=算法+数据

• D 程序=过程+调用

正确答案:A

单选题  

67.生类析构函数的执行顺序正确的是( )。

• A 先执行基类的析构函数,再执行派生类的析构函数。

• B 先执行派生类的析构函数,再执行基类的析构函数。

• C 基类析构函数执行总是在先。

• D 以上都不是。

正确答案:B

单选题  

68.面向对象的多态性正确的是( )。

• A 不同名字的函数定义相同功能。

• B 同一种运算符定义不同的操作。

• C 函数不允许同名。

• D 派生类中不能出现与基类同名的函数。

正确答案:B

单选题  

69.还可定义作运算符重载函数的是( )。

• A 类以外的函数

• B 构造函数

• C 析构函数

• D 主函数。

正确答案:A

单选题  

70.在C程序中,如果有FILE *fp;则对于文件指针fp,下面说法正确的是( )。

• A fp是文件读写位置

• B 可以用一个fp同时对多个文件缓冲区操作

• C fp是用以描述文件缓冲区信息的结构的指针

• D 当对文件进行读写操作时,fp也跟着移动

正确答案:C

单选题  

71.个基类可以派生出一个派生类,该派生类再派生出一个派生类,这种继承关系称为( )。

• A 多继承

• B 多重继承

• C 双重继承

• D 单继承

正确答案:D

单选题  

72.假设已经有定义“char *Const name="chen";”下面的语句中正确的是( )。

• A name[3]='q';

• B name=

• C name=newChar[5];

• D name=newChar('q');

正确答案:A

单选题  

73.关于抽象类的下列描述中,正确的是( )。

• A 如果一个类至少有一个纯虚函数,那么该类为抽象类。

• B 抽象类能用作其他类的基类,还能定义抽象类对象。

• C 抽象类中不能再定义普通成员函数。

• D 抽象类可以作为函数的参数类型。

正确答案:A

单选题  

74.在面向对象的程序设计C++中,当用cin、cout输入、输出时程序头部要( )。

• A #include<stdio.h

• B #include<iostream.h

• C #include<stdli

正确答案:B

单选题  

75.不可定义作运算符重载函数的是( )。

• A 类以外的函数

• B 成员函数

• C 构造函数

• D 友员函数。

正确答案:C

单选题  

76.关于new运算符的下列描述中,( )是错误的。

• A 它可以用来动态创建对象和对象数组

• B 使用它创建的对象或对象数组可以使用运算符delete删除

• C 使用它创建对象时要调用构造函数

• D 使用它创建对象数组时必须指定初始值

正确答案:D

单选题  

77.打开磁盘文件的打开方式中,不能使用的是( )。

• A ios::both

• B ios::app

• C ios::int

• D ios::out

正确答案:A

单选题  

78.生类构造函数的执行顺序正确的是( )。

• A 先执行基类的构造函数,再执行派生类的构造函数。

• B 先执行派生类的构造函数,再执行基类的构造函数。

• C 先执行派生类构造函数的函数体,再执行基类构造函数的函数体。

• D 以上都不是。

正确答案:A

单选题  

79.下面有关友元函数的描述中,正确的说法是( )。

• A 友元函数是独立于当前类的外部函数

• B 一个友元函数不能同时定义为两个类的友元函数

• C 友元函数必须在类的外部定义

• D 在外部定义友元函数时,必须加关键字friend

正确答案:A

单选题  

80.类和派生类的相互关系正确的是( )。

• A 从基类到派生类称为派生。

• B 从基类到派生类称为继承。

• C 从派生类到基类称为派生。

• D 派生类包含了基类。

正确答案:A

单选题  

81.关于抽象类的下列描述中,错误的是( )。

• A 如果一个类至少有一个纯虚函数,那么该类为抽象类。

• B 抽象类只能用作其他类的基类,不能建立抽象类对象。

• C 抽象类可以用来定义指针。

• D 抽象类可以作为函数的参数类型。

正确答案:D

单选题  

82.类的友元允许访问该类的( )。

• A 只能是数据成员

• B 私有成员

• C 只能是成员函数

• D 只能是公有成员

正确答案:B

单选题  

83.能用友元函数重载的运算符是( )。

• A +

• B =

• C []

• D -

正确答案:A

单选题  

84.下列的各函数中,不是成员函数的是( )。

• A 构造函数

• B 拷贝构造函数

• C 默认参数的构造函数

• D 友元函数

正确答案:D

单选题  

85.类成员在派生类中的访问属性描述中,错误的是( )。

• A 无论哪种派生,基类的公有成员允许派生类的成员函数访问。

• B 无论哪种派生,基类的保护成员允许派生类的成员函数访问。

• C 无论哪种派生,基类的私有成员不允许派生类的成员函数访问。

• D 无论哪种派生,基类的保护成员不允许派生类的成员函数访问。

正确答案:D

单选题  

86.不是面向对象系统的特性是( )。

• A 封装性

• B 继承性

• C 保密性

• D 多态性

正确答案:C

单选题  

87.不是析构函数的特征是( )。

• A 析构函数可以有多个参数。

• B 析构函数是成员函数。

• C 一个类中只能定义一个析构函数。

• D 析构函数不能有参数。

正确答案:A

单选题  

88.下列关于纯虚函数与抽象类的描述中,错误的是( )。

• A 纯虚函数是一种特殊的函数,它允许没有具体的实现

• B 抽象类是指具有纯虚函数的类

• C 一个基类的说明中有纯虚函数,该基类的派生类一定不再是抽象类

• D 抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出

正确答案:C

单选题  

89.有关运算符重载正确的描述是( )。

• A C++语言允许在重载运算符时改变运算符的操作个数

• B C++语言允许在重载运算符时改变运算符的优先级

• C C++语言允许在重载运算符时改变运算符的结合性

• D C++语言允许在重载运算符时改变运算符原来的功能

正确答案:D

单选题  

90.C++程序中函数原型(函数声明)错误的写法是( )。

• A intAdd(intA,intB);

• B intAdd(int,int);

• C intAdd(intA,B);

• D intAdd(intA,int);

正确答案:C

单选题  

91.下列属于合法的C语言赋值语句的是( )。

• A a=b=58

• B i++

• C a=58,b=58

• D k=int(a+b)

正确答案:A

单选题  

92.也可定义作运算符重载函数的是( )。

• A 构造函数

• B 析构函数

• C 成员函数

• D 主函数。

正确答案:C

单选题  

93.对虚基类正确的论述正确的是( )。

• A 定义基类时加virtual。

• B 成员函数前加virtual。

• C 在派生类名前加virtual。

• D 定义派生类时,在基类名前加virtual。

正确答案:D

单选题  

94.是构造函数的特征是( )。

• A 构造函数不能与类同名。

• B 构造函数必须说明返回类型。

• C 构造函数可以有形式参数。

• D 程序中必须有调用构造函数的语句。

正确答案:C

单选题  

95.设有以下说明语句,则下面的叙述中不正确的是( )。struct XYZ {int x ; float y;Char z ;} xyz;

• A x,y,z都是结构成员名

• B structXYZ是结构类型名

• C struct是定义结构类型的关键字

• D XYZ是结构类型名

正确答案:D

单选题  

96.在C++中,关于下列设置默认参数值的描述中,( )是正确的。

• A 不允许设置默认参数值

• B 在指定了默认值的参数右边,不能出现没有指定默认值的参数

• C 只能在函数的定义性声明中指定参数的默认值

• D 设置默认参数值时,必须全部都设置

正确答案:B

单选题  

97.用派中类的主要原因是( )。

• A 提高代码的可重用性

• B 提高程序的运行效率

• C 加强类的封装性

• D 实现数据的隐藏

正确答案:A

单选题  

98.下列选项中,当 x 为大于1 的奇数时,值为 0 的表达式是( )。

• A x%2==1

• B x%2==0

• C x%2!=0

• D x/2

正确答案:B

单选题  

99.表达式:36.5-(12+7%4)/2.0的运算结果是( )类型。

• A double

• B int

• C float

• D char

正确答案:A

单选题  

100.假设已经有定义“constChar * name="chen";”下面的语句中错误的是( )。

• A name[3]='q';

• B name=

• C name=newChar[5];

• D name=newChar('q');

正确答案:A

单选题  

101.关于成员函数特征的下述描述,正确的是( )。

• A 成员函数一定是内置函数。

• B 成员函数一定要在类外定义完整。

• C 成员函数可以设置参数的默认值。

• D 成员函数一定要在类内定义完整。

正确答案:C

单选题  

102.不是构造函数的特征是( )。

• A 构造函数与类同名。

• B 构造函数必须说明返回类型。

• C 构造函数可以有形式参数。

• D 编译系统会自动调用构造函数。

正确答案:B

单选题  

103.一个基类可以派生出二个派生类,这种继承关系还是称为( )。

• A 多继承

• B 单继承

• C 多重继承

• D 双重继承

正确答案:B

单选题  

104.charA[10] = "abcde",B[8]= "fghi"; strcpy(a+3,b+1); printf("%d ",strlen(a) ); 执行下面程序后的输出结果为( )。

• A 5

• B 6

• C 9

• D 10

正确答案:B

版权声明

声明:有的资源均来自网络转载,版权归原作者所有,如有侵犯到您的权益 请联系本站我们将配合处理!

分享: