【期末高分题集】[北京语言大学]《面向对象程序设计》考核必备90

奥鹏期末考核

31960–《面向对象程序设计》2022年北京语言大学期末复习题集

单选题:
(1)以下叙述中正确的是( )。
A.使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值
B.使用const定义的常量名有类型之分,其值在程序运行时是不可改变的
C.在程序中使用内联函数使程序的可读性变差
D.在定义函数时可以在形参表的任何位置给出缺省形参值
答案问询微信:424329

(2)C++程序的基本模块为( )。
A.表达式
B.标识符
C.语句
D.函数
答案问询微信:424329

(3)设有如下函数定义int f(char *s) {char *p=s;while(*p!=’’) p++;return(p-s);}在主函数中用coutf(“good”)调用上述函数, 则输出结果为( )。
A.3
B.4
C.5
D.6
答案问询微信:424329

(4)设有定义“static int data[5][6];”,设该数组在静态存储区中的起始地址为十进制的100,若每个int型数占4个字节,则数组元素data[2][3]的地址为( )。
A.115
B.124
C.130
D.160
答案问询微信:424329

(5)转义字符n 表示()
A.制表符
B.退后符
C.回车换行符
D.前进符
答案问询微信:424329

(6)要使语句“p=new int[10][20];”能够正常执行,p应被事先定义为( )。
A.int*p
B.int**p
C.int*p[20]
D.int(*p)[20]
答案问询微信:424329

(7)函数调用不可以( )。
A.出现在一个表达式中
B.出现在执行语句中
C.作为一个函数的实参
D.作为一个函数的形参
答案问询微信:424329

(8)在下面的一维数组定义中,哪一个有语法错误。( )
A.inta[]={1,2,3}
B.inta[10]={0}
C.inta[]
D.inta[5]
答案问询微信:424329

(9)假定变量m定义为“int m=7;”,则定义变量p的正确语句为( )。
A.intp=&m
B.int*p=&m
C.int&p=*m
D.int*p=m
答案问询微信:424329

(10)关于消息,下列说法中不正确的是( )。
A.发送消息的对象请求服务,接受消息的对象提供服务
B.消息的发送者必须了解消息的接收者如何相应消息
C.在C++中,消息的发送具体体现为对接收消息的对象的某个函数的调用
D.每个对象只能接收某些特定格式的消息
答案问询微信:424329

(11)以下关于函数模板叙述正确的是( )。
A.函数模板也是一个具体类型的函数
B.函数模板的类型参数与函数的参数是同一个概念
C.通过使用不同的类型参数,函数模板可以生成不同类型的函数
D.用函数模板定义的函数没有类型
答案问询微信:424329

(12)下列给字符数组赋初值时,正确的是( )。
A.chars1[]=”abcdef”
B.chars2[4]=”abcd”
C.chars3[2][3]={“abc”,”xyz”}
D.chars4[4][]={‘a’,’x’,’s’,’t’}
答案问询微信:424329

(13)C++中函数返回值的类型是由( )决定的。
A.return语句中表达式的类型
B.该函数定义时的类型
C.调用函数时的调用语句
D.系统根据结果
答案问询微信:424329

(14)采用重载函数的目的是( )。
A.实现共享
B.减少空间
C.提高速度
D.使用方便,提高可读性
答案问询微信:424329

(15)由C++目标文件连接而成的可执行文件的默认扩展名为( )。
A.cpp
B.exe
C.obj
D.lik
答案问询微信:424329

(16)以下正确的说法是( )。
A.用户调用标准库函数前,必须重新定义
B.用户可以重新定义标准库函数,若如此,该函数将失去原有含义
C.系统不允许用户重新定义标准库函数
D.用户调用标准库函数前,不必使用预编译命令将该函数所在文件包括到用户源文件中
答案问询微信:424329

(17)函数调用func((exp1,exp2),(exp3,exp4,exp5))中所含实参的个数为( )个。
A.1
B.2
C.4
D.5
答案问询微信:424329

(18)假定p是具有double类型的指针变量,则表达式++p使p的值(以字节为单位)增加( )。
A.1
B.4
C.sizeof(double)
D.sizeof(p)
答案问询微信:424329

(19)下面的标识符中,( )是文件级作用域。
A.函数形参
B.语句标号
C.外部静态类标识符
D.自动类标识符
答案问询微信:424329

(20)假定一条定义语句为“int a[10], x, *pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为( )。
A.x=pa[3]
B.x=*(a+3)
C.x=a[3]
D.x=*pa+3
答案问询微信:424329

(21)用new运算符创建一个含10个元素的一维整型数组的正确语句是( )。
A.int*p=newa[10]
B.int*p=newfloat[10]
C.int*p=newint[10]
D.int*p=newint[10]={1,2,3,4,5}
答案问询微信:424329

