问答题 使用VC6打开考生文件夹下的源程序文件modi3.cpp,阅读下列程序说明和代码,功能如下: 从屏幕输入数字,然后由大到小插入指定的链中。当输入0时,表示输出的数据已经输入完成,然后把数据打印到屏幕,然后释放内存。 其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)在父节点的Next中保存新插入的节点的指针,请在注释∥*******1********后添加适当的语句。 (2)把pNext的子节点赋给pNext本身,请在注释∥********2********后添加适当的语句。 (3)判定P的子节点不为空,如果不为空,则打stp其中的数据到屏幕, 请在注释 ∥********3********后添加适当的语句。 (4)用temp1保存动态申请内存节点的链表头,请在注释∥********4********后添加适当的语句。 注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。 #i12Clude Class TeStClass { public: TestClass(int data=0) { this->data=data; this一>next=NULL; }, int data; TestClass* mext; }, void Insert(TestClass*P,int data) { TestClass*temp=new TestClass(data); TeStClass*pparent=p; TeStClass*pNext=p一>next; while(pNext) { if(data>pNext一>data) { ∥********1******** temp一>next=pNext; return; } E1se f pParent=pNext; ∥********2******** } } if(pNext=NULL) { pParent一>next=temp; retuen; } } void printf(TestClass*P) { ∥********3******** while() { cout<next一>data<<“”; P=P一>next; } cout<next; delete temp1; temp1=temp2; } } Void main() { int i=0; TestClass head; dp { int data; cout<<“请输入一个数字:”<>data; if(data=0)break; Insert(&head,data); }while(1); printf(&head); Delete(&head); return; }
【正确答案】正确答案:(1)添加语句:pParent->next=temp; (2)添加语句:pNext=pNext一>next; (3)将“while()”补充完整为:while(p一>next!=NULL) (4)将“TestClass*templ=;”补充完整为:TestClasS*templ=p一>next;
【答案解析】解析:在VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已给定源程序的main主函数开始入手,可以看出程序通过调用类TestClass实现各种输出操作。