1、二级C语言考试模拟 (考试时间120分钟,满分100分)一、选择题(每小题1分,共40小题,共40分)1下列叙述正确的是()。A算法的执行效率与数据的存储结构无关B算法的空间复杂度是指算法程序中指令(或语句)的条数C算法的有穷性是指算法必须能在执行有限个步骤之后终止D以上三种描述都不对2下列叙述中正确的是()。A软件测试应该由程序开发者来完成B程序经调试后一般不需要再测试C软件维护只包括对程序代码的维护D以上三种说法都不对3源程序的文档化不包括()。A符号名的命名要有实际意义B正确的文档形式C良好的视觉组织D正确的程序注释4下列叙述中错误的是()。A一种数据的逻辑结构可以有多种存储结构B数据的
2、存储结构与数据的处理效率无关C数据的存储结构与数据的处理效率密切相关D数据的存储结构在计算机中所占的空间不一定是连续的5下列叙述中正确的是()。A在模块化程序设计中,一个模块应该尽量多地包括与其他模块联系的信息B在自顶向下、逐步细化的设计过程中,首先应设计解决问题的第一个细节C在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则D在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法6设有如下三个关系表:下列操作中正确的是()。AT=RSBT=RSCT=RSDT=RS7将E-R图转换到关系模式时,实体与联系都可以表示成()。A属性B关系C键D域8设有两个字符串p和q,求q
3、在p中首次出现位置的运算称为()。A连接B模式匹配C求子串D求串长9,在对象方法中,一个对象请求另一个对象为其服务的方式是通过发送()来实现。A调用语句B命令C中令D消息10设计数据库的存储结构属于()。A需求分析B概念设计C逻辑设计D物理设计11下列关于运行符重载的描述中,正确的是()。A运算符重载可以改变操作数的个数B运算符重载可以改变操作数的优先级C运算符重载可以改变运算符的结合性D运算符重载可以使运算符实现特殊功能12当需要将一个函数boolisnunlber(charc)声明为内联函数时,此内联函数的函数原型为()。Aenumboolisnumber(charc);Bdefinebo
4、olisnumber(charc);Cinlineboolisnumber(charc);Dextemboolisnumber(charc);13有如下数组声明:intnum10】;,下标值引用错误的是()。Anum10Bnum5Cnum3Dnum014对于复制构造函数和赋值操作的关系,正确的是()。A复制构造函数和赋值操作是完全一样的操作B进行赋值操作时,会调用类的构造函数C当调用复制构造函数时,类的对象正在被建立并被初始化D复制构造函数和赋值操作不能在同一个类中被同时定义15有如下函数模板声明:templateTMax(Ta,Tb)return(ab)?a:b;下列对函数模板Max()的调
5、用中错误的是()。AMax(35,45)BMax(35,4)CMax(35,45)DMax(35,4)16关于continue语句叙述不正确的是()。Acontinue语句用于循环体中,结束循环Bcontinue语句用于循环体中,它使执行流跳出循环体中尚未执行的语句,并进行下一循环判断Ccontinue可以用于if语句中Dcontinue语句不能代替break语句17若有说明:inta34;则对a数组元素的非法引用是()。Aa02*1Ba13Ca4-20Da0418下列关于虚函数与函数重载区别的叙述中不正确的是()。A函数说明形式上不同B函数允许非成员函数重载,虚函数只能是成员函数C函数重载的
6、调用依据参数和类型的差别,虚函数则依据对象D函数重载的本体可以在类外定义,虚函数不可以19控制格式输入输出的操作中,设置域宽的函数是()。AWSBoctCsetfill(int)Dsetw(int)20继承机制的作用是()。A信息隐藏B数据封装C定义新类D数据抽象21下列关于this指针的叙述中,正确的是()。A任何与类相关的函数都有this指针B类的成员函数都有this指针C类的友元函数都有this指针D类的非静态成员函数才有this指针22下面关于C流的叙述中,正确的是()。Acin是一个输入流对象B可以用ifstream定义一个输出流对象C执行语句序列char*y=PQMN;couty;
7、将输出字符串PQMN的地址D执行语句序列charx80;cingetline(x,80);时,若输入Happynewyear,则X中的字符串是“Happy”23有如下程序:#includedusingnamespacestd;classTestClassprotected:TestClass()coutX;TestClass(charc)coutc;classTestClassl:publicTestClasspublic:TestClassl(charc)coutC;intmain()TestClassld1(y);return0;执行这个程序,屏幕上将显示输出()。AyByxCxyDyy2
8、4下列虚基类的声明中正确的是()。AclasSvirtualB:publicABvirtualclassB:publicACclassB:publieAvirtualDclassB:virtualpublicA25下列程序的执行结果是()。#includeclassSampleintx,y;public:Sample()x=y=0;Sample(inta,intb)x=a;y=b;Sample()if(x=y)coutx=yendl;elsecoutx!=yendl;voiddisp()coutx=x,y=yendl;voidmain()Samples1(2,3);s1disp();Ax=2,
9、y=2Bx=3,y=3Cx=2,y=3Dx=3,y=226下面程序的运行结果为()。#includevoidmain()chara=3:switch(a)case3:cout3;case2:cout2;break;default:cout1;A3B321C31D3227有如下程序:#ineludeusingnamespacestd;classTestpublic:Test()n=2;Test()n-=3;staticintgetNum()returnn;private:staticintn;intTest:n=1;intmain()Test*P=newTest:deleteP;coutn=Te
10、st:getNum()endl;return0;执行后的输出结果是()。An=0Bn=1Cn=2Dn=328若有以下程序:#includeusingnamespacestd;classBasepublic:Base()x=0;intx;classDerivedl:virtualpublicBasepublic:Derivedl()x=10;classDerived2:virtua11publicBasepublic:Derived2()x=20;classDerived:publicDerivedl,protectedDerived2;intmain()Derivedobj;coutobjxe
11、ndl;return0;该程序运行后的输出结果是()。A20B30C10D029下列程序的输出结果是()。#includedusingnamespacestd;intmain()chara=Hell0,Test;char*p=a;while(*p)if(*p=a*p=z)coutchar(*pA-a);elsecout*P;p;return0;Ahell0,testBHell0,TestCHELL0,TESTDhELL0,tEST30:有如下程序:#includedusingnamespacestd;classTestClassprivate:intx,Y;public:TestClass(i
12、nti,intj)x=i:y=j;voidprint()coutprintlendl;voidprint()constcoutprint2endl;intmain()constTestClassa(1,2);aprint();return0;该程序运行后的输出结果是()。AprintlBprint2Cprintlprint2D程序编译时出错31下面程序的运行结果是()。#includeclassbaseprotected:inta;public:base()cout0;classbasel:virtualbasepublic:basel()cout1;classbase2:virtualbas
13、epublic:base2()cout2;classderived:publicbasel,publicbase2public:derived()cout3;voidmain()derivedobj;coutendl;A0123B3120C0312D301232下列程序的运行结果为()。#includetemplateclassFFTTa1,a2,a3;public:FF(TTb1,TTb2,TTb3)a1=b1;a2=b2;a3=b3;TTSum()returna1a2a3;voidmain()FFx(int(11),2,3),y(int(42),5,6);coutxSum()ySum()e
14、ndl;A61152B615C6152D611533下面程序的运行结果为()。#includevoidswap(inta,intb)inttemp;temp=a;a=b:b=temp:voidmain()inta=2,b=3;swap(a,b);couta,bendl;A2,3B3,2C2,2D3,334以下程序的输出结果是()。min()inti=0,a=0;while(i20)for(;)if(i10)=0)break;elsei-:i=11;a=i;coutaendl:A21B32C33D1135有如下类声明:classXA(intX;public:XA(intn)x=n;classXB
15、:publicXAinty;public:XB(inta,intb);在构造函数XB的下列定义中,正确的是()。AXB:XB(inta,intb):x(a),y(b)BXB:XB(inta,intb):XA(a),y(b)CXB:XB(inta,intb):x(a),XB(b)(DXB:XB(inta,intb):XA(a),XB(b)36有下列程序:#includevoidmain()char*a=abcd,ef,gh,ijk);inti;for(i=0;i4;i)printf(C,*ai);程序运行后的输出结果是()。AaegiBdfhkCabcdDabcdefghijk37若已定义int
16、a=1,2,3,4,5,6,7,8,9,10,p=a,i=5;则对数组元素不正确的引用是()。Aap-aB*(ai)CpiD*(*(ai)38对于语句“coutsetfill(*)setw(10)1serfill(*)setw(2)2;”的输出结果是()。A*1*2B*12C*1*2D12*39有以下程序:#includeusingnamespacestd;classApublic:A()coutA;classBpublic:B()coutB;classC:publicABb;public:C()coutC;intmain()Cobj;return0;执行后的输出结果是()。ACBABBACC
17、ACBDABC40下列程序的运行结果是()。#includeintx=5;intfun(inta)intc:c=X*a:returnC;voidmain()intx=3,a=4;x=xfun(a);coutx=xendl;Ax=15Bx=17Cx=23Dx=25二、程序改错题(18分)使用VC60打开考生文件夹下的源程序文件1cpp,该程序运行时有错,请改正程序中的错误,使程序输出的结果为Number=7Number=12注意:错误的语句在*error*的下面,修改该语句即可。试题程序:#includeclassTCpublic:*error*TC(inti):Number=i*error*r
18、eturnNumber;voidset(inti)Number=i;voiddisplay()coutNumber=Numberdisplay();p-set(12);p-display();return;三、简单应用题(24分)使用VC60打开考生文件夹下的源程序文件2cpp。阅读下列函数说明和代码,补充空出的代码。函数sum(intn)用于计算在n范围内,能被7和11整除的所有整数的和(包括n在内)。注意:不能修改程序的其他部分,只能补充sum函数。试题程序:#includedoublesum(intn)voidmain()coutsum(80)endl;coutsum(500)endl;
19、coutsum(1000)endl;return;四、综合应用题(18分)使用VC60打开考生文件夹下的源程序文件3cpp,要求编写一个CMyShape类,含有求面积、周长等的纯虚函数,然后编写一个CRectangle类和CCircle类继承CMyShape,并实现求面积、周长的两个函数。在main函数中测试得到下面的结果:在CMyShape类构造函数内在CCircle类构造函数内在CMyShape类构造函数内在CReetangle类构造函数内myCircle:Area=314159Girth=628319myRectangle:Area=900Girth=120具体要求如下:(1)定义求面积
20、的纯虚函数,请在注释1后添加适当的语句。(2)定义求周长的纯虚函数,请在注释2后添加适当的语句。(3)请在注释3和注释4后添加适当的语句。注意:除在指定位置添加语句之外,不要改动程序中的其他内容。试题程序:#include#inelude#definePI31415926classCMyPointpublic:intX,y;CMyPoint(inttx,intty):x(tx),y(ty);classCMyShapepublic:CMyShape()cout在CMyShape类构造函数内endl;*1*2*protected:;classCCircle:publicCMyShapepublic
21、:CCircle(CMyPointi,doublej):CMyShape(),arc-Center(i),radius(j)cout在CCircle类构造函数内endl;doubleGetArea()returnPI*radius*radius:doubleGetGirth()return2*PI*radius:private:CMyPointarcCenter;doubleradius;classCRectangle:publicCMyShapepublic:CRectangle(CMyPointIt,CMyPomtrb):leftTop(it),rightBottom(rb),CMySha
22、pe()cout在CRectangle类构造函数内endldoubleGetArea()intwidth=abs(rightBottomX-leftTopx);intheight=abs(rightBottomy-leftTopy);returnwidth*height:doubleGetGirth()intwidth=abs(rightBottomx-leftTopx);intheight=abs(rightBottomy-leftTopy);return2*(width+height):private:CMyPointleftTop,rightBottom;voidmain()CMySha
23、pe*myShape=NULL;CCircle*myCircle=newCCircle(CMyPoint(5,5),10);CRectangle*myRectangle=newCRectangle(CMyPoint(0,O),CMyPoint(30,30);*3*coutmyCircle:Area=myShape-)GetArea()tGirth=myShape-)GetGirth()endl;*4*toutmyRectangle:Area=GetArea()tGirth=GetGirth()endl;全国计算机等级考试新版无纸化上机考试临考冲刺模拟实战(三)一、 选择题1下列叙述正确的是()
24、。A算法的执行效率与数据的存储结构无关B算法的空间复杂度是指算法程序中指令(或语句)的条数C算法的有穷性是指算法必须能在执行有限个步骤之后终止D以上三种描述都不对1C。【解析】算法的执行效率与数据的存储结构密切相关。算法的空间复杂度是指算法执行过程中所需的存储空间。2D。【解析】程序调试就是诊断和改正程序中的错误,由程序开发者完成。软件测试是为了发现错误而执行程序的过程,它由专门的测试人员完成。软件维护是指软件系统交付使用以后,为了改正错误或满足新的需要而修改软件的过程,是软件生存周期中非常重要的一个阶段。3B。【解析】源程序的文档化主要包括三点:符号名应具有一定实际的含义,便于理解程序功能;正确的程序注释;良好的视觉组织,利用空格、空行、缩进等技巧使程序层次清晰。4B。【解析】数据的存储结构分为顺序结构和链式结构,一个数据的逻辑结构可以有多种存储结构。顺序结构中数据元素所占的存储空间是连续的,而链式存储结构中,数据元素所占的存储空间不一定是连续的。数据的存储结构与数据的处理效率密切相关。5C。【解析】在模块化程序设计中模块之间的联系可以通过程序的控制结构来实现。在自顶向下、逐步细化的设计过程中,首先要考虑全局目标,而不是细节。在程序设计中,模块化和结构化可以同时使用,一个模块的内部结构也要符合结构化设计原则。6C。【解析】关系代
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1