《2023年9月计算机二级c++试题及答案.docx》由会员分享,可在线阅读,更多相关《2023年9月计算机二级c++试题及答案.docx(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2 0 2 3年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间9 0分钟,满分100分)一、选择题(1 ) - (10)、( 2 1 )(40)每题2分,(11)- (20)每题1分洪70分)A (1)下列数据结构中,属于非线性结构的是A)循环队列AB)带链队列A C)二叉树D)带链栈A(2)下列数据结果中,可以按照“先进后出原则存取数据的是A)循环队列B)栈C)队列A D)二叉树(3)对于循环队列,下列叙述中对的的是Q队头指针是固定不变的AB)队头指针一定大于队尾指针C)队头指针一定小于队尾指针aD)队头指针可以大于队尾指针,也可以小于队尾指针(4)算法的空间复杂度是指A)算法在
2、执行过程中所需要的计算机存储空间B)算法所解决的数据量aC)算法程序中的语句或指令条数&D)算法在执行过程中所需要的临时工作单元数a(5)软件设计中划分模块的一个准则是A)低内聚低耦合aB)高内聚低耦合C)低内聚高耦合D)高内聚高耦合a6( a)下列选项中不属于结构化程序设计原则的是234 C)* 12 3A *234D) * * * 1 23234*(35)有如下类定义clas s A char *a;public:A():a(O)卜A(char *aa)( 把aa所指字符串拷贝到a所指向的存储空间a=;s trcpy (a, aa);st r cp y (a,aa); a a a () d
3、elete a;卜 ;横线处应填写的表达式是aA) nes c harstr 1 en( a a)+ 1 B) char st r le n (a a )+ 1 C) char str 1 cn( a a)D )new c harsizeo f (aa)-1 二、填空题(每题2分,共30分)* a(1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有 【1】个结点。(2 )程序流程图中的菱形框表达的是一【2】o(3)软件开发过程重要分为需求分析、设计、编码与测试四个阶段,其中_01_产生”软 件需求规格说明书a (4 )在数据库技术中,实体集之间的联系可以是一对一或一对多或多对
4、多的,那么 “学生”和“可选课程”的联系为【4】。a(5)人员基本信息一般涉及:身份证号,姓名,性别,年龄等。其中可以作为主关键字的 是5】。会(6)若表达式(x+(y-z) *(m/n)+3中的变量均为dou ble型,则表达式值的类型为_ _161。(7 )有如下循环语句:Fo r ( i n t i =50; i20; i-= 2 ) cout i :运营时循环体的执行次数是 Q1。A(8)运用表达式ai可以访问i n t型数组a中下标为i的元素。在执行了语句i n t *p=a;后,运用指针p也可访问该元素,相应的表达式是_L1L o(9)下面是一个递归函数,其功能是使数组中的元素反序
5、排列。请将函数补充完整。会void r ev e r se (in t *a, int s i ze) i f ( s ize2) re t urn;-* in t k=a 0 ;a 0 = a siz e -1;asize_ 11= k ; a revers e (a+ 1 、【9】);A A ( 10)类S a mple的构造函数将形参data赋值给数据成员d ata。请将类定义 补充完整。 class S a mple public:-* Sampl e (in t data=0);A Priv a te:Int data;);Sample: S amp 1 e(int data)【10
6、】)(II)有如下类定义:a c 1 ass Samplep u blic:Samp 1 e (); S ample() ;a Pr i v a t e :a Stat i c int d a t e; a ;将静态数据成员da t a初始化为0的语句是【II】 一 向(12)“图形类Sh a pe 中定义了纯虚函数CalArea(), “三角形”类T r iang 1 e继承了类Shape,请将Tri angle 类中的C al Area函数补充完整。class Sh a pe-* publ i c:vi r tua 1 in t C a 1 A r e a ()=0;acl a s s T
7、 r i angle: public Sh a p e a p u blic:Triangl e i n t s , in t h: s i de(s),heig h t (h) 卜 【12】 r e tu r n s i de*h e ight / 2 ; a pri v ate:i nt s i d e i n t h eig h t;冷(13)有如下程序:a # i nclude using namespace s t d;A c 1 ass Gra n dChildAp u blic:-* GrandChi 1 d () s t repy ( n ame,“ U nkn o w n);
8、 const char * g e t Name()co n s t r e tu r n n a me; virtual c har * getAddr e s s()const=0;pr i vate:c h ar name2 0 ; a) a c 1 ass GrandSon : p u blic Gr a ndC hildpubl i c:a GrandS o n char *nam e Char * getA d dr e ss() const retu r n S h anghai; ;in t main() a Gr a ndCh i 1 d * g s= n ew G r an
9、dSo n (t4Fcif e i ); a co u t get Name( ) vv住在“Vvg s -getAd d r e ss()end 1 ;* de 1 e te g s ;a return 0 ;a 运营时的输出结果是13。(14)如下程序定义了“单词”类word,类中重载了运算符,用于比较“单词”的大小,返回相应的逻辑值。程序的输出结果为:Aft e r So r ting: H叩py W e Icome,请将程序补 充完整。# i n c lud e i o stream #inc 1 u de A using namespace s td;cla s s Word p u
10、 bli c :aWo r d(strin g s): str(s) str i n g ge t Str () return s t r;a 【14】const return (strou t p u t w. str; return outp u t;a privat e :ast ringstr* ;Int main()A Wo r d wl (Hap py),w2(Welco me”);aCoutMAf t er sorti ng:“泠 if( w 1 w2) coutwl, w 2 ;e Ise co u tw2, lw 1;r etur n 0 ;卜(1 5 )请将下列模板类Dat
11、a补充完整。tempi a t e ac las s Data-* public:void P ut (T v) v a 1= v ; a【15】g et() 返回数据成员va 1的值,返回类型不加转於 r e tu r n v a 1; -* privates T v a 1 ;*);2 0 23年9月全国计算机等级考试二级C+笔试参考答案、选择题(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)(11)D(12 )C(13 )B(14)C(15 )B(16)A(17)D(18)A(19)C(2 0)D(21)B(22)D(23)C(24)B(2 5)D(26)A(27)C(28
12、)B(29 )D(30)A(3 1 )B(32)D(33)C(3 4 )B(35)A二、填空题(6) d oubl e15(8)*(p + i)(9) s i z e -1(10) this da t a = d ata;(1 1 ) i nt S a mple: :dat a = 0;(12)i n t Cal A r e a (size,height)(13)Unkn o wn 住在 Sha n gha i(14)b o ol operator (Word w)(15) TA)可封装AD)自顶向下C)模块化aD)逐步求精(27)有如下程序:#inclu de usi n g namcsp
13、a cc s td;c lass T oyA public:I oy(cha r * _n) str c p y ( n ame,_n); c o unt+;-T o y() c o unt-char* Ge t Name() return name; a static int getC o un t ()( r e t urn c o unt; 卜 priva t e :char n amef 1 0;static int cou n t ; a; a int Toy:: c o u nt= 0 ;i n t ma i 1 () T o y tl (4Sn o opyv),t 2 (Mick
14、ey),t3(Barbie);Ac o u t t 1. g e tCoun t () endl; r e tu r n 0;)运营时的输出结果是A) 1 a B) 2C)3D)运营时犯错a (2 8)有如下程序a #includc using namespace s(d;class A public:A(in t i):rl (i) void prinl() co u tvvevv r 1v oi d p rint() cons t co ut D) v4a (I 3 )有如下类定义:c 1 ass XXint x d a ta;A publ i c :aXX(in t n= 0 ) : x
15、 d ata ( n) a ;a c lassYY : publ i cXX int y data; a publics YY (ini m=0, int n=0) :XX(m) , y d a t a(n) 溥YY类的对象包含的数据成员的个数是A)1B ) 2C)3D) 4(14)下列有关运算符函数的描述中,错误的是A)运算符函数的名称总是以。perato r为前缀B)运算符函数的参数可以是对象aC)运算符函数只能定义为类的成员函数D)在表达式中使用重载的运算符相称于调用运算符重载函数a(15)下列关于模板形参的描述中,错误的是A)模板形参表必须在关键字t e mpla t e之后B)模板形
16、参表必须用括弧()括起来C)可以用c lass修饰模板形参aD)可以用typ e n a me修饰模板形参a(16)在下列枚举符号中,用来表达“相对于当前位置”文献定位方式的是a A) i os_ b as e :cua B) i os_base: b egC) io s _b a se: : o ut-* D )ios_base: e nda ( 1 7)下列字符串可以用作C+标记符的是aA) 20 2 3varA B) goto C)test - 2023D)23A a ( 1 8)下列枚举类型的定义中,包含枚举值3的是aA) enum test RED, YELL OW, BLUE, B
17、LACK);B) enum t est RED, Y ELLOW=4, BLUE, BLAC K C) en uni test RED =-l, YELLOW, BLUE, BLACK:a D) enum te s t RED, YELLOW =6, BLU E, B LACK);(19)有如下程序段:1 n t i= 1;a wh i le (1) i +; a jf(ii +; a jf(i1 0) b r ea k ;if(i%2 = 0) cou t C) 4D)5A(20)已知数组 arr 的定义如下:a i n t a r r 5 =1,2 ,3,4,5;下列语句中输出结果不是2的
18、是A) c ou t *arr+ 1 endl;A B)c o u t *( a r r +l)e n dl;C ) cout arrl endl; D) cout el s e i f (n = 1) r et u r n2;a c 1 se ret u r n fib (nl)+fib(n -2);a若执行函数调用表达式fib (2),函数fib被调用的次数是A)1B) 2 A C) 3 A D)4(22)Sampl e是一个类,执行下面语句后,调用Samp) e类的构造函数的次数是a S a mpl e a 2, *p = n e w S a mp 1 e;A)0B)1C)2D) 3A(
19、23)下列关于虚基类的描述中,错误的是A)使用虚基类可以消除由多继承产生的二义性B)构造派生类对象时,虚基类的构造函数只被调用一次 C)声明cl a ssB : virt u al pu b 1 ic A”说明类B为虚基类D)建立派生类对象时,一方面调用虚基类的构造函数(24 )将运算符重载为类成员函数时,其参数表中没有参数,说明该运算是aA)不合法的运算符aB) 一元运算符aC)无操作数的运算符D)二元运算符a(25)有如下模板声明:t em p 1 a t e class A;下列声明中,与上述声明不等价的是aA)temp 1 ate class A; * B) templa t e cl
20、ass A;C) t emp 1 a te c 1 a ss A ; aD)t e mpl a te clas s A;,(26)下列关于C+流的描述中,错误的是A) cout,A,表达式可输出字符AB)eof()函数可以检测是否到达文献尾aC)对磁盘文献进行流操作时,必须包含头文献fs treamA D)以i o s _base:oul模式打开的文献不存在时,将自动建立一个新文献(27)有如下程序:a# in c lude A using n a mes p ac e std;A c la ss T o y a public: a Toy(ch a r* _n) strcpy (name,_
21、n) ; c ount+ + ;卜 Toy() co u nt-; -* c ha r * GetName () ret u r n name;卜 stati c i nt g etC o unt () r e tu r n count; 卜 p rivat e :a c h ar n a me 1 0: a st a ti c i n t cou n t ;):1 nt T o y:count=0;i n t mail() aToy tl(Sn oopy”),t2(Mickey),t3 (Barbie);A coutt 1 .g et C o un t ( ) e n dl;return 0
22、; a运营时的输出结果是AA) IB) 2A C) 3A D)运营时犯错(28)有如下程序a #include usi n g namesp a ce std;-* class A pub 1 ic:A(int i ): r 1 (i ) 卜 v oid p r i n t() c outvver 1v o i d pr i nt () co n st coutvvCwrl* rlvv -;pr i v a t e :a i nt rl;-*;i n t main()A al( 2 ); c o nst A a2(4);A ALpiint() ;a2.pri n t () R e t u r
23、n 0;卜运营时的输出结果是A)运营时犯错8) E2-C16-OC4-C16-D)E 2-E4 -(2 9 )有如下程序:#includ e u sing names p ace st d ;c lass Name a charname20;publ i c:a Name()strcpy(n a me,M,); c o u t*? ;a-* Nam e (ch a r *fname)A s t r c py(n ame,fnam e ); cou t B)1a C)2A D) 3(3 0)有如下程序:a # i n c ludeA usi n g n am e s p ace s t d;pu
24、 b 1 ic# A A() cout,l,; a ;a class B B : p u blic AAint k;* publics BB():k(O) cout2;B B(int n):k(n) cout*3,;Iint mai n ()B B b( 4 ), c ;r e turn 0;卜运营时的输出结果是a A) 1 312D ) 132A C) 32D)14 1 2(3 1 )有如下程序:#incl u deA u s i n g n a mesp a ce std;c 1 a ss Cl publ i c:C 1() c o ull;卜);C lass C2: public cl
25、a pu b 1 i c:a c 2() cout2; a; a i nt ma i n()A C2 cb2;A Cl *cbl;retur n 0 ;卜 运营时的输出结果是A)12 1B) 21AC)2 11D) 12A(3 2 )有如下程序a# i n c lud e u s i n g n a mes pace sid c lass Publ i cation / /出版物类ch a r n a me3 0 ; .* public:Pu b 1 i cation(char * n ame=未知名称”)st r cpy( t h i s- n a me,nam e ); a con s t
26、 char * ge t Name() co n st retur nname;卜 v i r tualcon st char* ge tTy pe()co n st ret u rn”未知类型”;a;4class Bo o k: pub1 i c Pub 1ic ation/书知 public淖 B o o k (c h ar *name):P ubli c ati o n ( name) vi r t u al con s t char * getType ()c o nst retur n”书;a;v o id s h owP u bl i c a ti o n( P ubl i ca
27、t i o n &p)cou t p.ge t T y p e ()vv:vvp.ge t N a me ()en d 1; a i n t main()Book book(“精彩人生”);sho w P u bl i cation(book);r e tu r n 0 ; a a运营时的输出结果是A)未知类型:未知名称aB)未知类型:精彩人生C)书:未知名称aD)书:精彩人生(3 3)下列关于运算符重载的描述中,错误的是A)::运算符不能重载a B)类型转换运算符只能作为成员函数重载aC)将运算符作为非成员函数重载时必须定义为友元D)重载口运算符应完毕“下标访问”操作a (34)有如下程序:a # i nc 1 ude# inclu d e A Using nam e spa c e std; a int mai n ()a int sj= 1 2 3 , 23 4 ;c ou t r i ghts e t f )setw( 6 ); a f o r(in t i =0; i V 2 ; i+ + ) cou t s Lile n dl; r etu r n 0;卜运营时的输出结果是AA) 123A23 4 A B)*12 3
限制150内