全国计算机等级考试无纸化真考题库试卷二级C.docx

上传人:z**** 文档编号:61307105 上传时间:2022-11-20 格式:DOCX 页数:19 大小:49KB
返回 下载 相关 举报
全国计算机等级考试无纸化真考题库试卷二级C.docx_第1页
第1页 / 共19页
全国计算机等级考试无纸化真考题库试卷二级C.docx_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《全国计算机等级考试无纸化真考题库试卷二级C.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试无纸化真考题库试卷二级C.docx(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、优质文本全国计算机等级考试无纸化真考题库试卷(1)二级C+(考试时间l20分钟,总分值100分)一、选择题(每题1分,共40分)(1)程序流程图中带有箭头的线段表示的是( )。A)图元关系 B)数据流 C)控制流 D)调用关系(2)结构化程序设计的根本原那么不包括( )。A)多态性 B)自顶向下 C)模块化 D)逐步求精(3)软件设计中模块划分应遵循的准那么是( )。A)低内聚低耦合 B)高内聚低耦合 C)低内聚高耦合 D)高内聚高耦合(4)在软件开发中,需求分析阶段产生的主要文档是( )。A)可行性分析报告 B)软件需求规格说明书C)概要没计说明书 D)集成测试方案(5)算法的有穷性是指(

2、)。A)算法程序的运行时间是有限的 B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的 D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比拟次数不是n(rt一1)2的排序方法是( )。A)快速排序 B)冒泡排序 C)直接插入排序 D)堆排序(7)F列关于栈的表达正确的选项是( )。A)栈按“先进先出组织数据 B)栈按“先进后出组织数据C)只能在栈底插入数据 D)不能删除数据(8)在数据库设计中,将ER图转换成关系数据模型的过程属于( )。A)需求分析阶段 B)概念设计阶段 C)逻辑设计阶段D)物理设计阶段(9)有三个关系R、S和T如下由关系R和s通过运算得到关

3、系T,那么所使用的运算为( )。A)并 B)自然连接 C)笛卡尔积 D)交(10)设有表示学生选课的三张表,学生s(学号,姓名,性别,年龄,身份证号),课程c(课号,课名),选课Sc(学号,课号,成绩),那么表Sc的关键字(键或码)为( )。A)课号,成绩 B)学号,成绩 C)学号,课号 D)学号,姓名,成绩(1I)以下语句中,错误的选项是( )。A)const int buffer:256; B)const int temp;C)const double*point;D)const double*rt=new double(55);(12)有如下程序:int x=3:dox-=2;COUX:

4、while(!(-X);执行这个程序的输出结果是( )。A)1 B)3 0 C)12 D)死循环(13)有如下程序:ncludeusing namespace std;int main()int*P;*P=9:coutThe value at p: *p;return 0;编译运行程序将出现的情况是( )。A)编译时出现语法错误,不能生成可执行文件B)运行时一定输出:llle value at P:9C)运行时一定输出:llle value at P:*9D)运行时有可能出错(14)if语句的语法格式可描述为:格式l:if()或格式2:if()else关于上面的语法格式,以下表述中错误的选项是

5、( )。A)局部可以是一个if语句,例如if(if(a=0)B)局部可以是一个if语句,例如if()if()C)如果在前加上逻辑非运算符!并交换和的位置,语句功能不变D)局部可以是一个循环语句,例如if()while()(15)以下符号中,正确的c+标识符是( )。A)enum B)2b C)f00一9 D)_32(16)以下关于c+函数的说明中,正确的选项是( )。A)内联函数就是定义在另一个函数体内部的函数B)函数体的最后一条语句必须是return语句C)标准c+要求在调用一个函数之前,必须先声明其原型D)编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式(17)运算符重载是对已

6、有的运算符赋予多重含义,因此( )。A)可以对根本类型(如int类型)的数据,重新定义“+运算符的含义B)可以改变一个已有运算符的优先级和操作数个数C)只能重载c+中已经有的运算符,不能定义新运算符D)C+中已经有的所有运算符都可以重载(18)以下有关内联函数的表达中,正确的选项是( )。A)内联函数在调用时发生控制转移B)内联函数必须通过关键字inline来定义C)内联函数是通过编译器来实现的 D)内联函数函数体的最后一条语句必须是return语句(19)以下运算符不能重载为友元函数的是( )。 A)=()( )-B) + - + - C) = =D)+= -= *=(20)有如下程序:#i

