国家二级(C++)笔试模拟试卷4(共444题)_第1页
国家二级(C++)笔试模拟试卷4(共444题)_第2页
国家二级(C++)笔试模拟试卷4(共444题)_第3页
国家二级(C++)笔试模拟试卷4(共444题)_第4页
国家二级(C++)笔试模拟试卷4(共444题)_第5页
已阅读5页,还剩105页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

国家二级(C++)笔试模拟试卷4(共9套)(共444题)国家二级(C++)笔试模拟试卷第1套一、公共基础选择题(本题共10题,每题1.0分,共10分。)1、已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为A、GEDHFBCAB、DGEBHFCAC、ABCDEFGHD、ACBFEDHG标准答案:2知识点解析:利用前序和中序遍历的方法可以确定二叉树的结构,具体步骤如下:①前序遍历的第一个结点A为树的根结点;②中序遍历中A的左边的结点为A的左子树,A右边的结点为A的右子树;③再分别对A的左右子树进行上述两步处理,直到每个结点都找到正确的位置。2、树是结点的集合,它的根结点数目是A、有且只有1B、1或多于1C、0或1D、至少2标准答案:1知识点解析:树是一个或多个结点组成的有限集合,其中一个特定的结点称为根,其余结点分为若干个不相交的集合。每个集合同时又是一棵树。树有且只有1个根结点。3、如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是A、e3,e1,e4,e2B、e2,e4,e3,e1C、e3,e4,e1,e2D、任意顺序标准答案:2知识点解析:由栈“后进先出”的特点可知:选项A)中e1不可能比e2先小,选项C)中e3不可能比c4先出,且e1不可能比e2先小,选项D)中栈是先进后出的,所以不可能是任意顺序。选项B)中出栈过程如图所示:4、在设计程序时,应采纳的原则之一是A、不限制goto语句的使用B、减少或取消注解行C、程序越短越好D、程序结构应有助于读者理解标准答案:8知识点解析:暂无解析5、程序设计语言的基本成分是数据成分、运算成分、控制成分和A、对象成分B、变量成分C、语句成分D、传输成分标准答案:8知识点解析:程序设计语言是用于书写计算机程序的语言,其基本成分有以下4种,数据成分:用来描述程序中的数据。运算成分:描述程序中所需的运算。控制成分:用来构造程序的逻辑控制结构。传输成分:定义数据传输成分,如输入输出语言。6、下列叙述中,不属于软件需求规格说明书的作用的是A、便于用户、开发人员进行理解和交流B、反映出用户问题的结构,可以作为软件开发工作的基础和依据C、作为确认测试和验收的依据D、便于开发人员进行需求分析标准答案:8知识点解析:软件需求规格说明书(SRS,SoftwareRequirementSpecification)是需求分析阶段的最后成果,是软件开发中的重要文档之一。它有以下几个方面的作用:①便于用户、开发人员进行理解和交流;②反映出用户问题的结构,可以作为软件开发下作的基础和依据;③作为确认测试和验收的依据。7、下列不属于软件工程的3个要素的是A、工具B、过程C、方法D、环境标准答案:8知识点解析:软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。8、单个用户使用的数据视图的描述称为A、外模式B、概念模式C、内模式D、存储模式标准答案:1知识点解析:选项A)正确,外模式是用户的数据视图,也就是用户所见到的数据模式;选项B)不正确,全局数据视图的描述称为概念模式,即数据库中全部数据的整体逻辑结构的描述;选项C)不正确,物理存储数据视图的描述称为内模式,即数据库在物理存储方面的描述;选项D)不正确,存储模式即为内模式。9、将E-R图转换到关系模式时,实体与联系都可以表示成A、属性B、关系C、键D、域标准答案:2知识点解析:数据库逻辑设计的主要工作是将E—R图转换成指定RDBMS中的关系模式。首先,从E—R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E—R图中属性也可以转换成关系的属性。实体集也可以转换成关系。10、SQL语言又称为A、结构化定义语言B、结构化控制语言C、结构化查询语言D、结构化操纵语言标准答案:4知识点解析:结构化查询语言(StructuredQaeryLanguage,简称SQL)是集数据定义、数据操纵和数据控制功能于一体的数据库语言。二、选择题(本题共25题,每题1.0分,共25分。)11、C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是A、增加了一些新的运算符B、允许函数重载,并允许设置缺省参数C、规定函数说明符必须用原型D、引进了类和对象的概念标准答案:8知识点解析:C++语言最重要的特点是具为一种面向对象的程序设计语言,但是C++语言也包含了全部的C语言的特征。12、下列哪个是C++语言的有效标识符?A、_No1B、No.1C、12345D、int标准答案:1知识点解析:标识符是一个以字母或下划线开始的,由字母、下划线和数字组成的字符串,标识符不能与任意关键字同名。13、设有定义intx;floaty;,则10+x+y值的数据类型是A、intB、doubleC、floatD、不确定标准答案:4知识点解析:由算术运算符组成的表达式中,若含有不同类型的操作数,则系统隐含地将低类型转化为高类型,由低至高的顺序为int->float->double。14、下列程序的执行结果为#include<iostream.h>voidmain(){inta=3,b=0;int*p=&a;b=+a++;cout<<*p<<”,”<<b<<endl;}A)3,4B)4,3C)3,4D)4,4(15)下面程序的运行结果为#include<iostream.h>voidmain(){for(inta=0,x=0;!x&&a<=10;a++){a++;}cout<<a<<end1;}A、10B、11C、12D、0标准答案:2知识点解析:*p为所指对象a的值,语句“b=+a++;”等价于“b=b+a;a=a+1;”。15、下列选项,不正确的是A、for(inta=1;a<=10;a++);B、inta=1;do{a++;}while(a<=10)C、inta=l;while(a<=10){a++;}D、for(inta=1;a<=10;a++)a++;标准答案:4知识点解析:在进入最后一次循环时a=10,在循环体内执行“a++;”后a=11,执行完该次循环体计算for循环的增量部分后a=12小于10,循环结束。16、下面关于数组的初始化正确的是A、charstr[]={‘a’,’b’,’c’}B、charstr[2]={‘a’,’b’,’c’}C、charstr[2][3]={{‘a’,’b’},{‘c’,’d’},{‘e’,’f’}}D、charstr()={‘a’,’b’,’c’}标准答案:2知识点解析:本题考查的是基本循环语句的使用,选项A),选项C)和选项D)都为正确的形式,在选项B)中的while(a<=10)后缺少结束符分号“;”。17、下列程序的输出结果为#include<iostream.h>voidmain(){char*a[]={"hello","the","world"};char**pa=a;pa++;cout<<*pa<<end1;}A、helloB、theC、worldD、hellotheworld标准答案:1知识点解析:本题考查的是字符数组的初始化,选项B)中用3个元素初始化大小为2的数组,越界了;选项C)中应该是2行3列的数组,题中使用3行2列初始化;选项D)中数组合后应用方括号。18、决定C++语言中函数的返回值类型的是A、return语句中的表达式类型B、调用该函数时系统随机产生的类型C、调用该函数时的主调用函数类型D、在定义该函数时所指定的数据类型标准答案:2知识点解析:本题主要考查的是指针数组和指向指针的指针之间的关系,其中a是指针数组,pa是指向指针数组行的指针,所以pa自加1相当于指向下一行。19、下列程序的输出结果是#include<iostream.h>intmin(inta,intb){if(a<b)returna;elsereturnb;return0;}voidmain(){cout<<min(1,min(2,3))<<end1;}A、0B、1C、2D、3标准答案:8知识点解析:C++语言中,在定义该函数时所指定的数据类型决定函数的返回值类型。20、下列程序的运行结果为#include<iostream.h>voidprint(doublea){cout<<++a;}voidprint(inta,intb){cout<<b<<a;}Voidmain(){print(1.2);cout<<"";print(3,4);}A、1.234B、2.234C、1.243D、2.243标准答案:2知识点解析:本题考查的是函数的调用,第一次调用min(2,3),因为2<3,所以返回值为2,第二次调用min(1,2),因为l<2,所以返回1。21、对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是A、公有类型B、私有类型C、保护类型D、友元类型标准答案:8知识点解析:本题考查的是对重载函数的掌握,因为++a是右结合的,所以a先自加1再输出,即为2.2,之后调用函数print(inta,intb)输出b和a,即43。22、在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是A、友元函数B、虚函数C、构造函数D、析构函数标准答案:8知识点解析:所谓的访问控制只包含公有类型、私有类型和保护类型3种,友元可以是一个函数,也可以是一个类。23、类的析构函数的作用是A、一般成员函数的初始化B、类的初始化C、对象的初始化D、删除类创建的对象标准答案:4知识点解析:构造函数在创建对象时系统自动调用,其功能是使用给定的值将对象初始化。24、下列说法正确的是A、内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B、内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C、类的内联函数必须在类体内定义D、类的内联函数必须在类体外通过加关键字inline定义标准答案:8知识点解析:析构函数就是用来释放对象的,它的调用完成之后,对象也就消失了,相应的内存空间也被释放了。25、下面对静态数据成员的描述中,正确的是A、静态数据成员可以在类体内进行初始化B、静态数据成员不可以被类的对象调用C、静态数据成员不能受ptirate控制符的作用D、静态数据成员可以直接用类名调用标准答案:2知识点解析:本题考查的是内联函数的定义,引入内联函数是为了解决程序中函数调用的效率问题,是以目标代码的增加为代价换取时间的节省;一般函数在运行时被调用,而调用的内联函数在编译时就被替代了,如果不加inline关键字,则编译器会将在类说明部分定义的任何函数都被认定为内联函数。26、下面对于友元函数描述正确的是A、友元函数的实现必须在类的内部定义B、友元函数是类的成员函数C、友元函数破坏了类的封装性和隐藏性D、友元函数不能访问类的私有成员标准答案:8知识点解析:静态数据成员必须在类体外初始化,它是类的所有对象的共有成员,需要使用类名调用,静态数据成员的初始化与权限控制无关。27、在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是A、派生类的对象可以赋给基类的对象B、派生类的对象可以初始化基类的引用C、派生类的对象可以直接访问基类中的成员D、派生类的对象的地址可以赋给指向基类的指针标准答案:4知识点解析:友元函数的定义既可以在类内部进行,也可以在类外部进行。它提高了程序的运行效率,但破坏了类的封装性和隐藏性,使得类的非成员函数可以访问类的私有成员。28、下面程序的运行结果为#include<iostream,h>classA{public:A(){cout<<"1";}~A(){cout<<"2";}};ClassB:publicA{public:B(){cout<<"3";}~B(){cout<<"4";}};voidmain(){Bb;}A、1234B、1324C、1342D、3142标准答案:4知识点解析:公有继承的派生类和基类是子类型的关系,所谓子类型是类型间一般和特殊的关系,即派生类是基类的子类型或者说基类的操作可以被用于操作派生类的对象。29、下列关于虚基类的描述,错误的是A、设置虚基类的目的是为了消除二义性B、虚基类的构造函数在非虚基类之后调用C、若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序凋用D、若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数标准答案:4知识点解析:本题考查的是在继承中构造函数和析构函数的调用顺序,应该是先调用基类的构造函数,再调用派生类的构造函数,调用析构函数时的顺序是先调用派生类的析构函数,后调用基类的析构函数。30、下列关于多态性的描述,错误的是A、C++语言中的多态性分为编译时的多态性和运行时的多态性B、编译时的多态性可通过函数重载实现C、运行时的多态性可通过模板和虚函数实现D、实现运行时多态性的机制称为动态绑定标准答案:2知识点解析:虚基类的引入就是为了消除二义性,其构造函数的调用仍然是按照继承的顺序进行的,对于多个虚基类则按它们说明的次序调用,虑基类的构造函数选于非虚基类的构造函数执行。31、下列关于多态性的描述,错误的是A、C++语言中的多态性分为编译时的多态性和运行时的多态性B、编译时的多态性可通过函数重载实现C、运行时的多态性可通过模板和虚函数实现D、实现运行时多态性的机制称为动态绑定标准答案:4知识点解析:编译时的多态性是通过函数重载和模板体现的,运行时的多态性是通过虚函数体现的。32、下列运算符中,在C++语言中不能重载的是A、*B、>=C、∷D、/标准答案:4知识点解析:不能被重载的运算符还包括:“.”,“.*”,“->*”和“?:”。33、当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为A、ios∷inB、ios∷outC、ios∷in,|ios∷outD、以上都不对标准答案:8知识点解析:使用fstream类建立文件流必须定义打开方式,否则编译器无法判断该文件流是读还是写。34、下列程序的运行结果是#include<isotream.h>classA{inta;public:A(){a=0;}A(intaa){a=aa;cout<<a++;}};voidmain(){Ax,y(2),z(3);cout<<end1;}A、0B、23C、34D、25标准答案:2知识点解析:本题考查的是对构造函数的掌握,另外“++”运算符是右结合的,所以在进行输出的时候都是先把原来的输出后再自加1。35、下面程序的输出结果是#include<iostream.h>classexample{inta;public:example(intb){a=b++;}voidprint(){a=a+1;cout<<a<<"";}voidprint()const{cout<<a<<"";}};voidmain(){examplex(3);constexampley(2);x.print();y.print();}A、22B、43C、42D、32标准答案:4知识点解析:“++”是右结合的,所以先赋值为3,最后输出3+1;常成员函数只有常对象才能调用,所以输出2。三、公共基础填空题(本题共4题,每题1.0分,共4分。)36、以下程序的执行结果是______。#include<iostream.h>voidmain(){intx=5y=2;cout<<!(y==x/2)<<",";cout<<(y!=x%3)<<",";cout<<(x>0&&y<0=<<",";cout<<(x!=y||x>=y)<<endl;}标准答案:0,0,0,1知识点解析:暂无解析37、若要打开二进制文件binfile写方式,输出到文件尾则应为:ofstreambfile("binfile",______);标准答案:ios::out|ios;;ate知识点解析:暂无解析38、头文件______中包含了处理用户控制的文件操作所需的信息。标准答案:fstream.h知识点解析:暂无解析39、一个类中有______个析构函数。标准答案:1知识点解析:暂无解析四、填空题(本题共9题,每题1.0分,共9分。)40、C++语言中关键字运算符有new,delete和______。标准答案:sizeof知识点解析:暂无解析41、以下程序的执行结果是______。#include<iostream.h>int&max(int&x,int&y){return(x>y?x:y);}voidmain(){intn=2,m=l0;max(n,m)--;cout<<"n="<<n<<"m="<<m<<endl;}标准答案:n=2,m=9知识点解析:暂无解析42、多态具体体现运行和编译两个方面,在程序运行时的多态性通过继承和______来体现,而程序编译时多态性体现函数和运符的重载上。标准答案:虚函数知识点解析:暂无解析43、从一个函数模板产的模板函数是同名的,因此编译器用______的解决方法调用相应函数。标准答案:重载知识点解析:暂无解析44、常用的黑箱测试有等价分类法、______、因果图法和错误推测法4种。标准答案:边值分析法知识点解析:暂无解析45、以下程序的执行结果是______。#include<iostream.h>voidmain(){inta=o,b=1,c=0,d=20;if(a)d=d-10;elseif(!b)if(!c)d=15:elsed=25;cout<<"d="<<d<<endl;}标准答案:d=20知识点解析:暂无解析46、使用函数模板的方法是先说明函数模板,然后实例化成相应的______进行调用执行。标准答案:模板函数知识点解析:暂无解析47、流操作子______向输出流中插入一个换行符并刷新输出缓冲区。标准答案:endl知识点解析:暂无解析48、由关系数据库系统支持的完整性约束是指______和参照完整性。标准答案:实体完整性知识点解析:暂无解析国家二级(C++)笔试模拟试卷第2套一、公共基础选择题(本题共10题,每题1.0分,共10分。)1、有下列二叉树,对此二叉树前序遍历的结果为()。A、ACFXDBEYZB、ABEFXYZCDC、ABCDEFXYZD、ABDYECFXZ标准答案:D知识点解析:对二叉树的前序遍历是指先访问根结点,然后访问左子树,最后访问右子树。并且在访问左、右子树时,先访问根结点,再依次访问其左、右子树。记住3种遍历的顺序:①前序,访问根→按前序遍历左子树→按前序遍历右子树:②中序,按中序遍历左子树→访问根→按中序遍历右子树;③后序,按后序遍历左子树→按后序遍历右子树→访问根。2、A、

