PTA c++ 选择判断题总结 您所在的位置:网站首页 成员函数都应是公有的、数据成员都应是私有的 PTA c++ 选择判断题总结

PTA c++ 选择判断题总结

#PTA c++ 选择判断题总结| 来源: 网络整理| 查看: 265

不知不觉一年就又结束了,整理完才感叹我已经做过这么多题了吗,希望能帮到你,加油呀(有一些可能有重复) 有什么问题记得留言哦

1.C++对C语言作了很多改进,下列描述中()使得C语言发生了质变,从面向过程变成了面向对象。D (2分)

增加了一些新的运算符; 允许函数重载,并允许设置缺省参数; 规定函数说明必须用原型; 引进了类和对象的概念;

2.cout 是由I/O 流库预定义的(B )。 (2分) 类 对象 包含文件 常量

3.重载函数在调用时选择的依据中,错误的是(D)。 (2分) 函数的参数 参数的类型 函数的名字 函数的类型

4.对定义重载函数的下列要求中,( C)是错误的。 (2分) 要求参数的个数不同 要求参数中至少有一个类型不同 要求函数的返回值不同 要求参数个数相同时,参数类型不同

5.关于new运算符的下列描述中,(D)是错误的。 (2分) 它可以用来动态创建对象和对象数组; 使用它创建的对象或对象数组可以使用运算符delete删除; 使用它创建对象时要调用构造函数; 使用它创建对象数组时必须指定初始值;

6.关于delete运算符的下列描述中,(C)是错误的。 (2分) 它必须用于new返回的指针; 使用它删除对象时要调用析构函数; 对一个指针可以使用多次该运算符; 指针名前只有一对方括号符号,不管所删除数组的维数。

7.以下程序中,new语句干了什么。(C) (2分) int** num; num = new int* [20]; 分配了长度为20的整数数组空间,并将首元素的指针返回。 分配了一个整数变量的空间,并将其初始化为20。 分配了长度为20的整数指针数组空间,并将num[0]的指针返回。 存在错误,编译不能通过。

8.以下程序存在的问题是:(C) (2分) void fun() { int *num1, *num2; num1 = new int[10]; num2 = new int[20]; num1[0] = 100; num2[0] = 300; num1 = num2; delete [] num1; } num2不能给num1赋值 num2最初指向的空间没有释放 num1最初指向的空间没有释放 程序没有问题

9.设void f1(int * m,long & n);int a;long b;则以下调用合法的是(B)。 (2分) f1(a,b); f1(&a,b); f1(a,&b); f1(&a,&b);

10.一个函数功能不太复杂,但要求被频繁调用,选用( A)。 (2分) 内联函数 重载函数 递归函数 嵌套函数

11.重载函数在调用时选择的依据中,错误的是(D)。 (2分) 函数的参数 参数的类型 函数的名字 函数的类型

12.在( C )情况下适宜采用inline定义内联函数。 (2分) 函数体含有循环语句 函数体含有递归语句 函数代码少、频繁调用 函数代码多、不常调用

13.下面说法正确的是(B)。 (2分) 内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 类的内联函数必须在类体内定义 类的内联函数必须在类体外通过加关键字inline定义

14 对定义重载函数的下列要求中,(C )是错误的。 (2分) 要求参数的个数不同 要求参数中至少有一个类型不同 要求函数的返回值不同 要求参数个数相同时,参数类型不同

15 命名空间应用于: (B)(2分) 在类外定义类的成员函数 避免各个不同函数、变量等的名称冲突 提高代码的执行速度 以上答案都正确

16 如果在函数中定义的局部变量与命名空间中的变量同名时,(B)被隐藏。 (2分) 函数中的变量 命名空间中的变量 两个变量都 两个变量都不

17 如果程序中使用了using命令同时引用了多个命名空间,并且命名空间中存在相同的函数,将出现: (2分) A 编译错误 语法错误 逻辑错误 无法判定错误类型

18 要说明标识符是属于哪个命名空间时,需要在标识符和命名空间名字之间加上:A (2分)

:: -> . ( )

19 如果默认参数的函数声明为“ void fun(int a,int b=1,char c=‘a’,float d=3.2);”, 则下面调用写法正确的是( )。 (2分) B fun(); fun(2,3); fun(2, ,‘c’,3.14) fun(int a=1);

20 给定以下类声明,哪个成员函数可能改变成员变量data? (D)(2分) class A { public: void f1 (int d); void f2 (const int &d); void f3 (int d) const; private: int data; }; f1 f2 f3 f1和f2