7、ncludeusing namespaee std;int main()void function(double val);double val:function(val);eout,使得程序中可以“cinobj;的形式改变MyClass类的对象0bj中数据成员data的值,那么横线处的声明语句应为( )。A)friend istream& operator(istream&is,MyClass&a); B)friend istream&operator(istream&is,MyClass a);C)istream&operator(istream&is,MyClass&a);D)istre

8、am&operator(istream&is,MyClass a);(23)由于常对象不能被更新,因此( )。A)通过常对象只能调用它的常成员函数B)通过常对象只能调用静态成员函数C)常对象的成员都是常成员D)通过常对象可以调用任何不改变对象值的成员函数(24)有如下类定义:class AAim a:public:int getRef()constreturna;int getValue()constreturn a;void set(int n)consta=n;friend void show(AA aa)constcouta=a;static int g()return a;fvoid

9、h(int b)Test:b=b;private:int a;static int b;const int C;int Test:b=0:在标注号码的行中,能被正确编译的是。A)B)c)D)(32)有如下类声明:class SAMPLE int n:public:SAMPLE(int i=0):n(i)void setValue(int nO);以下关于9etValue成员函数的定义中,正确的选项是。A)SAMPLE:setValue(int nO)n=n0; B)void SAMPLE:setValue(int胡)n=n0;C)void setValue(int nO)n=n0;D)setV

10、alue(int nO)n=n0;(33)有如下程序:#includeusing namespace std;class Apublic:A()coutA;-A()cout-A;class B:public AA*P;public:B()coutB;P=new A();-B()coutB;delete p;int main()B obj;return 0;执行这个程序的输出结果是( )。A)BAAABA B)ABABAAC)BAABAA D)ABAABA(34)有如下程序:#includeusing namespace std;class Baseprivate:void funl()cons

11、ttoutfunl;protected:void fun2()consttoutfun2;public:void fun3()constcoutfhll3;class Derived:protected Basepublic:void fhn4()constcoutfiln4;int main()Derived obj;objfunl();objfun2();objfurd();objfun4();return U:其中有语法错误的语句是。A)B)C)D)(35)有如下程序:#includeusing namespace std;class Baselpublic:BaseI(int d)co

12、utd;一Basel();class Base2public:Base2(int d)toutd;Base2();class Derived:public Basel,Base2public:Derived(int a,int b,int c,int d):Basel(b),Base2(a),bl(d),b2(c)private:int bl:int b2:;int main()Derived d(1,2,3,4);return 0;执行这个程序的输出结果是。A)1234B)2134C)12D)21(36)有如下程序:#includeusing namespace std;class Base

13、public:void funl()coutBasen;virtual void fun2()eoutBasen;class Derived:public Basepublic:void funl()eoutDerived、n;void fura()eoutDerivedn;void f(Base&b)bfunl();bftm2();int main()Derived obj;f(obj);return 0;执行这个程序的输出结果是。A)BaseB)BaseC)DerivedD)DerivedBase Derived Base Derived(37)模板对类型的参数化提供了很好的支持,因此。A

14、)类模板的主要作用是生成抽象类B)类模板实例化时,编译器将根据给出的模板实参生成一个类C)在类模板中的数据成员都具有同样类型D)类模板中的成员函数都没有返回值(38)有如下函数模板:templateT east(U u)i return u;其功能是将U类型数据转换为T类型数据。i为int型变量,以下对模板函数cast的调用中正确的选项是。A)cast(i);B)cast(i);C)east(i);D)east(i);(39)要建立文件流并翻开当前目录下的文件6ledat用于输入,以下语句中错误的选项是。A)ifstream fin=ffstreamopen();B)ifstream*fin=

15、new ifstream();C)ifstream fin;finopen();D)ifstream*fin=new ifstream();fin-open();(40)当使用ifstream流类定义一个流对象并翻开一个磁盘文件时,文件的默认翻开方式为。A)iosbase:inB)iosbase:in l ios base:0utC)los base;:0utD)ios_base:in&ios_base:0ut二、根本操作题(共l8分)请使用VC6或使用【答题】菜单翻开考生文件夹projl下的工程projl,该工程含有一个源程序文件pn,jlcpp。其中位于每个注释“ERROR 木水found

