[计算机类试卷]2005年4月国家二级(C++)笔试真题试卷及答案与解析.doc

上传人:wealthynice100 文档编号:492484 上传时间:2018-11-30 格式:DOC 页数:18 大小:52.50KB
下载 相关 举报
[计算机类试卷]2005年4月国家二级(C++)笔试真题试卷及答案与解析.doc_第1页
第1页 / 共18页
[计算机类试卷]2005年4月国家二级(C++)笔试真题试卷及答案与解析.doc_第2页
第2页 / 共18页
[计算机类试卷]2005年4月国家二级(C++)笔试真题试卷及答案与解析.doc_第3页
第3页 / 共18页
[计算机类试卷]2005年4月国家二级(C++)笔试真题试卷及答案与解析.doc_第4页
第4页 / 共18页
[计算机类试卷]2005年4月国家二级(C++)笔试真题试卷及答案与解析.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、2005 年 4月国家二级( C+)笔试真题试卷及答案与解析 1 数据的存储结构是指 ( A)存储在外存中的数据 ( B)数据所占的存储空间量 ( C)数据在计算机中的顺序存储方式 ( D)数据的逻辑结构在计算机中的表示 2 下列关于栈的描述中错误的是 ( A)栈是先进后出的线性表 ( B)栈只能顺序存储 ( C)栈具有记忆作用 ( D)对栈的插入与删除操作中,不需要改变栈底指针 3 对于长度为 n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是 ( A)冒泡排序 n/2 ( B)冒泡排序 为 n ( C)快速排序为 n ( D)快速排序为 n(n-1)/2 4 对长度为 n的线

2、性表进行顺序查找,在最坏情况下所需要的比较次数为 ( A) log2n ( B) n/2 ( C) n ( D) n+1 5 下列对于线性链表的描述中正确的是 ( A)存储空间不一定是连续,且各元素的存储顺序是任意的 ( B)存储空间不一定是连续,且前件元素一定存储在后件元素的前面 ( C)存储空间必须连续,且前件元素一定存储在后件元素的前面 ( D)存储空间必须连续,且各元素的存储顺序是任意的 6 下列对于软件测试的描述 中正确的是 ( A)软件测试的目的是证明程序是否正确 ( B)软件测试的目的是使程序运行结果正确 ( C)软件测试的目的是尽可能多地发现程序中的错误 ( D)软件测试的目的

3、是使程序符合结构化原则 7 为了使模块尽可能独立,要求 ( A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强 ( B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 ( C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱 ( D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强 8 下列描述中正确的是 ( A)程序就是软件 ( B)软件开发不受计算机系统的限制 ( C)软件既是逻辑实体,又是物理实体 ( D)软件是程序、数据与相关文档的集合 9 数据独立性是数据库技术的重要特点之一。所谓数据独立性是指 ( A)数据与程序独立存放 ( B)不同的数据被存放在不同的文件中

4、( C)不同的数据只能被对应的应用程序所使用 ( D)以上三种说法都不对 10 用树形结构表示实体之间联系的模型是 ( A)关系模型 ( B)网状模型 ( C)层次模型 ( D)以上三个都是 11 要定义数组 A,使得其中每个元素的数 据依次为: 3、 9、 4、 8、 0、 0、 0,错误的定义语句是 ( A) int A =3,9,4,8,0,0,0; ( B) int A7=3,9,4,8,0,0,0; ( C) int A =3,9,4,8); ( D) int A7=3,9,4,8); 12 在 C+中,实现封装性需借助于 ( A)枚举 ( B)类 ( C)数组 ( D)函数 13

5、下列关于虚函数的描述中,正确的是 ( A)虚函数是一个 static类型的成员函数 ( B)虚函数是一个非成员函数 ( C)基类中采用 virtual说明一个虚函数后,派生类中定义相同原型的函数时可不必加 virtual说明 ( D)派生类中的虚函数与基类中相同原型的虚函数具有不同的参数个数或类型 14 下列关于运算符重载的描述中,正确的是 ( A)运算符重载可以改变操作数的个数 ( B)运算符重载可以改变运算符的优先级 ( C)运算符重载可以改变运算符的结合性 ( D)运算符重载可以使运算符实现特殊功能 15 有如下函数模板声明: template typename T T Max(Ta,T

6、b)return(a =b)?a:b;) 下列对函数模扳 Max的调用中错误是 ( A) Max(3.5,4,5) ( B) Max(3.5,4) ( C) Max double (3.5,4.5) ( D) Max double (3.5,4) 16 若语句: cout setfill( ) setw(5) 3141512 setw(5)“OK!“; 是程序中第一个输出语句,则输出结果是 ( A) 3141512 OK! ( B) 31415120K! ( C) 414150K! ( D) 31415 OK! 17 有如下语句序列; int k=0; dok+=5;couk $;) whil

