还剩42页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
2023年湖北省十堰市全国计算机等级考试C++语言程序设计模拟考试含答案学校:班级:姓名:考号:
一、
1.选择题10题.下面程序段执行结果是ointi=5k;k=++i+++i+i++;printf%d%dki;A.248B.218C.217D.
247.关系模型允许定义3类数据约束,下列不属于数据约束的是oA.A.实体完整性约束B.参照完整性约束C.域完整性约束D.用户自定义的完整性约束.假定MyClass为一个类,则该类的拷贝初始化构造函数的声明语句为A.MyClassMyClassx;B.MyClassMyClassxC.MyClassMyClassx;D.MyClassMyClass*x.要想使
23.78965421的输出为
23.7887应用的语句是A.cout
23.78965421;B.coutfixed
23.78965421;C.cout
23.78965421-
0.001;的功能为从键盘输入一个字符串,并将结果保存到文件
1.txt中注意不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在试题程序:#includeiostream#includefstreamvl**J*J*1vi**A个个个个个个个个^^nor个个个个个个个个usingstd;voidWriteFilechar*sofstreamoutl;vt*个个个个个不小个^^nor个个个个个个个个outl.openHl.txtbinary|app;forinti=0;s[i]!=0;i++^1*1*kJ*^1*个个个个个个个个^^nor个个个个个个个个outl.putss[i];outl.close;voidClearFileofstreamoutl;outl.opennl.txt;outl.close;intmainchars
[1024];ClearFile;cout«npleaseinputastrin9n«endl;cin.getlines1024;WriteFiles;returnO;.使用VC++
6.0打开考生文件夹下的源程序文件
1.cppo本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“”时,默认字符输入结束,最后把结果输出到屏幕中注意不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******errcr******的下面试题程序#includeiostream.hvoidmaininti=O;charstr
[120];cout«nEnterastringendwith.n«endl;///不下不不不个不不error下不不不、不不不cin.getlinestr120;个个个个个个小小^^ncor个个个个个个个个whilestr£#*1^个个个个个个个个^^nor个个个个个个个个str[i]=str[i]-a+A;i++;cout«str«endl;return;.使用VC++
6.0打开考生文件夹下的源程序文件
1.cpp该程序运行时有错误,请改正程序中的错误,使得程序输出98765注意错误的语句在/********error********/的下面,修改该语句即可其他的语句不能修改试题程序#includeiostream.hclassTCkL*kL*vl**1^不个不个个个不个个不个个个不不小TCintim1=1zvoidprintcout«—m_i«public intmi;intmainkL*kI*vj/*vL*vt*个个个个个个个不^^rror不不下个不不不不inti;TC0410;whilei5!***************!i++
04.print;cout«endl;returnO;.使用VC++
6.0打开考生文件夹下的源程序文件
1.cpp该程序运行时有错请改正程序中的错误,使程序输出的结果为1003732注意错误的语句在//******errcr******的下面,修改该语句即可试题程序:#includeiostream.herrorvoidmainintm=0142k1kJkJkIk|k1777,T,不不不小不不erpor不不不小不下intn=0X27intq=32;coutmendl;coutnendl;coutqendl;return;.使用VC++
6.0打开考生文件夹下的源程序文件
1.cpp该程序运行时有错误,请改正程序中的错误本程序要求实现的功能为从键盘输入一个字符串,并将结果保存到文件
1.txt中注意不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在试题程序:#includeiostream#includefstream77,*1,7,77usingstd;voidWriteFilechar*sofstreamoutl;*1*vl*个个个个个个个个个个个个个个个个outl.opennl.txt”binary|app;forinti=0;s[i]!=0;i++个个个个个个个个个个个个个个个小outl.putss[i];outl.close;voidClearFileofstreamoutl;outl.opennl.txt;outl.close;intmainchars
[1024];ClearFile;cout«npleaseinputastrin9n«endl;cin.getlines1024;WriteFiles;returnO;
41.使用VC++
6.0打开考生文件夹下的源程序文件
1.cpp该程序运行有问题,请改正main函数中的错误,使程序的输出结果为number=1number=10number=100注意不要改动main函数,不能增加或删除行也不能更改程序的结试题程序:#includeiostream.hclassTCpublic TCintinumber=i;voidSetNumberintmnumber=m;intGetNumberconstreturnnumber;voidPrintconstcout«nnumber=n«number«endl;private intnumber;voidmainkL*kL**1*vL*kL#kL#个个个不不不不不不不不个个个个个TCobjl;objl.Print;TCobj23;kIKLKL*k1vt个个个个个个个个^^nor个个个个个个个个objl.number=10;I!********error*******TC.SetNumberlOO;objl.Print;obj
2.Print;.使用VC++
6.0打开考生文件夹下的源程序文件
1.cpp本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“”时,默认字符输入结束,最后把结果输出到屏幕中注意不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******errcr******的下面试题程序#includeiostream.hvoidmaininti=O;charstr
[120];cout«nEnterastringendwith.H«endl;kL**1*k!不*T*个个个个个个个个个个个个个个cin.getlinestr120;whilestrxl*不不不个不干不不^^nor个个个个个个个个ifstr[i]=astr[i]=str[i]-a+A;i++;cout«str«endl;return;.使用VC++
6.0打开考生文件夹下的源程序文件
1.cpp该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果sizeofSl=5sizeofs2=10sizeofs3=l注意不要改动main函数,不能增加或删除行,也不能更改程序的结错误的语句在//******error******的下面⑴不能删除assert语句⑵只能修改后面的数字提示assert函数如果为假,则会产生一个中断异常试题程序#includeiostream.h#includeassert.hvoidmainchartsl=nabcn^^rror***assertsizeofs1==3:cout«nsizeofsl=5n«endl;chars2
[10]=nabn777777777个不不不不个不不不不不小个个不不assertsizeofs2==2;cout«nsizeofs2=10n«endl;chars3=23kL*7D.coutfixed
23.78965421-
0.001;.静态成员函数没有A.返回值B.this指针C.指针参数D.返回类型.非空的循环单链表head的尾结点由p所指向,满足oA.A.p-next==NULLB.p==NULLC.p-next=headD.p=head.下列叙述中错误的是A.在数据库设计的过程中,需求分析阶段必须考虑具体的计算机系统.在数据库设计的过程中,概念结构设计与具体的数据库管理系统有关C.在数据库设计的过程中,逻辑结构设计与具体的数据库管理系统有关D.在数据库设计的过程中,物理结构设计依赖于具体的计算机系统.不合法的main函数命令行参数表示形式是A.mainintachar^c[l]B.mainintarcchar**arvC.mainintargcchar*argvD.mainintargychar*argc[].数据库、数据库系统和数据库管理系统之间的关系是A.数据库包括数据库系统和数据库管理系统assertsizeofs3==4;coutsizeofs3=lendl;return;.使用VC++
6.0打开考生文件夹下的源程序文件
1.cpp该程序运行有问题,请改正main函数中的错误,使程序的输出结果为number=1number=10number=100注意不要改动main函数,不能增加或删除行也不能更改程序的结构,错误的语句在//******eiror******的下面试题程序#includeiostream.hclassTCpublic TCintinumber=i;voidSetNumberintmnumber=m;intGetNumberconstreturnnumber;voidPrintconstcout«nnumber=n«number«endl;private intnumber;);voidmainKLKE^个个个个个个个个^^rror个个个个个个个个TCobjl;objl.Print;TCobj23;个个个个个个个个^^nor个个个个个个个个objl.number=10;!1********e^*j*or*******TC.SetNumberlOO;objl.Print;obj
2.Print;.使用VC++
6.0打开考生文件夹下的源程序文件
1.cpp该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructori=0Destructor注意错误的语句在//******eiror******的下面,修改该语句即可试题程序:#includeiostream.hclassTCinti;public TC;voiddisplay;TC;};不不不不不不en*or不小不不不小TC TCcout«nConstructorn«ni=0;不可不不不不en*or不不可不不不TC displaytout«ni=n«i«nn«endl;不个个个不不eno]不不个个不不TC TCCOUI«nDestructorn«endl)voidmain(TCa;a.display;)
五、综合应用题2题.1“while应改为whileinfile.getch0⑵应添加bur[len++]=ch;bur[len]=ch;len++;3应添加“outfile2vvbur[i++];^t4outfile2«buf[i];i++;”4“TCobj;”应改为“TCobi”in.txt;【解析】本题考查了文件流的使用根据题意,第1处要获得一个字符,并判断是否到文件结尾,所以应使用get函数;第2处应将ch存入buf数组,同时让len增1;第3处将buf中的字节输出给outfile2注意同时让i增1否则while循环将进入死循环;第4处TC只确一个带char*参数的构造函数,所以创建对象时必须使用构造参数,根据题意这个参数应该是“”in.txt”.使用VC++
6.打开考生文件夹下的源程序文件
3.cpp其中定义了类A、A1和A2其中A1类由A类公有派生,A2类由A1类公有派生⑴定义类A的构造函数,该构造函数有一个整型的参数x在构造函数中请将x赋值给数据成员a请在注释“//********1*********之后添加适当的语句2定义类A1的构造函数,该构造函数有两个整型的参数x和y在构造函数中请将x赋值给数据成员b将y作为基类A构造函数的参数值传人请在注释“//********2*********之后添加适当的语句⑶定义类A2的构造函数,该构造函数有3个整型的参数xy和z在构造函数中请将x赋值给数据成员C将y和z分别赋值给基类A1构造函数的参数x和y请在注释“//********3********”之后添加适当的语句4完成类A2的成员函数show的定义,该函数调用基类成员函数,输出基类数据成员a和b及类A2自身的数据成员C的值,上述3个值在输出时以空格隔开请在注释“//********4********”之后添加适当的语句程序输出结果如下73738注意除在指定的位置添加语句之外,请不要改动程序的其他部分试题程序#includeiostream.hclassAinta;public1si*k1k!k|k!*.t*J、rj*Iry**y»«、^Jrjintgeta{returna;};classAl publicAintb;public//7*7*♦!*4*72*7\!*■!*7*■!/〃、
4、^T«、JrlJ、、T*Trj、、intgetb{returnb;}:classA2publicA1intC;public*1k1*^1**1*1**1kL**J*I*1*1*vl*JrT**T**T*^T*4*Tw^rw^r*voidshowII********4********;voidmainA2a
8.
3.7cout«a.geta«endl cout«a.getb«endl a.show;
六、
3.综合应用题2题.使用VC6打开考生文件夹下的工程testl4_3此工程包含一个testl4_
3.cpp其中定义了类File但类的定义并不完整请按要求完成下列操作,将程序补充完整1完成构造函数的定义,使数据成员filenamecontent指向为空请在注释“〃**1**,,之后添加适当的语句;2完成函数set_contents的定义,该函数为content申请新的空间来存储new_content的内容,成功返回true失败返回false请在注释“〃**2***之后添加适当的语句;3完成成员函数copyFilesourceFiletarget的定义,该函数实现将source的内容拷贝至target的功能,注意必须使用已经定义的成员函数来实现请在注释“〃**3**”之后添加适当的语句4完成析构函数的定义,要求释放content指向的空间请在注释“〃**4**”之后添加适当的语句输出结果如下file2:filelcontentsfile2file2contents注意除在指定的位置添加语句外,请不要改动程序中的其他语句源程序文件testl4—
3.cpp清单如下#includeiostream.h#includestring.hclassFile{private charfile_name
[64];char*contents;public Filechar*filename//eFil♦・••eFil**4**{uvoidprintfileO{coutfile_name contentsend1;friendboolcopyFilesourceFiletarget;boolset_contentschar*new_contents;;boolFile::set_contentschar*new_contentsH**2**ifcontents==NULLreturnfalse;strcpycontentsnew_contents;returntrue;boolcopyFilesourceFiletarget〃**3**voidmain{FileflCfilel”,f2nfile2H;fl.set_contentsnfilelcontents;copyflf2;f
2.printfile;f
2.set_contentsMfile2contents;f
2.printfile;.使用VC6打开考生文件夹下的工程testll_3o此工程包含一个testll_
3.cpp其中定义了类CPosition但该类的定义都并不完整请按要求完成下列操作,将类CPosition的定义补充完整⑴在类定义外完成重载的两个构造函数CPosition和CPositiondoubledxdoubledy其中前者为不带参数的构造函数,使CPosition对象的默认值为x=0y=0后者为带参数的构造函数,把数据成员x和y分别初始化为参数dx和dy的值请在注释“〃**1**”之后添加适当的语句2在类体中添加函数movedoubleaxdoubleay的定义,使得点的坐标x和y分别移动ax和ay个单位,请在注释“〃**2**”之后添加适当的语句3完成函数doubledistancedoublebxdoubleby的定义,该函数返回*this和点bxby的距离,请在注释“〃**3**”之后添加适当的语句注意除在指定的位置添加语句外,请不要改动程序中的其他语句源程序文件testll_
3.cpp清单如下#includeiostream.h#includemath.hclassCPositionpublic CPosition;CPositiondoubledxdoubledy;doublegetx;doublegety;//**2**doubledistancedoublebxdoubleby;private doublex;doubley;;〃**]**x=0;y=0;CPosition::CPositiondoubledxdoubledyx二dx;y=dy;doubleCPosition::getxreturnx;B.数据库系统包括数据库和数据库管理系统C.数据库管理系统包括数据库和数据库系统D.3者没有明显的包含关系.下列叙述中正确的是()oA.线性链表是线性表的链式存储结构B.栈与队列是非线性结构C.双向链表是非线性结构D.只有根结点的二叉树是线性结构
二、单选题(13题).在对函数进行原型声明时,下列语法成分中,不需要的是()oA.函数返回类型B.函数参数列表C.函数名D.函数体.下面关于C++流的叙述中,正确的是()A.cin是一个输入流对象B.可以用ifstream定义一个输出流对象C.执行语句序列char*y=PQMN;cout«y;将输出字符串PQMN的地址D.执行语句序列charx
[80];cin.getline(x80)的,若输入Happynewyear则X中的字符串是“Happy”
13.树是结点的集合,它的根结点的数目是()odoubleCPosition::getyreturny;doubleCPositiondistancedoublebxdoubleby〃**3**voidmaindoubleab;coutInputxypositionofapoint:;cinab;CPositionpsAab;cout“Inputxypositionofanotherpoint n;cinab;coutThedistanceisnpsA.distanceabendl;参考答案LB解析k=++i+++i+i++表达式中,“++”号在i前面的有两个,所以在计算k之前,i要先增两次,即i变为7然后再将3个7相加,使k得21;表达式中“++”号在i后面的有1个,所以得出k的值以后i又增1次变为
8.C解析关系模型允许定义3类数据约束,它们是实体完整性约束、参照完整性约束及用户自定义的完整性约束其中前两种完整性约束由关系数据库系统支持,对于用户自定义的完整性约束,则由关系数据库系统提供完整性约束语言,用户利用该语言给出约束条件,运行时由系统自动检查.C解析拷贝构造函数是一个特殊的构造函数,它用一个已知的对象初始化一个正在创建的同类对象,它的一般格式是类名::类名(const类名引用对象名).C解析C++语言中默认小数的输出位一共是6位,fixed的意义是在小数点后保留6位
5.B.C解析循环链表就是将链表的最后一个结点指向链表头结点(或第一个结点),即p-next=heado.B解析数据库设计主要分4个步骤需求分析、概念结构设计、逻辑结构设计、物理结构设计选项B错误,应为本题的正确答案,因为概念结构设计在需求分析的基础上对客观世界做抽象,独立于数据库的逻辑结构,也独立于具体的数据库管理系统,与具体的数据库管理系统无关
8.C
9.B解析数据库系统(DatabaseSystem简称DBS)包括数据库(Database简称DB)、数据库管理系统(DatabaseManagementSystem简称DBMS)数据库管理员、硬件和软件.A解析一个非空的数据结构如果满足下列两个条件
(1)有且只有一个根结点;
(2)每一个结点最多有一个前件,也最多有一个后件,则称为线性结构线性链表是线性表的链式存储结构,选项A的说法是正确的栈与队列是特殊的线性表,它们也是线性结构,选项B的说法是错误的双向链表是线性表的链式存储结构,其对应的逻辑结构也是线性结构,而不是非线性结构,选项C的说法是错误的;二叉树是非线性结构,而不是线性结构,选项D的说法是错误的因此,本题的正确答案为Ao.DDo【解析】函数声明的时候,是不需要实现部分的,也就是函数体.AAo本题考查C++流的溉念和I/O的格式化tin是istream类的对象,即输入流对象ifstream是输入文件流,类不能定义个输出流对象getline函数的功能是允许从输入流中读取多个字符,并且允许指定输入终止,在读取完成后,从读取的内容中删除该终止字符,所以D选项中的语句序列后x中字符串应该是Happynewyearo.C解析树具有明显的层次关系,即树是一种层次结构在树结构中,根结点在第一层上当树为非空时,树中有且只有一个根结点,当树为空时,树中根结点的数目为
014.A解析注意本题有个陷阱,马虎的考生将纷纷落马本来、while中的表达式应为k==l而本题却为k=l是赋值表达式而不是逻辑表达式因此,编译器将其值一直认为是1因此表达式一直为真,陷入无限次的循环
15.C本题主要考查了类模版类模板声明的语法形式是template<模板形参表〉class类名{类成员声明}
16.D解析定义了3个Name的对象,前2个定义带参数,执行第二个构造函数输出“”,第三个定义没带参数,执行第一个构造函数也输出“”;一共输出3个故选D)
17.BBo【解析】主要考查函数模板的定义声明一个函数模板的格式为“template模板形参表声明>><函数声明>,其中〈模板形参具有typename〈参数名〉、class〈参数名、<类型修饰><参数名〉三种形式,形参用括起来
18.A
19.D本题考察的是同名局部变量和全局变量的作用域之间的关系同时考察了静态变量的特点退出函数和进入函数并不影响静态变量的值因此,循环多次实际上完成静态变量的累加即1+2+3+4+5其值为15故答案为D
20.C
21.A本题考查的是在继承中派生类的对象调用构造函数的顺序,应该是先调用基类的构造函数,然后是成员中的对象对应类的构造函数,最后是派生类自己的构造函数
22.CCo【解析】本题考查变量的定义选项A是两条语句,用分号隔开,只定义了a为double型;选项B中,不允许这种声明赋值方式,语法错误;选项D中,类型与变量名之间不加逗号;选项C为正确的.C解析函数定义的一般形式为类型标识符函数名(形式参数列表){声明部分;语句}函数调用的一般格式为函数名(实参列表)而“int\u3000fUn(intint)”为函数声明,是可以不写形参名,只写形参的类型所以,可以看出函数fun的定义和调用都是正确的.x=y-
2.算法算法
26.
817.算法算法15解析考查++运算符的用法,各种运算符的应用,注意++-oi++为先做与i有关的运算后,i自加1而++i是先给i加1再进行与i有关的操作.算法算法.白盒法白盒法解析:单元测试又称模块测试,一般采用白盒法测试.消息消息解析消息是一个实例与另一个实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流.a0b0c0a+bcb+cac+aba0b0c0a+bcb+cac+ab解析本题考察考生将实际问题转换为逻辑表达式的能力根据三角形的基本定理“两边和大于第三边”可穷举出其表达式.输出结果输出结果.friendclassB;friendclassB;解析若把类B定义为类A的友元类,则应在类A中加入的定义语句为friendclassB;o.1应改为usingnamespacestd;\n2应改为outl.openl.txtios::binary|iosapp;\n3应改为“outl.puts[i];\n【解析】本题第1处的“usingstd广是在程序中引入标准命名空间std对于C++中引入标准命名空间的格式,缺少namespace所以第1处的语句修改为“usingnamespacestd;第2处,调用成员函数open中,输入、输出方式是在ios类中定义的,所以“outl.open是.txtbinary|app;”语句缺少类ios即第2处的语句修改为“outl.open.txfiosbinary|ios叩p;第3个标识应该用流成员函数put输出字符,所以第3处的语句修改为“outl.puts[i];.1应改为“ein.getlinestr120;\n2应改为whilestr[i]”\n【解析】本题中要求以输入字符“”为结束符,用于字符输入的流成员函数getline函数读入一行字符,格式为“cin.getline字符数组,字符个数终止标志字符字所以第1处改为“cin.getlinestr120;第2处的“whilestr”语句应该是判断字符串str中的每一个字符是否为结束符,若不是结束符,在循环中判断每一个字符是否为小写,若为小写,则转换所以应该修改为“whilestr[i]”第3处的“ifstr[i]=a”语句是判断字符str用是否为小写字符而现有的语句只是判断字符是否大于a但是小写字符应该是a到2所以修改为“ifstr[i]=astr[i]=zo.1应添力「public\n2“inti”应改为“inti10;\n3“i++;”应改为“i-;\n【解析】本题主要考查的是成员的访问属性成员的访问属性有公有、保护和私有3种,而默认的访问属性为私有,只有公有成员才能通过类的对象被访问故应在构造函数前添加“public:,否则该类无法被实例化变量的初始化可以通过“=”号,也可以和初始化对象一样添加构造参数,题目已要求使用后者本题要求输出5个数,while的循环变量i每次减1在i5时循环,故i初始化应为10若循环中i每次增1则循环永远不会退出
39.ltvoidmaino24intm=0144;3“intn=OX25;”或“intn===0x25;【解析】本题主要考查了主函数定义及幕同进制之间的转换,包括十进制到八进制,十进制到十六进制主函数定义的定义形式为“main”,函数名之后必须是一对括号,因此第1处应改为“voidmain”cout输出默认是以十进制方式输出的,根据题目要求输出的结果可发现变量的初值不正确,十进制的100对应八进制的144卡进制的37对应十六进制的25因止匕2和3应分另U改成“intm=0144;”,t4intn=0x25;”或“intn=0x25;.1应改为usingnamespacestd;2应改为outl.openl.txtiosbinaryIiosapp;3应改为“outl.puts[i];【解析】本题第1处的“usingstd;”是在程序中引入标准命名空间std对于C++中引入标准命名空间的格式,缺少namespace所以第1处的语句修改为“usingnamespacestd;第2处,调用成员函数open中,输入、输出方式是在ios类中定义的,所以“outl.openl.txtbinaryIapp;”语句缺少类ios即第2处的语句修改为“outl.openl.txtiosbinaryIiosapp;第3个标识应该用流成员函数put输出字符,所以第3处的语句修改为“outl.puts[i];”.1应改为TCobjll;”\n2应改为“Objl.SetNumberlO;\n3应改为“0bj
2.SelNumberlOO;\n【解析】本题第1处的“TCobjl;”语句是声明TC类的对象Objl根据TC类构造函数的定义TCinti存在整型参数,并且题目要求第一个输出结果两1所以补全参数1即第1处的“TCobjll;第2处处的“objl.number=10;”应该是调用成员函数SetNumber赋值在C++中成员函数的使用形式应该是对象名•成员函数,所以修改为“objl.SetNumberlO;类是对象的抽象,而对象是类的具体实例第3处“TC.SetNumberlOO第语句中的TC为类,并不是对象,这里应该使用定义的对象,即obj2所以将语句修改为“obj
2.SetNumberlOO;.1应改为“ein.getlinestr120;⑵应改为“while®巾]”3应改为“ifstr[i]=astr[i]=2^^【解析】本题中要求以输入字符“”为结束符,用于字符输入的流成员函数getline函数读入一行字符,格式为“cin.getline字符数组,字符个数,终止标志字符”,所以第1处改为“cin.getlinestr120;第2处的“whilestr”语句应该是判断字符串str中的每一个字符是否为结束符,若不是结束符,在循环中判断每一个字符是否为小写,若为小写,则转换所以应该修改为“whilestr[i]”第3处的“ifstr[i]=a”语句是判断字符str[i]是否为小写字符,而现有的语句只是判断字符是否大于a但是小写字符应该是a到2所以修改为uifstr[i]=astr[i]=zo.1应改为assertsizeofsl尸=4;\n2应改为assertsizeofs2尸=10;\n3应改为assertsizeofs3尸=1;”\n【解析】assert函数如果为假,则会产生一个中断异常所以要让它正常执行输出结果,那么assert函数只有为真,才不会产生中断异常uassertsizeofs1==3;”语句中“sizeofsD==3”为假,这会使程序产生异常,不能正常执行因为strl的值为abc但是它还有一个尾符,它的长度应该是4而不是3所以在第1处修改为“assertsizeofsD==4了str2
[10]说明str2的空间为10在第2处修改为“assertsizeofs2尸=10charstr3=23;语句说明23是字符,所占存储空间为1所以修改为uassertsizeofs3=l;.1应改为TCobjll;2应改为“Objl.SetNumberlO;3应改为“0bj
2.SelNumberlOO;【解析】本题第1处的“TCobjl;”语句是声明TC类的对象Objl根据TC类构造函数的定义TCinti存在整型参数,并且题目要求第一个输出结果两1所以补全参数1即第1处的“TCobjll;第2处处的“objl.number=10;”应该是调用成员函数SetNumber赋值在C++中成员函数的使用形式应该是对象名.成员函数,所以修改为“objl.SetNumberlO;类是对象的抽象,而对象是类的具体实例第3处“TC.例tNumberlOO;”语句中的TC为类并不是对象,A.有且只有1个B.1个或多于1个C.0个或1个D.至少有2个.有以下程序段intk=0;whilek=lk++;while循环执行的次数是A.无限次B.有语法错,不能执行C一次也不执行D.执行1次.在定义一个类模板时,模板形参表是用一对括号括起来的,所采用的括号是0A.B.L]C.D.{}.有如下程序#includeiostreamusingflamespacestd;className{charname
[20];public Name{strcpyname;cout«;Namechar*fname{strcpynamefname;cout«5;;intmain{Namenames
[3]={Name“张三”,Name李四”};return0;这里应该使用定义的对象,即bj2所以将语句修改为“obj
2.SetNumberlOO;.1应改为“TCTC”2应改为voidTCdisplay”⑶应改为“TC〜TC”【解析】在类的外部定义成员函数时,必须在成员函数前面加上类名和作用域运算符“”,作用域运算符用采表示某个成员属于哪个类,使用格式为“类名<成员函数〉参数函数,因此第1处应改为“TCTC”默认构造函数没有参数由第2处“TCdisplay”后的语句看,这是在类外实现TC函数,因此也有作用域运算符使用错误问题,display函数返回值为void因此第2处的语句应改为“voidTCdisplay”由第3处的语句“TCTC”可知,显然这里是在类外实现析构函数,析构函数是一个特殊的函数,它的名称和类名相同,并在前面加“〜”字符,用采与构造函数加以区别,因此第3处的语句应改为“TC〜TC”.使用VC++
6.0打开源程序文件
3.cppo其中类TC用于把文件输出到屏幕,然后进行文件的分割分割的方法如下第一个文件的大小是文件的前一半,另外一个文件的大小是剩余部分此程序将in.txt文件中的内容输出到\n屏幕,并且将文件按照以上方式分割,存于文件outl.txt和out
2.txt中\n其中定义的类并不完整按要求完成下列操作将类的定义补充完整\nl从输入文件中获得一个字符,并判断是否到文件结\n尾,如果到文件结尾,则退出循环请在注释1后添加适当的语句\n2把获得的输入文件的内容存储到bur中,并且用len\n记录下文件的长度请在注释2后添加适当的语句\n3将输入文件的后一半内容存储在第二个文件中,请W在注释3后添加适当的语句\n4使用文件流对象打开输入文件in.txt请在注释4\n后添加适当的语句\n注意增加代码或者修改代码的位置已经用符号表示出来请不要修改其他的程序代码\n试题程序\n#includeiostream.h\n#includefstream.h\n#includestdlib.h\nclassTC\n{\npublic\nTCchar*fileName\n{\nlen=O;\nfstreaminfile;\ninfile.openfileNameiosin;\ncharch;\n//\nwhile\n\ncout«ch;\//777,7k!7777777,7777\n//不小小不不不不小不不不小不不不不\n}\ninfile.close;\n}\nvoidsplit\n{\nfstreamoutfilel;\nfstreamoutfile2;\noutfilel.open!outl.txtios::out;\noutfile
2.openout
2.txtios::out;\ninti=0\nfori=0;ilen/2;i++\n{\noutfilel«buf[i];\n}\ndo\n{\//
7、!K.t\n//不小小小不不不不《不不不不不不不小\n}\nwhilei!=len;\noutfilel.close;\noutfile
2.close;\n}\nprwate\nintlen;\ncharbuf
[1024];\n};\nvoidmain\n{\n//51c4\nTCobj;\nobj.split;\nreturn;\n}.lFAintx{a=x;}“2“Alintxinty Ay{b=x;}”3“A2intxintyintz Alyz{c=x;}”4cout«geta«nn«getb«nn«c«endl;【解析】本题第1处要求定义类A的构造函数,该构造函数有一个整型的参数x在构造函数中请将x赋值给数据成员a构造函数没有返回值类型,所以应填“Aintx{a=x;}”第2处第3处根据继承中对象的初始化语法规则可知第4处要求调用基类成员函数,由于都是公有继承,ge-tagetb都是自身类的公有函数,所以根据继承规则,在对象A2中,依然是公有的可以通过对象A2直接调用.1strcpyfile_namefilename;contents=NULL;2contents=newstrcpyfile_namefilename;\r\ncontents=NULL;\r\n2\r\ncontents=newchar[strlennew_contents+1];\r\n3\r\nreturntargetsetcontentssource.contents;\r\n4\r\ndelete[]contents;解析主要考查点为类的构造函数的定义、字符串函数的使用及动态空间的申请与释放等注意字符串函数的使用,其中strlen返回字符串含有字符的数目,strcpy是将参数2的字符串赋值给参数1的字符串.1CPositionCPosition2voidmovedoubleaxdoubleay{x+=ax;y+=ay;};3returnsqrtpowx-bx2+powy-by2;l\r\nCPositionCPosition\r\n2\r\nvoidmovedoubleaxdoubleay{x+=ax;y+=ay;};\r\n3\r\nretumsqrtpowx-bx2+powy-by2;解析本题主要考查考生对于类的定义和重载构造函数的掌握情况在3中使用了基本的数学函数sqrtx求x的开方powxn函数是求x的n次方)运行此程序输出符号的个数是A.OB.lC.2D.317下列关于模板形参的描述中,错误的是()A.模板形参表必须在关键字template之后B.模板形参表必须用括弧()括起来C.可以用class修饰模板形参D.可以用typename修饰模板形参.模板参数表中参数使用的分隔符号是A.B.;C./D.以上都不是.A20B24C25D
15.有如下语句序列ifstreaminfilenDATA.DATn;ifinfile.goodcout«nAn;else{cout«nBn;ofstreamoutfilenDATA.DATH;ifoutfile.failcout«nCn;elsecout«nDn;若执行这个语句序列显示的是BD则说明文件DATA.DATA.以读方式打开成功B.以读方式打开失败,但以写方式打开成功C以读方式打开失败,以写方式打开也失败D.以读方式打开成功,以写方式打开也成功.建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、C(派生类)构造函数),这3种构造函数的调用顺序为()oA.abCB.aCbC.CabD.Cba.下列选项中正确的定义语句是()A.doublea;b;B.doublea=b=7;C.doublea=7b=7;D.doubleab;.对下列程序段的描述正确的是()oincludeiostream.hintfun(intint);voidmain(){coutfun(l2)endl;}intfun(intxinty){returnx+y;}A.该函数定义正确,但函数调用方式错误B.该函数调用方式正确,但函数定义错误C.该函数定义和调用方式都正确D.该函数定义和调用方式都错误
三、
2.填空题12题.表达式x=operator-yz可以表示为[]o.计算机技术中,为解决一个特定问题而采取的特定的有限的步骤称为【】.以下程序的运行结果是【】#includeiostream.hfuncintaintbstaticintm=0i=2;i+=m+1;m=i+a+b;returnm;voidmain{intk=4m=lp;p=funckm;coutp;p=funckm;coutpendl;.[]是精确定义的一系列规则,它指出怎样从给定的输入信息经过有限步骤产生所求的输出信息.下列程序的输出结果是【】#inCludeiostreamrsingnamespacestd;templatetypenameTTfunTaTb{retuma=ba:b;intmaincoutfun36\fun
3.14F
6.28Fendl;.return0;.有以下程序#include”iostream.hvoidmain{inti=10;intj=5;coutj+i++endl;}的结果为o.问题处理方案的正确而完整的描述称为o.单元测试又称模块测试,一般采用【】测试.在面向对象的程序设计中,用来请求对象执行某一处理或回答某些信息的要求称为【】.根据三角形的基本定理完成填空,则表达式为[】#includeiostreamh#includemathhvoidmaindoubleabcsarea;cout”请输入三角形三边abc:endl;cinabc;ifs=a+b+c/2;area=sqrts*s-a*s-b*s-ccout三角形的面积为:area;elsecout〈不能构成三角形!endl;.为了便于对照检查,测试用例应由输入数据和预期的【】两部分组成.若把类B定义为类A的友元类,则应在类A中加入定义语句【】
四、程序改错题10题.使用VC++
6.打开考生文件夹下的源程序文件
1.cpp该程序运行时有错误,请改正程序中的错误本程序要求实现。