专项考练9全国计算机二级C考试真题及答案(近几年考题)
温故而知新,下笔如有神近几年9月全国计算机二级C+考试专题习题训练及答案一、选择题(1-10,21-40每题2分,11-20每题1分)(1)下列数据结构中,属于非线性结构的是A)循环队列B)带链队列C)二叉树D)带链栈(2)下列数据结构中,能够按照“先进后出”原则存取数据的是A)循环队列B)栈C)队列D)二叉树(3)对于循环队列,下列叙述中正确的是A)队头指针是固定不变的B)队头指针一定大于队尾指针C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针(4)算法的空间复杂度是指A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数(5)软件设计中划分模块的一个准则是A)低内聚低耦合B)高内聚低耦合C)低内聚高耦合D)高内聚高耦合(6)下列选项中不属于结构化程序设计原则的是A)可封装B)自顶向下C)模块化D)逐步求精(7)软件详细设计产生的图如下:该图是A)N-S图B)PAD图C)程序流程图D)E-R图(8)数据库管理系统是A)操作系统的一部分B)在操作系统支持下的系统软件C)一种编译系统D)一种操作系统(9)在E-R图中,用来表示实体联系的图形是A)椭圆形B)矩形C)菱形D)三角形(10)有三个关系R,S,和T如下:R A B C a 1 2 b 2 1 c 3 1S AB C d 3 2T A BC A 1 2 B 2 1 C 3 1 D 3 2其中关系T由关系R和S通过某种操作得到,该操作为A)选择B)投影C)交D)并(11)已知函数FA调用FB,若要把这两个函数定义在同一个文件中,则A)FA必须定义在FB之前B)FB必须定义在FA之前C)若FA定义在FB之后,则FA的原型必须出现在FB的定义之前D)若FB定义在FA之后,则FB的原型必须出现在FA的定义之前(12)有如下两个类定义class AA;class BB AA v1,*v2; BB v3; int *v4;其中有一个成员变量的定义是错误的,这个变量是A)v1B)v2C)v3D)v4(13)有如下类定义:class XX int xdata;public: XX(int n=0) : xdata (n) ;class YY : public XX int ydata;public: YY(int m=0, int n=0) : XX(m), ydata(n) ;YY类的对象包含的数据成员的个数是A)1B)2C)3D)4(14)下列有关运算符函数的描述中,错误的是A)运算符函数的名称总是以operator为前缀B)运算符函数的参数可以是对象C)运算符函数只能定义为类的成员函数D)在表达式中使用重载的运算符相当于调用运算符重载函数(15)下列关于模板形参的描述中,错误的是A)模板形参表必须在关键字template之后B)模板形参表必须用括弧( )括起来C)可以用class修饰模板形参D)可以用typename修饰模板形参(16)在下列枚举符号中,用来表示“相对于当前位置”文件定位方式的是A)ios_base:curB)ios_base:begC)ios_base:outD)ios_base:end(17)下列字符串可以用作C+标识符的是A)近几varB)gotoC)test - 近几D)_123(18)下列枚举类型的定义中,包含枚举值3的是A)enum test RED, YELLOW, BLUE, BLACK;B)enum test RED, YELLOW=4, BLUE, BLACK;C)enum test RED=-1, YELLOW,BLUE, BLACK;D)enum test RED, YELLOW=6, BLUE, BLACK;(19)有如下程序段:int i=1;while (1) i+; if(i = 10) break; if(i%2 = 0) cout << '*'执行这个程序段输出字符*的个数是A)10B)3C)4D)5(20)已知数组arr的定义如下:int arr5 = 1,2,3,4,5;下列语句中输出结果不是2的是A)cout << *arr+1 <<endl;B)cout << *(arr+1)<<endl;C)cout << arr1 <<endl;D)cout << *arr <<endl; (21)计算斐波那契数列第n项的函数定义如下:Int fib(int n) if (n = 0) return 1; else if (n = 1) return 2; else return fib(n-1)+fib(n-2);若执行函数调用表达式fib(2),函数fib被调用的次数是A)1B)2C)3D)4(22)Sample是一个类,执行下面语句后,调用Sample类的构造函数的次数是Sample a2, *p = new Sample;A)0B)1C)2D)3(23)下列关于虚基类的描述中,错误的是A)使用虚基类可以消除由多继承产生的二义性B)构造派生类对象时,虚基类的构造函数只被调用一次C)声明“class B : virtual public A”说明类B为虚基类D)建立派生类对象时,首先调用虚基类的构造函数(24)将运算符重载为类成员函数时,其参数表中没有参数,说明该运算是A)不合法的运算符B)一元运算符C)无操作数的运算符D)二元运算符(25)有如下模板声明:template<typename T1, typename T2> class A;下列声明中,与上述声明不等价的是A)template <class T1,class T2> class A;B)template <class T1,typename T2> class A;C)template <typename T1,class T2> class A;D)template <typename T1,T2> class A;(26)下列关于C+流的描述中,错误的是A)cout>>'A'表达式可输出字符AB)eof()函数可以检测是否到达文件尾C)对磁盘文件进行流操作时,必须包含头文件fstreamD)以ios_base:out模式打开的文件不存在时,将自动建立一个新文件27)有如下程序:#include <iostream>using namespace std;class Toypublic: Toy(char* _n) strcpy (name,_n); count+; Toy() count-; char* GetName() return name; static int getCount() return count; private: char name10; static int count;int Toy:count=0;int mail() Toy t1(“Snoopy”),t2(“Mickey”),t3(“Barbie”); cout<<t1.getCount()<<endl;return 0;运行时的输出结果是A)1B)2C)3D)运行时出错(28)有如下程序#include<iostream>using namespace std;class A public: A(int i):rl(i) void print( ) cout<<'e'<<r1<<'-' void print( ) const cout<<'C'<<r1*r1<<'-'private: int rl;int main() A al(2); const A a2(4); al.print(); a2.print(); return 0;运行时的输出结果是A)运行时出错B)E2-C16-C)C4-C16-D)E2-E4-29)有如下程序:#include<iostream>using namespace std;class Name char name20;public: Name() strcpy(name,""); cout<<'?'Name(char *fname) strcpy(name,fname); cout<'?'int main() Name names3=Name(“张三”),Name(“李四”);Return 0;运行此程序输出符号?的个数是A)0B)1C)2D)3(30)有如下程序:#include<iostream>using namespace std;public:AA() cout<<'1' ;class BB: public AAint k;public:BB():k(0) cout<<'2' BB(int n):k(n) cout<<'3'int main()BB b(4), c;return 0;运行时的输出结果是A)1312 D)132 C)32 D)1412 (31)有如下程序:#include<iostream>using namespace std;class C1public:C1() cout<<1; ;Class C2: public c1public:c2() cout<<2; ;int main()C2 cb2;C1 *cb1;return 0;运行时的输出结果是A)121 B)21 C)211 D)12(32)有如下程序#include<iostream>using namespace std;class Publication /出版物类char name30;public