7、e(k 19); while(k- 0)cout *; 执行上面的语句序列输出字符$和。的个数分别是 ( A) 4和 20 ( B) 5和 20 ( C) 4和 21 ( D) 5和 21 18 针对数组定义 int data10;,下列表述中错误的是 ( A)用 *data可访问到数组的首元素 ( B)用 data9可访问到数组的末元素 ( C)用 data10访问数组元素会超 出数组边界 ( D) data共有 10个元素,其首元素是 data1 19 已知 n是一个 int型变量,下列语句中错误的是 ( A) long *p=new longn; ( B) long pn; ( C) l

8、ong *p=new long(n); ( D) longpr10; 20 下列函数中对调用它的函数没有起到任何作用的是 ( A) void f1(double) ( C) void f3(double x)-x; ) ( D) double f4(double *x)-*x;retum *x; 21 在下面的类定义中,横线处应填入的内容是 class Fred public: void print()cout data endl; void setData(double d)(data=d; static int count; private: double data; ; count=0;

9、 /静态数据成员的定义 ( A) int ( B) static int ( C) int Fred: ( D) static int Fred: 22 有如下程序: #include iostream using namespace std; class Base protected: in i; public: int j; ; class Derived:public Base int m; public:int n; ; int main() Derived d; d.i=0; /1 d.j=0; /2 d.m=0; /3 d.n=0; /4 retum 0; 其中主函数中有两个赋值语

10、句有错,这两个借误的赋值语句是 ( A) 1和 2 ( B) 1和 3 ( C) 2和 3 ( D) 2和 4 23 在表达式 x-y中, “_”是作为非成员函数重载的运算符。若使用显式的函数调用代替直接使用运算符 “_”,这个表达式还可表示为 ( A) x.operator-(y) ( B) operator-(y,x) ( C) y.operator-(x) ( D) operator-(x,y) 24 下面的函数模板定义中错误的是 ( A) template ( B) template Q F(Q x)retum Q+x;) Q F(Q x)return x+x; ( C) templa

11、te classT ( D) template class T TF(T x)return x*x;) Bool F(tx)return x 1;) 25 已知 outfile是一个输出流对象,要想将 outfile的文件指针定位到当前位置之前321字节处,正确的函数调用语句是 ( A) outfile.seekp(321,ios_base:cur); ( B) outfile.seekp(321,ios_base:bge); ( C) outfile.seekp(-321,ios_base:beg); ( D) outfile.seekp(-321,ios_base:cur); 26 有如下

12、的程序: #include cstring #include iostream using namespace std; class MyString public: MyString(const char*s); MyString()deletedata; Protected: unsigned len; char*data; ; MyString:MyString(const char*s) len=strlen(s); data=new charlen+1; strcpy(data,s); int main() MyString a(“C+Programing“); MyString b

13、(a); return 0; 在运行上面的程序时出错,出错的原因是 ( A)构造函数的实参不允许是本类 的对象 ( B)没有定义实现深层复制 (深拷贝 )的拷贝构造函数 ( C)构造对象 a时实参与形参类型不符 ( D)系统不能生成缺省的拷贝构造函数 27 有如下程序: #include iostream using namespace std; class Demo public: Demo() cout “default constructorn“; Demo(const Demo Demo userCode(Demo b)DemoC(b);return c; int main() Dem

14、o a,d; cout “calling userCode()n“; d=userCode(a); return 0; 执行上面程序的过程中,构造函数 Demo()和 Demo(const Demo 与语句 ff=O;的效果完全相同。对于这一现象,下列表述中错误的是 ( A) ff是某个类的数据成员, func是该类的友元函数 ( B) ff是某个类的数据成员, func是该类的成员函数 ( C) this- ff和 ff是同一个变量 ( D) func不是一个静态成员函数 29 有如下程序: #include iostream using namespace std; class Base

15、pubfic: Base()cout “BB“;f(); void f()cout “Bf“: ; class Derived:public Base public: Derived()cout “DD“;) voidf()cout“Df“: ; intmain()Derived d;retum 0; 执行上面的程序将输出 ( A) BBBfDD ( B) BBDfDDDf ( C) DD ( D) DDBBBf 30 下列说法中错误的是 ( A)公有继承时基类中的 public成员在派生类中仍是 public成员 ( B)私有继承时基类中的 protecte成员在派生类中仍是 protect

16、ed成员 ( C)私有继承时基类中的 public成员在派生类中是 private成员 ( D)保护继承时基类中的 public成员在派生类中是 protected成员 31 下面是关于派生类声明的开始部分,其中正确 的是 ( A) class virtual B:public A ( B) virtual class B:public A ( C) class B:public A virtual ( D) class B:virtual public A 32 在重载一个运算符为成员函数时,其参数表中没有任何参数,这说明该运算符是 ( A)后缀一元运算符 ( B)前缀一元运算符 ( C)无

17、操作数的运算符 ( D)二元运算符 33 关于关键字 class和 typename,下列表述正确的是 ( A)程序中所有的 typename都可以替换为 class ( B)程序中所有的 class都可以替换为 typename ( C) A)和 B)都正确 ( D) A)和 B)都不正确 34 有如下程序: #qnclude iostream #include iomanip using namespace std; class CSum int x,y; public: CSum(int x0,int y0):x(xo),y(yo) friend ostream return os; ;

