全国计算机等级考试二级笔试样卷C++语言程序设计.docx

上传人:叶*** 文档编号:35241561 上传时间:2022-08-20 格式:DOCX 页数:31 大小:43.62KB
返回 下载 相关 举报
全国计算机等级考试二级笔试样卷C++语言程序设计.docx_第1页
第1页 / 共31页
全国计算机等级考试二级笔试样卷C++语言程序设计.docx_第2页
第2页 / 共31页
点击查看更多>>
资源描述

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

1、全国计算机等级考试二级笔试样卷C+语言程序设计一、选择题135每题2分,共70分以下各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。1以下选项中不符合良好程序设计风格的是A源程序要文档化B数据说明的次序要标准化C防止滥用goto语句D模块设计要保证高耦合、高内聚2从工程管理角度,软件设计一般分为两步完成,它们是A概要设计及详细设计B数据设计及接口设计C软件构造设计及数据设计D过程设计及数据设计3以下选项中不属于软件生命周期开发阶段任务的是 A软件测试 B概要设计C软件维护D详细设计4在数据库系统中,用户所见的数据模式为 A概念模式B外模

2、式C内模式D物理模式5数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和A编码设计B测试阶段C运行阶段D物理设计6设有如下三个关系表 RSTABCABCm13m13nn13以下操作中正确的选项是ATRS BTRSCTRSDTR/S7以下表达中正确的选项是 A一个算法的空间复杂度大,那么其时间复杂度也必定大 B一个算法的空间复杂度大,那么其时间复杂度必定小 C一个算法的时间复杂度大,那么其空间复杂度必定小D上述三种说法都不对8在长度为64的有序线性表中进展顺序查找,最坏情况下需要比拟的次数为A63 B64 C6 D79数据库技术的根本目标是要解决数据的A存储问题B共享问题C平安问题 D保护问

3、题10对以下二叉树进展中序遍历的结果是AACBDFEGBACBDFGECABDCGEFDFCADBEG11以下有关内联函数的表达中,正确的选项是A内联函数在调用时发生控制转移B内联函数必须通过关键字inline来定义C内联函数是通过编译器来实现的D内联函数函数体的最后一条语句必须是return语句12以下情况中,不会调用拷贝构造函数的是A用一个对象去初始化同一类的另一个新对象时B将类的一个对象赋值给该类的另一个对象时C函数的形参是类的对象,调用函数进展形参和实参结合时D函数的返回值是类的对象,函数执行返回调用时13以下有关继承和派生的表达中,正确的选项是A如果一个派生类私有继承其基类,那么该派

4、生类对象不能访问基类的保护成员B派生类的成员函数可以访问基类的所有成员C基类对象可以赋值给派生类对象D如果派生类没有实现基类的一个纯虚函数,那么该派生类是一个抽象类14以下运算符不能重载为友元函数的是A= () - B+ - + - C = = D+= -= *= /=15关于在调用模板函数时模板实参的使用,以下表述正确的选项是A对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得一样的信息,那么都可以省略B对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的假设干个参数,那么都可以省略C对于虚拟类型参数所对应的模板实参,假设能够省略那么必须省略D对于常规参数所对应的模板实参

5、,任何情况下都不能省略16以下关于输入流类成员函数getline()的描述中,错误的选项是A该函数是用来读取键盘输入的字符串的B该函数读取的字符串长度是受限制的C该函数读取字符串时,遇到终止符便停顿D该函数读取字符串时,可以包含空格17以下符号中,正确的C+标识符是AenumB2bCfoo-9D_3218以下语句中,错误的选项是Aconst int buffer=256;Bconst double *point;Cint const buffer=256;Ddouble * const point;19if语句的语法格式可描述为:格式1:if() 或格式2:if() else 关于上面的语法格

