《2023年四川省成都市全国计算机等级考试C++语言程序设计真题(含答案)》由会员分享,可在线阅读,更多相关《2023年四川省成都市全国计算机等级考试C++语言程序设计真题(含答案)(49页珍藏版)》请在金锄头文库上搜索。
1、2023年四川省成都市全国计算机等级考试C+语言程序设计真题(含答案)学校:_ 班级:_ 姓名:_ 考号:_一、1.选择题(10题)1. 以下程序运行后,输出结果是#definePT5.5#defineS(x)PT*x*xmain()inta=1,b=2;printf(%4.lfn,S(a+b);A.49.5 B.9.5 C.22 D.452.下列有关数据库的描述,正确的是_。A.数据库是一个DBF文件 B.数据库是一个关系 C.数据库是一个结构化的数据集合 D.数据库是一组文件3. 程序设计方法要求在程序设计过程中A.先编制出程序,经调试使程序运行结果正确后再画出程序的流程图B.先编制出程序
2、,经调试使程序运行结果正确后再在程序中的适当位置处加注释C.先画出流程图,再根据流程图编制出程序,最后经调试使程序运行结果正确后再在程序中的适当位置处加注释D.以上三种说法都不对4.下列有关运算符重载的叙述中,正确的是()。A.运算符重载是多态性的一种表现B.C+中可以通过运算符重载创造新的运算符C.C+中所有运算符都可以作为非成员函数重载D.重载运算符时可以改变其结合性5. 在软件测试中,白盒测试方法是通过分析程序的 _ 来设计测试用例的方法。A.应用范围 B.内部逻辑 C.功能 D.输入数据6. 派生类中的成员不能直接访问基类中的()成员。A.public B.private C.virt
3、ual D.protected7. 下列叙述中,错误的是()。A.派生类可以使用private派生B.对基类成员的访问必须是无二义性的C.基类成员的访问能力在派生类中维持不变D.赋值兼容规则也适用于多继承的组合8. 设int x =(1,3,5,7,9,11,13),*p=x;则不能正确引用数组元素的表达式是 _。A.*(p-) B.*(-p) C.*(p+) D.*(+p)9.下列字符串中不能作为C+标识符使用的是()。A.WHILE B.user C._lvar D.9stars10.在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是()A.派生类的对象可以赋给基类的对象
4、B.派生类的对象可以初始化基类的引用C.派生类的对象可以直接访问基类中的成员D.派生类的对象的地址可以赋给指向基类的指针二、单选题(13题)11.关于关键字class和typename,下列表述中正确的是()。A.程序中的typename都可以替换为classB.程序中的class都可以替换为typenameC.在模板形参表中只能用ypename来声明参数的类型D.在模板形参表中只能用class或typenanle来声明参数的类型12.对于类定义class Apublic:void func2;class B:public A public:w)id funcl| coutclass B fu
5、nc l”endl:virtual voiIl fimc2coutclass B func 2 endl:;下面正确的叙述是( )。A.A:rune2和B:funcl都是虚函数B.A:func2和B:funel都不是虚函数C.B:funcl是虚函数,而A:func2不是虚函数D.B:funcl不是虚函数,而A:func2是虚函数13.要定义整型数组 x ,使之包括初值为 0的三个元素,下列语句中错误的是A.int x3=0,0,0;B.int x=0;C.static int x3=0;D.int x=0,0,0;14.15.下列关于运算符重载的叙述中,错误的是( )。A.有的运算符可以作为非
6、成员函数重载B.所有的运算符都可以通过重载而被赋予新的含义C.不得为重载的运算符函数的参数设置默认值D.有的运算符只能作为成员函数重载16.17. 对于类定义 class A public: virtual void funcl() void func2() ; class D:public A public: void funcl()cout class B rune 1end1; virtual void func2()cout class B func 2end1; ; 下面正确的叙述是 _。A.A:func2()和B:funcl()都是虚函数B.A:func2()和B:funcl()都
7、不是虚函数C.B:func1()是虚函数,而A:func2()不是虚函数D.B:func1()不是虚函数,而A:func2()是虚函数18. 对于拷贝构造函数和赋值操作的关系,正确的是( )。A.拷贝构造函数和赋值操作是完全一样的操作B.进行赋值操作时,会调用类的构造函数C.当调用拷贝构造函数时,类的对象正在被建立并被初始化D.拷贝构造函数和赋值操作不能在同一个类中被同时定义19. C+语言是以哪种语言为基础逐渐发展演变而成的一种程序设计语言A.ASP B.C C.VB D.Java20.下列程序的运行结果为( )。#include templateclass FFTT al,a2,a3; p
8、ublic:FF(TT bl,TT b2,TT b3)al=bl;a2=b2;a3=b3; TT Sumreturn al+a2+a3;void main FFx(int(11),2,3),Y(int(42),5,6); coutxSumYSumendl; A.61 152 B.6 15 C.6 152 D.61 1521. 有以下程序:classDatepublic:Date(inty,intm,intd);year=Y:month=m;day=d;Date(inty=2000)year=y;month=10;day=1;Date(Dated)year=dyear;month=dmonth;
9、day=dday;voidprint()coutyear(monthdayendl;private:intyear,month,day;Datefun(Dated)Datetemp;temp=d;returntemp;intmain()Datedatel(2000,1,1),date2(0,0,0);Datedate3(datel);date2=fun(date3);return0;程序执行时,Date类的拷贝构造函数被调用的次数是()。A.2 B.3 C.4 D.522.有如下程序:#includedusingnamespacestd;classTestClassinta;pubIic:Te
10、stClass(intx)a=x;voidshow()couta;);classTestClassl:publicTestClassintb;public:TestClassl(inti):TestClass(i1),b(i)voidshow()coutshow();return0;该程序运行后的打印结果是()。A.5 B.1 C.0 D.223. 有如下程序 #includeiostream.h int func(int a,int b) return(a+b) ; void main( ) int x=2,y=5,z=8, r; r=func ( func(x,y),z); cout r;
11、 该程序的输出的结果是A.12 B.13 C.14 D.15三、2.填空题(12题)24. 软件需求规格说明书应具有完整性、无歧义性、正确性、可验证性、可修改性等特性,其中最重要的是_。25. 软件设计模块化的目的是【 】。26. 有以下程序:#includeiostreamusing namespace std;class Basepublic:Base()K0;int x;class Derivedl:virtual public Basepublic:Derivedl()x10;class Derived2:virtua1 public Base27. 以下程序执行后的输出结果是【 】。
12、#includeiostream.hmain()int i, m=0,n=0,k=0;for(i=9;i= 11 ;i+)switch(i/10)case 0: m+; n+; break;case 10: n+; break;default: k+; n+;coutmnk;28. 若要把类B定义为类A的友元类,则应在类A的定义中加入语句_。29. 有如下定义:class MAint value;public:MA(int n=0):value(n);MA*ta,tb;其中MA类的对象名标识符是_。30. 对象根据所接受的消息而做出动作,同样的消息被不同的对象所接受时可能导致完全不同的行为,这种现象称为_。31. 在下面程序横线处填上适当内容,使得程序的输出为9876。#include iostreamusing namespace std;templateclass Tvoid f(【 】)T t;for (int i=0;in/2;i+)t=a Ii;a i=an-1-i;a n-1-i=t;int main ( )int x=6,7,8,9;f(x,4);for (int i=0;i4;i+)coutxi;coutend1;return 0;32. 若有以下程序:#include iostreamusing namespace s