收藏 分销(赏)

2023年全国计算机等级考试二级c++题库12共17套.doc

上传人:精**** 文档编号:9681885 上传时间:2025-04-03 格式:DOC 页数:20 大小:57.04KB
下载 相关 举报
2023年全国计算机等级考试二级c++题库12共17套.doc_第1页
第1页 / 共20页
2023年全国计算机等级考试二级c++题库12共17套.doc_第2页
第2页 / 共20页
点击查看更多>>
资源描述
第十二套 1、检查软件产品是否符合需求定义的过程称为______。 A、确认测试 B、集成测试 C、验证测试 D、验收测试 确认测试的任务是严整软件的功能和性能及其他特性是否满足了需求规格说明中的拟定的各种需求,以及软件配置是否完全、对的。 本题答案为A。 2、下列工具中为需求分析常用工具的是______。 A、PAD B、PFD C、N-S D、DFD 常见的需求分析方法有:结构化分析方法和面向对象的分析方法。结构化分析的常用工具有:数据流图(DFD)、数据字典(DD)、鉴定树和鉴定表等。 本题答案为D。 3、数据的存储结构是指______。 A、数据所占的存储空间量 B、数据的逻辑结构在计算机中的表达 C、数据在计算机中的顺序存储方式 D、存储在外存中的数据 数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构。 本题答案为B。 4、算法一般都可以用哪几种控制结构组合而成______。 A、循环、分支、递归 B、顺序、循环、嵌套 C、循环、递归、选择 D、顺序、选择、循环 算法的控制结构给出了算法的基本框架,它不仅决定了算法中各操作的执行顺序,并且也直接反映了算法的设计是否符合结构化原则。一个算法一般都可以用顺序、选择、循环三种基本控制结构组合而成。 本题答案为D。 5、设有下列二叉树: 对此二叉树中序遍历的结果为______。 A、ABCDEF B、DBEAFC C、ABDECF D、DEBFCA 所谓中序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,一方面遍历左子树,然后访问根结点,最后遍历右子树;并且在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。 本题答案为B。 6、在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送______。 A、调用语句 B、命令 C、口令 D、消息 面向对象的世界是通过对象与对象间彼此的互相合作来推动的,对象间的这种互相合作需要一个机制协助进行,这样的机制称为消息。消息是一个实例与另一个实例之间传递的信息,它请求对象执行某一解决或回答某一规定的信息,它统一了数据流和控制流。 本题答案为D。 7、在关系数据库中,用来表达实体之间联系的是______。 A、树结构 B、网结构 C、线性表 D、二维表 在关系数据库中,用二维表来表达实体之间联系。 本题答案为D。 8、索引属于______。 A、模式 B、内模式 C、外模式 D、概念模式 内模式(Internal Schema)又称物理模式(Physical Schema),它给出了数据库物理存储结构与物理存取方法,如数据存储的文献结构、索引、集簇及hash等存取方式与存取途径。 本题答案为B。 9、下面不属于软件设计原则的是______。 A、抽象 B、模块化 C、自底向上 D、信息隐蔽 在软件设计过程中,必须遵循软件工程的基本原则:这些原则涉及抽象、信息隐蔽、模块化、局部化、拟定性、一致性、完备性和可靠性。 本题答案为C。 10、将E-R图转换到关系模式时,实体与联系都可以表达成______。 A、属性 B、关系 C、键 D、域 关系是由若干个不同的元组所组成,因此关系可视为元组的集合,将E-R图转换到关系模式时,实体与联系都可以表达成关系。 本题答案为B。 11、关于纯虚函数,下列表述对的的是______。 A、纯虚函数是没有给出显现版本(即无函数体定义)的虚函数 B、纯虚函数的声明总是以"=0"结束 C、派生类必须实现基类的纯虚函数 D、具有纯虚函数的类不也许是派生类 本题考察纯虚函数的概念。 在某些情况下基类无法拟定一个虚函数的具体操作方法或内容,只能靠派生类来提供各个具体的实现版本。基类中的这种必须靠派生类提供重定义的虚函数叫做纯虚函数。为了将一个虚函数声明为一个纯虚函数,需要在结束符号;前加上=0;假如派生没有重定义纯虚函数,这个函数仍然是纯虚函数。 故本题选B。 12、下列程序的输出结果是______。 #include<iostream> using namespace std; int main() { int a=2,b=-1,c=2; if(a<b) if(b<0)c=0; else c+=1; cout<<c<<endl; return 0; } A、0 B、1 C、2 D、3 本题考察的是if--else结构。 为了解决if--else结构中也许出现的二义性,C++中规定关键字是与它前面最近的未配对的且可见的那个if关键字配对。所以本题的else是和第二个if配对的。而本题第一个if中的条件就不成立,故最后输出c本来的数值。 故本题选C。 13、要将一个函数声明为内联函数必须在其前面加上______。 A、void B、include C、inline D、virtual 本题考察内联函数的定义。 在C++中使用inline关键字来定义内联函数。inline关键字放在函数定义中函数类型之前。 所以本题选C。 14、下列各种函数中,______不是类的成员函数。 A、构造函数 B、析构函数 C、友元函数 D、拷贝构造函数 本题考察的是类的基本概念。 类由数据成员和成员函数组成。友元函数是外界函数。 故本题选C。 15、对于下列函数,调用语句错误的是____。 void show(int id=10,char *name="hello") { cout<<name<<": "<<id<<endl; } A、show(5); B、show(); C、show(5,"abc"); D、show; 本题考察的是函数的调用。 当调用一个函数时,其实参的个数、类型及排列顺序必须与函数定义时的形参一致。假如没有定义形参或者形参都给了默认值,则调用时可以省略实参,但是括号不可以省略。 故本题选D。 16、当使用ofstream流类定义一个流对象并打开一个磁盘文献时,文献的隐含打开方式为_____。 A、ios::in B、ios::binary C、ios::in|ios::out D、ios::out 本题考察输入输出流对象。 当使用ofstream流类定义一个流对象并打开一个磁盘文献时,文献的隐含打开方式为ios::out。 故本题选D。 17、一个类的友元函数可以通过成员操作符访问该类的______。 A、私有成员 B、保护成员 C、公有成员 D、公有成员、保护成员、私有成员 本题考察友元函数的概念。 友元函数不是当前类的成员函数,而是独立于当前类的外部函数,但是它可以访问该类的所有对象成员,涉及公有成员、保护成员、私有成员。 故本题选D。 18、下面类定义中错误的语句是______。 class Sample { public: Sample(int val); ~Sample(int val); private: int a; Sample(); } A、Sample(int val); B、~Sample(int val); C、int a; D、Sample(); 本题考察类的定义。 对于类定义,其中的析构函数不可以带有参数。 所以本题选B。 19、每个C++程序必须有且仅有一个______。 A、函数 B、预解决指令 C、主函数 D、语句 本题考察c++的基本概念。 每一个c++程序必须有并且只能有一个主函数,每个程序的执行都是从主函数的开始的。 故本题选C。 20、类的默认的无参构造函数______。 A、仅当未定义无参构造函数时存在 B、在任何情况下都存在 C、仅当未显式定义任何构造函数时存在 D、仅当未定义有参构造函数时存在 本题考察构造函数的概念。 默认无参构造函数只有当没有显式定义任何构造函数时才存在。 故本题选C。 21、关于this指针的说法不对的的是______。 A、它是成员函数所属对象的指针 B、它是一种隐含指针,存在于每个类的非静态成员函数中 C、可以通过this.成员变量的形式访问类中的数据成员 D、成员函数访问类中数据成员的格式可写成:this->成员变量 本题考察this指针的概念。 this指针是成员函数所属对象的指针,它指向当前类对象的地址。this指针是一个隐含指针,它隐含于每个类的非静态成员函数中。通过this指针访问当前对象成员有两种方式:(*this).成员,this->成员。 故本题选C。 22、下面是关于类MyClass的定义,对定义中的各语句描述对的的是______。 class MyClass { public: void MyClass(int a){x=a} //1 int f(int a,int b) //2 { x=a;y=b; } int f(int a,int b,int c=0) //3 { x=a;y=b;z=c; } static void g(){x=10;} //4 private: int x,y,z; }; A、语句1是类MyClass的构造函数的定义 B、语句2和3实现类成员函数的重载 C、类4实现对类成员变量x的更新操作 D、语句1、2、3、4都不对的 本题考察的是指针和数组。 数组名事实上是一个常量指针,存放数组第一个元素的地址。既然是一个常量指针其值是不可改变的,所以不能有a++之类的语句。 故本题选A。 23、下列程序的功能是将数组中的所有元素所有输出,对于程序中缺少的语句,下列语句填入其中不对的的是______。 int a[]={1,2,3,4}; int *pa=a; for(int i=0;i<4;i++) ______; A、cout<<*a++<<' ' B、cout<<*pa++<<' ' C、cout<<*(a+i)<<' ' D、cout<<*(pa+i)<<' ' 本题考察的是指针和数组。 数组名事实上是一个常量指针,存放数组第一个元素的地址。既然是一个常量指针其值是不可改变的,所以不能有a++之类的语句。 故本题选A。 24、执行下列程序后,输出的结果是______。 int fact(int n) { if(n<=1) return 1; else return n+fact(n-1); } int main() { cout<<fact(4)<<endl; return 0; } A、1 B、4 C、10 D、15 本题考察的是递归函数。 假如一个函数直接调用它自己该函数叫直接递归。fact(int n)函数,其中假如n>1调用了自身n-1次。 故本题选C。 25、虚函数的______可以不同。 A、函数体内容 B、返回类型 C、参数个数 D、函数名 本题考察虚函数的概念。 虚函数是一种单界面多实现版本的实现方法,即函数名、返回类型、函数类型和个数顺序完全相同,但函数体内容可以完全不同。 故本题选A。 26、下列变量名的写法中,对的的是______。 A、byte-size B、CHINA C、double D、A+a 本题考察变量名的命名规则。 标记符识用户为程序中各种需要命名的的”元素“所起的名字。这些元素:涉及变量、符号常量、函数、函数的参数、结构、类等。标记符是以一个字母或者下划线开头有字母下划线和数字组成。不能与任意一个关键字同名。区分大小写。 故本题选B。 27、假定AB为一个类,px为指向该类动态对象数组的指针,该数组的长度为n,则执行"delete []px;"语句时,自动调用该类的析构函数的次数为______。 A、0 B、1 C、n D、n+1 本题考察的是类的析构函数的调用。 释放px是,后自动调用px所指向对象数组的析构函数,都会调用类的析构函数。 故本题选C。 28、对于结构中定义的成员,其隐含访问权限为______。 A、public B、protected C、private D、static 本题考察结构体的概念。 结构体默认的访问权限是public,而类默认的访问权限是private。 故本题选A。 29、下面程序的输出结果是______。 #include<iostream> //计算字符串长度 using namespace std; int fun(char *); int main() { cout<<fun("hello"); return 0; } int fun(char *s) { char *t=s; while(*t!='\0')t++; return (t-s); } A、语法错误 B、5 C、6 D、0 本题考察基本算法。 程序的功能是求一个字符串的实际长度。在C++中字符串是以'\0'作为结束的标志的。函数fun中while循环的进行的条件是t!='\0'所以当循环结束t指向的是字符串的最后一个字符。 故本题选B。 30、下面语句,循环执行的次数为______。 for(int i=0;i<4;i++) for(int j=0;j<=i;j++) cout<<'*'; A、16 B、10 C、13 D、14 本题考察循环的基本应用。 解题思绪为:本题是一个二重循环结构,第一重循环的进行的条件是i〈4,第二重循环进行的条件是j〈=i,随着第一重循环的进行,第二重循环每次执行的次数会有相应的增长。第一循环进行了4次,第二重循环每次执行的次数依次为1,2,3,4。故最后循环执行了10次。 故本题选B。 31、下列运算中,______运算符在C++中不能重载。 A、?: B、+ C、- D、<= 本题考察的是运算符重载。 在C++中限制 “.”,“.*”,“->*”,“::”,“?:”等操作符的重载。 故本题选A。 32、执行下列程序后,输出的结果是______。 int a=-5,b=0; while(++a) b++; cout<<b<<endl; A、0 B、1 C、4 D、5 本题考察的是while循环。 解题思绪为:循环条件是++a,在c++中,对于非0值全都为真,0代表假。a的初始值为-5,所以循环能得以进行4次。 故本题选C。 33、下列程序的输出结果是______。 #include<iostream> using namespace std; int n[][3]={10,20,30,40,50,60}; int main() { int (*p)[3]; p=n; cout<<p[0][0]<<","<<*(p[0]+1)<<","<<(*p)[2]<<endl; return 0; } A、10 30 50 B、10 20 30 C、20 40 60 D、10 30 60 本题考察的是二维数组和指针数组的联系。 二维数组每一行都相应一个指针,这个指针指向每行第一个元素。题中p[0][0]与n[0][0]相应,*(p[0]+1)与n[0][1]相应,(*p)[2]与p[0][2]相应。 所以本题答案是B。 34、在一个派生类中,对基类成员、类对象成员、派生类静态成员和非类对象成员最后初始化的是______。 A、类对象成员 B、非类对象成员 C、派生类静态成员 D、基类成员 本题考察的是派生类。 建立派生类对象时,构造函数的执行顺序是,执行基类的构造函数,然后执行成员对象的构造函数,执行派生类的构造函数。 故本题选B。 35、下列关于派生类的描述中错误的是______。 A、一个派生类可以作为另一个派生类的基类 B、派生类至少有一个基类 C、派生类的缺省继承方式是private D、派生类只继承了基类的公有成员和保护成员 本题考察了派生类的基本概念。 继承方式有3种:公有继承、私有继承和保护继承。假如不显式地给出继承方式,缺省的继承方式是私有继承。派生类从基类继承来所有的成员,但是基类的私有成员派生类是不可直接访问的。 所以本题选D。 36、软件工程研究的内容重要涉及:______技术和软件工程管理。 标准答案为:软件开发 基于软件工程的目的,软件工程的理论和技术性研究的内容重要涉及:软件开发技术和软件工程管理。 软件开发技术涉及:软件开发方法学、开发过程、开发工具和软件工程环境,其主体内容是软开发方法学。 软件工程管理涉及:软件管理学、软件工程经济学、软件心理学等内容。 37、关系模型的完整性规则是对关系的某种约束条件,涉及实体完整性、______和自定义完整性。 标准答案为:参照完整性 关系模型允许定义三类数据约束,它们是实体完整性、参照完整性以及用户定义的完整性约束,其中前两种完整性约束由关系数据库系统自动支持。 实体完整性约束规定关系的主键中属性值不能为空,这是数据库完整性的最基本规定,由于主键是惟一决定元组的,如为空则其惟一性就成为不也许的了。 参照完整性约束是关系之间相关联的基本约束,它不允许关系引用不存在的元组:即在关系中的外键要么是所关联关系中实际存在的元组,要么是空值。 自定义完整性是针对具体数据环境与应用环境由用户具体设立的约束,它反映了具体应用中数据的语义规定。 38、数据模型按不同的应用层次分为三种类型,它们是______数据模型、逻辑数据模型和物理数据模型。 标准答案为:概念 数据模型按不同的应用层次分为三种类型,它们是概念数据模型、逻辑数据模型和物理数据模型。 概念数据模型简称概念模型,它是一种面向客观世界、面向用户的模型;它与具体的数据库管理系统无关。 逻辑数据模型又称数据模型,它是一种面向数据库系统的模型,该模型着重于在数据库系统一级的实现。 物理数据模型又称物理模型,它是一种面向计算机物理表达的模型,此模型给出了数据模型在计算机上物理结构的表达。 39、与结构化需求分析方法相相应的是______方法。 标准答案为:结构化设计 与结构化需求分析方法相相应的是结构化设计方法。结构化设计就是采用最佳的也许方法设计系统的各个组成部分以及各个成分之间的内部联系的技术。也就是说,结构化设计是这样一个过程,它决定用哪些方法把哪些部分联系起来,才干解决好某个具体且有清楚定义的问题。 40、数据结构涉及数据的______结构和数据的存储结构。 标准答案为:逻辑 数据结构是指带有结构的数据元素的集合。它涉及数据的逻辑结构和数据的存储结构。 数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构。 数据的存储结构是指在计算机存储空间中的存放形式。 41、C++中,一个float类型的变量占______个字节。 标准答案为:4 本题考察的是基本变量类型的基本概念。 一个int类型变量占4个字节,一个float类型变量占4个字节,一个double类型的变量占8个字节。 42、执行下列语句段后程序的输出结果是______。 int a[]={1,2,3,4,5}; int *pa=a; cout<<*(++pa)<<endl; 标准答案为:2 本题考察数组和指针的基本概念。 数组名事实上是数组第一个元素的地址。对于本题pa=a,将a[0]的地址赋予pa,cout<<*(++pa)<<endl;后pa便指向数组a的第二个元素。所以输出2。 43、在一个类成员函数声明的前面加上______修饰,即把该函数声明为虚函数。 标准答案为:virtual 本题考察虚函数的声明。 在C++中,运营时的多态性通过虚函数来实现的,在成员函数的声明前面加上virtual,即把该函数声明为虚函数。虚函数可以是另一个类的友元函数,但是不得是静态成员函数。 44、执行下列程序段以后程序的输出是______。 void add(int &a) { a++; } int main() { int b=3; add(b); cout<<b<<endl; } 标准答案为:4 本题考察的是函数的调用和参数传递。c++的参数传递涉及传值与传地址两种。前者是默认的参数传递方式。假如调用函数时,须要改变实参或者返回多个值,就应当采用传地址方式。传递指针属于显式的传地址方式,传递引用属于隐式的传地址方式。本题采用的是传递引用,所以实参被改变。 45、模板形参分为两种类型:虚拟类型参数和______参数。 标准答案为:常规 本题考察模板参数的一些概念。 模板形参分为虚拟类型参数和常规类型参数。虚拟类型参数必须用typename或者class定义,相应的实参应当是double、int等具体的类型修饰符。常规参数用品体的类型修饰符号(如int、double)定义,对于的实参必须是常量表达式。 46、表达式8&3的结果是______。 标准答案为:0 相称于二进制1000和0011进行与运算,答案为0000(即十进制的0)。 47、重载的关系运算符和逻辑运算符返回值类型是______。 标准答案为:bool 本题考察的是运算符重载的一些概念。 C++把重载的运算符看做特殊的函数,称为运算符函数。对于关系运算符和逻辑运算符的重载返回值类型应当是bool型的。 48、下列语句段的输出结果是______。 int k=1,n=10,m=1; while(k<=n) { m*=2; n--; } cout<<m<<endl; 标准答案为:1024 本题考察基本的循环语句。 while循环是当型循环,本题的条件是k<=n;k的初始值为1,而每次循环都会执行n--,循环执行10次,故最后输出1024。 49、在c++中,每个类都有一个隐含的指针叫______指针。 标准答案为:this 本题考察的是this指针的基本概念。 c++提供了一个特殊的对象指针---this指针,它是成员函数所属对象的指针,指向当前类对象的地址。 50、定义字符指针char *s="hello",已知sizeof(s)=4,则strlen(s)=______。 标准答案为:5 本题考察的是字符串函数。 函数strlen(字符指针),求的是字符指针所指向当前字符串的实际长度,不涉及'\0'。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服