(22)以下正确的描述是( )。
A.函数的定义可以嵌套,函数的调用不可以嵌套
B.函数的定义不可以嵌套,函数的调用可以嵌套
C.函数的定义和函数的调用均可以嵌套
D.函数的定义和函数的调用均不可以嵌套
答案问询微信:424329

(23)题面见图片
A.A
B.B
C.C
D.D
答案问询微信:424329

(24)题面见图片
A.A
B.B
C.C
D.D
答案问询微信:424329

(25)题面见图片
A.A
B.B
C.C
D.D
答案问询微信:424329

(26)题面见图片
A.A
B.B
C.C
D.D
答案问询微信:424329

(27)题面见图片
A.A
B.B
C.C
D.D
答案问询微信:424329

(28)题面见图片
A.A
B.B
C.C
D.D
答案问询微信:424329

(29)题面见图片
A.A
B.B
C.C
D.D
答案问询微信:424329

(30)题面见图片
A.A
B.B
C.C
D.D
答案问询微信:424329

(31)题面见图片
A.A
B.B
C.C
D.D
答案问询微信:424329

(32)题面见图片
A.A
B.B
C.C
D.D
答案问询微信:424329

(33)题面见图片
A.A
B.B
C.C
D.D
答案问询微信:424329

(34)题面见图片
A.A
B.B
C.C
D.D
答案问询微信:424329