B、

C、

D、

标准答案:A知识点解析:就软件测试而言,它的目的是发现软件中的错误。但是,发现错误并不是最终目的,最终目的是通过测试发现错误之后还必须诊断并改正错误,这才是测试的目的。由于测试的目标是暴露程序中的错误,所以从心理学角度看,由程序的编写者自己进行测试是不恰当的。因此,在软件测试阶段通常由其他人员组成测试小组来完成测试工作。经过上述分析可知,选项A的说法是正确的,而选项B、C、D的说法是错误的。3、用链表表示线性表的优点是A、便于随机存取B、花费的存储空间较顺序存储少C、便于插入和删除操作D、数据元素的物理顺序与逻辑顺序相同标准答案:C知识点解析:链式存储结构克服了顺序存储结构的缺点:它的节点空间可以动态申请和释放;它的数据元素的逻辑次序靠节点的指针来指示,不需要移动数据元素。故链式存储结构下的线性表便于插入和删除操作。4、一些重要的程序语言(如C语言和Pascal语言)允许过程的递归调用。而实现递归调用中的存储分配通常用A、栈B、堆C、数组D、链表标准答案:A知识点解析:一些较流行的程序语言允许过程的递归调用。递归调用就是过程调用本身。递归实现的是:当过程每一次执行后,都能返回到最近一次调用它的过程中。这样各调用点之间形成一种后进先出的关系,而栈结构正适合来存储这些调用点。5、有如下类定义:classPoint{private:staticinthow_many;};______how_many=0;要初始化Point类的静态成员how_many,在下画线处应填入的内容是A、intB、staticintC、intPoint::D、staticintPoint::标准答案:C知识点解析:暂无解析6、下列有关抽象类和纯虚函数的叙述中,错误的是A、拥有纯虚函数的类是抽象类,不能用来定义对象B、抽象类的派生类若不实现纯虚函数,它也是抽象类C、纯虚函数的声明以“=0;”结束D、纯虚函数都不能有函数体标准答案:D知识点解析:纯虚函数的声明格式为:virtual函数类型函数名(参数表)=0拥有纯虚函数的类就叫抽象类,如果在派生类中不实现纯虚函数,则派生类也是抽象类。纯虚函数在派生类可以被重新定义,即可以拥有函数体。7、以下关于栈的描述中错误的是()。A、栈是先进后出的线性表B、栈只能顺序存储C、栈具有记忆作用D、对栈的插入与删除操作中,不需要改变栈底指针标准答案:B知识点解析:栈是限定只能在表的一端进行插入和删除操作的线性表,入栈和出栈都是在栈顶进行,它们的操作特点是先进后出,因此具有记忆作用。栈可以采用顺序存储,也可以采用链式存储。8、执行如下程序将输出():#include<iostream>usingnamespacestd;classBase{public:Base(){cout<<"BB";fun();}voidfun(){tout<<"Brim";}};classDerived:publicBase{public:Derived(){cout<<"DD";}voidfun(){cout<<"Dfun";}};intmain(){Derivedd;return0;}A、DDB、BBDfunDDDfunC、BBBfunDDD、DDBBBfun标准答案:C知识点解析:C++中创建一个类的实例时,如果该类存在基类,将首先执行基类的构造函数,然后执行该类本身的构造函数。本题中首先执行类Base的构造函数,所以将先输出“BB”,然后调用基类成员函数fun(),输出“Bfun”,最后调用子类Derived的构造函数输出“DD”。9、有以下程序:#include<iostream>usingnamespacestd;{public:TestClass(intr1,intr2){R1=r1;R2=r2;}voidprint();voidprint()const;private;intR1,R2;};voidTestClass::print(){cout<<R1<<","<<R2<<end1;}voidTestclass::print()constcout<<R1<<<<","<<R2<<end1;}intmain(){TestClassa(5,4);constTestClassb(20,52);b.print();return0;}执行后的输出结果是()。A、5,4B、20,52C、0,0D、4,5标准答案:B知识点解析:暂无解析10、链表不具有的特点是A、不必事先估计存储空间B、可随机访问任一元素C、插入删除不需要移动元素D、所需空间与线性表长度成正比标准答案:2知识点解析:链表采用的是链式存储结构,它克服了顺序存储结构的缺点:它的结点空间可以动态申请和释放;它的数据元素的逻辑次序靠结点的指针来指示,不需要移动数据元素。但是链式存储结构也有不足之处:①每个结点中的指针域需额外占用存储空间;②链式存储结构是一种非随机存储结构。二、选择题(本题共25题,每题1.0分,共25分。)11、下面有关重载函数的描述中正确的是A、重载函数必须具有不同的返回值类型B、重载函数形参个数必须不同C、重载函数必须具有不同的形参列表D、重载函数名可以不同标准答案:C知识点解析:所谓函数重载,是指同一个函数名可以对应多个函数的实现。进行函数重载时,要求同名函数在参数个数上不同,或者参数类型上不同。即重载函数具有不同的形参列表。12、静态数据成员是为()的数据。A、私有B、保护C、所有对象共享D、类成员标准答案:C知识点解析:静态数成员是一种特殊的数据成员。静态数据成员不属于某一个对象,在为对象所分配的空间中不包括静态数据成员所占的空间。所有对象共享这些静态数据成员,都可以引用它。13、C++中运算符优先级由高到低排列正确的是A、::+++||B、<*||,C、sizeof%+::D、,&&newsizeof标准答案:A知识点解析:暂无解析14、下面程序的运行结果是#include"iostream.h"#definesum(a,b)a*bvoidmain(){intx;X=sum(1+2,3);cout<<x;}A、0B、9C、7D、5标准答案:C知识点解析:暂无解析15、下列程序的输出结果是#include<iostream.h>voidmain(){char*str="12123434";intx1=0,x2=0,x3=0,x4=0,i;for(i=0;str[i]!=’\0’;i++)switch(str[i]){case’1’:x4++;case’2’:X3++;case’3’:X2++;case’4’:X1++;}cout<<X1<<","<A、8,6,4,1B、8,6,3,2C、8,8,4,1D、8,6,4,2标准答案:D知识点解析:暂无解析16、若执行以下程序时从键盘上输入9,则输出结果是main(){intn;cin>>n;if(n++<10)cout<<n<<end1;elsecout<<n--<<end1;}A、11B、10C、9D、8标准答案:B知识点解析:本题考察的是后置自增运算符的知识,题中if语句可以拆解为:if(n<10){n+=1,cout<<n<<endl;}。17、下面程序的运行结果为#include<iostream.h>voidmain(){chara=’3’;switch(a){case’3’:cout<<"3";case’2’:cout<<"2";break;default:cout<<"1";}}A、3B、321C、31D、32标准答案:D知识点解析:本题主要考查的是switch语句的使用,在第一个case处,因为满足条件所以输出字符3,但这个分支没有break语句终止,所以会继续执行下面的分支语句,即输出字符2,这时出现break语句,结束整个语句,即输出32。18、下列程序中横线处正确的语句是()。#includeusingnamespacestd;classTestClass{public:voidfun(){cout<<“TestClass::fun”<A、fun();B、TestClass.fun();C、TestClass::fun();D、TestClass->fun();标准答案:C知识点解析:程序中的TestClass1为TestClass的派生类,TestClass1公有继承TestClass,所以可以调用其中的公有成员fun函数,如果要显示调用它,那么使用域符号“::”,这样就实现了对函数的显示调用,即选择C)。19、下面程序的结果是#includeclassA{inta;public:A():a(1){}voidshowa(){cout<<a;}};classB{inta;public:B():a(2){}voidshowa(){cout<<a;}};classC:publicA,publicB{inta;public:C():a(3){}voidshowa(){cout<<a;}};voidmain(){Cc;c.showa();}A、1B、2C、3D、程序有错误标准答案:C知识点解析:类A,类B,中都有showa()函数,类C继承后再次重写showa()函数就解决了继承的二义性,这时c.showa()函数显示的就是类C中的showa()的值。20、下面程序的运算结果为()。#include<iostream>usingnamespace~td;inti;intfun(){staticinti=10;return++i;voidmain(){fun();cout<<fun()<<","<<i;}A、10,100B、12,100C、12,12D、11,100标准答案:2知识点解析:fun()中的i为静态变量只在函数中可见,执行两次变为12;主函数中的i为全局变量,fun()对i的修改不影响。21、下面程序的输出结果是()。#include<iostream>usingnamespacestd;template<classT>Tmax(Tx,Ty){return(x>=y?x:y);}voidmain(){cout<<max(5,8)<<endl;cout<<max("zhangsan","lisi");}A、8zhangsanB、8lisiC、5zhangsanD、5lisi标准答案:1知识点解析:当运行max("zhangsan","lisi");时实例化为char*max(char*x,char*y),返回的是zhangsan的地址,从而打印出zhangsan的结果。22、假定MyClass为一个类,则该类的拷贝初始化构造函数的声明语句为()。A、MyClass&(MyClassx);B、MyClass(MyClassx)C、MyClass(MyClass&x);D、MyClass(MyClass*x)标准答案:4知识点解析:暂无解析23、下列关于虚基类的描述,错误的是()。A、设置虚基类的目的是为了消除二义性B、虚基类的构造函数在非虚基类之后调用C、若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用D、若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数标准答案:2知识点解析:暂无解析24、设intb=12表达式b+=b-=b*b求值后b的值是_______。A、552B、264C、144D、-264标准答案:8知识点解析:暂无解析25、设有定义intx;floaty;,则10+x+y值的数据类型是A、intB、doubleC、floatD、不确定标准答案:4知识点解析:由算术运算符组成的表达式中,若含有不同类型的操作数,则系统隐含地将低类型转化为高类型,由低至高的顺序为int->float->double。26、在重载运算符函数时,下面()。运算符必须重载为类成员函数形式。A、+B、-C、++D、->标准答案:8知识点解析:暂无解析27、若有如下语句#include<iostream.h>voidmain(){intx=3;do{x=x-2;cout<<x;}while(!(--x));}则上面程序段A、输出的是1B、输出的是1和-2C、输出的是3和0D、是死循环标准答案:2知识点解析:do-while语句的一般格式为do循环体语句while(表达式);先执行循环体语句一次,再判断表达式的值,若为真则继续执行循环,否则终止循环。本题中,先执行x=x-2,即为1。判断表达式的值,!(--x)为真,x=0,继续循环。再次执行循环体语句后,x=-2,此时表达式的值为0,结束循环。28、以下程序中,错误的行为①#include<iostream.h>②classA③{④public:⑤intn=2;⑥A(intval){cout<<val<<end1;}⑦~A(0{};⑧};⑨voidmain(0⑩{(11)Aa(0);(12)A、⑤B、⑥C、⑦D、(11)标准答案:1知识点解析:C++语言中规定在类体中不允许对所定义的数据成员进行初始化。29、有以下程序:#include<iostream>usingnamespacestd;classsample{private:ihtn;public:sample(){}sample(intm){n=m;}voidaddvalue(intm){samples;s.n=n+m;*this=s;}voiddisp(){cout<<"n="<<n<<end1;}};intmain(){samples(10);s.addvalue(5);s.disp();return0;}程序运行后的输出结果是A、n=10B、n=5C、n=15D、n=20标准答案:4知识点解析:本题考核this指针的应用。上述程序中sample类定义了一个addvalue非静态成员函数。addvalue函数的原型是:voidaddvalue(sample*this,intm);,该函数的第一个参数是执行该类对象的一个指针即this指针。由于这个参数是系统隐含的,所以我们在定义该成员函数时并没有看到这样一个参数。在成员函数的定义体中,可以通过this访问这一参数。上述程序的最后输出结果是15。30、有以下程序:#include<iostream>usingnamespacestd;classR{public:R(intr1,intr2){R1=rl;R2=r2;}voidprint();voidprint()const;private:intR1,R2;};voidR::print(){cout<<R1<<","<<R2<<end1;}voidR::print()const{cot<<R1<<","<<R2<<end1;}intmain(){Ra(5,4);constRb(20,52);b.print();return0;}执行后的输出结果是A、5,4B、20,52C、0,0D、4,5标准答案:2知识点解析:使用const关键字修饰的对象成为常对象,题中对象b被声明为类R的常对象。使用const关键字说明的成员函数称为常成员函数,类R中用const重载了函数print()。在使用常对象和常成员函数时应注意的是:const是函数类型的一个组成部分,因此在部分也要带const关键字:常成员函数不能更新对象的数据成员,也不能调用该类中没有用const修饰的成员函数;如果将一个对象说明为常对象,则通过该常对象只能调用它的常成员函数,不能调用其他的成员函数;const关键字可以参与区分重载函数。本题中,b为类R的常对象,通过b只能调用类R的常成员函数print()输出20,52。31、下列各循环语句中,不是死循环的是()。A、inti=100;while(1){i=i%100+1;if(i==20)break;}B、inti,sum=0;for(i=1;;i++)sum=sum+1;C、intk=0;do{++k;}while(k>=0);D、ints=3379;while(s++%2+3%2)s++;标准答案:1知识点解析:分析各个选项。选项A中,当变量i的值等于20时,会执行break;语句,即退出整个while循环体。所以选项A的循环语句不是死循环。其他各个选项的循环语句中,没有循环退出点,所以都是死循环。32、以下选项中,()是合法的字符常量。A、NB、’\010’C、68D、D标准答案:2知识点解析:本题考核字符型常量的表示。选项A中是字符串的表示方法。选项B所表示的是一个转义字符,是特殊的字符常量。选项C中所表示的是整型常量。选项D中不是常量的表示。33、C++语言中类的定义的结束声明的符号是A、}B、,C、;D、{标准答案:4知识点解析:C++语言中类定义的结束符号是分号。注意:函数的定义不需要分号。34、对于以下带参数的main()函数的第二形参,voidmain(intargc,______),不可能的形式是A、char*argv[]B、charargv[]C、char**aD、char*m[]标准答案:B知识点解析:本题要考查的实际是字符数组,用于向函数传递参数,属于指针或引用传递方式。要注意的是考生不要被名称所迷惑,即根据A和D是相同类别的,故可以排除。对C来说,也属于指针传递方式,而B不仅不属于指针传递,而且还没有限定数组大小,编译器在编译时就会产生错误。35、以下不能正确创建输出文件对象并使其与磁盘文件相关联的语句是A、ofstreammyfile:myfile,open("d:ofile.txt");B、ofstream*myfile=newofstream;myfile->open("d;ofile.txt");C、ofstreammyfile("d:ofile.txt");D、ofstream*myfile=new("d:ofile.txt");标准答案:D知识点解析:本题考查文件对象的创建方法。可以直接定义文件对象,也可以用new来动态生成。很明显,选项D中使用new的方式是错误的。三、公共基础填空题(本题共5题,每题1.0分,共5分。)36、结构化设计主要分为系统设计和模块设计,【】的任务是决定系统的模块结构。标准答案:系统设计知识点解析:结构化设计主要分为系统设计和模块设计。系统设计的任务是决定系统的模块结构;模块设计的任务是具体考虑每一个模块内部采用什么算法,模块的输入、输出以及该模块的功能。37、如果把类FriendClass定义为类TestClass的友元类,则应该在类TestClass的定义中加入语句______。标准答案:friendclassFiendClass知识点解析:暂无解析38、标准答案:数据库系统知识点解析:暂无解析39、一个类可以直接或间接的祖先中继承所有的属性和方法。采用这个方法可以提高了软件的【】。标准答案:可重用性知识点解析:暂无解析40、在长度为n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为【】。标准答案:log2n知识点解析:对于长度为n的有序线性表,在最坏情况下,二分查找只需要比较log2n次,而顺序查找需要比较n次。四、填空题(本题共10题,每题1.0分,共10分。)41、如果表达式x=y*z中的“*”是作为成员函数重的运算符,采用运算符函数调用格式,该表达式还可以表示为______。标准答案:x=y.operator*(z)或x=y.operator*(z)知识点解析:运算符函数有两种调用形式,第一种是像一般函数那样用函数名调用,即y.operator*(z)或者operator*(y,z):另一种是通过运算符构成表达式,即y*z。42、以下程序的输出结果是_____。#include<iostream.h>classobject{private:intval;public:object();object(inti);~object();};object::object(){val=0;cout<<"Defaultconstructorforobject"<<endl;}object::object(inti){val=i;cout<<"Constructorforobject"<<val<<endl;}object::~object(){cout<<"Destructorforobject"<<val<<endl;}classcontainer{private:objectone;objecttwo;intdata;public:container();container(inti,intj,intk);~container();};container::container(){data=0;cout<<"Defaultconstructorforcontainer"<<endl;}container::container(inti,intj,intk):two(i),one(j){data=k;cout<<"Constructorforcontainer"<<endl;}container::~container(){cout<<"Destructorforcontainer"<<endl;}voidmain(){containeranObj(5,6,10);}标准答案:Constructorforobject6Constructorforobject5ConstructorforcontainerDestructorforcontainerDestructorforobject5Destructorforobject6知识点解析:C++语言中的构造函数和析构函数分别是在声明对象时和对象调用完毕后调用,本题中的调用就是这样成对出现的。43、执行下列语句后,输出的结果为__________。voidfun(){staticimx=3:x++:cout<标准答案:4,5知识点解析:本题考查了静态变量的用法。当函数执行完毕后,返回调用点时,静态变量并不撤销,其值将继续保留,若下次进入该函数,其值仍然存在。所以本题输出4,5。44、如果类中的一个成员函数的定义实现在类内,则该函数系统自动默认为该类的【】函数。标准答案:内联知识点解析:暂无解析45、假设血inta=1,b=2;,则表达式(++a/b)*b--的值为【】。标准答案:2知识点解析:暂无解析46、以下程序的输出结果是【】。#include<iostream.h>unsignedfrn(ullsignednum){unsi9nedk=1;do{k*=num%10;num/=10;}while(num);returnk;}voidmain(){unsignedn=26;cout<<fun(n)<<endl;}标准答案:12知识点解析:函数有一个形参num,循环前变量k置1,循环中,表达式nora%10是取num的个位,将num的个位值累乘于k中,然后num除以10。循环直至num为0结束,这是逐一求出num十进制表示的各位数字,并累乘于变量k的循环。函数最后返回k。函数fun的功能是求整数的各位十进数字积。47、多态性分为两类:编译时的多态性和【】。标准答案:运行时的多态性知识点解析:本题考核C++的多态性。在C++语言中,多态性可分为两类:编译时的多态性和运行时的多态性。48、下列程序从保存整数的文本文件"c:Sample.dat"中依次取出每个数据并显示出来,同时统计并显示出所有数据的个数。程序划线处的表达式为【】。#include<stream,h>#include<stdlib,h>voidmain(){ifstreamfin("c:Sample.dat",ios::nocreate);if(!fin){cerr<<"文件无法打开!"<<end1;exit(1);}intx,i=0;while(______){cout<<x<<"";i++;}fin.close();cout<<endl<<"文件中所有整数个数:"<<i<<end1;}标准答案:fin>>x知识点解析:while语句用于完成题目指定的功能,则while的条件判断部分应完成从文件读取字符的功能,并能够判断出读入字符失败后的情况。49、在任何类中都有三种访问权限的数据成员,这三种权限是public、private和【】。标准答案:protected知识点解析:本题考察类的访问权限,属于基本知识,考生应熟练掌握。50、有如下程序:#include<iostream>usingnamespacestd;intfun1(intx){return++x;}intfun2(int&x){return++x;}intmain(){intx=1,y=2;y=fun1(fun2(x));cout<<X<<’,’<<y;return0:}程序的输出结果是______。标准答案:2,3知识点解析:此题考查的是函数传值。intfun1(intx){retum++x;}函数中参数为传值,所以对于函数的操作不会改变实参的值,而函数intfun2(int&x){retum++x;}中的参数为引用,对于形参的操作会改变实参的值。在主函数中调用fun2(x)后,变量x的值修改为2,所以在调用fun1函数时其形参值为2,即运算后y的值被赋值为3,所以输出为2,3。国家二级(C++)笔试模拟试卷第3套一、公共基础选择题(本题共10题,每题1.0分,共10分。)1、循环链表的主要优点是A、不再需要头指针了B、从表中任一结点出发都能访问到整个链表C、在进行插入、删除运算时,能更好的保证链表不断开D、已知某个结点的位置后,能够容易的找到它的直接前件标准答案:2知识点解析:循环链表就是将单向链表中最后一个结点的指针指向头结点,使整个链表构成一个环形,这样的结构使得从表中的任一结点出发都能访问到整个链表。2、栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是A、ABCEDB、DCBEAC、DBCEAD、CDABE标准答案:2知识点解析:栈操作原则上“后进先出”,栈底至栈顶依次存放元素A、B、C、D,则表明这4个元素中D是最后进栈,B、C处于中间,A最早进栈。所以出栈时一定是先出D,再出C,最后出A。3、n个顶点的强连通图的边数至少有A、n-1B、n(n-1)C、nD、n+1标准答案:4知识点解析:在有向图中,若任意两个顶点都连通,则称该图是强连通图,这样的有向图的形状是环状,因而至少应有n条边。4、在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率。与程序的效率相比,人们更重视程序的A、安全性B、一致性C、可理解性D、合理性标准答案:4知识点解析:结构化程序设计方法设计出的程序具有明显的优点。其一,程序易于理解、使用和维护;其二,提交了编程工作的效率,降低了软件开发成本。其中,人们更重视前者。5、模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准则是模块的A、抽象和信息隐蔽B、局部化和封装化C、内聚性和耦合性D、激活机制和控制方法标准答案:4知识点解析:模块的独立程序是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。6、软件开发的结构化生命周期方法将软件生命周期划分成A、定义、开发、运行维护B、设计阶段、编程阶段、测试阶段C、总体设计、详细设计、编程调试D、需求分析、功能定义、系统设计标准答案:1知识点解析:通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。它可以分为软件定义、软件开发及软件运行维护3个阶段。7、在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是A、路径的集合B、循环的集合C、目标的集合D、地址的集合标准答案:1知识点解析:软件的白盒测试方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。8、在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有A、特定的数据模型B、数据无冗余C、数据可共享D、专门的数据管理软件标准答案:1知识点解析:在文件系统中,相互独立的记录其内部结构的最简单形式是等长同格式记录的集合,易造成存储空间大量浪费,不方便使用。而在数据库系统中,数据是结构化的,这种结构化要求在描述数据时不仅描述数据本身,还要描述数据间的关系,这正是通过采用特定的数据模型来实现的。9、数据库设计包括两个方面的设计内容,它们是A、概念设计和逻辑设计B、模式设计和内模式设计C、内模式设计和物理设计D、结构特性设计和行为特性设计标准答案:1知识点解析:数据库设计包括数据库概念设计和数据库逻辑设计两个方面的设计内容。10、实体是信息世界中广泛使用的一个术语,它用于表示A、有生命的事物B、无生命的事物C、实际存在的事物D、一切事物标准答案:4知识点解析:实体是客观存在且可以相互区别的事物。实体可以是具体的对象,如一个学生,也可以是一个抽象的事件,如一次出门旅游等。因此,实体既可以是有生命的事物,也可以是无生命的事物,但它必须是客观存在的,而且可以相互区别。二、选择题(本题共25题,每题1.0分,共25分。)11、面向对象程序设计思想的主要特征中不包括A、继承性B、功能分解,逐步求精C、封装性和信息隐藏D、多态性标准答案:2知识点解析:面向对象程序设计的主要特征是继承性,封装性和信息隐藏,多态性。12、C++语言是以哪种语言为基础逐渐发展演变而成的一种程序设计语言A、ASPB、CC、VBD、Java标准答案:2知识点解析:C++语言是对C语言进行了扩充,继承了它的语法,并增加了面向对象的设计方法。13、设变量a是int型,f是double型,i是float型,则表达式10+’a’+i*f值的数据类型A、intB、floatC、doubleD、不确定标准答案:4知识点解析:根据混合运算规则,如果有一个数据是double型,则其他数据类型先转化为double型,运算的结果最终也是double型。为保证精度的不丢失,表达式的数据类型是变量和常量中精确度最高的变量类型。14、能正确表示逻辑关系:“a≥10或a≤0”的C++语言表达式是A、a>=10ora<=0B、a>=0|a<=10C、a>=10&&a<=0D、a>=10||a<=0标准答案:8知识点解析:逻辑运算符“||”表示或的意思。15、以下程序的输出结果是#include<iostream.h>voidmain(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<3;j++){if(j%2)continue;x++;}x++;}cout<<"x="<<x;}A、x=4B、x=8C、x=6D、x=12标准答案:2知识点解析:该题是一个for循环嵌套语句。第一层for循环循环2次,第二层循环3次,但当j等于0和1时,将执行continue语句,不执行x++运算,所以每次执行完内循环后,x的增量为1。最后一个x++运算将每次累加起来就是x的值。16、若执行下面的程序时,从键盘上输入5和2,则输出结果是#include<iostream.h>voidmain(){inta,b,k;cin>>a>>b;k=a;if(a<b)k=a%b;elsek=b%a;cout<<k<<endl;}A、5B、3C、2D、0标准答案:4知识点解析:本题考查简单的if…else语句。先执行条件if(a<B,显然不成立,则执行else语句。17、有以下程序#include<string.h>#include<iostream.h>voidmain(){char*p="abcde\0fghjik\0";cout<<strlen(p);}程序运行后的输出结果是A、12B、15C、6D、5标准答案:8知识点解析:C++语言规定了一个字符串结束标志,以字符’\0’代表,在遇到’\0’时,表示字符串结束,由它前面的字符组成字符串。18、若有说明语句chara[]="Itismine";char*p="Itismine";则以下不正确的叙述是A、a+1表示的是字符t的地址B、p指向另外的字符串时,字符串的长度不受限制C、p变量中存放的地址值可以改变D、a中只能存放10个字符标准答案:8知识点解析:本题考查字符串数组和指针的引用方式。在C++语言中,系统在每个字符串或数组的最后自动加入一个字符’\0’,作为字符的结束标志,在本题中,chara[]=“Itismine";所表示的a字符串实际含有11个字符。19、以下程序的运行结果是#include<iostream.h>voidsub(intx,inty,int*z){*z=y-x;}voidmain(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);cout<<a<<","<<b<<","<<c<<enA、5,2,3B、-5,-12,-7C、-5,-12,-17D、5,-2,-7标准答案:2知识点解析:在C++语言中,调用函数不可能改变实参指针变量的值,但可以改变实参指针变量所指变量的值。了解了实参指针变量的改变情况,本题只剩下简单的“加减法”了。20、下列程序是用来判断数组中特定元素的位置所在,则输出结果为#include<conio.h>#include<iostream.h>intfun(int*s,intt,int*k){inti;*k=0;for(i=0;iA、7,431B、6C、980D、6,980标准答案:8知识点解析:本题中直接使用指针变量k,但在使用时要注意对k的指针运算,此外,一开始应认为*k的值为数组中的某一下标值,即*k=0。21、执行下列程序段,结果是#include<iostream.h>voidmain(){intx=40;chary=’C’;intn;n=(x&0xff)&&(y>’B’);cout<<n;}A、0B、1C、2D、3标准答案:2知识点解析:按位与运算符“&”是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1,否则为0。参与运算的数以补码方式出现。逻辑与运算符“&&”需要两边的结果都为1时,其结果才为1。22、关于this指针的说明不正确的是A、不能在程序中修改this指针B、this指针可以给其他指针赋值,但不能修改this指针C、静态成员函数中没有this指针D、this指针可以被赋值标准答案:8知识点解析:C++的this指针是系统默认产生的一个指针,它是const的,所以是不能够被改变,不能够被赋值的。23、下面程序的结果是#include<iostream.h>classA{public:A(){cout<<"construtA"<<endl;}virtual~A(){cout<<"destructA"<<endl;}};classB:publicA{};classC:publicA{};cA、constructAdestructAB、constructAconstructAdestructAdestructAC、constructAconstructAconstructAdestructAdestructAdestructAD、constructAonstructAconstructAconstructAdestructAdestructAdestructAdestructA标准答案:2知识点解析:类D继承了类C和类B,所以在构造的时候分别构造类B和类C。24、关于虚函数下面说的正确的是A、若在重定义虚函数时使用了virtual,则该重定义函数还是虚函数B、虚函数不能声明为友元C、子类必须重定义父类的虚函数D、虚函数不能是static的标准答案:8知识点解析:虚函数一定不能定义为静态的。虚函数可以声明为友元,子类也不是必须重定义父类的虚函数,若在重定义虚函数时使用了virtual,则该重定义函数不一定还是虚函数。25、如果表达式++x/y中,++是作为友元函数重载的,/是作为成员函数重载的,则该表达式还可为A、(operator++(x)).operator/(y)B、(operator++(0)).operator/(y)C、operator/((operator++(x,0)),y)D、operator/((operator++(0)),y)标准答案:1知识点解析:C++中用成员函数重载++x为:x.operator++(),用友元函数重载++x为:operator++(x),用成员函数重载x/y为:x.operator/(y),用友元函数重载x/y为:operator/(x,y)。26、要想使23.78965421的输出为23.7887应用的语句是A、cout<<23.78965421;B、cout<<fixed<<23.78965421;C、cout<<23.78965421-0.001;D、cout<<fixed<<23.78965421-0.001;标准答案:4知识点解析:C++语言中默认小数的输出位一共是6位,fixed的意义是在小数点后保留6位。27、有以下语句,则对a数组元素的引用不正确的是(0≤i≤9)inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;A、a[p-a]B、*(&a[i])C、p[i]D、*(*(a+i))标准答案:8知识点解析:选项D第一层括号中为数组a中第i项元素的值,外面再加指针运算符没有意义。28、有以下程序#include<iostream.h>floatfun(intx,inty){return(x+y);}voidmain(){inta=2,b=5,c=8;cout<<fun((int)fun(a+c,b),a-c);}程序运行后的输出结果是A、编译出错B、9C、21D、9标准答案:2知识点解析:本题的运算过程是fun((int)fun(a+c,B,a-C,fun((int)fun(10,5),2-8),fun((int)15.000000,-6),fun(15,-6)=9。29、下列程序的运行结果是#include<iostream.h>classLocation{private:intX.Y;public:voidinit(int=0,int=0);voidvalueX(intval){X=val;}intvalueX(){returnX;}voidvalueYA、5064B、0064C、5062D、0062标准答案:1知识点解析:本题中有成员函数和它的重载函数,要注意它们的不同,在本题中先调用了init函数,初始化了X,Y,都为0,valueX(5);又将X变为5,所以输出5和0,然后初始化init(6,2),接着又valueY(4);将X,Y设为6和4,所以输出6和4。30、在C++语言中,封装是借助于什么达到的?A、结构B、类C、数组D、函数标准答案:2知识点解析:C++基本的性质就是它的封装性,而封装性主要是靠类来实现的。31、在位运算中,操作数每左移一位,其结果相当于A、操作数乘以2B、操作数除以2C、操作数除以4D、操作数乘以4标准答案:1知识点解析:左移运算符“<<”是双目运算符。其功能把“<<”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。左移1位,相当于该数乘以2。32、有如下程序#include<iostream.h>#defineN2#defineMN+1#defineNUM2*M+1voidmain(){inti;for(i=1,i<=NUM;i++)cout<<i;}该程序中的for循环执行的次数是A、5B、6C、7D、8标准答案:2知识点解析:这是一种简单的情况:不带参数的宏。关键要注意在对2*M+1进行宏替换时,要将宏名M原样替换,得到NUM的形式为2*N+1+1(千万不要随意把给N+1加上小括号,使NUM变为2*(N+1)+1,这就是宏名和变量名之间的区别)。33、下列程序的输出结果是#include<iostream.h>intb=2;intfunc(int*a){b+=*a;return(b);}voidmain(){inta=2,res=2;res+=func(&a);cout<<res;}A、4B、6C、8D、10标准答案:2知识点解析:在函数体语句中的b+=*a;的*是指针运算符(也称间接访问运算符),*a就是main函数中a的值。34、所有在函数中定义的变量,连同形式参数,都属于A、全局变量B、局部变量C、静态变量D、寄存器变量标准答案:2知识点解析:C++语言函数中定义的变量都是属于这个函数的局部变量。35、有如下程序:#include<iostream.h>longfib(intn){if(n>2)return(fib(n-1)+fib(n-2));elsereturn(2);}voidmain(){cout<<fib(3);}该程序的输出结果是A、2B、4C、6D、8标准答案:2知识点解析:fib(3)=fib(2)+fib(1),而fib(2)的返回值为2,fib(1)的返回值也为2,故输出的fib(3)的值为4。三、公共基础填空题(本题共5题,每题1.0分,共5分。)36、在算法正确的前提下,评价一个算法的两个标准是【】。标准答案:时间复杂度和空间复杂度知识点解析:暂无解析37、将代数式转换成程序设计中的表达式为【】。标准答案:SQRT(x2+y2)/(a+b)知识点解析:暂无解析38、软件危机出现于60年代末,为了解决软件危机,入们提出了【】的原理来设计软件,这就是软件工程诞生的基础。标准答案:软件工程学知识点解析:暂无解析39、【】是数据库设计的核心。标准答案:数据模型知识点解析:数据模型是对客观事物及联系的数据描述,它反映了实体内部及实体与实体之间的联系。因此,数据模型是数据库设计的核心。40、在关系模型中,把数据看成一个二维表,每一个二维表称为一个【】。标准答案:关系知识点解析:在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系。表中的每一列称为一个属性,相当于记录中的一个数据项,对属性的命名称为属性名;表中的一行称为一个元组,相当于记录值。四、填空题(本题共8题,每题1.0分,共8分。)41、在C++语言的面向对象程序设计框架中,【】是程序的基本组成单元。标准答案:类知识点解析:C++语言面向对象程序设计的基本组成单元是class,面向过程的程序设计的基本组成单元是函数。42、C++语言程序的注释可以出现在程序中的任何地方,一个注释以【】作为开始和结束的标记。标准答案:/**/知识点解析:C++语言程序的注释可以出现在程序中的任何地方,一个注释以“/*”开始,以“*/”为结束。43、以下程序的输出结果是【】。#include<iostream.h

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论