1、二级 C+笔试 42 及答案解析(总分:98.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.结构程序设计的 3 种结构是 _.(分数:2.00)A.顺序结构、选择结构,转移结构B.分支结构,等价结构、循环结构C.多分支结构、赋值结构、等价结构D.顺序结构选择结构、循环结构2.两次运行下面的程序,如果从键盘上分别输入 10 和 8,则输出结果为 _。 #includeiostream.h viod main() int x: cinx: if(x+9)coutx; else coutxendl; (分数:2.00)A.11 和 8B.11 和 9C.10 和
2、8D.10 和 93.从键盘的输入中,读入一个值并赋值给 x 的语句是 _ 。(分数:2.00)A.cinxB.cinxC.coutxD.coutx4.C+中数组下标的下限是 _。(分数:2.00)A.1B.0C.不确定D.无固定下限5.用二维表来表示实体及实体之间联系的数据模型称为 _。(分数:2.00)A.实体联系模型B.层次模型C.网状模型D.关系模型6.当执行下面的程序时,如果输入 ABC,输出结果是 _。 #includeiostream.h #includestring.h void main() char ss10=“XYZWV”; cinss; strcat(ss,”DEFG”
3、); coutss; (分数:2.00)A.ABCDEFGB.ABCEFC.XYZVO/ABCXD.ABCXYZWVD7.字符串常量“ME”的字符个数是 _。(分数:2.00)A.1B.2C.3D.48.当在使用类模板时,类模板本身被实例化咸了一个具体的 _。(分数:2.00)A.对象B.实例C.模板类D.类9.分层 DFD 图是一种比较严格又易于理解的描绘方式,它的顶层图的作用在于 _。(分数:2.00)A.描绘了系统的实现细节B.表明了被开发系统的范围以及它和周围环境的数据交换关系C.描绘了系统的抽象D.描绘了软件实现的作者和绘制的时间10.某算法的空间花费 s(n)=100nlog2n+
4、0.5logn+1000n+2000,其空间复杂度为 _.(分数:2.00)A.0(1)B.0(C.0(n1.5)D.0(nlog211.“软件危机”产生的主要原因是 _.(分数:2.00)A.软件日益庞大B.开发方法不当C.开发人员编写程序能力差D.没有维护好软件12.栈和队列 _.(分数:2.00)A.共同之处在于二者都是先进先出的特殊的线性表B.共同之处在于二者都是先进后出的特殊的线性表C.共同之处在于二者都只允许在顶端执行删除操作D.没有共同之处13.以下程序输出结果是 _。 #includeiostream.h void n(int i); void f2(int i); char
5、st=”Howdoyoudo!”; void fl(int i) coutsti; if(i3) i+=2: f2(i): void f2(int i) coutsti; if(i3) i+=2; f1(i); void main() int i=0; f1(i); (分数:2.00)A.HowB.doC.HwoD.Hwoy14.若有以下程序段: void x(int n); void main() void x(int n); x(5); void x(int n) coutn: 则以下叙述不正确的是 _。(分数:2.00)A.若只在子函数中对函数 x 进行声明,则只能在主数中正确调用函数
6、xB.若只在子函数前面对函数 x 进行声明,则其后的所有函数中都可以正确调用函数 xC.对于以上程序,编译时系统会提示出错信息:提示对 x 函数重复声明D.函数 x 无返回值,所以可用 void 定义 x 的函数类型15.若深度为 5 的完全二叉树的第 5 层有 3 个叶结点,则该二叉树一共有 _ 个结点(分数:2.00)A.15B.16C.17D.1816.下列各高级语言中,_ 是面向对象的程序语言(分数:2.00)A.BASICB.CC.C+D.PASAL17.下面 _ 机制允许对一个函数名给出多个函数定义(分数:2.00)A.封装性B.继承性C.函数重载D.多态性18.下面 4 个选项中
7、均是合法的用户标识符的是 _。(分数:2.00)A.define,void,AB.ab_3,_123,helloC.For,-abc,CaseD.2a,D0,sizeof19.在类中说明的成员可以使用关键字 _ 进行修饰(分数:2.00)A.privateB.externC.autoD.register20.在下面程序中,编译出现错误的语句是 _。 class B public: B( )f(); virtual void f()=0; ;(分数:2.00)A.class BB.public:C.B() f();D.virtual void f()=0;21.下列说法有错误的是 _。(分数:2
8、.00)A.公有继承时基类的 public 成员在派生类中仍是 publicB.私有继承时基类的 public 成员在派生类中为 privateC.保护继承时基类的 protected 成员在派生类中是 protectedD.保护继承时基类的 private 成员在派生类中是 protected22.设有如下程序段: char str=”World”; char*ptr=str; 执行上面的程序段后,*(ptr+5)的值为 _。(分数:2.00)A.oB.0C.不确定的值D.o的地址23.当将 E-R 模型转换为关系模型时,对于两实体间 m:n 联系,必须对“联系”单独建立 _,用来联系双方实
9、体。(分数:2.00)A.一个实体B.一个属性C.一个指针D.一个关系24.以下程序的输出结果是 _。 #define NULL 0 #includeiostream.h void main() int a=1,2,3,4,5,6,7,8,9,10; int *p=a+5,*q=NULL; *q=*(p+5); cout*p *q; (分数:2.00)A.运行后报错B.6 6C.6 11D.5 525.函数模板 _。(分数:2.00)A.代表某一具体函数B.与模板函数是同一个函数C.与某一个具体的数据类型连用,就产生了函数模板D.是模板函数实例的结果26.派生类的构造函数的成员初始化列表中,不
10、能包含 _。(分数:2.00)A.基类的构造函数B.派生类中子对象的初始化C.基类的子对象初始化D.派生类中一般数据成员的初始化27.下列标识合法的是 _。(分数:2.00)A.2opB.voidC.shortD.Dfe28.带有虚基类的多层派生类,构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化 _。(分数:2.00)A.与虚基类下面的派生类个数有关B.多次C.二次D.一次29.对于 C+流运算符,说法正确的是 _ 。(分数:2.00)A.它可以重载为类的友元或成员函数B.它是流类的一个输出运算符C.C+内预定义了各种基本数据类型的输入操作D.可以直接用它输入
11、类类型数据30.数据库逻辑设计阶段分为 _。(分数:2.00)A.收集和分析、建立 ER 模型、数据库模式设计B.模型设计和应用程序设计C.概念设计、逻辑设计、物理设计D.设计、建立 ER 模型和模式设计31.当执行以下程序时,_ 是正确的 k=1; do k=k*k; while(!k)(分数:2.00)A.循环体将执行一次B.循环体将执行两次C.循环体将执行无限次D.系统将提示有语法错误32.以下程序段的输出结果是 _。 #includeiostream.h void main() int x二9,7,5,3,1),y=0,j,*p= ;)表示无限循环C.for()也表示无限循环D.whi
12、le(1)表示无限循环34.下列说法正确的是 _。(分数:2.00)A.一元运算符重载为成员函数没有参数B.一元运算符重载为友员函数没有参数C.二元运算符重载为友员函数有一个参数D.二元运算符重载为成员函数有二个参数35.若有定义:int aa8,则以下表达式中不能代表数组元素 a1地址的是 _。(分数:2.00)A. cinab; if(ab) a=a+b; b=a-b; a=a-b; couta“,”bendl (分数:2.00)填空项 1:_43.有如下程序段: int n=0,sum=0; while(n+,n50) if(n%2= =0)continue; sum+=n; couts
13、um; 此程序段执行的输出结果为U 8 /U,while 语句共执行了U 9 /U次。(分数:2.00)填空项 1:_44.以下程序执行时,输出“#”号的个数是U 10 /U。 #include iostream.h vied main() int i, j; for(i=1;i5;i+) for(j=2;ji;j+)cout#; (分数:2.00)填空项 1:_45.下面程序的功能是输出数组 s 中最小元素,请填空。 #includeiostream.h void main() int k, p, s=1,-9,7,2,-10,3; k=s0; for(p=0;p6;p+) if(spk)U
14、 11 /U; coutk; (分数:2.00)填空项 1:_46.以下程序的输出结果是U 12 /U。 #includeiostrean.h void main() int i,a5; i=0; while(i5) ai=8*(i-2+4*(i2)%5; i+; for(i=4;i=0;i-) coutai;(分数:2.00)填空项 1:_47.下面程序的结果U 13 /U。 #includeiostream.h int f(int); void main() int x=1, i; for (i=0; i3; i+) coutf(x) ; coutend1; int f(int x) in
15、t y=1; static int z=3 y+; z+; return (x+y+z); (分数:2.00)填空项 1:_48.分析以下程序执行结果U 14 /U。 #includeiostream.h int f (int x, int y) return x,y; double f (double x, double y) return x,y; void main() int a=4, b=6; double c=2.6, d=7.4; coutf (a, b) “,“f (c, d) end1; (分数:2.00)填空项 1:_49.以下程序的输出结果是U 15 /U。 #inclu
16、deiostream. h void main() char *p= “12345678“ , *r; long *q; q=(long *)p; q+; r= (char *) q: coutr; (分数:2.00)填空项 1:_二级 C+笔试 42 答案解析(总分:98.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.结构程序设计的 3 种结构是 _.(分数:2.00)A.顺序结构、选择结构,转移结构B.分支结构,等价结构、循环结构C.多分支结构、赋值结构、等价结构D.顺序结构选择结构、循环结构 解析:2.两次运行下面的程序,如果从键盘上分别输入 10 和
17、 8,则输出结果为 _。 #includeiostream.h viod main() int x: cinx: if(x+9)coutx; else coutxendl; (分数:2.00)A.11 和 8B.11 和 9 C.10 和 8D.10 和 9解析:3.从键盘的输入中,读入一个值并赋值给 x 的语句是 _ 。(分数:2.00)A.cinxB.cinxC.coutxD.coutx 解析:4.C+中数组下标的下限是 _。(分数:2.00)A.1B.0 C.不确定D.无固定下限解析:5.用二维表来表示实体及实体之间联系的数据模型称为 _。(分数:2.00)A.实体联系模型B.层次模型C
18、.网状模型D.关系模型 解析:6.当执行下面的程序时,如果输入 ABC,输出结果是 _。 #includeiostream.h #includestring.h void main() char ss10=“XYZWV”; cinss; strcat(ss,”DEFG”); coutss; (分数:2.00)A.ABCDEFG B.ABCEFC.XYZVO/ABCXD.ABCXYZWVD解析:7.字符串常量“ME”的字符个数是 _。(分数:2.00)A.1B.2C.3 D.4解析:8.当在使用类模板时,类模板本身被实例化咸了一个具体的 _。(分数:2.00)A.对象B.实例C.模板类D.类 解
19、析:9.分层 DFD 图是一种比较严格又易于理解的描绘方式,它的顶层图的作用在于 _。(分数:2.00)A.描绘了系统的实现细节B.表明了被开发系统的范围以及它和周围环境的数据交换关系 C.描绘了系统的抽象D.描绘了软件实现的作者和绘制的时间解析:10.某算法的空间花费 s(n)=100nlog2n+0.5logn+1000n+2000,其空间复杂度为 _.(分数:2.00)A.0(1)B.0(C.0(n1.5)D.0(nlog2 解析:11.“软件危机”产生的主要原因是 _.(分数:2.00)A.软件日益庞大 B.开发方法不当C.开发人员编写程序能力差D.没有维护好软件解析:12.栈和队列
20、_.(分数:2.00)A.共同之处在于二者都是先进先出的特殊的线性表B.共同之处在于二者都是先进后出的特殊的线性表C.共同之处在于二者都只允许在顶端执行删除操作 D.没有共同之处解析:13.以下程序输出结果是 _。 #includeiostream.h void n(int i); void f2(int i); char st=”Howdoyoudo!”; void fl(int i) coutsti; if(i3) i+=2: f2(i): void f2(int i) coutsti; if(i3) i+=2; f1(i); void main() int i=0; f1(i); (分数
21、:2.00)A.HowB.doC.Hwo D.Hwoy解析:14.若有以下程序段: void x(int n); void main() void x(int n); x(5); void x(int n) coutn: 则以下叙述不正确的是 _。(分数:2.00)A.若只在子函数中对函数 x 进行声明,则只能在主数中正确调用函数 xB.若只在子函数前面对函数 x 进行声明,则其后的所有函数中都可以正确调用函数 xC.对于以上程序,编译时系统会提示出错信息:提示对 x 函数重复声明 D.函数 x 无返回值,所以可用 void 定义 x 的函数类型解析:15.若深度为 5 的完全二叉树的第 5
22、层有 3 个叶结点,则该二叉树一共有 _ 个结点(分数:2.00)A.15B.16C.17D.18 解析:16.下列各高级语言中,_ 是面向对象的程序语言(分数:2.00)A.BASICB.CC.C+ D.PASAL解析:17.下面 _ 机制允许对一个函数名给出多个函数定义(分数:2.00)A.封装性B.继承性C.函数重载D.多态性 解析:18.下面 4 个选项中均是合法的用户标识符的是 _。(分数:2.00)A.define,void,AB.ab_3,_123,hello C.For,-abc,CaseD.2a,D0,sizeof解析:19.在类中说明的成员可以使用关键字 _ 进行修饰(分数
23、:2.00)A.private B.externC.autoD.register解析:20.在下面程序中,编译出现错误的语句是 _。 class B public: B( )f(); virtual void f()=0; ;(分数:2.00)A.class BB.public:C.B() f(); D.virtual void f()=0;解析:21.下列说法有错误的是 _。(分数:2.00)A.公有继承时基类的 public 成员在派生类中仍是 publicB.私有继承时基类的 public 成员在派生类中为 privateC.保护继承时基类的 protected 成员在派生类中是 pro
24、tectedD.保护继承时基类的 private 成员在派生类中是 protected 解析:22.设有如下程序段: char str=”World”; char*ptr=str; 执行上面的程序段后,*(ptr+5)的值为 _。(分数:2.00)A.oB.0 C.不确定的值D.o的地址解析:23.当将 E-R 模型转换为关系模型时,对于两实体间 m:n 联系,必须对“联系”单独建立 _,用来联系双方实体。(分数:2.00)A.一个实体B.一个属性C.一个指针D.一个关系 解析:24.以下程序的输出结果是 _。 #define NULL 0 #includeiostream.h void ma
25、in() int a=1,2,3,4,5,6,7,8,9,10; int *p=a+5,*q=NULL; *q=*(p+5); cout*p *q; (分数:2.00)A.运行后报错 B.6 6C.6 11D.5 5解析:25.函数模板 _。(分数:2.00)A.代表某一具体函数B.与模板函数是同一个函数C.与某一个具体的数据类型连用,就产生了函数模板 D.是模板函数实例的结果解析:26.派生类的构造函数的成员初始化列表中,不能包含 _。(分数:2.00)A.基类的构造函数B.派生类中子对象的初始化C.基类的子对象初始化 D.派生类中一般数据成员的初始化解析:27.下列标识合法的是 _。(分数
26、:2.00)A.2opB.voidC.shortD.Dfe 解析:28.带有虚基类的多层派生类,构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化 _。(分数:2.00)A.与虚基类下面的派生类个数有关B.多次C.二次D.一次 解析:29.对于 C+流运算符,说法正确的是 _ 。(分数:2.00)A.它可以重载为类的友元或成员函数B.它是流类的一个输出运算符C.C+内预定义了各种基本数据类型的输入操作 D.可以直接用它输入类类型数据解析:30.数据库逻辑设计阶段分为 _。(分数:2.00)A.收集和分析、建立 ER 模型、数据库模式设计B.模型设计和应用程序设计
27、C.概念设计、逻辑设计、物理设计D.设计、建立 ER 模型和模式设计解析:31.当执行以下程序时,_ 是正确的 k=1; do k=k*k; while(!k)(分数:2.00)A.循环体将执行一次 B.循环体将执行两次C.循环体将执行无限次D.系统将提示有语法错误解析:32.以下程序段的输出结果是 _。 #includeiostream.h void main() int x二9,7,5,3,1),y=0,j,*p= ;)表示无限循环C.for()也表示无限循环 D.while(1)表示无限循环解析:34.下列说法正确的是 _。(分数:2.00)A.一元运算符重载为成员函数没有参数 B.一元
28、运算符重载为友员函数没有参数C.二元运算符重载为友员函数有一个参数D.二元运算符重载为成员函数有二个参数解析:35.若有定义:int aa8,则以下表达式中不能代表数组元素 a1地址的是 _。(分数:2.00)A. cinab; if(ab) a=a+b; b=a-b; a=a-b; couta“,”bendl (分数:2.00)填空项 1:_ (正确答案:60 30)解析:43.有如下程序段: int n=0,sum=0; while(n+,n50) if(n%2= =0)continue; sum+=n; coutsum; 此程序段执行的输出结果为U 8 /U,while 语句共执行了U
29、9 /U次。(分数:2.00)填空项 1:_ (正确答案:8625 949)解析:44.以下程序执行时,输出“#”号的个数是U 10 /U。 #include iostream.h vied main() int i, j; for(i=1;i5;i+) for(j=2;ji;j+)cout#; (分数:2.00)填空项 1:_ (正确答案:6)解析:45.下面程序的功能是输出数组 s 中最小元素,请填空。 #includeiostream.h void main() int k, p, s=1,-9,7,2,-10,3; k=s0; for(p=0;p6;p+) if(spk)U 11 /U
30、; coutk; (分数:2.00)填空项 1:_ (正确答案:k=sp)解析:46.以下程序的输出结果是U 12 /U。 #includeiostrean.h void main() int i,a5; i=0; while(i5) ai=8*(i-2+4*(i2)%5; i+; for(i=4;i=0;i-) coutai;(分数:2.00)填空项 1:_ (正确答案:3 0 0 -3 -1)解析:47.下面程序的结果U 13 /U。 #includeiostream.h int f(int); void main() int x=1, i; for (i=0; i3; i+) coutf
31、(x) ; coutend1; int f(int x) int y=1; static int z=3 y+; z+; return (x+y+z); (分数:2.00)填空项 1:_ (正确答案:7 8 9)解析:48.分析以下程序执行结果U 14 /U。 #includeiostream.h int f (int x, int y) return x,y; double f (double x, double y) return x,y; void main() int a=4, b=6; double c=2.6, d=7.4; coutf (a, b) “,“f (c, d) end1; (分数:2.00)填空项 1:_ (正确答案:24, 19.24)解析:49.以下程序的输出结果是U 15 /U。 #includeiostream. h void main() char *p= “12345678“ , *r; long *q; q=(long *)p; q+; r= (char *) q: coutr; (分数:2.00)填空项 1:_ (正确答案:5678)解析:
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1