16、水木之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:The value is l0注意:只修改注释“ERROR * found*的下一行语句,不要改动程序中的其他内容。pmjlcpp#includeusing namespace std;class MyClassint value;public:ERROR*found*void MyClass(int val):value(val)int GetValue()constreturn value;void SetValue(int val);ERROR*found*inline void SetValue(int val)value

17、=val;int main()MyClass obj(O);objSetValue(10);ERROR*found*以下语句功能是输出obj的成员value的值toutThe value isobjvalueendl:return 0;三、简单应用题(共24分)请使用VC6或使用【答题】菜单翻开考生文件夹proj2下的工程proj2,此工程包含有一个源程序文件proj2cpp,其中定义了Stack类和ArrayStack类。Stack是一个用于表示数据结构“栈的类,栈中的元素是字符型数据。Stack为抽象类,它只定义了栈的用户接口,如下所示:公有成员函数 功能push 入栈:在栈顶位置添加一个

18、元素pop 退栈:取出并返回栈顶元素ArrayStack是Stack的派生类,它实现了Stack定义的接口。ArrayStack内部使用动态分配的字符数组作为栈元素的存储空间。数据成员maxSize表示的是栈的最大容量,top用于记录栈顶的位置。成员函数push和pop分别实现具体的入栈和退栈操作。请在程序中的横线处填写适当的代码,然后删除横线,以实现上述功能。此程序的正确输出结果应为:a,b,CC,b,a注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“*料found*。proj2cpp#includeusing namespacc std;class Stackp

19、ublic:virtual void push(char C)=0;virtual char pop()=0;class ArrayStack:public Stackchar*P;int maxSizc;int top;public:ArravStackint stop=0;maxSize=s:*found*P=_;ArrayStack()*found*_;void push(char c)if(top=maxSize)cerrOverflow! n:return;*found*_;top+:char pop()if(top=0)cerrUnderflow!、n;return0;Top-;*

20、found*_;void f(Stack&sRef)char ch=a,b,c;coutch0,ch1,ch2endl;sRefpush(oh0);sRefpush(ch1);sRefpush(ch2);coutsRefpoP(),;coutsRefpoP(),;coutsRefpoP()endl;int main()ArrayStack as(10);f(as):return 0:四、综合应用题(共l8分)请使用VC6或使用【答题】菜单翻开考生目录proj3下的工程文件proj3,此工程中包含一个源程序文件proj3cpp,补充编制c+程序proj3cpp,其功能是读取文本文件indat中的

21、全部内容,将文本存放到doc类的对象myDoc中。然后将myDoc中的字符序列反转,并输出到文件outdat中。文件indat的长度不大于1000字节。要求:补充编制的内容写在“*与“*两行之间。实现将myDoc中的字符序列反转,并将反转后的序列在屏幕上输出。不得修改程序的其他局部。注意:程序最后已将结果输出到文件0utdat中,输出函数writeToFile已经给出并且调用。proj3cpp#include#include#includeusing namespace std;class docprivate:char*sir;文本字符串首地址int length;文本字符个数public:

22、构造函数,读取文件内容,用于初始化新对象,是文件名字符串首地址doc(char*);void reverse();将字符序列反转一doc();void writeTo*); doc:doc(char)ifstream my);int len=1001,tmp;atr=new char1en;length=0;while(trap=my()!=EOF) str1ength+=trap; str1ength=0;my();void doc:reverse()将数组atr中的length个字符中的第一个字符与最后一个字符交换,第二个字符与倒数第二个字符交换*333*666*doc:doe()dele

23、testr;void doc:writeTo*)Ofstream out);outFile不能重载为类的友元函数。所以此题答案为A。(20)D 【解析】此题考查函数调用及传值方式传递参数,执行函数function时,并没有将3的值传回来,而val又没有初始化,所以会输出一个不确定的值,D选项正确。(21)c 【解析】此题考查四种运算符作为非成员函数的重载的使用方法,根据重载规那么,此题答案为c,c项正确原型为:Fraction operator=(Fraction)。(22)A 【解析】此题考查重载流运算符“,根据重载规那么,此题答案为A。(23)A 【解析】此题考查常对象的根本知识,常对象只

