1、二级 C+笔试-174 及答案解析(总分:96.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.在数据库设计中,数据流图表达的是 _。(分数:2.00)A.数据和数据结构的关系B.数据和算法的关系C.数据和处理的关系D.数据和通信的关系2.阅读以下程序,写出程序运行后的输出结果是 _。#includeiostream.hvoid main()char a=H,e,r,1,o,/0;int i, j;i=sizeof((分数:2.00)A./sizeof(char);j=strl3.语句 ofstream f(“SALARY.DAT“ , ios:app | los:
2、binary);的功能是建立流对象 f,试图打开文件SALARY.DAT并与之连接,并且 _。(分数:2.00)A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B.若文件存在,将其置为空文件;若文件不存在,打开失败C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D.若文件存在,打开失败;若文件不存在,建立一个新文件4.下列关于线性表的叙述中,不正确的是 _。(分数:2.00)A.线性表是 n个结点的有穷序列B.线性表可以为空表C.线性表的每一个结点有且仅有一个前趋和一个后继D.线性表结点间的逻辑关系是 1:1 的联系5.关于动态联编的下列叙述中, _
3、 是错误的。(分数:2.00)A.动态联编是以虚函数为基础的B.动态联编调用虚函数操作是指向对象的指针或引用C.动态联编是在运行时确定所调用的函数代码的D.动态联编是在编译时确定操作函数的6.算法指的是 _。(分数:2.00)A.计算机程序B.解决问题的计算方法C.解决问题的有限运算序列D.排序算法7.若有以下的定义, int a =1,2,3,4,5,6,7,8,9,10,*p=a;则值为 3的表达式是 _。(分数:2.00)A.p+=2,*(p+)B.p+=2,*+pC.p+=3,*p+D.p+=2,+*p8.下面关于友元函数描述正确的是 _。(分数:2.00)A.友元函数能访问类的所有成
4、员B.友元函数是类的成员C.只有函数才能声明为另一个的友元D.友元函数能访问类的私有成员9.只有当整数 x为奇数时,其值才是 true的表达式是 _。(分数:2.00)A.x%2=0B.!(x%2=0)C.(x-x/2*2)=0D.!(x%2)10.以下不正确的是 _。(分数:2.00)A.语句 for(i=0; i+)表示无限循环B.for(;)表示无限循环C.for()也表示无限循环D.while(1)表示无限循11.栈和队列 _。(分数:2.00)A.共同之处在于二者都是先进先出的特殊的线性表B.共同之处在于二者都是先进后出的特殊的线性表C.共同之处在于二者都只允许在顶端执行删除操作D.
5、没有共同之处12.以下程序的执行后,x 和 y的值是 _ 。#include iostream. hclass Samplepublic:int x;int y;void disp() cout“x=“x“, y=“yend1;void main()int Sample: :*pc;Sample s;pc=s. *pc=10;pc=s. *pc=.20;s. disp ();(分数:2.00)A.x=10, y=20B.x=20, y=10C.x=10, y=10D.x=20, y=2013.已知二叉树的前序序列为 ABDCEFG,中序序列为 DBCAFEG,则后序序列为 _。(分数:2.00
6、)A.DCBAFGEB.DCBFGEAC.DCBFEGAD.DCBGFEA14.若类 A和类 B的定义如下:class Apublic:int i,j;void get();;class B:Aint i, j;protected;int k;public:void make();;void B: :make()(k=i*j;则其中 _ 是非法的表达式。(分数:2.00)A.void get();B.int k;C.void make();D.k=i*j;15.有如下的对类“X”的说明,其中 _ 是错误的。class X(分数:2.00)A.int a=10;B.X();public:C.X(
7、int val);D. X();16.下列程序的输出结果是 _。#include iostream.hvoid main()int a=1,2,3,4,5,6,*p,*q;p=a;q=cout*(p+);cout*qend1;(分数:2.00)A.34B.56C.12D.2317.设 x是值为 10的 int型变量,则在计算表达式 x+=x-=x-x后,x 的值为 _。(分数:2.00)A.1B.20C.40D.3018.设置虚基类的目的是 _。(分数:2.00)A.简化程序B.消除二义性C.提高程序运行效率D.减少目标代码19.输入流对象是输出流的源头,下面 _ 不是输入流类。(分数:2.0
8、0)A.cinB.istreamC.ifstreamD.istrtream20.为了防止一个用户的工作不适当地影响另一个用户,应该采取 _。(分数:2.00)A.完整性控制B.安全性控制C.并发控制D.访问控制21.软件调试方法中的静态调试方法之一为 _。(分数:2.00)A.计算机辅助静态分析B.黑盒法C.因果固D.路径覆盖22.将小写字母 n赋值给字符变量 one_char,正确的操作是 _。(分数:2.00)A.one_char=nB.one_char=“n“C.one_char=110D.one_char=N23.如果表达式+i*k 中的“+”和“*”都是重载的非静态成员运算符,则采用
9、运算符函数调用格式,该表达式还可表示为= _。(分数:2.00)A.operator*(i.perator+(),k)B.operator*(operator+(i),k)C.(i. operator+().operator*(k)D.operator*(operator+(i)24.关于数据库系统的特点,下列说法中错误的是数据 _。(分数:2.00)A.结构化B.共享性高C.独立性差D.统一管理和控制25.下面程序的结果是 _。#includeiostream.hclass Apublic:virtual void fun()=0;class B:public Apublic:void fu
10、n () cout “new file“ ;class C: public Apublic:void fun ()cout“open file“ “ “ ;class D: public Apublic:void fun () cout “save file/n“ ;void main() A a,*p;B b;C c;D d;p=p-fun ();p=p-fun ();p=p-fun();(分数:2.00)A.new file open file save fileB.new file new file new fileC.编译出错D.open file new file save file
11、26.若二叉树中度为 2的结点有 15个,度为 1的结点有 10个,则有 _ 个叶结点。(分数:2.00)A.25B.30C.31D.1627.以下程序的输出结果是 _。#includeiostream.hvoid main()int i,j;for(j=10;j=11;j+)for(i=9;ij:j+) if(!(j%i)break;if(ij1)coutj“ “ ;(分数:2.00)A.11B.10C.10 11D.928.在下面程序运行#includeiostream.hint func(char s)int length=0;while(*(s+length)length+;retur
12、n length;void main()char a10, *ptr=a;cinptr;coutfune(ptr)end1;如果输入字符串 Hello!并回车,则输出结果为 _。(分数:2.00)A.4B.7C.6D.529.下列说法有错误的是 _。(分数:2.00)A.公有继承时基类的 public成员在派生类中仍是 publicB.私有继承时基类的 public成员在派生类中为 privateC.保护继承时基类的 protected成员在派生类中是 protectcdD.保护继承时基类的 private成员在派生类中是 protected30.有以下定义,则此数组的元素中不正确的一个赋值结
13、果是 _。static int a10=1,2,3,4,5;(分数:2.00)A.a10=2B.a0=1C.a3=4D.a7=031.通过 _ 调用虚函数时,采用动态束定。(分数:2.00)A.对象指针B.对象名C.成员名限定D.派生类名32.每个 C+程序都必须有且仅有一个 _。(分数:2.00)A.预处理命令B.主函数C.函数D.语句33.析构函数的特征是 _。(分数:2.00)A.一个类中只能有一个析构函数B.析构函数名与类名相同C.析构函数的定义只能在类体内D.析构函数可能有一个或多个参数34.为了克服软件危机,人们提出了用 _ 的原理来设计软件,这就是软件工程诞生的基础。(分数:2.
14、00)A.数学B.软件学C.运筹学D.工程学35.设 x为 int的变量,不能正确表达数学关系 10x15 的表达式是 _。(分数:2.00)A.10x15B.x=1|x=12|x=13|x=14C.x10for (i=1; i=100; i+)x=i;if (+x%2=0)if (+x%3=0)if(+x%7=0) couti , ;(分数:2.00)填空项 1:_43.阅读下列程序,写出程序的运行结果 8 。#includeiostream. hvoid main() char str1 : “Hello, World?;char str2100;int i=0;doif (str1i=
15、aelsestr2i=strl i;i+;while(strli!=/0);str2i=/0;coutstr1end1;coutstr2end1;(分数:2.00)填空项 1:_44.函数中的形参和调用时的实参都是变量时,参数传递方式为 9 。(分数:2.00)填空项 1:_45.以下程序的输出结果是 10 。char s =“XYZQ“;void main()char *p;for(p = s; p s+4; p+)coutpend1;(分数:2.00)填空项 1:_46.类是用户定义的类型,具有类类型的变量称作 11 。(分数:2.00)填空项 1:_47.下列程序中声明了两个类 AA和
16、BB,其中函数“print”是类 AA的成员函数,但是类 BB的友元函数。请在、和处各填入正确的内容,使程序能正常运行。#includeiostream.h12 ;class AAint t;public:AA(int x)t=x;void print(BB ;class BBint s;public:BB(int y)s=y;friend void 13 print(BB BB n(8);m.print(n);输出结果为:AA:6;BB:8(分数:2.00)填空项 1:_48.多态性可分为二类:编译时和 15 。(分数:2.00)填空项 1:_二级 C+笔试-174 答案解析(总分:96.0
17、0,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.在数据库设计中,数据流图表达的是 _。(分数:2.00)A.数据和数据结构的关系B.数据和算法的关系C.数据和处理的关系 D.数据和通信的关系解析:2.阅读以下程序,写出程序运行后的输出结果是 _。#includeiostream.hvoid main()char a=H,e,r,1,o,/0;int i, j;i=sizeof((分数:2.00)A./sizeof(char);j=strl解析:3.语句 ofstream f(“SALARY.DAT“ , ios:app | los:binary);的功能是建立流对象
18、f,试图打开文件SALARY.DAT并与之连接,并且 _。(分数:2.00)A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B.若文件存在,将其置为空文件;若文件不存在,打开失败 C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D.若文件存在,打开失败;若文件不存在,建立一个新文件解析:4.下列关于线性表的叙述中,不正确的是 _。(分数:2.00)A.线性表是 n个结点的有穷序列B.线性表可以为空表C.线性表的每一个结点有且仅有一个前趋和一个后继 D.线性表结点间的逻辑关系是 1:1 的联系解析:5.关于动态联编的下列叙述中, _ 是错误的。(分数:
19、2.00)A.动态联编是以虚函数为基础的B.动态联编调用虚函数操作是指向对象的指针或引用C.动态联编是在运行时确定所调用的函数代码的D.动态联编是在编译时确定操作函数的 解析:6.算法指的是 _。(分数:2.00)A.计算机程序B.解决问题的计算方法C.解决问题的有限运算序列 D.排序算法解析:7.若有以下的定义, int a =1,2,3,4,5,6,7,8,9,10,*p=a;则值为 3的表达式是 _。(分数:2.00)A.p+=2,*(p+) B.p+=2,*+pC.p+=3,*p+D.p+=2,+*p解析:8.下面关于友元函数描述正确的是 _。(分数:2.00)A.友元函数能访问类的所
20、有成员B.友元函数是类的成员C.只有函数才能声明为另一个的友元D.友元函数能访问类的私有成员 解析:9.只有当整数 x为奇数时,其值才是 true的表达式是 _。(分数:2.00)A.x%2=0B.!(x%2=0) C.(x-x/2*2)=0D.!(x%2)解析:10.以下不正确的是 _。(分数:2.00)A.语句 for(i=0; i+)表示无限循环B.for(;)表示无限循环C.for()也表示无限循环 D.while(1)表示无限循解析:11.栈和队列 _。(分数:2.00)A.共同之处在于二者都是先进先出的特殊的线性表B.共同之处在于二者都是先进后出的特殊的线性表C.共同之处在于二者都
21、只允许在顶端执行删除操作 D.没有共同之处解析:12.以下程序的执行后,x 和 y的值是 _ 。#include iostream. hclass Samplepublic:int x;int y;void disp() cout“x=“x“, y=“yend1;void main()int Sample: :*pc;Sample s;pc=s. *pc=10;pc=s. *pc=.20;s. disp ();(分数:2.00)A.x=10, y=20 B.x=20, y=10C.x=10, y=10D.x=20, y=20解析:13.已知二叉树的前序序列为 ABDCEFG,中序序列为 DBC
22、AFEG,则后序序列为 _。(分数:2.00)A.DCBAFGEB.DCBFGEA C.DCBFEGAD.DCBGFEA解析:14.若类 A和类 B的定义如下:class Apublic:int i,j;void get();;class B:Aint i, j;protected;int k;public:void make();;void B: :make()(k=i*j;则其中 _ 是非法的表达式。(分数:2.00)A.void get();B.int k;C.void make();D.k=i*j; 解析:15.有如下的对类“X”的说明,其中 _ 是错误的。class X(分数:2.0
23、0)A.int a=10; B.X();public:C.X(int val);D. X();解析:16.下列程序的输出结果是 _。#include iostream.hvoid main()int a=1,2,3,4,5,6,*p,*q;p=a;q=cout*(p+);cout*qend1;(分数:2.00)A.34B.56C.12 D.23解析:17.设 x是值为 10的 int型变量,则在计算表达式 x+=x-=x-x后,x 的值为 _。(分数:2.00)A.1B.20 C.40D.30解析:18.设置虚基类的目的是 _。(分数:2.00)A.简化程序B.消除二义性 C.提高程序运行效率
24、D.减少目标代码解析:19.输入流对象是输出流的源头,下面 _ 不是输入流类。(分数:2.00)A.cin B.istreamC.ifstreamD.istrtream解析:20.为了防止一个用户的工作不适当地影响另一个用户,应该采取 _。(分数:2.00)A.完整性控制B.安全性控制C.并发控制 D.访问控制解析:21.软件调试方法中的静态调试方法之一为 _。(分数:2.00)A.计算机辅助静态分析 B.黑盒法C.因果固D.路径覆盖解析:22.将小写字母 n赋值给字符变量 one_char,正确的操作是 _。(分数:2.00)A.one_char=nB.one_char=“n“C.one_c
25、har=110 D.one_char=N解析:23.如果表达式+i*k 中的“+”和“*”都是重载的非静态成员运算符,则采用运算符函数调用格式,该表达式还可表示为= _。(分数:2.00)A.operator*(i.perator+(),k)B.operator*(operator+(i),k) C.(i. operator+().operator*(k)D.operator*(operator+(i)解析:24.关于数据库系统的特点,下列说法中错误的是数据 _。(分数:2.00)A.结构化B.共享性高C.独立性差 D.统一管理和控制解析:25.下面程序的结果是 _。#includeiostr
26、eam.hclass Apublic:virtual void fun()=0;class B:public Apublic:void fun () cout “new file“ ;class C: public Apublic:void fun ()cout“open file“ “ “ ;class D: public Apublic:void fun () cout “save file/n“ ;void main() A a,*p;B b;C c;D d;p=p-fun ();p=p-fun ();p=p-fun();(分数:2.00)A.new file open file sav
27、e fileB.new file new file new fileC.编译出错 D.open file new file save file解析:26.若二叉树中度为 2的结点有 15个,度为 1的结点有 10个,则有 _ 个叶结点。(分数:2.00)A.25B.30C.31D.16 解析:27.以下程序的输出结果是 _。#includeiostream.hvoid main()int i,j;for(j=10;j=11;j+)for(i=9;ij:j+) if(!(j%i)break;if(ij1)coutj“ “ ;(分数:2.00)A.11B.10C.10 11 D.9解析:28.在下
28、面程序运行#includeiostream.hint func(char s)int length=0;while(*(s+length)length+;return length;void main()char a10, *ptr=a;cinptr;coutfune(ptr)end1;如果输入字符串 Hello!并回车,则输出结果为 _。(分数:2.00)A.4B.7C.6 D.5解析:29.下列说法有错误的是 _。(分数:2.00)A.公有继承时基类的 public成员在派生类中仍是 publicB.私有继承时基类的 public成员在派生类中为 privateC.保护继承时基类的 pro
29、tected成员在派生类中是 protectcdD.保护继承时基类的 private成员在派生类中是 protected 解析:30.有以下定义,则此数组的元素中不正确的一个赋值结果是 _。static int a10=1,2,3,4,5;(分数:2.00)A.a10=2 B.a0=1C.a3=4D.a7=0解析:31.通过 _ 调用虚函数时,采用动态束定。(分数:2.00)A.对象指针 B.对象名C.成员名限定D.派生类名解析:32.每个 C+程序都必须有且仅有一个 _。(分数:2.00)A.预处理命令B.主函数 C.函数D.语句解析:33.析构函数的特征是 _。(分数:2.00)A.一个类
30、中只能有一个析构函数 B.析构函数名与类名相同C.析构函数的定义只能在类体内D.析构函数可能有一个或多个参数解析:34.为了克服软件危机,人们提出了用 _ 的原理来设计软件,这就是软件工程诞生的基础。(分数:2.00)A.数学B.软件学C.运筹学D.工程学 解析:35.设 x为 int的变量,不能正确表达数学关系 10x15 的表达式是 _。(分数:2.00)A.10x15 B.x=1|x=12|x=13|x=14C.x10for (i=1; i=100; i+)x=i;if (+x%2=0)if (+x%3=0)if(+x%7=0) couti , ;(分数:2.00)填空项 1:_ (正确
31、答案:25, 67)解析:43.阅读下列程序,写出程序的运行结果 8 。#includeiostream. hvoid main() char str1 : “Hello, World?;char str2100;int i=0;doif (str1i= aelsestr2i=strl i;i+;while(strli!=/0);str2i=/0;coutstr1end1;coutstr2end1;(分数:2.00)填空项 1:_ (正确答案:Hello, World!HELLO, WORLD!)解析:44.函数中的形参和调用时的实参都是变量时,参数传递方式为 9 。(分数:2.00)填空项
32、1:_ (正确答案:值传递方式)解析:45.以下程序的输出结果是 10 。char s =“XYZQ“;void main()char *p;for(p = s; p s+4; p+)coutpend1;(分数:2.00)填空项 1:_ (正确答案:XYZQYZQZQQ)解析:46.类是用户定义的类型,具有类类型的变量称作 11 。(分数:2.00)填空项 1:_ (正确答案:对象)解析:47.下列程序中声明了两个类 AA和 BB,其中函数“print”是类 AA的成员函数,但是类 BB的友元函数。请在、和处各填入正确的内容,使程序能正常运行。#includeiostream.h12 ;class AAint t;public:AA(int x)t=x;void print(BB ;class BBint s;public:BB(int y)s=y;friend void 13 print(BB BB n(8);m.print(n);输出结果为:AA:6;BB:8(分数:2.00)填空项 1:_ (正确答案:12class BB; 13 AA: 14 AA:print(BB &w))解析:48.多态性可分为二类:编译时和 15 。(分数:2.00)填空项 1:_ (正确答案:运行时多态)解析:
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1