21 在下列关键字中,用以说明类中公有成员的是(A )。 (2分) public private protected friend

22 有关类和对象的说法下列不正确的有(C )。 (2分) 对象是类的一个实例 任何一个对象只能属于一个具体的类 一个类只能有一个对象 类与对象和关系与数据类型和变量的关系相似

23 类成员的默认访问属性是:(A) (2分) private protected public 以上答案都不对

24 在面向对象的软件系统中,不同类对象之间的通信的一种构造称为(D) (2分) 属性 封装 类 消息

25 有关类和对象的说法下列不正确的有( C)。 (2分) 对象是类的一个实例 任何一个对象只能属于一个具体的类 一个类只能有一个对象 类与对象和关系与数据类型和变量的关系相似

26 类的实例化是指(B )。 (2分) 定义类 定义对象 调用类的成员函数 访问对象的数据成员

27 关于成员函数特征的描述中,(B )是错误的。 (2分) 成员函数可以重载 成员函数一定是内联函数 一个类可以没有成员函数 成员函数可以设置参数的默认值

28 如果类定义中没有使用 private、protected、或public 关键字,则所有成员( C) (2分) 都是 public 成员 都是 proctected 成员 都是 private 成员 不一定

29 在面向对象系统中,对象是基本的运行时实体,它 (C) 。 (2分) 只能包括数据(属性) 只能包括操作(行为) 把属性和行为封装为一个整体 必须具有显式定义的对象名

30 在面向对象系统中,对象的属性是(C)。 (2分) 对象的行为特性 和其他对象相关联的方式 和其他对象相互区分的特性 与其他对象交互的方式

31 下列对重载函数的描述中,( A)是错误的。 (2分) 重载函数中不允许使用默认参数 重载函数中编译根据参数表进行选择 不要使用重载函数来描述毫无相干的函数 构造函数重载将会给初始化带来多种方式

32 有关类和对象的说法下列不正确的有( C)。 (2分) 对象是类的一个实例 任何一个对象只能属于一个具体的类 一个类只能有一个对象 类与对象和关系与数据类型和变量的关系相似

33 建立一个类对象时,系统自动调用(A)(2分) 构造函数 析构函数 友元函数 成员函数

34 下列函数中,(C )不能重载。 (2分) 成员函数 非成员函数 析构函数 构造函数

35 以下说法中正确的是(C) (2分) 一个类一定会有无参构造函数 构造函数的返回值类型是void 一个类只能定义一个析构函数,但可以定义多个构造函数 一个类只能定义一个构造函数,但可以定义多个析构函数

36 所有类都应该有: (C)(2分) 构造函数 析构函数 构造函数和析构函数 以上答案都不对

37 Given the declaration Circle x[10], which of the following statements is Wrong? (2分) A x contains an array of ten int values. x contains an array of ten objects of the Circle type. Each element in the array is a Circle object. You can change the contents in each object element.

38 下列关于this指针的叙述中,正确的是(D)(2分) 任何与类相关的函数都有this指针 类的成员函数都有this指针 类的友元函数都有this指针 类的非静态成员函数才有this指针

39 以下说法正确的是(C)。 (2分) 在静态成员函数中可以调用同类的其他任何成员函数 const成员函数不能作用于非const对象 在静态成员函数中不能使用this指针 静态成员变量每个对象有各自的一份

40 Variables that are shared by every instances of a class are __. (2分) D public variables private variables instance variables static variables

41 A function that is associated with an individual object is called (C). (2分) a static function a class function an instance function an object function

42 静态成员函数没有:(B) (2分) 返回值 this指针 指针参数 返回类型

43 下面对静态数据成员的描述中,正确的是(A)(2分) 静态数据成员是类的所有对象共享的数据 类的每个对象都有自己的静态数据成员 类的不同对象有不同的静态数据成员 静态数据成员不能通过类的对象调用,只能通过“类名::标识符”调用

44 对于以下关于友元的说法(D) (2分) 如果函数fun被声明为类A的友元函数,则该函数成为A的成员函数 如果函数fun被声明为类A的友元函数,则该函数能访问A的保护成员,但不能访问私有成员 如果函数fun被声明为类A的友元函数,则fun的形参类型不能是A。 以上答案都不对

45 友元的作用是(A) (2分) 提高程序的运用效率 加强类的封装性 实现数据的隐藏性 增加成员函数的种类