24、能调用它的常成员函数,而不能调用非const函数,常对象的成员函数不一定都是常成员函数,只需保证其数据成员是常数据成员即可。所以此题选A。(24)B 【解析】此题考查常成员函数,常成员函数只能引用本类中的数据成员,而不能修改它。所以此题答案为B。(25)D 【解析】this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员时,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。另外,全局函数和静态函数都不能使用this指针。所以答案为D。(26)B 【解析】在某基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数一虚函数必须是基类的非静态成员函数,其访问权限可以是

25、protected或public。如果一个类包含了纯虚函数,称此类为抽象类。所以此题答案为B。(27)D 【解析】此题考查派生类与基类的关系,派生类可以有多个直接基类,而派生类有三种继承方式,在私有继承中,派生类的成员并不能访问基类的成员。如果基类中定义了缺省构造函数或根本没有定义任何一一个构造函数时,在派生类构造函数的定义中可以省略对基类构造函数的调用。所以此题答案为D。(28)A 【解析】此题考查公用继承对基类成员的访问属性。在公用继承中,基类的公用成员和保护成员在派生类中保持原有的访问属性,其私有成员仍为基类私有。所以在此题中,在类外引用成员函数时,派生对象只能引用基类的公用成员函数fu

26、n1,故此题答案为A。(29)D 【解析】此题考查对象的初始化,类的数据成员是不能在声明类时初始化的,所以此题答案为D。(30)C 【解析】此题考查默认构造函数和带参数的构造函数,题目中定义一个对象a(2)以及对象数组b3,共执行4次构造函数,对象指针不调用构造函数。所以此题答案为c。(31)D 【解析】只能通过构造函数的参数初始化列表对常数据成员进行初始化,此题中常数据成员为C。通过默认构造函数初始化c,所以不正确。常成员函数只能引用本类中数据成员,而不能修改它,所以不正确。静态成员函数由于没有this指针,所以不能访问本类中的非静态成员,所以错误。(32)B 【解析】此题考查在类外定义类的

27、成员函数,需要使用作用域限定符“:,属于根底知识,此题答案为8。(33)B 【解析】此题考查派生类的构造函数和析构函数,在定义一个派生类的对象时,先调用基类的构造函数,然后再执行派生类的构造函数。对象释放时,先执行派生类的析构函数,再执行基类的析构函数。所以此题答案为B。(34)B 【解析】此题考查保护继承中派生类对基类的访问属性,受保护继承中,基类的公用成员和保护成员在派生类中成了保护成员,其私有成员仍为基类私有,保护基类的所有成员在派生类中都被保护起来,在类外不能访问,所以错误。(35)D 【解析】此题考查派生类的构造函数和析构函数,在定义一个派生类的对象时,先调用基类的构造函数,然后再执

28、行派生类的构造函数,对象释放时,先执行派生类的析构函数,再执行基类的析构函数。此题中定义一个派生类对象时,分别调用基类的构造函数,所以分别输出21。(36)B 【解析】在某基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数,此题中定义r一个派生类对象0bi,执行f函数后,将派生类对象0bj转化为基类对象,由于fun1不是虚函数,所以输出基类的fun1;而fun2是虚函数,所以输出派生类的fun2,所以此题答案为8。(37)B 【解析】此题考查类模板的根本概念。类模板的定义和声明都以关键字template开头。关键字后面是一个用逗号分隔的模板参数表,用尖括号“括起来,这个表被称

29、为类模板的模板参数表。类模板是类的抽象,类是类模板的实例。类模板使类中的一些数据成员和成员函数的参数或返回值可以取任意的数据类型。所以B选项正确。(38)D 【解析】此题考查函数模板的根本运用,属于根底知识。函数模板实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型代表,这个通用函数就是函数模板。函数模板可以设定默认参数,这样在调用模板函数时就可以省略实参,函数模板的实例就是一个函数的定义。所以此题答案为D。(39)A 【解析】此题考查对文件流输入的操作,可以调用文件流的成员函数pen,一般形式如下:文件流对象0pen(磁盘文件名,输入/输出方式)。根据以上格式,可以判断A选项错误。(40)A 【解析】此题考查对文件输入流的操作,ifstream流类为输入流类,默认的文件输入流扣开方式为ios:in。故答案为A。二、根本操作题【参考答案】(1)MyClass(int val):value(val)(2)void MyClass:SetValue(int val)value=val;(3)cout“The value is“objGetValu

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