您的本次作业分数为: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
版权声明
声明:有的资源均来自网络转载,版权归原作者所有,如有侵犯到您的权益
请联系本站我们将配合处理!