全国计算机等级考试二级1.docx
- 文档编号:30141214
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:20
- 大小:21.83KB
全国计算机等级考试二级1.docx
《全国计算机等级考试二级1.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级1.docx(20页珍藏版)》请在冰豆网上搜索。
全国计算机等级考试二级1
2010年全国计算机等级考试二级C++模拟试题及答案
(2)
笔试部分
一、选择题
1.算法分析的目的是()
A.找出数据结构的合理性
B.找出算法中输入和输出之间的关系
C.分析算法的易懂性和可靠性
D.分析算法的效率以求改进
【参考答案】D
2.在单链表中,增加头结点的目的是()
A.方便运算的实现B.使单链表至少有一个结点
C.标识表结点中首结点的位置D.说明单链表是线性表的链式存储实现
【参考答案】A
3.软件开发离不开系统环境资源的支持,其中必要的测试数据属于()
A.硬件资源B.通信资源C.支持软件D.辅助资源
【参考答案】D
4.分布式数据库系统不具有的特点是()
A.数据分布性和逻辑整体性B.位置透明性和复制透明性
C.分布性D.数据冗余
【参考答案】D
5.下列数据模型中,有坚实理论基础的是()
A.层次模型B.网状模型
C.关系模型D.以上3个都是
【参考答案】C
6.栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是()
A.ABCEDB.DCBEACDBCEAD.CDABE
【参考答案】B
7.在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率。
与程序的效率相比,人们更重视程序的()
A.安全性B.一致性C.可理解性D.合理性
【参考答案】C
8.软件开发的结构化生命周期方法将软件生命周期划分成()
A.定义、开发、运行维护B.设计阶段、编程阶段、测试阶段
C.总体设计、详细设计、编程调试D.需求分析、功能定义、系统设计
【参考答案】A
9.数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有()
A.特定的数据模型B.数据无冗余C.数据可共享D.专门的数据管理软件
【参考答案】A
10.实体是信息世界中广泛使用的一个术语,它用于表示()
A.有生命的事物B.无生命的事物C.实际存在的事物D.一切事物
【参考答案】C
11.下列关于C++语言类的描述错误的是()
A.类用于描述事物的属性和对事物的操作
B.类与类之间通过封装而具有明确的独立性
C.类与类之间必须是平等的关系,而不能组成层次结构
D.类与类之间可以通过一些方法进行通信和联络
【参考答案】C
12.以下叙述中正确的是()
A.构成C++语言程序的基本单位是类
B.可以在一个函数中定义另一个函数
C.main()函数必须放在其他函数之前
D.所有被调用的函数一定要在调用之前进行定义
【参考答案】A
13.以下程序的输出结果是()
#include
voidreverse(inta[],intn)
{inti,t;
for(i=0;i
{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
}
voidmain()
{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;
reverse(b,8);
for(i=6;i<10;i++)s+=b[i];
cout< }
A.22B.10C.34D.30
【参考答案】A
14.设有数组定义:
chararray[]=″China″;,则数组array所占的空间为()
A.4个字节B.5个字节C.6个字节D.7个字节
【参考答案】C
15.下面的哪个选项不能作为函数的返回类型?
()
A.voidB.intC.newD.long
【参考答案】C
16.下面程序输出的结果是()
#include
voidmain()
{inti;
inta[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
}
A.159B.753C.357D.591
【参考答案】B
17.下列描述中哪个是正确的?
()
A.私有派生的子类无法访问父类的成员
B.类A的私有派生子类的派生类C无法初始化其祖先类A对象的属性,因为类A的成员对类C是不可访问的
C.私有派生类不能作为基类派生子类
D.私有派生类的所有子孙类将无法继续继承该类的成员
【参考答案】B
18.如果友元函数重载一个运算符时,其参数表中没有任何参数是说明该运算符是()
A.一元运算符B.二元运算符C.选项A和选项B都可能D.重载错误
【参考答案】D
19.下列关于模板的说法正确的是()
A.模板的实参在任何时候都可以省略B.类模板与模板类所指的是同一概念
C.类模板的参数必须是虚拟类型的D.类模板中的成员函数全部都是模板函数
【参考答案】D
20.下面程序段的运行结果是()
voidmain()
{intt,a,b,c;
a=1;b=2;c=2;
while(a {t=a;a=b;b=t;c--;}
cout< A.1,2,0B.2,1,0C.1,2,1D.2,1,1
【参考答案】A
21.若定义intk=7,x=12;,则能使值为3的表达式是()
A.x%=(k%=5)B.x%=(k-k%5)C.x&=k-k%5D.(x%=k)-(k%=5)
【参考答案】D
22.有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。
则不能把结点b连接到结点a之后的语句是()
structnode
{chardata;
structnode*next;
}a,b,*p=&a,*q=&b;
A.a.next=q;B.p.next=&b;C.p->next=&b;D.(*p).next=q;
【参考答案】B
20.下面程序段的运行结果是()
voidmain()
{intt,a,b,c;
a=1;b=2;c=2;
while(a {t=a;a=b;b=t;c--;}
cout< A.1,2,0B.2,1,0C.1,2,1D.2,1,1
【参考答案】A
21.若定义intk=7,x=12;,则能使值为3的表达式是()
A.x%=(k%=5)B.x%=(k-k%5)C.x&=k-k%5D.(x%=k)-(k%=5)
【参考答案】D
22.有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。
则不能把结点b连接到结点a之后的语句是()
structnode
{chardata;
structnode*next;
}a,b,*p=&a,*q=&b;
A.a.next=q;B.p.next=&b;C.p->next=&b;D.(*p).next=q;
【参考答案】B
23.以下都是C++语言标识符的是()
A.dsfa,df4,f$B.huhj,a^,k2
C.3k,h,j_9D._ok,jk,k8
【参考答案】D
24.设以下变量均为int类型,则值不等于7的表达式是()
A.(x=y=6,x+y,x+1)B.(x=y=6,x+y,y+1)C.(x=6,x+1,y=6,x+y)D.(y=6,y+1,x=y,x+1)
【参考答案】C
25.while和do-while循环的主要区别是()
A.do-while的循环体至少无条件执行一次
B.while的循环控制条件比do-while的循环控制条件更严格
C.do-while允许从外部转到循环体内
D.do-while的循环体不能是复合语句
【参考答案】A
26.若二维数组a有m列,则计算任一元素a[i][j]在数组中相对位置的公式为(假设a[0][0]位于数组的第一个位置上)()
A.i*m+jB.j*m+iC.i*m+j-1D.i*m+j+1
【参考答案】A
27.下面叙述不正确的是()
A.派生类一般都用公有派生B.对基类成员的访问必须是无两义性的
C.赋值兼容则也适用于多重继承的组合D.基类的公有成员在派生类中仍然是公有的
【参考答案】D
28.关于友元的概念错误的是()
A.友元函数没有this指针
B.调用友元函数时必须在它的实参中给出要访问的对象
C.一个类的成员函数也可以作为另一个类的友元函数
D.只能在类的公有段声明友元
【参考答案】D
29.下面程序的结果是()
#include
classtest{private:
intnum;
public:
test();
intgetint(){returnnum;}
~test();};
test:
:
test()
{num=0;}
test:
:
~test()
{cout<<″Destructorisactive″<
{testx[3];
cout<<″Exitingmain″<
Destructorisactive
Destructorisactive
Destructorisactive
B.Exitingmain
Destructorisactive
Destructorisactive
C.Exitingmain
Destructorisactive
D.Exitingmain
【参考答案】A
30.下列语句不能够用于打开C根目录下文件test.txt的语句是()
A.ifstreamfin;fin.open(″C:
\\test.txt″);
B.ifstreamfin(″C:
\\test.txt″);
C.A和B
D.ifstreamfin;fin(″C:
\\test.txt″);
【参考答案】D
31.下列关于C++函数的描述中正确的是()
A.主函数是程序的入口,它由用户定义的函数调用
B.函数在调用之前必须先被声明
C.每个用户定义的函数只能被其他函数调用一次
D.函数是C++中面向对象程序设计框架的基本组成单元
【参考答案】B
32.下列程序的运行结果为()
#include
classLocation{
protected:
intX,Y;
public:
voidSetX(intmyx){X=myx;}
voidSetY(intmyy){Y=myy;}
voidshowxy(){cout<<″X=″< classRectangle: publicLocation{ private: intH,W; public: voidSetH(intmyh){H=myh;} voidSetW(intmyw){W=myw;} voidshow(){cout<<″X=″< Y<<″″<<″H=″< voidmain() {Rectangler1; r1.SetX(3); r1.SetY(5); r1.SetH(4); r1.SetW(6); r1.showxy(); r1.show();} A.X=3Y=5B.X=3Y=5 X=3Y=5H=4W=6X=3Y=5H=3W=6 C.X=3Y=5D.X=3Y=5 X=3Y=4H=4W=6X=3Y=3H=4W=6 【参考答案】A 33.有以下程序 #include voidmain() {inta=5,b=0,c=0; if(a=b+c)cout<<″***″< A.有语法错不能通过编译B.可以通过编译但不能通过连接 C.输出***D.输出$$$ 【参考答案】D 34.以下程序中循环体总的执行次数是() inti,j; for(i=6;i>1;i--) for(j=0;j {……} A.20B.261C.15D.25 【参考答案】A 35.下列程序的输出结果是() #include voidmain() {inta[3],i,j,k=2; for(i=0;i<3;i++)a[i]=i; for(i=0;i cout< A.2B.3C.1D.0 【参考答案】A 二、填空题 1.将代数式 ______________换成程序设计中的表达式为【1】。 ╱X*X+Y*Y Z=╱---------- ╲╱a+b 【参考答案】 【1】SORT(x^2+y^2)/(a+b) 2.【2】是数据库设计的核心。 【参考答案】 【2】数据模型 3.测试的目的是暴露错误,评价程序的可靠性;而【3】的目的是发现错误的位置并改正错误。 【参考答案】 【3】调试 4.在面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为【4】。 【参考答案】 【4】消息 5.常用的黑箱测试有等价分类法、【5】、因果图法和错误推测法4种。 【参考答案】 【5】边值分析法 6.【6】是C++语言程序的入口。 【参考答案】 【6】main()函数 7.C++语言的基本控制结构为顺序结构、选择结构和【7】。 【参考答案】 【7】循环结构 8.函数重载要求重载的函数必须有和原函数一样的【8】。 【参考答案】 【8】函数名 9.设置虚基类的目的是【9】,通过【10】表示虚基类。 【参考答案】 【9】解决二义性问题 【10】用关键字virtual 10.语句cout<<′\n′还可表示为【11】。 【参考答案】 【11】cout< a 【参考答案】 【12】1 12.友元类的所有成员函数都是另一个类的【13】。 【参考答案】 【13】友元函数 13.表达式x.operator++()还可写成【14】。 【参考答案】 【14】++x 14.若要在C盘根目录下作为二进制文件打开文件test.dat,则应该用的语句是: 【参考答案】 【15】ifstreamfin(″C: \test.dat″,ios_binary);或ifstreamfin;fin.open(c: \test.dat″,ios_bin 上机部分 一、改错题 使用VC6打开考生文件夹下的工程kt2_1,此工程包含一个源程序文件kt2_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下: Vehiclemessage Carmessage Vehiclemessage 源程序文件kt2_1.cpp清单如下: #include classvehicle { intwheels; floatweight; public: voidmessage(void){cout<<"Vehiclemessage\n";} }; classcar: publicvehicle { intpassenger_load; public: voidmessage(void){cout>>"Carmessage\n";} }; classtruck: publicvehicle { intpassenger_load; floatpayload; public: intpassengers(void){returnpassenger_load;} }; voidmain() { vehicle*unicycle; unicycle=newvehicle; unicycle.message(); deleteunicycle; unicycle=newcar; unicycle->message(); deleteunicycle; unicycle=newtruck; unicycle->message(); deleteunicycle; } 【参考答案】 (1)将voidmessage(void){cout<<"Vehiclemessage\n";} 改为: virtualvoidmessage(void){cout<<"Vehiclemessage\n";} (2)将voidmessage(void){cout>>"Carmessage\n";} 改为: voidmessage(void){cout<<"Carmessage\n";} (3)将unicycle.message(); 改为: unicycle->message(); 【试题解析】 (1)主要考查对虚函数使用规则的掌握,要实现对函数message的动态联编应该使用虚函数,否则产生的是静态联编,调用的函数输出结果就与要求不符; (2)主要考查对流输出操作的掌握,该处错误的使用了流输入操作; (3)主要考查对象和对象指针的概念,对象指针使用"->"调用成员函数,而对象使用"."调用成员函数。 二、简单应用题 编写类AA的成员函数intCompare(AAb),该函数用于比较*this与b的大小,若两者含有元素的个数n相同,并且数组中前n个元素值对应相同,则认为两者相等返回1,否则返回0。 注意: 用数组方式及for循环来实现该函数。 输出结果如下: a=b a<>c 注意: 部分源程序已存在文件kt2_2.cpp中。 请勿修改主函数main和其他函数中的任何内容,仅在函数Compare的花括号中填写若干语句。 文件kt2_2.cpp的内容如下: #include #include classAA{ int*a; intn; intMS; public: voidInitAA(intaa[],intnn,intms) { if(nn>ms) {\cout<<"Error! "< (1);} MS=ms; n=nn; a=newint[MS]; for(inti=0;i } intCompare(AAb); }; intAA: : Compare(AAb) { } voidmain() {AAa,b,c; intx[]={1,2,3,4,5}; inty[]={1,2,3,6,7}; intz[]={1,2,5,7,9}; a.InitAA(x,3,5); b.InitAA(y,3,5); c.InitAA(z,3,5); if(a.Compare(b)) cout<<"a=b"< cout<<"a<>b"< cout<<"a=c"< cout<<"a<>c"< intAA: : Compare(AAb) {if(n! =b.n)return0; for(inti=0;i<> if(a[i]! =b.a[i])return0; return1;} 【试题解析】 本题考查应用for循环、if条件控制语句等基本控制结构解决实际问题的能力。 3.综合应用题 使用VC6打开考生文件夹下的工程test17_3,此工程包含一个源程序文件kt2_3.cpp,其中定义了用于表示点的类Point和表示内容的类Text以及二者的派生类CircleWithText,但它们的定义并不完整。 请按要求完成下列操作,将它们的定义补充完整。 (1)定义类Point的构造函数,请使用参数列表的形式将成员函数x和y分别初始化为参数x1和y1的值。 请在注释“//**1**”之后添加适当的语句。 (2)完成类Text的构造函数Text(char*str)的定义,将char型的str指向的内容赋值给text并且输出str所指向的内容,请在注释“//**2**”之后添加适当的语句。 (3)定义类CircleWithText的构造函数CircleWithText(intcx,intcy,char*msg),int型的cx和cy用于赋值给x和y,char型的指针*msg用于赋值给text,请在注释“//**3**”之后添加适当的语句。 输出结果如下: Point: 34 hello 注意: 除在指定位置添加语句之外,请不要改动程序中的其他内容。 源程序如下: #include #include classPoint {intx,y; public: //**1** {cout<<"Point: "< classText {chartext[100]; public: Text(char*str) {//**2**} ~Text()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 计算机等级考试 二级