计算机类 二级 C++
全国计算机等级考试 二级C++ 笔试模拟试题(一) 50 题 含答案 C++
1 单选题 1 / 50
循环链表的主要优点是
A 不再需要头指针了 B 从表中任一结点出发都能访问到整个链表 C 在进行插入、删除运算时,能更好的保证链表不断开 D 已知某个结点的位置后,能够容易的找到它的直接前件
查看答案 B. 从表中任一结点出发都能访问到整个链表
2 单选题 2 / 50
栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是
A ABCED B DCBEA C DBCEA D CDABE
查看答案 B. DCBEA
3 单选题 3 / 50
n个顶点的强连通图的边数至少有
A n-1 B n(n-1) C n D n+1
查看答案 C. n
4 单选题 4 / 50
在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率。与程序的效率相比,人们更重视程序的
A 安全性 B 一致性 C 可理解性 D 合理性
查看答案 C. 可理解性
5 单选题 5 / 50
模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准则是模块的
A 抽象和信息隐蔽 B 局部化和封装化 C 内聚性和耦合性 D 激活机制和控制方法
查看答案 C. 内聚性和耦合性
6 单选题 6 / 50
软件开发的结构化生命周期方法将软件生命周期划分成
A 定义、开发、运行维护 B 设计阶段、编程阶段、测试阶段 C 总体设计、详细设计、编程调试 D 需求分析、功能定义、系统设计
查看答案 A. 定义、开发、运行维护
7 单选题 7 / 50
在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是
A 路径的集合 B 循环的集合 C 目标的集合 D 地址的集合
查看答案 A. 路径的集合
8 单选题 8 / 50
在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有
A 特定的数据模型 B 数据无冗余 C 数据可共享 D 专门的数据管理软件
查看答案 A. 特定的数据模型
9 单选题 9 / 50
数据库设计包括两个方面的设计内容,它们是
A 概念设计和逻辑设计 B 模式设计和内模式设计 C 内模式设计和物理设计 D 结构特性设计和行为特性设计
查看答案 A. 概念设计和逻辑设计
10 单选题 10 / 50
实体是信息世界中广泛使用的一个术语,它用于表示
A 有生命的事物 B 无生命的事物 C 实际存在的事物 D 一切事物
查看答案 C. 实际存在的事物
11 单选题 11 / 50
以下都是C++语言标识符的是
A dsfa,df4,f$ B huhj,a^,k2 C 3k,h,j_9 D _ok,jk,k8
查看答案 D. _ok,jk,k8
12 单选题 12 / 50
C++语言中用于定义类的关键字是
A class B struct C default D sizeof
查看答案 A. class
13 单选题 13 / 50
设以下变量均为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. (x=6,x+1,y=6,x+y)
14 单选题 14 / 50
以下程序的输出结果是 #include<iostream.h> void main() { int a=21,b=11; cout << --a+b;}
A 30 B 31 C 32 D 33
查看答案 B. 31
15 单选题 15 / 50
while 和do-while循环的主要区别是
A do-while的循环体至少无条件执行一次 B while的循环控制条件比do-while的循环控制条件更严格 C do-while允许从外部转到循环体内 D do-while 的循环体不能是复合语句
查看答案 A. do-while的循环体至少无条件执行一次
16 单选题 16 / 50
与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是
A if (x>0)y=1; else if(x<0)y=-1; else y=0; B if(x) if(x>0)y=1; else if(x<0)y=-1; C y=-1; if(x) if(x>0)y=1; else if(x==0)y=0; else y=-1; D y=0; if(x>=0) if(x>0)y=1; else y=-1;
查看答案 A. if (x>0)y=1; else if(x<0)y=-1; else y=0;
17 单选题 17 / 50
若二维数组a有m列,则计算任一元素a[i][j]在数组中相对位置的公式为 (假设a[0][0]位于数组的第一个位置上)
A i*m+j B j*m+i C i*m+j-1 D i*m+j+1
查看答案 A. i*m+j
18 单选题 18 / 50
下面程序段的运行结果是 #include<iostream.h> void main() { char *s="abcde"; s+=2; cout << &s;}
A cde B 字符′c′ C 字符′c′的地址 D 无确定的输出结果
查看答案 C. 字符′c′的地址
19 单选题 19 / 50
下面叙述不正确的是
A 派生类一般都用公有派生 B 对基类成员的访问必须是无两义性的 C 赋值兼容规则也适用于多重继承的组合 D 基类的公有成员在派生类中仍然是公有的
查看答案 D. 基类的公有成员在派生类中仍然是公有的
20 单选题 20 / 50
下面程序应能对两个整型变量的值进行交换。以下正确的说法是 #include<iostream.h> void swap(int p,int q) { int t; t=p; p=q; q=t;} void main() { int a=10,b=20; cout << a << " " << b; swap(&a,&b); cout << a << " " << b;}
A 该程序完全正确 B 该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可 C 该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可 D 以上说法都不对
查看答案 D. 以上说法都不对
21 单选题 21 / 50
关于友元的概念错误的是
A 友元函数没有this指针 B 调用友元函数时必须在它的实参中给出要访问的对象 C 一个类的成员函数也可以作为另一个类的友元函数 D 只能在类的公有段声明友元
查看答案 D. 只能在类的公有段声明友元
22 单选题 22 / 50
关于抽象类下面说法正确的是
A 抽象类就是其中有函数定义但没有实现的类 B 抽象类是可以被实例化的 C 派生类不能成为抽象类 D 抽象类的子类必须实现父类中的纯虚函数
查看答案 D. 抽象类的子类必须实现父类中的纯虚函数
23 单选题 23 / 50
下面程序的结果是 #include<iostream.h> class test { private: int num; public: test(); int getint(){return num;} ~test();}; test :: test() { num =0;} test::~test() { cout<<"Destructor is active"<<endl;} void main() { test x[3]; cout<<"Exiting main"<<endl;}
A Exiting main Destructor is active Destructor is active Destructor is active B Exiting main Destructor is active Destructor is active C Exiting main Destructor is active D Exiting main
查看答案 A. Exiting main Destructor is active Destructor is active Destructor is active
24 单选题 24 / 50
如果表达式--x+y中,--是作为成员函数重载的, +是作为成员函数重载的,则该表达式还可为
A y.operator+(x.operator--(0)) B y.operator+(x.operator--()) C y.operator+(operator--(x,0)) D operator+(x.operator--())
查看答案 B. y.operator+(x.operator--())
25 单选题 25 / 50
下列语句不能够用于打开C根目录下文件test.txt的语句是
A ifstream fin; fin.open("C:\\test.txt"); B ifstream fin("C:\\test.txt"); C A)和B) D ifstream fin; fin("C:\\test.txt");
查看答案 D. ifstream fin; fin("C:\\test.txt");
26 单选题 26 / 50
以下哪个基类中的成员函数表示纯虚函数?
A virtual void vf (int) B void vf (int)=0 C virtual void vf(=0) D virtual void yf(int){ }
查看答案 B. void vf (int)=0
27 单选题 27 / 50
下面程序输出的结果是 #include<iostream.h> 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[i][i] << " ";}
A 1 5 9 B 7 5 3 C 3 5 7 D 5 9 1
查看答案 A. 1 5 9
28 单选题 28 / 50
派生类继承基类的方式有
A public B private C protected D 以上都对
查看答案 D. 以上都对
29 单选题 29 / 50
下列程序的运行结果为 #include<iostream.h> class Location { protected: int X, Y; public: void SetX(int myx){X=myx;} void SetY(int myy){Y=myy;} void showxy(){cout << "X=" << X << " " << "Y=" << Y <<endl;}}; class Rectangle : public Location{ private: int H, W; public: void SetH(int myh){H=myh;} void SetW(int myw){W=myw;} void show(){ cout << "X=" << X << " " << "Y=" << " " << Y << " " << "H=" << H << " " << "W=" << W << endl;}}; void main() { Rectangle r1; r1.SetX (3); r1.SetY (5); r1.SetH (4); r1.SetW (6); r1.showxy(); r1.show();}
A X=3 Y=5 X=3 Y=5 H=4 W=6 B X=3 Y=5 X=3 Y=5 H=3 W=6 C X=3 Y=5 X=3 Y=4 H=4 W=6 D X=3 Y=5 X=3 Y=3 H=4 W=6
查看答案 A. X=3 Y=5 X=3 Y=5 H=4 W=6
30 单选题 30 / 50
有以下程序 #include<iostream.h> void ss(char *s,char t) { while(*s) { if(*s==t)*s=t-′a′+′A′; s++;}} void main() { char str1[100]="abcddfefdbd",c=′d′; ss(str1,c); cout << str1;} 程序运行后的输出结果是
A ABCDDEFEDBD B abcDDfefDbD C abcAAfefAbA D Abcddfefdbd
查看答案 B. abcDDfefDbD
31 单选题 31 / 50
有以下程序 #include<iostream.h> void main() { int a=5,b=0,c=0; if(a=b+c)cout << "***"<<endl; else cout << "$$$"<<endl;} 下列选项叙述正确的是
A 有语法错不能通过编译 B 可以通过编译但不能通过连接 C 输出*** D 输出$$$
查看答案 D. 输出$$$
32 单选题 32 / 50
已知各变量的定义如下 int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2; 则以下符合C++语言语法的表达式是
A a+=a-=(b=4)*(a=3) B a=a*3+2 C x%(-3) D y=float i
查看答案 A. a+=a-=(b=4)*(a=3)
33 单选题 33 / 50
以下程序中循环体总的执行次数是 int i,j; for(i=6;i>1;i--) for(j=0;j<i;j++) {……}
A 20 B 261 C 15 D 25
查看答案 A. 20
34 单选题 34 / 50
对于下面的程序,说法正确的是 #include<iostream.h> void main() { int x=3,y=4,z=2; if(x=y+z)cout << "x=y+z"; else cout << "x!=y+z";}
A 不能通过编译 B 输出6 C 输出x!=y+z D 输出x=y+z
查看答案 D. 输出x=y+z
35 单选题 35 / 50
下列程序的输出结果是 #include<iostream.h> void main() { int a[3],i,j,k=2; for(i=0;i<3;i++)a[i]=i; for(i=0;i<k;i++) for(j=0;j<k;j++) a[j]=a[i]; cout << a[2];}
A 2 B 3 C 1 D 0
查看答案 A. 2
36 填空题 36 / 50
常用的黑箱测试有等价分类法、__ 、因果图法和错误推测法4种。
查看答案 边值分析法
37 填空题 37 / 50
测试的目的是暴露错误,评价程序的可靠性;而__ 的目的是发现错误的位置并改正错误。
查看答案 调试
38 填空题 38 / 50
软件维护活动包括以下几类:改正性维护、适应性维护、__ 维护和预防性维护。
查看答案 完善性
39 填空题 39 / 50
在面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为 __ 。
查看答案 消息
40 填空题 40 / 50
关键字ASC和DESC分别表示__ 的含义。
查看答案 升序排列和降序排列
41 填空题 41 / 50
C++语言中表示双精度浮点数的关键字是__ 。
查看答案 double
42 填空题 42 / 50
执行下列语句后,c3中的值为__ int c1=1,c2=2,c3;c3=1.0/c2*c1;
查看答案 0
43 填空题 43 / 50
若从键盘输入70,则以下程序输出的结果是__ 。 #include<iostream.h> void main() { int a;cin >> a; if(a>50)cout << a; if(a>40)cout << a; if(a>30)cout << a;}
查看答案 707070
44 填空题 44 / 50
以下程序的输出结果是__ 。 #include<iostream.h> void main() { char s[]="abcdef";s[3]=′\0′; cout << s << endl;}
查看答案 abc
45 填空题 45 / 50
以下程序运行后的输出结果是__ 。 #include<iostream.h> void fun(int x,int y) { x=x+y;y=x-y;x=x-y; cout << x << "," << y << ","; } void main() { int x=2,y=3;fun(x,y); cout << x << "," << y << endl;}
查看答案 3,2,2,3
46 填空题 46 / 50
常数据成员和静态数据成员在使用前共同的要求是要进行__ 。
查看答案 初始化
47 填空题 47 / 50
在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是__ 。
查看答案 构造函数
48 填空题 48 / 50
表达式x.operator+(y.operator++(0))还可以写成__ 。
查看答案 x+y++`x+(y++)
49 填空题 49 / 50
要采用"cin,cout"进行输入输出时,必须包含的头文件是__ 。
查看答案 iostream.h
50 填空题 50 / 50
构造函数是和__ 同名的函数。
查看答案 类