1、计算机二级(C+)8 及答案解析(总分:1765.00,做题时间:90 分钟)一、选择题(每小题 2分,共 70分) 下列各(总题数:25,分数:1750.00)1.下面程序的结果为( )。 #include“ iostreamh“ void change(int a,int b) int temp; temp=a; a=b; b=temp; void main( ) int m,n; m=8; n=9; change(m,n); tout m “ “ n end1; (分数:70.00)A.8 9B.9 8C.程序有错误D.9 92.类的析构函数是在什么时候调用的?(分数:70.00)A.a
2、p-aB.,*(ai)C.piD.a103.以下程序的输出结果是( )。 #includeiostreamh voidmain( ) charx=040; cout(x1); (分数:70.00)A.100B.80C.64D.324.以下程序的输出结果是( )。 #includeiostreamh void main( ) int a=21,b=11; cout- -a+b; (分数:70.00)A.建立自定义对话框时必须执行添加窗体的操作B.自定义对话框实际上是 VB的窗体C.在窗体上还要使用其他控件才能组成自定义对话框D.自定义对话框不一定要有与之对应的事件过程5.有以下程序 #inclu
3、destringh #includeiostreamh void main( ) char *p=“abcde/0fghjik/0“; cout strlen(p); 程序运行后的输出结果是( )。 (分数:70.00)A.12B.15C.6D.56.下面的语句中错误的是( )。(分数:70.00)A.int a=5;int xa;B.const int a=5;int xa;C.int n=5;int *p=new inta;D.const int n=5;int *p=new inta;7.已知各变量的定义如下 int i=8,k,a,b; unsigned long w=5; doubl
4、e x=142,y=52; 则以下符合 C+语言语法的表达式是( )。 (分数:70.00)A.第一个B.最后一个C.全部D.字段值不惟一,不能存储8.已知有定义 constintD=5; inti=1; doublef=0.32; charc=15; 则下列选项错误的是( )。 (分数:70.00)A.+i;B.D-;C.c+;D.-f;9.语句 ofstream f(“SALARYDAT“,ios:appios:binary);的功能是建立流对象 f,试图打开文件 SALARYDAT 并与之连接,并且( )。(分数:70.00)A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一
5、个新文件B.若文件存在,将其置为空文件;若文件不存在,打开失败C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D.若文件存在,打开失败;若文件不存在,建立一个新文件10.以下类定义中可能会引起错误的语句是( )。 class A public: A( ) /1 int i; /2 private: int j; /3 A(int i) i+; /4 ; (分数:70.00)A.1B.2C.3D.411.下列程序的输出结果为( )。 # include iostreamh int func(int n) if (n1)return 1; else return n + fu
6、nc (n-1); return 0; void main( ) cout func (5) endl; (分数:70.00)A.0B.10C.15D.1612.下列关于虚基类的描述,错误的是( )。(分数:70.00)A.设置虚基类的目的是为了消除二义性B.虚基类的构造函数在非虚基类之后调用C.若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用D.若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数13.只能作为成员函数重载的是( )。(分数:70.00)A.类创建时B.创建对象时C.删除对象时D.不自动调用14.下列程序的输出结果是( )。 #inc
7、ludeiostreamh void main( ) int a3,i,j,k=2; for(i=0;i3;i+)ai=i; for(i=0;ik;i+) for(j=0;jk;j+) aj=ai; couta2; (分数:70.00)A.2B.3C.1D.015.以下各选项组中,均是 C+语言关键字的组是( )。(分数:70.00)A.public operator thisB.shod string staticC.it while =D.private cout printf16.下列运算符中,在 C+语言中不能重载的是( )。(分数:70.00)A.*B. =C.:D./17.如果表达
8、式+x/y 中,+是作为友元函数重载的,/是作为成员函数重载的,则该表达式还可为( )。(分数:70.00)A.(operator+(x) )operator/(y)B.(operator+(0) )operator/(y)C.operator/( (operator+(x,0) ),y)D.operator/( (operator+(0) ),y)18.关于虚函数下面说的正确的是(分数:70.00)A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的B.可以被两种类访问和引用:该类本身、该类的所有子类C.只能被该类自身所访问和修改D.只能被同一个包中的类访问19.有
9、以下程序 #includestringh #includeiostreamh void main( ) char *p=“abcde/0fghjik/0“; cout strlen(p); 程序运行后的输出结果是( )。 (分数:70.00)A.C+语言是 C语言的超集B.C+语言对 C语言进行了扩充C.C+语言包含 C语言的全部语法特征D.C+语言与 C语言都是面向对象的程序设计语言20.一个类的友元函数能够访问该类的( )。(分数:70.00)A.私有成员B.保护成员C.公有成员D.所有成员21.下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,在划线处应
10、填入的是( )。 #includeiostreamh voidmain( ) inta,b,t; cinab; while(_) if(ab) t=a;a=b;b=t; couta“bendl; cinab; (分数:70.00)A.!a=bB.a!=bC.a=:bD.a=b22.当使用 fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。(分数:70.00)A.ios:inB.ios:outC.ios:in | ios:outD.以上都不对23.设 int a=10,b= 11,c=12;,表达式( a + b) c b= =c 的值是( )。(分数:70.00
11、)A.2B.0C.-2D.124.与 y=(x0? 1:x0? -1:0);的功能相同的 if语句是( )。(分数:70.00)A.字符串 a的长度B.字符串 b的长度C.字符串 a和 b的长度之差D.字符串 a和 b的长度之和25.面向对象程序设计思想的主要特征中不包括( )。(分数:70.00)A.继承性B.功能分解,逐步求精C.封装性和信息隐藏D.多态性26.下列不属于结构化分析的常用工具的是( )。(分数:-1.00)A.数据流图B.数据字典C.判定树D.PAD图27.程序设计语言的基本成分是数据成分、运算成分、控制成分和( )。(分数:-1.00)A.对象成分B.变量成分C.语句成分
12、D.传输成分28.已知二叉树后序遍历序列是 dabec,中序遍历序列是 debac,它的前序遍历序列是( )。(分数:-1.00)A.acbedB.decabC.deabcD.cedba29.下列说法中,不属于数据模型所描述的内容的是( )。(分数:-1.00)A.数据结构B.数据操作C.数据查询D.数据约束30.下列数据模型中,具有坚实理论基础的是( )。(分数:-1.00)A.层次模型B.网状模型C.关系模型D.以上 3个都是31.为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为( )。(分数:-1.00)A.PAD图B.N-S图C.结构图D
13、.数据流图32.软件生命周期中花费时间最多的阶段是( )。(分数:-1.00)A.详细设计B.软件编码C.软件测试D.软件维护33.在深度为 5的满二叉树中,叶结点的个数为( )。(分数:-1.00)A.32B.31C.16D.1534.在设计程序时,应采纳的原则之一是( )。(分数:-1.00)A.不限制 goto语句的使用B.减少或取消注解行C.程序越短越好D.程序结构应有助于读者理解35.算法的时间复杂度是指( )。(分数:-1.00)A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数D.算法程序中的指令条数三、填空题(每空 2分,共 30分)(总题数:
14、10,分数:30.00)36.下列程序在构造函数和析构函数中申请和释放类的数据成员 int*a,申请时使用形参 b初始化 a,请填空。 classA public: A(intb); A( ); private: int*a; ; A:A(intb) 1; A:A( ) 2; (分数:3.00)填空项 1:_填空项 1:_37.在 C+语言中每个类都有一个 1 指针,该指针指向正在调用成员函数的对象。(分数:3.00)填空项 1:_38.C+语句 const char * const p= “hello“;,所定义的指针 p和它所指的内容都不能被 1。(分数:3.00)填空项 1:_39.下面
15、程序的运行结果是 1 和 2。 #includeiostreamh #define N 10 #define s(x)x * x #define f(x)(x * x) void main3 int i1,i2; i1=1000/s(N);i2=1000/f(N); cout i1 “ “ i2; (分数:3.00)填空项 1:_40.在 C+语言中,访问一个对象的成员所用的运算符是 1,访问一个指针所指向的对象的成员所用的运算符是 2。(分数:3.00)填空项 1:_41. 1是一系列相关函数的模型或样板,这些函数的 2 形式相同,只是所针对的 3 不同。(分数:3.00)填空项 1:_42
16、.内联函数是通过 1 来实现的,因此内联函数是真正的函数。(分数:3.00)填空项 1:_43.表达式 xoperator+(yoperator+(0) )还可以写成 1。(分数:3.00)填空项 1:_44.如果要把返回值为 void的函数 A声明为类 B的友元函数,则应在类 B的定义中加入的语句是 1。(分数:3.00)填空项 1:_45.程序 #include“ iostreamh“ void main1 int i=10; jnt j=5; cout j+i+ end1; 的结果为 2 (分数:3.00)填空项 1:_46.数据库管理系统常见的数据模型有层次模型、网状模型和 13 种。
17、(分数:-1.00)填空项 1:_47.对软件是否能达到用户所期望的要求的测试称为 1。(分数:-1.00)填空项 1:_48.数据流图的类型有 1 和事务型。(分数:-1.00)填空项 1:_49.可以把具有相同属性的一些不同对象归类,称为 1。(分数:-1.00)填空项 1:_50.软件的 1 设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。(分数:-1.00)填空项 1:_计算机二级(C+)8 答案解析(总分:1765.00,做题时间:90 分钟)一、选择题(每小题 2分,共 70分) 下列各(总题数:25,分数:1750.00)1.下面程序的结果为( )。 #include
18、“ iostreamh“ void change(int a,int b) int temp; temp=a; a=b; b=temp; void main( ) int m,n; m=8; n=9; change(m,n); tout m “ “ n end1; (分数:70.00)A.8 9 B.9 8C.程序有错误D.9 9解析:本题考查交换两整数的方法。两数只在函数 change内被使用,函数调用完后该内存被释放,因此没有交换两数。2.类的析构函数是在什么时候调用的?(分数:70.00)A.ap-aB.,*(ai)C.piD.a10 解析:赋值运算符分为赋值运算符(=)和扩展运算符。其
19、中“=”赋值运算符必须满足在赋值运算符的左边是一变量,右边是一表达式;扩展运算符是在赋值运算符“=”前加上其他运算符,如:+ =,*=,=等,特殊的一个表达式是+和-,如选项 B) +i;中的意思是 i=i+1;它其实是个合法的赋值语句。选项 A) a= =1和选项 D) !(+ +a!=b-)都是布尔逻辑表达式,不属于赋值表达式的范畴。 3.以下程序的输出结果是( )。 #includeiostreamh voidmain( ) charx=040; cout(x1); (分数:70.00)A.100B.80C.64 D.32解析:左移 1位,相当于乘以 2,题中的 x的值是一个八进制数,转
20、换为十进制数是 32,再乘以 2,x 的值为 64。4.以下程序的输出结果是( )。 #includeiostreamh void main( ) int a=21,b=11; cout- -a+b; (分数:70.00)A.建立自定义对话框时必须执行添加窗体的操作B.自定义对话框实际上是 VB的窗体C.在窗体上还要使用其他控件才能组成自定义对话框D.自定义对话框不一定要有与之对应的事件过程 解析:所有的字节输出流都继承于 OutputStream类。5.有以下程序 #includestringh #includeiostreamh void main( ) char *p=“abcde/0f
21、ghjik/0“; cout strlen(p); 程序运行后的输出结果是( )。 (分数:70.00)A.12B.15C.6D.5 解析:C+浯言规定了一个字符串结束标志,以字符/0代表,在遇到/ o时,表示字符串结束,由它前面的字符组成字符串。6.下面的语句中错误的是( )。(分数:70.00)A.int a=5;int xa; B.const int a=5;int xa;C.int n=5;int *p=new inta;D.const int n=5;int *p=new inta;解析:在 C+中定义数组时,数组的范围参数在静态定义时必须是一个常数,而在动态分配内存定义时可以是常数
22、,也可以是一个赋了值得参数。故选项 A) 是错误的定义方法。7.已知各变量的定义如下 int i=8,k,a,b; unsigned long w=5; double x=142,y=52; 则以下符合 C+语言语法的表达式是( )。 (分数:70.00)A.第一个 B.最后一个C.全部D.字段值不惟一,不能存储解析:本题考查的是在继承中派生类的对象调用构造函数的顺序,应该 是先调用基类的构造函数,然后是成员中的对象对应类的构造函数,最后是派生类自己 的构造函数。8.已知有定义 constintD=5; inti=1; doublef=0.32; charc=15; 则下列选项错误的是( )。
23、 (分数:70.00)A.+i;B.D-; C.c+;D.-f;解析:“+”,“-”运算符不能用于常量。9.语句 ofstream f(“SALARYDAT“,ios:appios:binary);的功能是建立流对象 f,试图打开文件 SALARYDAT 并与之连接,并且( )。(分数:70.00)A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件 B.若文件存在,将其置为空文件;若文件不存在,打开失败C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D.若文件存在,打开失败;若文件不存在,建立一个新文件解析:本题考查的是文件流的操作,app 表示追加方
24、式打开文件(即将指 针移至文件尾),binary 表示以二进制方式打开文件。10.以下类定义中可能会引起错误的语句是( )。 class A public: A( ) /1 int i; /2 private: int j; /3 A(int i) i+; /4 ; (分数:70.00)A.1B.2C.3D.4 解析:本题考查关于 C+语言类的定义方法。在 c+语言中类定义中的构造函数是私有的,但是其却调用了其中的公有变量,在实例化时会出现错误。11.下列程序的输出结果为( )。 # include iostreamh int func(int n) if (n1)return 1; else
25、 return n + func (n-1); return 0; void main( ) cout func (5) endl; (分数:70.00)A.0B.10C.15D.16 解析:本题考查的是递归函数的使用,题中递归函数的结束条件为 n12.下列关于虚基类的描述,错误的是( )。(分数:70.00)A.设置虚基类的目的是为了消除二义性B.虚基类的构造函数在非虚基类之后调用 C.若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用D.若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数解析:虚基类的引入就是为了消除二义性,其构造函数的调用仍然是按
26、照继承的顺序进行的,对于多个虚基类则按它们说明的次序调用,虚基类的构造函数选于非虚基类的构造函数执行。13.只能作为成员函数重载的是( )。(分数:70.00)A.类创建时B.创建对象时C.删除对象时 D.不自动调用解析:析构函数就是用来释放对象的,它的调用完成之后,对象也就消失了,相应的内存空间也被释放了。14.下列程序的输出结果是( )。 #includeiostreamh void main( ) int a3,i,j,k=2; for(i=0;i3;i+)ai=i; for(i=0;ik;i+) for(j=0;jk;j+) aj=ai; couta2; (分数:70.00)A.2 B
27、.3C.1D.0解析:本题里有三个 for循环,但要分清楚,第一个是单独的给三个元素赋值,赋完值后三个 a0=0,a1=1,a2=2;后面的两个 for是嵌套循环,对数组元素的赋值,但由于 k=2,初值已定 for里的条件是小于 k,所以不管怎么处理都影响不到 a 2,故答案为 2。15.以下各选项组中,均是 C+语言关键字的组是( )。(分数:70.00)A.public operator this B.shod string staticC.it while =D.private cout printf解析:关键字是系统已预定义的单词,在程序中有不同的用途,考生应该 熟记。16.下列运算符
28、中,在 C+语言中不能重载的是( )。(分数:70.00)A.*B. =C.: D./解析:不能被重载的运算符还包括:“”,“* ”,“- * ”和“?:”。17.如果表达式+x/y 中,+是作为友元函数重载的,/是作为成员函数重载的,则该表达式还可为( )。(分数:70.00)A.(operator+(x) )operator/(y) B.(operator+(0) )operator/(y)C.operator/( (operator+(x,0) ),y)D.operator/( (operator+(0) ),y)解析:C+中用成员函数重载+x 为:xoperator+( ),用友元函数
29、重载+x 为:operator+(x),用成员函数重载 x/y为:xoperator/(y),用友元函数重载 x/y为:operator/(x,y)。18.关于虚函数下面说的正确的是(分数:70.00)A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的B.可以被两种类访问和引用:该类本身、该类的所有子类C.只能被该类自身所访问和修改 D.只能被同一个包中的类访问解析:对象是属性、方法和事件的集成,所以选项 A)说法正确;例如 Print 方法是用来输出字符串、变量和表达式的值,也就是完成输出的这一功能,所以选项 D)的说法正确;在执行方法时,不必考虑实现输出的具体步
30、骤,方法的步骤是系统预先规定好的,所以选项 B)说法正确。19.有以下程序 #includestringh #includeiostreamh void main( ) char *p=“abcde/0fghjik/0“; cout strlen(p); 程序运行后的输出结果是( )。 (分数:70.00)A.C+语言是 C语言的超集B.C+语言对 C语言进行了扩充C.C+语言包含 C语言的全部语法特征D.C+语言与 C语言都是面向对象的程序设计语言 解析:笛卡儿积是将指定集合中的每个元组逐个进行乘积运算,所花费的时间相对与选择、联接等运算要长。20.一个类的友元函数能够访问该类的( )。(分
31、数:70.00)A.私有成员B.保护成员C.公有成员D.所有成员 解析:一个类的友元函数对类成员的访问能力等同于类的成员函数,即能访问类的所有成员。 21.下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,在划线处应填入的是( )。 #includeiostreamh voidmain( ) inta,b,t; cinab; while(_) if(ab) t=a;a=b;b=t; couta“bendl; cinab; (分数:70.00)A.!a=bB.a!=b C.a=:bD.a=b解析:根据本题提出的条件可知,控制循环的表达式应该是所输入的两数互不相等
32、,也即只有满足这一条件时,两数才能进行排序输出的操作,由此得出循环的控制表达式应该为 a!=b。22.当使用 fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。(分数:70.00)A.ios:inB.ios:outC.ios:in | ios:outD.以上都不对 解析:使用 fstream类建立文件流必须定义打开方式,否则编译器无法判断该文件流是读还是写。23.设 int a=10,b= 11,c=12;,表达式( a + b) c b= =c 的值是( )。(分数:70.00)A.2B.0 C.-2D.1解析:本题考查的是运算符的优先级,应该先计算 a+b的
33、值为 21,然后 与 c比较大小的值为 0,根据“”的运算规则,整个表达式的值为 0。24.与 y=(x0? 1:x0? -1:0);的功能相同的 if语句是( )。(分数:70.00)A.字符串 a的长度B.字符串 b的长度C.字符串 a和 b的长度之差D.字符串 a和 b的长度之和 解析:国际化命令只包含一个命令 native2ascii,该命令将含有本机编码 字符的文件,转换成 Unicode编码字符的文件。25.面向对象程序设计思想的主要特征中不包括( )。(分数:70.00)A.继承性B.功能分解,逐步求精 C.封装性和信息隐藏D.多态性解析:面向对象程序设计的主要特征是继承性,封装
34、性和信息隐藏,多态性。26.下列不属于结构化分析的常用工具的是( )。(分数:-1.00)A.数据流图 B.数据字典C.判定树D.PAD图解析:结构化分析的常用工具有数据流图、数据字典、判定树和判定表。而 PAD图是常见的过程设计工具中的图形设计。27.程序设计语言的基本成分是数据成分、运算成分、控制成分和( )。(分数:-1.00)A.对象成分B.变量成分C.语句成分D.传输成分 解析:程序设计语言是用于书写计算机程序的语言,其基本成分有以下 4种,数据成分:用来描述程序中的数据。运算成分:描 述程序中所需的运算。控制成分:用来构造程序的逻辑控制结构。传输成分:定义数据传输成分,如输入输出语
35、言。28.已知二叉树后序遍历序列是 dabec,中序遍历序列是 debac,它的前序遍历序列是( )。(分数:-1.00)A.acbedB.decabC.deabcD.cedba 解析:依据后序遍历序列可确定根结点为 c;再依据中序遍历序列可知其左子树由 deba构成,右子树为空;又由左子树的后序遍历序列可知其根结点为 e,由中序遍历序列可知其左子树为 d,右子树由 ba构成,如图 9-14所示。求得该二叉树的前序遍历序列为选项 D)。29.下列说法中,不属于数据模型所描述的内容的是( )。(分数:-1.00)A.数据结构B.数据操作C.数据查询 D.数据约束解析:数据模型所描述的内容有 3个
36、部分,它们是数据结构、数据操作和数据约束。其中,数据模型中的数据结构主要描述数据的类型、内容、性质,以及数据库的联系等;数据操作主要是描述在相应数据结构上的操作类型与操作方式。30.下列数据模型中,具有坚实理论基础的是( )。(分数:-1.00)A.层次模型B.网状模型C.关系模型 D.以上 3个都是解析:关系模型比格式化模型(网状模型和层次模型)有以下方面的优点,即数据结构比较简单、具有很高的数据独立性、可以直接处理多对多的联系,以及有坚实的理论基础。31.为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为( )。(分数:-1.00)A.PAD图
37、B.N-S图 C.结构图D.数据流图解析:常见的过程设计工具有:程序流程图,N-s 图、PAD 图和 HIPO图。其中,为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为 N-S图。32.软件生命周期中花费时间最多的阶段是( )。(分数:-1.00)A.详细设计B.软件编码C.软件测试D.软件维护 解析:软件生命周期分为软件定义、软件开发及软件运行维护 3个所段。本题中,详细设计、软什编码和软件测试都属于软件开发阶段;维护是软件生命周期的最后一个阶段,也是持续时间最长,花费代价最大的一个阶段,软件工程学的一个目的就是提高软件的可维护性降低维护的代价
38、。33.在深度为 5的满二叉树中,叶结点的个数为( )。(分数:-1.00)A.32B.31 C.16D.15解析:所谓满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个叶子结点。这就是 说,在满二叉树中,层上的结点数都达到最大值,即在满二叉树的第 k层上有 2k-1 个结点,且深度为 m的满二叉树有 2m-1 个结点。34.在设计程序时,应采纳的原则之一是( )。(分数:-1.00)A.不限制 goto语句的使用B.减少或取消注解行C.程序越短越好D.程序结构应有助于读者理解 解析:滥用 goto浯句将使程序流程无规律,可读性差,因此选项 A)不选; 注解行有利于对程序的
39、理解,不应减少或取消,选项 B)也不选;程序的长短要依照实际情况而论,而不是越短越好,选项 C)也不选。35.算法的时间复杂度是指( )。(分数:-1.00)A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数 D.算法程序中的指令条数解析:算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度一般是指执行这个算法所需要的内存空间。三、填空题(每空 2分,共 30分)(总题数:10,分数:30.00)36.下列程序在构造函数和析构函数中申请和释放类的数据成员 int*a,申请时使用形参 b初始
40、化 a,请填空。 classA public: A(intb); A( ); private: int*a; ; A:A(intb) 1; A:A( ) 2; (分数:3.00)填空项 1:_ (正确答案:a=new)填空项 1:_ (正确答案:int(b))解析:C+中 new和 delete的使用有如下几种:a=new int;delete a;a=new int(10);deletea;a=new int10;deletea;。 37.在 C+语言中每个类都有一个 1 指针,该指针指向正在调用成员函数的对象。(分数:3.00)填空项 1:_ (正确答案:this)解析:C+语言中 thi
41、s指针是类自带的一个指针,它指向正在调用成员函数的对象。38.C+语句 const char * const p= “hello“;,所定义的指针 p和它所指的内容都不能被 1。(分数:3.00)填空项 1:_ (正确答案:改变)解析:本题考查的是定义常量的关键字 const,由 sonst定义的变量的值不可以再改变,所以定义时必须进行初始化。39.下面程序的运行结果是 1 和 2。 #includeiostreamh #define N 10 #define s(x)x * x #define f(x)(x * x) void main3 int i1,i2; i1=1000/s(N);i2
42、=1000/f(N); cout i1 “ “ i2; (分数:3.00)填空项 1:_ (正确答案:1000)解析:对于 define宏定义语句,系统会在编译前进行替换。本题替换过程如下: i1=1000/s(N) i1=1000/s(10) i1=1000/10*10 i1=1000 i2=1000/f(N) i2=1000/f(10) i2=1000/(10*10) i2=10 40.在 C+语言中,访问一个对象的成员所用的运算符是 1,访问一个指针所指向的对象的成员所用的运算符是 2。(分数:3.00)填空项 1:_ (正确答案:成员选择运算符(或“))解析:本题考查的是使用对象和对象
43、指针访问成员所使用的符号的不同,请注意它们的区别。 41. 1是一系列相关函数的模型或样板,这些函数的 2 形式相同,只是所针对的 3 不同。(分数:3.00)填空项 1:_ (正确答案:函数模板)解析:本题考查 C+中函数模板的定义。函数模板是一系列相关函数的模型或样板,这些函数的源代码形式相同,只是所针对的数据类型不问。注意:声明一个函数的模板格式是:template 模板形参表声明 函数声明 42.内联函数是通过 1 来实现的,因此内联函数是真正的函数。(分数:3.00)填空项 1:_ (正确答案:编译器)解析:本题考查内联函数的基本概念内联函数是通过编译器,只是在调用的时候,像宏一样展
44、开。43.表达式 xoperator+(yoperator+(0) )还可以写成 1。(分数:3.00)填空项 1:_ (正确答案:x+y+或 x+(y+))解析:因为 yoperator+(0)是对成员 y重载运算符,所以是成员重载,在参数表中又有一个参数,是重载后缀+,即是 x+(y+)。44.如果要把返回值为 void的函数 A声明为类 B的友元函数,则应在类 B的定义中加入的语句是 1。(分数:3.00)填空项 1:_ (正确答案:friend void A-|_|-;)解析:C+中类的友元函数在声明时应在该函数前面加上关键字 friend,同样如果要声明一个类为另一个类的友元类也要在
45、前面类名前加上 friend。 45.程序 #include“ iostreamh“ void main1 int i=10; jnt j=5; cout j+i+ end1; 的结果为 2 (分数:3.00)填空项 1:_ (正确答案:15)解析:i+为先做与 i有关的运算后,i 自加 1,而+i 是先给 i加 1再进行与 i有关的操作46.数据库管理系统常见的数据模型有层次模型、网状模型和 13 种。(分数:-1.00)填空项 1:_ (正确答案:关系模型)解析:数据库管理系统是位于用户与操作系统之间的一层系统管理软件,是一种系统软件,是用户与数据库之间的一个标准接口。其总是基于某种数据模型