46 下面关于友元的描述中,错误的是:(D) (2分) 友元函数可以访问该类的私有数据成员 一个类的友元类中的成员函数都是这个类的友元函数 友元可以提高程序的运行效率 类与类之间的友元关系可以继承

47 关于用string定义字符串,下列选项中错误的是(D)_。 (2分) string s; s = “hello C++”; string s = “hello C++”; string s(“hello C++”); string s[“hello C++”];

48 使用C++标准string类定义一个字符串,需要包含的头文件(B)。 (2分) string.h string cstring stdlib.h

49 下列关于派生类构造函数和析构函数的说法中,错误的是 (2分) D 派生类的构造函数会隐含调用基类的构造函数 如果基类声明了带有形参表的构造函数,则派生类就应当声明构造函数 在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数 在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数

50 建立派生类对象时, 3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、c(派生类的构造函数),这3种构造函数的调用顺序为 (2分) A abc acb cab cba

51 一个类的私有成员 (2分) B 只能被该类的成员函数访问 只能被该类的成员函数和友元函数访问 只能被该类的成员函数、友元函数和派生类访问 以上答案都不对

52 在公有继承的情况下,在派生类中能够访问的基类成员包括 (2分) D 公有成员 保护成员 公有成员、保护成员和私有成员 公有成员和保护成员

53 下列关于派生类构造函数和析构函数的说法中,错误的是 (2分) D 派生类的构造函数会隐含调用基类的构造函数 如果基类声明了带有形参表的构造函数,则派生类就应当声明构造函数 在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数 在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数

54 派生类继承基类的方式有 (2分) D public private protected 以上都对

55 假设在公有派生情况下,以下说法不正确的是 (2分) A 可以将基类对象复制给派生类对象 可以将派生类对象的地址复制给基类指针 可以将派生类对象赋值给基类的引用 可以将派生类对象赋值给基类对象

56 在C++语言中设置虚基类的目的是( ) 。 (2分) C 简化程序代码 提高程序的运行效率 解决多继承造成的二义性问题 缩短程序的目标代码

57 下列关于继承的描述中,错误的是( )。 (2分) D 析构函数不能被继承 派生类是基类的组合 派生类的成员除了它自己的成员外,还包含了它的基类的成员 派生类中继承的基类成员的访问权限到派生类保持不变

58 关于函数模板,描述错误的是。 (2分) A 函数模板必须由程序员实例化为可执行的函数模板 函数模板的实例化由编译器实现 一个类定义中,只要有一个函数模板,则这个类是类模板 类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化

59 下列的模板说明中,正确的是。 (2分) C template < typename T1, T2 > template < class T1, T2 > template < typename T1, typename T2 > template ( typedef T1, typedef T2 )

60 假设有函数模板定义如下:  template  Max( T a, T b ,T &c) { c = a + b ; } 下列选项正确的是( )。 (2分) B int x, y; char z ;Max( x, y, z ) ; double x, y, z ;Max( x, y, z ) ; int x, y; float z ;Max( x, y, z ); float x; double y, z;Max( x, y, z ) ;

61 建立类模板对象的实例化过程为。 (2分) C 基类-派生类 构造函数-对象 模板类-对象 模板类-模板函数

62 在C++语言中设置虚基类的目的是( ) 。 (2分) C 简化程序代码 提高程序的运行效率 解决多继承造成的二义性问题 缩短程序的目标代码

63 一个类的私有成员 (2分) B 只能被该类的成员函数访问 只能被该类的成员函数和友元函数访问 只能被该类的成员函数、友元函数和派生类访问 以上答案都不对

64 以下关于C++语言中继承的叙述中,错误的是( )。 (2分) D 继承是父类和子类之间共享数据和方法的机制 继承定义了一种类与类之间的关系 继承关系中的子类将拥有父类的全部属性和方法 继承仅仅允许单继承,即不允许一个子类有多个父类

65 下列关于类的继承描述中,( )是正确的。(2分) D 派生类公有继承基类时,可以访问基类的所有数据成员,调用所有成员函数。 派生类也是基类,所以它们是等价的。 派生类对象不会建立基类的私有数据成员,所以不能访问基类的私有数据成员。 一个基类可以有多个派生类,一个派生类可以有多个基类。

66 关于类模板,描述错误的是。 (2分) A 一个普通基类不能派生类模板 类模板可以从普通类派生,也可以从类模板派生 根据建立对象时的实际数据类型,编译器把类模板实例化为模板类 函数的类模板参数需生成模板类并通过构造函数实例化

