2013年全国计算机等级二级C++考前预测试题一套
1.在深度为5的满二叉树中,叶子结点的个数为
A)32
B)31
C)16
D)15
2.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是
A)bdgcefha
B)gdbecfha
C)bdgaechf
D)gdbehfca
3.一些重要的程序语言(如C语言和Pascal语言)允许过程的递归调用。而实现递归调用中的存储分配通常用
A)栈
B)堆
C)数组
D)链表
4.软件工程的理论和技术性研究的内容主要包括软件开发技术和
A)消除软件危机
B)软件工程管理
C)程序设计自动化
D)实现软件可重用
5.开发软件时对提高开发人员工作效率至关重要的是
A)操作系统的资源管理功能
B)先进的软件开发工具和环境
C)程序人员的数量
D)计算机的并行处理能力
6.在软件测试设计中,软件测试的主要目的是
A)实验性运行软件
B)证明软件正确
C)找出软件中全部错误
D)发现软件错误而执行程序
7.数据处理的最小单位是
A)数据
B)数据元素
C)数据项
D)数据结构
8.索引属于
A)模式
B)内模式
C)外模式
D)概念模式
9.下述关于数据库系统的叙述中正确的是
A)数据库系统减少了数据冗余
B)数据库系统避免了一切冗余
C)数据库系统中数据的一致性是指数据类型一致
D)数据库系统比文件系统能管理更多的数据
10.数据库系统的核心是
A)数据库
B)数据库管理系统
C)模拟模型
D)软件工程
推荐新闻:2013年C++模拟试题及答案汇总※计算机二级C++全真模拟试题及答案汇总
冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题及答案※悬赏等考真题
更多练习>>参与233网校“计算机二级C++模拟估分”助您考试顺利通关!
11.下列关于C++语言类的描述中错误的是
A)类用于描述事物的属性和对事物的操作
B)类与类之间通过封装而具有明确的独立性
C)类与类之间必须是平等的关系,而不能组成层次结构
D)类与类之间可以通过一些方法进行通信和联络
12.C++语言中,表示一条语句结束的标号是
A)#
B);
C)//
D)}
13.以下叙述中正确的是
A)构成C++语言程序的基本单位是类
B)可以在一个函数中定义另一个函数
C)main()函数必须放在其他函数之前
D)所有被调用的函数一定要在调用之前进行定义
14.已知有定义
const int D=5;
int i=1;
double f=0.32;
char c=15;
则下列选项错误的是
A)++i;
B)D--;
C)c++;
D)--f;
15.以下程序的输出结果是
#include
void reverse(int a[],int n)
{ int i,t;
for(i=0;i
{ t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;} }
void main()
{ int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0;
reverse(b,8);
for(i=6;i<10;i++)s+=b[i];
cout << s; }
A)22
B)10
C)34
D)30
16.下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,在划线处应填入的选项是
#include
void main()
{ int i=0,j,k;
do{ i++;k=316-13*i;} while( );
j=k/11;
cout << "316=13*"<
A)k/11
B)k
C)k/11==0
D)k==0
17.设有数组定义: char array[]="China";,则数组 array所占的空间为
A)4个字节
B)5个字节
C)6个字节
D)7个字节
18.若已定义:
int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i;
其中 0≤i≤9, 则对a数组元素不正确的引用是
A)a[p-a]
B)*(&a[i])
C)p[i]
D)a[10]
19.以下程序的输出结果是
#include
void main()
{ int x=1,y=3;
cout << x++ << ",";
{ int x=0;x+=y*2;
cout << x <<"," << y << ","; }
cout << x <<"," << y; }
A)1,6,3,1,3
B)1,6,3,6,3
C)1,6,3,2,3
D)1,7,3,2,3
20.函数fun的返回值是
fun(char *a,char *b)
{ int num=0,n=0;
while(*(a+num)!=′ ′)num++;
while(b[n]){*(a+num)=b[n];num++;n++;}
return num; }
A)字符串a的长度
B)字符串b的长度
C)字符串a和b的长度之差
D)字符串a 和b的长度之和
推荐新闻:2013年C++模拟试题及答案汇总※计算机二级C++全真模拟试题及答案汇总
冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题及答案※悬赏等考真题
更多练习>>参与233网校“计算机二级C++模拟估分”助您考试顺利通关!
21.下面程序输出的结果是
#include
void main()
{ int i;
int a[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
cout << a[2-i][i]<<""; }
A)1 5 9
B)7 5 3
C)3 5 7
D)5 9 1
22.下面程序的结果为
#include
int c;
class A
{ private:
int a;
static int b;
public:
A(){a=0; c=0;}
void seta(){a++;}
void setb(){b++;}
void setc(){c++;}
void display(){cout << a << " " << b << " " << c;} };
int A::b = 0;
void main()
{
A a1,a2;
a1.seta();
a1.setb();
a1.setc();
a2.seta();
a2.setb();
a2.setc();
a2.display();
}
A)1 2 1
B)1 2 2
C)1 1 2
D)2 2 2
23.下列描述中哪个是正确的?
A)私有派生的子类无法访问父类的成员
B)类A的私有派生子类的派生类C无法初始化其祖先类A对象的属性,因为类A的成员对类C是不可访问的
C)私有派生类不能作为基类派生子类
D)私有派生类的所有子孙类将无法继续继承该类的成员
24.下列关于构造函数说法不正确的是
A)构造函数必须与类同名
B)构造函数可以省略不写
C)构造函数必须有返回值
D)在构造函数中可以对类中的成员进行初始化
25.如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是
A)一元运算符
B)二元运算符
C)选项A)和选项B)都有可能
D)重载错误
26.在重载一个运算符时,如果其参数表中有一个参数,则说明该运算符是
A)一元成员运算符
B)二元成员运算符
C)一元友元运算符
D)选项B)和选项C)都可能
27.下列关于模板的说法正确的是
A)模板的实参在任何时候都可以省略
B)类模板与模板类所指的是同一概念
C)类模板的参数必须是虚拟类型的
D)类模板中的成员函数全部都是模板函数
28.表示在输出时显示小数位,和在文件输入时判断文件尾的函数分别是
A)showbase()和eof()
B)showpoint()和eof()
C)showpoint()和bad()
D)showpoint()和good()
29.下面程序段的运行结果是
void main()
{ int t, a, b, c;
a=1;b=2;c=2;
while(a
{ t=a;a=b;b=t;c--;}
cout << a << "," << b << "," << c; }
A)1,2,0
B)2,1,0
C)1,2,1
D)2,1,1
30.下列程序中画线处应填入的语句是
class Base
{ public:
void fun(){cout<<"Base of fun"<
class Derived:public Base
{ void fun()
{ //显示基类的成员函数fun
cout<<"Derived of fun"<
A)fun();
B)Base.fun();
C)Base::fun();
D)Base->fun();
推荐新闻:2013年C++模拟试题及答案汇总※计算机二级C++全真模拟试题及答案汇总
冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题及答案※悬赏等考真题
更多练习>>参与233网校“计算机二级C++模拟估分”助您考试顺利通关!
31.若定义int k=7,x=12;,则能使值为3的表达式是
A)x%=(k%=5)
B)x%=(k-k%5)
C)x%=k-k%5
D)(x%=k)-(k%=5)
32.在位运算中,操作数每右移一位,其结果相当于
A)操作数乘以2
B)操作数除以2
C)操作数乘以4
D)操作数除以4
33.有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是
struct node
{ char data;
struct node *next;
} a,b,*p=&a,*q=&b;
A)a.next=q;
B)p.next=&b;
C)p->next=&b;
D)(*p).next=q;
34.一个类的友元函数能够访问该类的
A)私有成员
B)保护成员
C)公有成员
D)所有成员
35.下面程序的输出结果是
#include
#include
void main()
{ char p1[10],p2[10];
strcpy(p1,"abc");
strcpy(p2,"ABC");
char str[50]= "xyz";
strcpy(str+2,strcat(p1,p2));
cout << str; }
A)xyzabcABC
B)zabcABC
C)xyabcABC
D)yzabcABC
推荐新闻:2013年C++模拟试题及答案汇总※计算机二级C++全真模拟试题及答案汇总
冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题及答案※悬赏等考真题
更多练习>>参与233网校“计算机二级C++模拟估分”助您考试顺利通关!
二、填空题(1)在树形结构中,树根结点没有 【1】 。
(2)Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向 【2】 的设计方法。
(3)面向对象的模型中,最基本的概念是对象和 【3】 。
(4)软件设计模块化的目的是 【4】 。
(5)数据模型按不同应用层次分成3种类型,它们是概念数据模型、 【5】 和物理数据模型。
(6)派生类的成员一般分为两部分,一部分是 【6】 ,另一部分是自己定义的新成员。
(7)以下程序输出的结果是 【7】 。
#include
void main()
{ int a=5,b=4,c=3,d;
d=(a>b>c);
cout << d; }
(8)设i,j,k均为int型变量,则执行完for(i=0, j=10; i<=j; i++, j--)k=i+j;语句后,k的值为 【8】 。
(9)如果要把返回值为void的函数A声明为类B的友元函数,则应在类B的定义中加入的语句是 【9】 。
(10)如果类B继承了类A,则称类A为类B的基类,类B称为类A的 【10】 。
(11)将x+y中的+运算符用友元函数重载应写为 【11】 。
(12)已知程序的结果为1 2 3,请填空。
#include
template
class A
{ public:
T x,y,z;
void display(){cout << x << " " << y << " " << z;} };
void main()
{ Aa1;
【12】
【13】
【14】
a1.display(); }
(13)下列程序段的输出结果是 【15】 。
cout << fixed << 509.123456789 << endl;
推荐新闻:2013年C++模拟试题及答案汇总※计算机二级C++全真模拟试题及答案汇总
冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题及答案※悬赏等考真题
更多练习>>参与233网校“计算机二级C++模拟估分”助您考试顺利通关!
上机部分
一、改错题
使用VC6打开考生文件夹下的工程kt14_1,此工程包含一个源程序文件kt14_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果为:
A:noparameters
B:intparameter
A:noparameters
B:intparameter
C:intparameter
源程序文件kt14_1.cpp清单如下:
#include
classA
{ /*****************found*****************/
private:
A(){cout<<"A:noparametersn";}
A(inta){cout<<"A:intparametern";} };
classB:publicA
{ public:
B(inta){cout<<"B:intparametern";} };
/*****************found*****************/
classC:publicB,publicA
{ public:
/*****************found*****************/
C(inta)::B(a){cout<<"C:intparametern";} };
voidmain()
{ Bb(1);
Cc(2); }
【参考答案】
(1)将private:改为:public:
(2)将class C:public B,public A改为:class C:public B
(3)将C(int a)::B(a){cout<<"C: int parametern"; }
改为:C(int a):B(a){cout<<"C: int parametern";}
【试题解析】
(1)一个类的构造函数和析构函数可以由系统自动生成,也可以由用户提供,但构造函数和析构函数都必须是该类的公有成员函数,否则编译时将出现错误,不能被调用;
(2)A已经是B的基类,C公有继承B,A也就成为了C的基类,根据程序的运行结果可知,C是要公有继承B;
(3)派生类的构造函数,初始化基类的参数,调用基类的构造函数时,使用符号“:”,而不是“::”;
推荐新闻:2013年C++模拟试题及答案汇总※计算机二级C++全真模拟试题及答案汇总
冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题及答案※悬赏等考真题
更多练习>>参与233网校“计算机二级C++模拟估分”助您考试顺利通关!
二、简单应用题
编写函数fun(),它的功能是求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并做为函数值返回。
例如:n为1000时,函数值应为s=153.909064。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include
#include
#include
doublefun(intn)
{ main()
{ clrscr();
printf("s=%fn",fun(1000)); }
【参考答案】
double fun(int n)
{ double s=0.0;
int i;
for(i=0; i
/*从0~n中找到既能被3整除同时又能被7整除的数,并将这些数求和*/
if(i%3==0&&i%7==0)
s=s+i;
s=sqrt(s); /*对s求平方根*/
return s; }
【试题解析】
本题的解题思路是:逐个取得从0~n之间的所有数,对每次取得的数进行条件判断,条件是既能被3整除同时又能被7整除,注意:这两个条件要求同时成立,因此用到了“&&”运算符。满足条件,该数就被累加到s中去,所有符合条件的数找完后,用sqrt()函数对s求平方根。
推荐新闻:2013年C++模拟试题及答案汇总※计算机二级C++全真模拟试题及答案汇总
冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题及答案※悬赏等考真题
更多练习>>参与233网校“计算机二级C++模拟估分”助您考试顺利通关!
三、综合应用题
使用VC6打开考生文件夹下的工程kt14_3。此工程包含一个kt14_3.cpp,其中定义了二维坐标类Coordinate和三维坐标类ThreeDCoord,其中ThreeDCoord类由Coordinate类public派生,但两个类的定义并不完整。请按要求完成下列操作,将程序补充完整。
(1)定义类Coordinate的保护数据成员x和y,它们都是int型的数据,代表二维坐标的横纵坐标值。请在注释“//**1**”之后添加适当的语句。
(2)根据类Coordinate定义后的成员函数Display的实现,补充该函数在类Coordinate定义体内的声明,Display为二维坐标类的虚函数。请在注释“//**2**”之后添加适当的语句。
(3)完成二维坐标类Coordinate的构造函数,将参数a和b分别赋值给数据成员x和y。请在注释“//**3**”之后添加适当的语句。
(4)根据ThreeDCoord类构造函数的声明,补充ThreeDCoord构造函数的实现,参数a和b通过调用基类的构造函数来初始化基类的数据成员x和y,c赋值给数据成员z。请在注释“//**4**”之后添加适当的语句。
输出结果如下:
[1,2]
[3,4,5]
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
源程序文件kt14_3.cpp清单如下:
#include
classCoordinate
{ protected:
//**1**
public:
Coordinate(inta=0,intb=0);
//**2** };
Coordinate::Coordinate(inta,intb)
{ //**3** }
voidCoordinate::Display()const
{ cout<<’[’<
classThreeDCoord:publicCoordinate
{ intz;
public:
ThreeDCoord(inta=0,intb=0,intc=0);
virtualvoidDisplay()const; };
//**4**
voidThreeDCoord::Display()const
{ cout<<’[’<
voidmain()
{ Coordinatec(1,2);
ThreeDCoordt(3,4,5);
c.Display();
t.Display(); }
【参考答案】
(1)protected:
int x;
int y;
(2)virtual void Display() const;
(3)x=a; y=b;
(4)ThreeDCoord::ThreeDCoord(int a, int b, int c) : Coordinate(a, b)
【试题解析】
本题主要考查对类数据成员的定义、构造函数、派生类及虚函数的理解,是C++类知识的一个综合考核。对虚函数的定义格式及继承类构造函数的定义格式请多加注意。
推荐新闻:2013年C++模拟试题及答案汇总※计算机二级C++全真模拟试题及答案汇总
冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题及答案※悬赏等考真题
更多练习>>参与233网校“计算机二级C++模拟估分”助您考试顺利通关!