6、式,以下表述中错误的选项是A局部可以是一个if语句,例如if(if(a=0) ) B局部可以是一个if语句,例如if() if() C如果在前加上逻辑非运算符!并交换 和 的位置,语句功能不变D局部可以是一个循环语句,例如if() while() 20有如下说明int a10=1,2,3,4,5,6,7,8,9,10,*p=a;那么数值为9的表达式是A*p+9B*(p+8)C*p+=9Dp+821假设有下面的函数调用:fun(a+b, 3, max(n-1, b)那么fun的实参个数是A3B4C5D622以下关键字不能用来声明类的访问权限的是ApublicBstaticCprotectedDp

7、rivate23在公有继承的情况下,允许派生类直接访问的基类成员包括A公有成员B公有成员和保护成员C公有成员、保护成员和私有成员D保护成员24关于运算符重载,以下表述中正确的选项是AC+已有的任何运算符都可以重载B运算符函数的返回类型不能声明为根本数据类型C在类型转换符函数的定义中不需要声明返回类型D可以通过运算符重载来创立C+中原来没有的运算符25关于关键字class和typename,以下表述中正确的选项是A程序中的typename都可以替换为classB程序中的class都可以替换为typenameC在模板形参表中只能用typename来声明参数的类型D在模板形参表中只能用class或t

8、ypename来声明参数的类型26有如下程序#include #include using namespace std;int main( )coutSETPRECISION(3)FIXEDSETFILL(*)SETW(8);cout12.345_34.567;return 0;假设程序的输出是:*12.345*34.567那么程序中下划线处遗漏的操作符是 Asetprecision(3)BfixedCsetfill(*)Dsetw(8)27有如下程序#include #include using namespace std;class MyClasspublic:MyClass( ) cou

9、tA; MyClass(char c) coutMyClass( ) coutB; ;int main( )MyClass p1,*p2;p2=new MyClass(X); delete p2; return 0;执行这个程序屏幕上将显示输出 AABXBABXBCAXBDAXBB28有如下程序#include using namespace std;int i=1;class Funpublic:static int i;int value( ) return i-1;int value( )const return i+1;int Fun:i=2;int main( )int i=3;Fu

10、n fun1;const Fun fun2;_return 0;假设程序的输出结果是:123那么程序中下划线处遗漏的语句是AcoutFun:iBcoutFun:ifun1.value()CcoutFun:i;Dcout29有如下程序:#include using namespace std;class Obj static int i;public: Obj( ) i+; Obj( ) i-; static int getVal( ) return i;int Obj:i=0;void f()Obj ob2; coutint main( ) Obj ob1; f( ); Obj *ob3=ne

11、w Obj; coutgetVal( ); delete ob3; cout return 0;程序的输出结果是A232B231C222D22130有如下程序#include using namespace std;class Base protected:Base( ) coutA; Base(char c) cout;class Derived: public Basepublic:Derived( char c ) cout;int main( )Derived d1(B);return 0;执行这个程序屏幕上将显示输出ABBBACABDBB31有如下类定义:class MyBase i

12、nt k;public: MyBase(int n=0):k(n) int value( )const return k;class MyDerived: MyBase int j;public: MyDerived(int i): j(i) int getK( )const return k; int getJ( )const return j; ;编译时发现有一处语法错误,对这个错误最准确的描述是A函数getK试图访问基类的私有成员变量kB 在类MyDerived的定义中,基类名MyBase前缺少关键字public、protected或privateC类MyDerived 缺少一个无参的构

13、造函数D类MyDerived的构造函数没有对基类数据成员k进展初始化32在一个派生类对象完毕其生命周期时A先调用派生类的析构函数后调用基类的析构函数B先调用基类的析构函数后调用派生类的析构函数C如果基类没有定义析构函数,那么只调用派生类的析构函数D如果派生类没有定义析构函数,那么只调用基类的析构函数33有如下的运算符重载函数定义:double operator +(int i, int k) return double(i+k); 但定义有错误,对这个错误最准确的描述是A+ 只能作为成员函数重载,而这里的 + 是作为非成员函数重载的B两个int型参数的和也应该是int型,而这里将 + 的返回类

14、型声明为doubleC没有将运算符重载函数声明为某个类的友元DC+已经提供了求两个int型数据之和的运算符 +,不能再定义同样的运算符34语句ofstream f(SALARY.DAT, ios_base:app); 的功能是建立流对象f,并试图翻开文件及f关联,而且A假设文件存在,将其置为空文件;假设文件不存在,翻开失败B假设文件存在,将文件指针定位于文件尾;假设文件不存在,建立一个新文件C假设文件存在,将文件指针定位于文件首;假设文件不存在,翻开失败D假设文件存在,翻开失败;假设文件不存在,建立一个新文件35有如下程序#include using namespace std;class A

15、 public:virtual void func1( ) coutA1; void func2( ) coutA2; ;class B:public Apublic:void func1( ) coutB1; void func2( ) coutfunc1( );p-func2( );return 0;运行此程序,屏幕上将显示输出A) B1B2 B) A1A2C) B1A2D) A1B2二、填空题每空2分,共30分请将每一个空的正确答案写在答题卡【1】【15】序号的横线上,答在试卷上不得分。1以下软件系统构造图的宽度为 【1】 。2 【2】 的任务是诊断和改正程序中的错误。3一个关系表的行称