18、 int main() CSum y(3.5; cout setfill(*) 8 cout y; return0; 执行上面程序的输出是 ( A) 88 ( B) *88 ( C) *8*8 ( D) 8*8 35 有如下程序: #nclude iostremn using namespace std; class Stack public: Stack(unsigned n=10:size(n)rep_=new intsize;top=O; Stack(Stack for(int i=0;i size;i+)rep_i=s.rep_i; top=s.top; Stack()deletere

19、p_; void push(int a)rep_top=a; top+; int opo()-top;return rep_top; bool is Empty()constreturn top=O; pavate: int*rep_; unsigned size,top; ; int main() Stack s1; for(int i=1;i5;i+) s1.push(i); Stack s2(s1); for(i=1;i 3;i+) cout s2.pop() ,; s2.push(6); s1.push(7); while(!s2.isEmpty() cout s2.pop(),; r

20、eturn 0; 执行上面程序的输出是 ( A) 4, 3, 2, 1 ( B) 4, 3, 6, 7, 2, 1 ( C) 4, 3, 6, 2, 1 ( D) 1, 2, 3, 4 36 某二叉树中度为 2的结点有 18个,则该二叉树有【 】个叶子结点。 37 在面向对象方法中,类的实例称为【 】。 38 诊断和改正程序中错误的工作通常称为【 】。 39 在关系数据库中,把数据表示成二维表,每一个二维表称为【 】。 40 问题处理方案的正确而完整的描述称为【 】。 41 下列程序的输出结果是【 】。 #include iostream #include cstring using name

21、space std; void fun(const char *s,char int main() char str=“ABCDE“; char ch=str1; fun(str,ch); cout ch; return 0; 42 Staff类含有 int型数据成员 ID,两个 Staff对象相等是指它们的 ID相同。下面的函数重载了运算符 =,它用来判断两个 Staff对象是否相等,相等时返回 true,否则返回 false。请将横线处缺失部分补充完整。 bool Staff:Staff=(const Staff for(int i=1;i n;i+) if(ai m)【 】 ; retu

22、rn m; 44 下面程序的执行结果是【 】。 #include iostream #include iomanip using namespace std; void main() cout setfill(x) setw(10); cout “Hello“ endl; 45 在下面函数的横线处填上适当的内容,使该函数能够利用递归方法求解字符串sb的长度 (不得使用系统提供的字符串处理函数 )。 int GetLen(char*str) it(【 】 )return【 】; else return 1+GetLen(str+1); 46 在下面程序的横线处填上适当的内容,使程序执行后的输出结

23、果果为 1/2005。 #include iostmam using namespace std; class Date public: Date(int m=1,int y=0):month(m),year(y) void Print()cout month “/“ year endl; operator+(const Date private: int month,year; ; operator+(const Date year=d1.year+d2.year; month=d1.month+d2.month; year+=(month-1)/12; month=(month-1)%12

24、+1; return Date(month,year); void main() Date d1(3,2004),d2,d3(10); d2=d3+d1; d2.Print(); 47 在下面程序的横线处填上适当的内容,使程序执行后的输出结果为 ABCD。 #include iostream using namespace std; class A public: A()cout A; ; class B:【 】 public:B()cout B;) ; class C:【 】 public;C()cout C; ; class D:public B,public C public:D()co

25、ut D; ; void main()D obi; 2005 年 4月国家二级( C+)笔试真题试卷答案与解析 1 【正确答案】 D 2 【正确答案】 B 3 【正确答案】 D 4 【正确答案】 C 5 【正确答案】 A 6 【正确答案】 C 7 【正确答案】 B 8 【正确答案】 D 9 【正确答案】 D 10 【正确答案】 C 11 【正确答案】 C 12 【正确答案】 B 13 【正确答案】 C 14 【正确答案】 D 15 【正确答案】 B 16 【正确答案】 A 17 【正确 答案】 A 18 【正确答案】 D 19 【正确答案】 B 20 【正确答案】 C 21 【正确答案】 C

26、22 【正确答案】 B 23 【正确答案】 D 24 【正确答案】 A 25 【正确答案】 D 26 【正确答案】 B 27 【正确答案】 C 28 【正确答案】 A 29 【正确答案】 A 30 【正确答案】 B 31 【正确答案】 D 32 【正确答案】 B 33 【正确答案】 A 34 【正确答案】 B 35 【正确答案】 C 36 【正确答案】 19 37 【正确答案】 对象 38 【正确答案】 程序调试 39 【正确答案】 关系 40 【正确答案】 算法 41 【正确答案】 C 42 【正确答案】 this.ID=s.ID 43 【正确答案】 m=ai 44 【正确答案】 xxxxxHello 45 【正确答案】 *str=/0 0 46 【正确答案】 friend Date Date 47 【正确答案】 virtual public A virtual public A

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1