1、二级 C+笔试 60及答案解析(总分:96.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.数据库系统依赖于( )支持数据独立性。(分数:2.00)A.具有封装机制B.定义完整性约束条件C.模式分级,各级模式之间的映射D.DDL语言与 DML语言互相独立2.按照标识符的要求,下列选项中,( )符号不能组成标识符。(分数:2.00)A.连接符B.下划线C.大小写字母D.数字字符3.( )既可重载为一元运算符,又可重载为二元运算符。(分数:2.00)A.“*,B.“=”C.“=”和“*”D.“*”和“*+”4.分析下面程序,该程序的运行结果是( )。 #inclu
2、deiostream.h class cmm public: static int m; cmm() m+; cmm(int n) m=n; static void testm() m+; ; int cmm : m=0; void main() cmm A; cmm B(3); Atestm(); cram : testm0; cout“m=“B.mendl; (分数:2.00)A.m=3B.m=4C.m=5D.m=65.已知 n是一个 int型变量,下列语句中错误的是( )。(分数:2.00)A.long*p=new long;B.long p;C.long*p=new long;D.lo
3、ng p10;6.已知 outfile是一个输出流对象,要想将 outfile的文件指针定位到当前位置之前 321字节处,正确的函数调用语句是( )。(分数:2.00)A.outfilseekp(321,ios_base:cu;B.outfilseekp(321,ios_base:be;C.outfilseekp(-321,ios_ase:be;D.outfilseekp(-321,ios_base:cu;7.下面关于运算符重载的描述错误的是( )。(分数:2.00)A.运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构B.不是所有的运算符都可以进行重载C.运算符
4、函数的调用必须使用关键字 operatorD.在 C+语言中不可通过运算符重载创造出新的运算符8.以下程序的输出是( )。 struct st int x;int *y; *p; int dt4=10,20,30,40; struct st aa4= 50, main() p=aa; cout+p-x; cout(+p)-x; cout+(*p-y); (分数:2.00)A.10 20 20B.50 60 21C.51 60 21D.60 70 319.在下面的 4个关键字中用来说明虚函数的是( )。(分数:2.00)A.virtualB.publicC.protectedD.private1
5、0.以下程序的执行结果是( )。 #includeiostream.h templateclass T class Sample T n: public: Sample(T i) n=i; void operator+(); void disp()cout“n=“nendl; ; templateclass T void SampleT:operator+() n+=1; / 不能用 n+, 因为 double型不能用+ void main() Samplechars(a); s+; s.disp(); (分数:2.00)A.n=aB.a=0C.n=bD.a=b11.在数据库管理系统提供的数据
6、功能中,负责多用户环境下的事务处理和自动恢复、并发控制和死锁检测、运行日志的组织管理等功能的是( )。(分数:2.00)A.数据定义功能B.数据运行管理功能C.数据操纵功能D.数据控制功能12.假定 MyClass为一个类,则执行 MyClass a b(2),*p;语句时,自动调用该类构造函数( )次。(分数:2.00)A.2B.3C.4D.513.在关系数据库中,用来表示实体之间联系的是( )。(分数:2.00)A.树结构B.网结构C.线性表D.二维表14.在 C+程序中,如果要求通过函数来实现一种简单的功能,并且要求尽可能加快程序执行速度,则应该选用( )。(分数:2.00)A.内联函数
7、B.重载函数C.递归调用D.嵌套调用15.下列关于算法的叙述,错误的是( )。(分数:2.00)A.算法是为解决一个特定的问题而采取的特定的有限的步骤B.算法是用于求解某个特定问题的一些指令的集合C.算法是从计算机的操作角度对解题过程的抽象,是程序的核心D.算法是从如何组织处理操作对象的角度进行抽象16.以下选项中,不能正确赋值的是( )。(分数:2.00)A.char s110;s1=“Ctest“;B.char s2=C,t,e,s,t;C.char s320=“Ctest“;D.char s4=“Ctest/n“;17.在数据结构中,从逻辑上可以把数据结构分成( )。(分数:2.00)A
8、.动态结构和静态结构B.线性结构和非线性结构C.集合结构和非集合结构D.树状结构和图状结构18.下面有关重载函数的描述中正确的是( )。(分数:2.00)A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须具有不同的形参列表D.重载函数名可以不同19.下列运算符中,( )运算符在 C+中不能重载。(分数:2.00)A. void main() int a=2,b=5,c=8; coutfun(int)fun(a+c,b),a-c); 程序运行后的输出结果是( )。(分数:2.00)A.编译出错B.9C.21D.9.022.下面是关于派生类声明的开始部分,其中正确的是
9、( )。(分数:2.00)A.class virtual B:public AB.virtual class B:public AC.class B:public A virtualD.class B:virtual public A23.对关系 S和关系 R进行集合运算,结果中既包含 S中元组也包含 R中元组,这种集合运算称为( )。(分数:2.00)A.并运算B.交运算C.差运算D.积运算24.定义如下一维数组:int a5,*p;,则下列描述错误的是( )。(分数:2.00)A.表达式 p=p+1是合法的B.表达式 a=a+1是合法的C.表达式 p-a是合法的D.表达式 a+2是合法的2
10、5.下列关于队列的叙述中正确的是( )。(分数:2.00)A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表26.循环链表的主要优点是( )。(分数:2.00)A.不再需要头指针了B.从表中任一结点出发都能访问到整个链表C.在进行插入、删除运算时,能更好的保证链表不断开D.已知某个结点的位置后,能够容易的找到它的直接前件27.下列关于虚函数的描述中,正确的是( )。(分数:2.00)A.虚函数是一个 static类型的成员函数B.虚函数是一个非成员函数C.基类中采用 virtual说明一个虚函数后,派生类中定义相同原型的函数时可不必加 virt
11、ual说明D.派生类中的虚函数与基类中相同原型的虚函数具有不同的参数个数或类型28.下列程序用来判断数组中特定元素的位置所在,则输出结果为( )。 #includeconio.h #includeiostream.h int fun(int*s,int t,int*k) int i; *k=0; for(i=0;it;i+) if (s*ksi)*k=i; return s*k; void main() int a10=(876,675,896,101,301,401,980,431,451,777);int k; fun(a,10,(分数:2.00)A.7,431B.6C.980D.6,98
12、029.( )是以一种完全通用的方法来设计函数或类而不必预先说明将被使用的每个对象的类型。(分数:2.00)A.模板B.类C.对象D.函数30.下列程序输出的结果是( )。 #includestdio.h subl(char a,char b) char c;c=a;a=b;b=c; sub2(char*a,char b) char c;c=*a;*a=b;b=c; sub3(char*a,char*b) char c;c=*a;*a=*b;*b=c; void main() char a,b; a=A;b=B;subl(a,b);putchar(a);putchar(b); a=A;b=B;
13、sub2(putchar(a);putchar(b); a=A;b=B;sub3(putchar(a);putchar(b); putchar(/n); (分数:2.00)A.BABBABB.ABBBBAC.ABBABAD.ABABBA31.重载输入流运算符必须使用的原型为( )。(分数:2.00)A.istreami=10;i+)U 【11】 /U=i; for(i=0;i5;i+)U 【12】 /U=ai; (分数:2.00)填空项 1:_46.有以下程序段: #includeiostream.h #define MIN(x,y) (x)(y)?(x):(y) void main() in
14、t i,j,k; i=10;j=15; k=10 *MIN(i,j); coutkendl; 程序执行后的输出结果是U 【13】 /U。(分数:2.00)填空项 1:_47.以下程序的执行结果是U 【14】 /U。 #includeiostream.h void main() int a=0,b=1,c=0,d=20; if(a) d=d-10; else if(!b) if(!c) d=15; else d=25; cout “d=“dendl; (分数:2.00)填空项 1:_48.下面程序的输出结果为U 【15】 /U。 #includeiostream.h main() char a=
15、“morning“,t; int i,j=0; for(i=1;i7;i+) if(ajai) j=i; t=aj; aj=a7; a7=aj; couta; (分数:2.00)填空项 1:_二级 C+笔试 60答案解析(总分:96.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.数据库系统依赖于( )支持数据独立性。(分数:2.00)A.具有封装机制B.定义完整性约束条件C.模式分级,各级模式之间的映射 D.DDL语言与 DML语言互相独立解析:2.按照标识符的要求,下列选项中,( )符号不能组成标识符。(分数:2.00)A.连接符 B.下划线C.大小写字母
16、D.数字字符解析:3.( )既可重载为一元运算符,又可重载为二元运算符。(分数:2.00)A.“*, B.“=”C.“=”和“*”D.“*”和“*+”解析:4.分析下面程序,该程序的运行结果是( )。 #includeiostream.h class cmm public: static int m; cmm() m+; cmm(int n) m=n; static void testm() m+; ; int cmm : m=0; void main() cmm A; cmm B(3); Atestm(); cram : testm0; cout“m=“B.mendl; (分数:2.00)A
17、.m=3B.m=4C.m=5 D.m=6解析:5.已知 n是一个 int型变量,下列语句中错误的是( )。(分数:2.00)A.long*p=new long;B.long p; C.long*p=new long;D.long p10;解析:6.已知 outfile是一个输出流对象,要想将 outfile的文件指针定位到当前位置之前 321字节处,正确的函数调用语句是( )。(分数:2.00)A.outfilseekp(321,ios_base:cu;B.outfilseekp(321,ios_base:be;C.outfilseekp(-321,ios_ase:be;D.outfilsee
18、kp(-321,ios_base:cu; 解析:7.下面关于运算符重载的描述错误的是( )。(分数:2.00)A.运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构B.不是所有的运算符都可以进行重载C.运算符函数的调用必须使用关键字 operator D.在 C+语言中不可通过运算符重载创造出新的运算符解析:8.以下程序的输出是( )。 struct st int x;int *y; *p; int dt4=10,20,30,40; struct st aa4= 50, main() p=aa; cout+p-x; cout(+p)-x; cout+(*p-y);
19、 (分数:2.00)A.10 20 20B.50 60 21C.51 60 21 D.60 70 31解析:9.在下面的 4个关键字中用来说明虚函数的是( )。(分数:2.00)A.virtual B.publicC.protectedD.private解析:10.以下程序的执行结果是( )。 #includeiostream.h templateclass T class Sample T n: public: Sample(T i) n=i; void operator+(); void disp()cout“n=“nendl; ; templateclass T void SampleT
20、:operator+() n+=1; / 不能用 n+, 因为 double型不能用+ void main() Samplechars(a); s+; s.disp(); (分数:2.00)A.n=aB.a=0C.n=b D.a=b解析:11.在数据库管理系统提供的数据功能中,负责多用户环境下的事务处理和自动恢复、并发控制和死锁检测、运行日志的组织管理等功能的是( )。(分数:2.00)A.数据定义功能B.数据运行管理功能 C.数据操纵功能D.数据控制功能解析:12.假定 MyClass为一个类,则执行 MyClass a b(2),*p;语句时,自动调用该类构造函数( )次。(分数:2.00
21、)A.2 B.3C.4D.5解析:13.在关系数据库中,用来表示实体之间联系的是( )。(分数:2.00)A.树结构B.网结构C.线性表D.二维表 解析:14.在 C+程序中,如果要求通过函数来实现一种简单的功能,并且要求尽可能加快程序执行速度,则应该选用( )。(分数:2.00)A.内联函数 B.重载函数C.递归调用D.嵌套调用解析:15.下列关于算法的叙述,错误的是( )。(分数:2.00)A.算法是为解决一个特定的问题而采取的特定的有限的步骤B.算法是用于求解某个特定问题的一些指令的集合C.算法是从计算机的操作角度对解题过程的抽象,是程序的核心D.算法是从如何组织处理操作对象的角度进行抽
22、象 解析:16.以下选项中,不能正确赋值的是( )。(分数:2.00)A.char s110;s1=“Ctest“; B.char s2=C,t,e,s,t;C.char s320=“Ctest“;D.char s4=“Ctest/n“;解析:17.在数据结构中,从逻辑上可以把数据结构分成( )。(分数:2.00)A.动态结构和静态结构B.线性结构和非线性结构 C.集合结构和非集合结构D.树状结构和图状结构解析:18.下面有关重载函数的描述中正确的是( )。(分数:2.00)A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须具有不同的形参列表 D.重载函数名可以不
23、同解析:19.下列运算符中,( )运算符在 C+中不能重载。(分数:2.00)A. void main() int a=2,b=5,c=8; coutfun(int)fun(a+c,b),a-c); 程序运行后的输出结果是( )。(分数:2.00)A.编译出错B.9 C.21D.9.0解析:22.下面是关于派生类声明的开始部分,其中正确的是( )。(分数:2.00)A.class virtual B:public AB.virtual class B:public AC.class B:public A virtualD.class B:virtual public A 解析:23.对关系 S
24、和关系 R进行集合运算,结果中既包含 S中元组也包含 R中元组,这种集合运算称为( )。(分数:2.00)A.并运算 B.交运算C.差运算D.积运算解析:24.定义如下一维数组:int a5,*p;,则下列描述错误的是( )。(分数:2.00)A.表达式 p=p+1是合法的B.表达式 a=a+1是合法的 C.表达式 p-a是合法的D.表达式 a+2是合法的解析:25.下列关于队列的叙述中正确的是( )。(分数:2.00)A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表 D.队列是先进后出的线性表解析:26.循环链表的主要优点是( )。(分数:2.00)A.不再需要头指
25、针了B.从表中任一结点出发都能访问到整个链表 C.在进行插入、删除运算时,能更好的保证链表不断开D.已知某个结点的位置后,能够容易的找到它的直接前件解析:27.下列关于虚函数的描述中,正确的是( )。(分数:2.00)A.虚函数是一个 static类型的成员函数B.虚函数是一个非成员函数C.基类中采用 virtual说明一个虚函数后,派生类中定义相同原型的函数时可不必加 virtual说明 D.派生类中的虚函数与基类中相同原型的虚函数具有不同的参数个数或类型解析:28.下列程序用来判断数组中特定元素的位置所在,则输出结果为( )。 #includeconio.h #includeiostrea
26、m.h int fun(int*s,int t,int*k) int i; *k=0; for(i=0;it;i+) if (s*ksi)*k=i; return s*k; void main() int a10=(876,675,896,101,301,401,980,431,451,777);int k; fun(a,10,(分数:2.00)A.7,431B.6C.980D.6,980 解析:29.( )是以一种完全通用的方法来设计函数或类而不必预先说明将被使用的每个对象的类型。(分数:2.00)A.模板 B.类C.对象D.函数解析:30.下列程序输出的结果是( )。 #includest
27、dio.h subl(char a,char b) char c;c=a;a=b;b=c; sub2(char*a,char b) char c;c=*a;*a=b;b=c; sub3(char*a,char*b) char c;c=*a;*a=*b;*b=c; void main() char a,b; a=A;b=B;subl(a,b);putchar(a);putchar(b); a=A;b=B;sub2(putchar(a);putchar(b); a=A;b=B;sub3(putchar(a);putchar(b); putchar(/n); (分数:2.00)A.BABBABB.A
28、BBBBA C.ABBABAD.ABABBA解析:31.重载输入流运算符必须使用的原型为( )。(分数:2.00)A.istreami=10;i+)U 【11】 /U=i; for(i=0;i5;i+)U 【12】 /U=ai; (分数:2.00)填空项 1:_ (正确答案:11ai-1)解析:12a9-i46.有以下程序段: #includeiostream.h #define MIN(x,y) (x)(y)?(x):(y) void main() int i,j,k; i=10;j=15; k=10 *MIN(i,j); coutkendl; 程序执行后的输出结果是U 【13】 /U。(分
29、数:2.00)填空项 1:_ (正确答案:15)解析:47.以下程序的执行结果是U 【14】 /U。 #includeiostream.h void main() int a=0,b=1,c=0,d=20; if(a) d=d-10; else if(!b) if(!c) d=15; else d=25; cout “d=“dendl; (分数:2.00)填空项 1:_ (正确答案:d=20)解析:48.下面程序的输出结果为U 【15】 /U。 #includeiostream.h main() char a=“morning“,t; int i,j=0; for(i=1;i7;i+) if(ajai) j=i; t=aj; aj=a7; a7=aj; couta; (分数:2.00)填空项 1:_ (正确答案:mo)解析:
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1