67 下列有关模板的描述,错误的是____。 (2分) D 模板把数据类型作为一个设计参数,称为参数化程序设计 使用时,模板参数与函数参数相同,是按位置而不是名称对应的 模板参数表中可以有类型参数和非类型参数 类模板与模板类是同一个概念

68 The cin stream normally is connected to the display screen. F

69 使用提取符(

int x;

public:

A(int t=0):x(t){ }

int operator+(const A& a1){ return x+a1.x; }

}; (5分)

F 91.In C++, only existing operators can be overloaded. (1分)

T 92.为了能出现在赋值表达式的左右两边,重载的"[]"运算符应定义为:B (2分)

A operator [ ] (int); A& operator [ ] (int); const A operator [ ] (int); 以上答案都不对 93.在C++中不能重载的运算符是 A (2分)

?: +

cout

statement1;

statement2;

statement3; }

catch (Exception1 ex1) { }

catch (Exception2 ex2) { }

If an exception of the Exeception2 type occurs, this exception is caught by the first catch block. If an exception of the Exeception2 type occurs, this exception is caught by the second catch block. The program has a compile error because these two catch blocks are in wrong order. The program has a runtime error because these two catch blocks are in wrong order. 135.Suppose that statement2 throws an exception of type Exception2 in the following statement: (2分) D

try {

statement1; statement2; statement3; }

catch (Exception1 ex1) { }

catch (Exception2 ex2) { }

catch (Exception3 ex3) { statement4; throw; }

statement5;

statement2 statement3 statement4 statement5 136. Suppose that statement3 throws an exception of type Exception3 in the following statement: (2分) C

try {

statement1; statement2; statement3; }

catch (Exception1 ex1) { }

catch (Exception2 ex2) { }

catch (Exception3 ex3) { statement4; throw; }

statement5;

Which statements are executed after statement3 is executed?

statement2 statement3 statement4 statement5 137. 下列关于异常的描述中,错误的是(A)。 (2分)

编译错属于异常,可以抛出 运行错属于异常 硬件故障也可当异常抛出 只要是编程者认为是异常的都可当异常抛出 138. 下列关于异常类的说法中,错误的是。A (2分)

异常类由标准库提供,不可以自定义 C++的异常处理机制具有为抛出异常前构造的所有局部对象自动调用析构函数的能力 若catch块采用异常类对象接收异常信息,则在抛出异常时将通过拷贝构造函数进行对象复制,异常处理完后才将两个异常对象进行析构,释放资源 异常类对象抛出后,catch块会用类对象引用接收它以便执行相应的处理动作 139.C++处理异常的机制是由(B)3部分组成。 (2分)

编辑、编译和运行 检查、抛出和捕获 编辑、编译和捕获 检查、抛出和运行 140. 在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是 C(2分)

友元函数 虚函数 构造函数 析构函数 141.类的析构函数的作用是 D(2分)

一般成员函数的初始化 类的初始化 对象的初始化 删除类创建的对象 142.下列函数中,(C )不能重载。 (2分)

成员函数 非成员函数 析构函数 构造函数

下列关于类和对象的叙述中,错误的是 A(2分)

一个类只能有一个对象 对象是类的具体实例 类是对某一类对象的抽象 类和对象的关系是一种数据类型与变量的关系

2-5 下列属于类的析构函数特征的是 A (2分)

一个类中只能定义一个析构函数 析构函数名与类名不同 析构函数的定义只能在类体内 析构函数可以有一个或多个参数

下列关于类定义的说法中,正确的是 A (2分)

类定义中包括数据成员和函数成员的声明 类成员的缺省访问权限是保护的 数据成员必须被声明为私有的 成员函数只能在类体外进行定义

假设MyClass是一个类,则该类的拷贝初始化构造函数的声明语句为( C) (2分)

MyClass&(MyClass x); MyClass(MyClass x); MyClass(MyClass &x); MyClass(MyClass *x);

下列关于类的构造函数的描述中,错误的是B (2分)

类的构造函数可以重载 类可以没有构造函数 类的构造函数可以缺省 类的构造函数可以作为其它类型向本类类型进行转换的函数

下列对重载函数的描述中,( A)是错误的。 (2分)

重载函数中不允许使用默认参数 重载函数中编译根据参数表进行选择 不要使用重载函数来描述毫无相干的函数 构造函数重载将会给初始化带来多种方式

建立一个类对象时,系统自动调用 A(2分)

构造函数 析构函数 友元函数 成员函数

下面程序的运行结果为C (2分)

#include class A { public: A(){cout



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有