16、为 【3】 。4按“先进后出原那么组织数据的数据构造是 【4】 。5数据构造分为线性构造和非线性构造,带链的队列属于 【5】 。6假设有定义语句:int* a, b;,那么变量b的数据类型是 【6】 。7数组a中的元素个数为n,以下语句的作用是将下标为i的元素移动到下标为i1的单元,其中1in。例如,当n4,a中原有数据为1,2,3,4时,那么移动后a中元素变为2,3,4,4。请将语句补充完整:for (int i=0; i ai = a 【7】 ; 8递归函数f的定义如下:int f(int n) if (n = 1) return 1; /递归完毕情况 else return n * f(

17、n-2); /递归那么函数调用语句f(5)的返回值是 【8】 。9创立对象数组时,对数组的每一个元素都将调用一次构造函数,如果没有显式给出数组元素的初值,那么调用缺省构造函数。以下程序涉及到对象数组的创立和单个对象的创立,其输出结果是 【9】 。#include using namespace std;class Foo public:Foo(int x) cout A; Foo() ;int main()Foo f3, g(3);return 0; 10以下程序的输出结果是42,请将画线处缺失的局部补充完整。#include using namespace std;class Foo int

18、 value;public:Foo( ) : value(0) void setValue(int value) 【10】 = value; /给Foo的数据成员value赋值void print( ) cout value; ;int main( )Foo f;f.setValue(42);f.print();return 0;11如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员。以下程序没有使用多态机制,其输出结果是 【11】 。#include using namespace std;class Base public:void print (

19、) cout B; ;class Derived : public Base public:void print ( ) cout print( );pd-print( );delete pd;return 0; 12在声明派生类时,如果不显式地给出继承方式,缺省的类继承方式是私有继承private。有如下类定义:class Base protected:void fun( ) ;class Derived : Base ;那么Base类中的成员函数fun(),在Derived类中的访问权限是 【12】 注意:要求填写private、protected或public中的一项。13在MyClas

20、s类的定义中,对赋值运算符=进展重载。请将画线处缺失的局部补充完整。 【13】 MyClass:operator=(const MyClass& rhs)if (this = &rhs) return *this;value = rhs.value;return *this; 14插入排序算法的主要思想是:每次从未排序序列中取出一个数据,插入到已排序序列中的正确位置。InsertSort类的成员函数sort()实现了插入排序算法。请将画线处缺失的局部补充完整。class InsertSortpublic:InsertSort(int* a0, int n0) :a(a0), n(n0) /参数