(35)C语言正确的多行注释字符是
A.//
B./*和*/
C./*
D./***
答案问询微信:424329

(36)题面见图片
A.A
B.B
C.C
D.D
答案问询微信:424329

(37)题面见图片
A.A
B.B
C.C
D.D
答案问询微信:424329

(38)题面见图片
A.A
B.B
C.C
D.D
答案问询微信:424329

(39)当#include后面的文件名用尖括号括起来时,寻找被包含文件的方式是( )。
A.直接按系统设定的标准方式搜索目录
B.先在源程序所在目录搜索,再按系统设定的标准方式搜索目录
C.仅仅搜索源程序所在目录
D.搜索当前逻辑盘上的所有目录
答案问询微信:424329

(40)题面见图片
A.A
B.B
C.C
D.D
答案问询微信:424329

(41)题面见图片
A.A
B.B
C.C
D.D
答案问询微信:424329

(42)题面见图片
A.A
B.B
C.C
D.D
答案问询微信:424329

(43)题面见图片
A.A
B.B
C.C
D.D
答案问询微信:424329

(44)题面见图片
A.A
B.B
C.C
D.D
答案问询微信:424329

(45)若有语句char a[]= "test";则数组a[]中共有( )个变量。
A.3
B.4
C.5
D.0
答案问询微信:424329

(46)C++ 中不能用来组成循环结构的关键字是( )。
A.for
B.while
C.switch
D.do
答案问询微信:424329

(47)C++源程序的扩展名为( )。
A..c
B..cpp
C..c++
D..cplus
答案问询微信:424329

(48)静态成员函数没有( )。
A.返回值
B.返回类型
C.指针参数
D.this指针
答案问询微信:424329

(49)若声明数组int a[10],则对数组中第三个元素的引用正确的是( )。
A.a[1]
B.a[2]
C.a[3]
D.a[4]
答案问询微信:424329

(50)判断char型变量n是否为小写字母的正确表达式为( )。
A.’a’=n=’z’
B.( n=a) =z)
C.(‘a’=n)||(‘z’=n)
D.(n=’a’)=’z’)
答案问询微信:424329

(51)在下面的一维数组定义中,哪一个有语法错误( )。
A.int a[] = {1,2,3}
B.int a[10] = {0}
C.int a[]
D.int a[5]
答案问询微信:424329

(52)函数调用自身被称为( )。
A.继承
B.重载
C.递归
D.多态
答案问询微信:424329

(53)某文件中定义的静态全局变量(或称静态外部变量)其作用域是( )。
A.只限某个函数
B.本文件
C.跨文件
D.不限制作用域
答案问询微信:424329

(54)在函数定义中的形参属于( )。
A.局部变量
B.全局变量
C.静态变量
D.寄存器变量
答案问询微信:424329

(55)不属于成员函数的是( )。
A.静态成员函数
B.友元函数
C.构造函数
D.析构函数
答案问询微信:424329

(56)关于成员函数特征的下列描述中,( )是错误的。
A.成员函数一定是内联函数
B.成员函数可以重载
C.成员函数可以设置参数的默认值
D.成员函数可以是静态的
答案问询微信:424329

(57)有如下类定义:
Class sample{
Int n;
Public:
Sample(int i=0):n(i){}
Void setValue(int n0);
};
下列关于setValue成员函数的实现中,正确的是( )。
A.sample::setValue(int n0){n=n0;}
B.void sample::setValue(int n0){n=n0;}
C.void setValue(int n0){n=n0;}
D.setValue(int n0){n=n0;}
答案问询微信:424329

(58)C++程序从( )开始执行。
A.预处理命令
B.第一个函数的第一条语句
C.第一条语句
D.main函数的第一条语句
答案问询微信:424329

(59)C++所有输入和输出流的基类是( )。
A.stream.h
B.iostream.h
C.cin和cout
D.ios
答案问询微信:424329

(60)一个类的友元函数或友元类能够通过成员访问运算符访问该类的( )。
A.所有成员
B.私有成员
C.保护成员
D.奥鹏期末考核公有成员
答案问询微信:424329

(61)当stream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。
A.ios::in
B.ios::out
C.ios::in|ios::out
D.其他三项都不对
答案问询微信:424329

(62)设a为5,执行下列代码后,b的值不为2 的是( )。
A.b=a/2
B.b=6-(–a)
C.b=a%2
D.b=a3? 3:2
答案问询微信:424329

判断题:
(1)在私有继承中,基类中所有成员对派生类都是不可见的。
答案问询微信:424329

(2)返回值类型、参数个数和类型都相同的函数也可以重载。
答案问询微信:424329

(3)编译错误属于异常,可以抛出。
答案问询微信:424329

(4)在C++中,运算符优先级相同的情况下,按照从右向左的顺序进行计算。
答案问询微信:424329

(5)C++不是类型安全的。
答案问询微信:424329

(6)指定为公有的类成员,可以在类对象所在域中的任何位置访问它们。
答案问询微信:424329

(7)同一个数组中的各个元素数据类型一定相同。
答案问询微信:424329

(8)一条语句最多只能定义一个变量并指定初始值。
答案问询微信:424329

(9)当一个函数体内定义的局部变量和全局变量同名时,程序会优先选择使用局部变量。
答案问询微信:424329

(10)C++是最开始提出类概念的语言。
答案问询微信:424329

(11)说明或定义对象时,类名前面不需要加class关键字。
答案问询微信:424329

(12)一个函数中可以有多于一个return语句。
答案问询微信:424329

(13)类中可以有多个构造函数,它们由参数区分。
答案问询微信:424329

(14)结构体的默认访问权限为public,而类中的默认访问权限为protected。
答案问询微信:424329

(15)当一个函数体内定义的局部变量和全局变量同名时,程序会优先选择使用全局变量。
答案问询微信:424329

(16)类的内联函数必须在类体外通过加关键字inline定义。
答案问询微信:424329

(17)编译时的多态性可通过函数重载实现。
答案问询微信:424329

编程题:
(17)编译时的多态性可通过函数重载实现。
答案问询微信:424329

(17)编译时的多态性可通过函数重载实现。
答案问询微信:424329

(17)编译时的多态性可通过函数重载实现。
答案问询微信:424329

论述题:
(1)请写出五种C++语言中的数据类型名称。
答案问询微信:424329
字符型,说明符为char;
浮点型(又称实型),说明符为float(单精度),double(双精度);
空值型,说明符为void,用于函数和指针。
布尔型:bool

(2)函数之间数据传递的四种形式是哪些?
答案问询微信:424329
实参:常量或表达式;形参:变量;实参和形参具有共同的数据类型但存储空间不同。
② 地址传递:被调用函数的参数本身传给被调用函数,形参变则实参变;
实参:变量的地址;形参:指针变量;
③ 引用:与地址传递效果一样;
实参:变量;形参:同类型的引用;实参和形参具有相同的内存空间,只是名称不同。
④ 全员变量:在函数体外声明,在程序中每个函数都可见。

(3)什么叫函数原型?
答案问询微信:424329
函数原型在c++中就是函数声明,因为它定义了函数名、参数个数、参数类型和返回值。定义是函数声明加上对这个函数的实现,即有花括号跟随在后。

(4)构造函数与普通函数相比有什么不同?
答案问询微信:424329
构造函数的名字必须与类名相同,它不具有任何返回类型。构造函数在创建对象时由系统自动调用。

(5)C++函数中值的传递方式有哪几种?
答案问询微信:424329

(6)面向对象的三个基本特征,并简单叙述之?
答案问询微信:424329
2. 继承:广义的继承有三种实现形式:实现继承(指使用基类的属性和方法而无需额外编码的能力)、可视继承(子窗体使用父窗体的外观和实现代码)、接口继承(仅使用属性和方法,实现滞后到子类实现)。前两种(类继承)和后一种(对象组合=>接口继承以及纯虚函数)构成了功能复用的两种方式。
3. 多态:是将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。

提供优质的教育资源

公众号: 超前自学网