1、国家二级 C+机试(操作题)模拟试卷 357及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modicpp,该程序运行时有错误,请改正错误,使得程序正常运行,并且要求最后一个 catch()必须抛出执行的任何异常。 程序通过抛出异常输出: error 0 ERROR 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 linclude int msin() try throw(“error”); *error* catch(char s) coutn
2、ext; h 一next=NULL; while(s!=NULL) for(t=s,v=h; v!=NULL V 一datadata;u=v,v= V一next); s=s 一next; if(v=h) h=t; else u 一neXt=v; t 一next=v: return h; void msin() TestClass*h=NULL; TestClass*q=NULL; do int data; coutdata; if(data=0)brea k; TestClass*p= new TestClass(data); if(h=NULL) h=q=p; else q 一SetNext
3、(p); q=p; while(1); h=fun(h); for(;h!=NULL;) q=h 一next; coutnext; h 一next=NULL; while(s!=NULL) for(t=s,v=h; v!=NULL V 一datadata;u=v,v= V一next); s=s 一next; if(v=h) h=t; else u 一neXt=v; t 一next=v: return h; void msin() TestClass*h=NULL; TestClass*q=NULL; do int data; coutdata; if(data=0)brea k; TestCl
4、ass*p= new TestClass(data); if(h=NULL) h=q=p; else q 一SetNext(p); q=p; while(1); h=fun(h); for(;h!=NULL;) q=h 一next; coutdata“”_正确答案:(正确答案:(1)添加语句:Testclass(int d) (2)添加语句: friend Testclas s*fun(TestClass*); (3)添加语句:friend void main(); (4)添加语句:h=q;)解析:解析:本题的功能是将键盘输入的数字建立一个链表。在 VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已定源程序的 main主函数开始入手,可以看出程序通过调用类 TestClass和函数 fun实现各种输出操作。