21、a0是某数组首地址,n是数组元素个数void sort( )/此函数假设已排序序列初始化状态只包含a0,未排序序列初始为a1.an-1for (int i=1; i int t=ai;int j;for ( 【14】 ; j0; -j) if (t=aj-1) break;aj=aj-1; aj=t;protected:int *a, n; /指针a用于存放数组首地址,n用于存放数组元素个数;15以下程序的输出结果是 【15】 。#include using namespace std;class A int a;public: A():a(9)virtual void print() con

22、st couta;class B : public A char b;public:B( )b=S;void print( ) const cout print();show(d1);show(d2);return 0;/b;/a;/Fun:ifun1.value() B+ - + - C = = D+= -= *= /=15关于在调用模板函数时模板实参的使用,以下表述正确的选项是A对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得一样的信息,那么都可以省略B对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的假设干个参数,那么都可以省略C对于虚拟类型参数所对应的模板实参,

23、假设能够省略那么必须省略D对于常规参数所对应的模板实参,任何情况下都不能省略16以下关于输入流类成员函数getline()的描述中,错误的选项是A该函数是用来读取键盘输入的字符串的B该函数读取的字符串长度是受限制的C该函数读取字符串时,遇到终止符便停顿D该函数读取字符串时,可以包含空格17以下符号中,正确的C+标识符是AenumB2bCfoo-9D_3218以下语句中,错误的选项是Aconst int buffer=256;Bconst double *point;Cint const buffer=256;Ddouble * const point;19if语句的语法格式可描述为:格式1:i

24、f() 或格式2:if() else 关于上面的语法格式,以下表述中错误的选项是A局部可以是一个if语句,例如if(if(a=0) ) B局部可以是一个if语句,例如if() if() C如果在前加上逻辑非运算符!并交换 和 的位置,语句功能不变D局部可以是一个循环语句,例如if() while() 20有如下说明int a10=1,2,3,4,5,6,7,8,9,10,*p=a;那么数值为9的表达式是A*p+9B*(p+8)C*p+=9Dp+821假设有下面的函数调用:fun(a+b, 3, max(n-1, b)那么fun的实参个数是A3B4C5D622以下关键字不能用来声明类的访问权限的

25、是ApublicBstaticCprotectedDprivate23在公有继承的情况下,允许派生类直接访问的基类成员包括A公有成员B公有成员和保护成员C公有成员、保护成员和私有成员D保护成员24关于运算符重载,以下表述中正确的选项是AC+已有的任何运算符都可以重载B运算符函数的返回类型不能声明为根本数据类型C在类型转换符函数的定义中不需要声明返回类型D可以通过运算符重载来创立C+中原来没有的运算符25关于关键字class和typename,以下表述中正确的选项是A程序中的typename都可以替换为classB程序中的class都可以替换为typenameC在模板形参表中只能用typenam

26、e来声明参数的类型D在模板形参表中只能用class或typename来声明参数的类型26有如下程序#include #include using namespace std;int main( )coutSETPRECISION(3)FIXEDSETFILL(*)SETW(8);cout12.345_34.567;return 0;假设程序的输出是:*12.345*34.567那么程序中下划线处遗漏的操作符是 Asetprecision(3)BfixedCsetfill(*)Dsetw(8)27有如下程序#include #include using namespace std;class M

27、yClasspublic:MyClass( ) coutA; MyClass(char c) coutMyClass( ) coutB; ;int main( )MyClass p1,*p2;p2=new MyClass(X); delete p2; return 0;执行这个程序屏幕上将显示输出 AABXBABXBCAXBDAXBB28有如下程序#include using namespace std;int i=1;class Funpublic:static int i;int value( ) return i-1;int value( )const return i+1;int Fu

28、n:i=2;int main( )int i=3;Fun fun1;const Fun fun2;_return 0;假设程序的输出结果是:123那么程序中下划线处遗漏的语句是AcoutFun:iBcoutFun:ifun1.value()CcoutFun:i;Dcout29有如下程序:#include using namespace std;class Obj static int i;public: Obj( ) i+; Obj( ) i-; static int getVal( ) return i;int Obj:i=0;void f()Obj ob2; coutint main( )

29、 Obj ob1; f( ); Obj *ob3=new Obj; coutgetVal( ); delete ob3; cout return 0;程序的输出结果是A232B231C222D22130有如下程序#include using namespace std;class Base protected:Base( ) coutA; Base(char c) cout;class Derived: public Basepublic:Derived( char c ) cout;int main( )Derived d1(B);return 0;执行这个程序屏幕上将显示输出ABBBACA

30、BDBB31有如下类定义:class MyBase int k;public: MyBase(int n=0):k(n) int value( )const return k;class MyDerived: MyBase int j;public: MyDerived(int i): j(i) int getK( )const return k; int getJ( )const return j; ;编译时发现有一处语法错误,对这个错误最准确的描述是A函数getK试图访问基类的私有成员变量kB 在类MyDerived的定义中,基类名MyBase前缺少关键字public、protected或

31、privateC类MyDerived 缺少一个无参的构造函数D类MyDerived的构造函数没有对基类数据成员k进展初始化32在一个派生类对象完毕其生命周期时A先调用派生类的析构函数后调用基类的析构函数B先调用基类的析构函数后调用派生类的析构函数C如果基类没有定义析构函数,那么只调用派生类的析构函数D如果派生类没有定义析构函数,那么只调用基类的析构函数33有如下的运算符重载函数定义:double operator +(int i, int k) return double(i+k); 但定义有错误,对这个错误最准确的描述是A+ 只能作为成员函数重载,而这里的 + 是作为非成员函数重载的B两个i

32、nt型参数的和也应该是int型,而这里将 + 的返回类型声明为doubleC没有将运算符重载函数声明为某个类的友元DC+已经提供了求两个int型数据之和的运算符 +,不能再定义同样的运算符34语句ofstream f(SALARY.DAT, ios_base:app); 的功能是建立流对象f,并试图翻开文件及f关联,而且A假设文件存在,将其置为空文件;假设文件不存在,翻开失败B假设文件存在,将文件指针定位于文件尾;假设文件不存在,建立一个新文件C假设文件存在,将文件指针定位于文件首;假设文件不存在,翻开失败D假设文件存在,翻开失败;假设文件不存在,建立一个新文件35有如下程序#include

33、using namespace std;class A public:virtual void func1( ) coutA1; void func2( ) coutA2; ;class B:public Apublic:void func1( ) coutB1; void func2( ) coutfunc1( );p-func2( );return 0;运行此程序,屏幕上将显示输出A) B1B2 B) A1A2C) B1A2D) A1B2二、填空题每空2分,共30分请将每一个空的正确答案写在答题卡【1】【15】序号的横线上,答在试卷上不得分。1以下软件系统构造图的宽度为 【1】 。2 【2

34、】 的任务是诊断和改正程序中的错误。3一个关系表的行称为 【3】 。4按“先进后出原那么组织数据的数据构造是 【4】 。5数据构造分为线性构造和非线性构造,带链的队列属于 【5】 。6假设有定义语句:int* a, b;,那么变量b的数据类型是 【6】 。7数组a中的元素个数为n,以下语句的作用是将下标为i的元素移动到下标为i1的单元,其中1in。例如,当n4,a中原有数据为1,2,3,4时,那么移动后a中元素变为2,3,4,4。请将语句补充完整:for (int i=0; i ai = a 【7】 ; 8递归函数f的定义如下:int f(int n) if (n = 1) return 1;

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

当前位置:首页 > 应用文书 > 文案大全

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

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