问答题 请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,函数voidInsert(node*q)使程序能完成如下功能:从键盘输入一行字符,调用该函数建立反序单链表,再输出整个链表。注意:请勿修改主函数main和其他函数中的任何内容,只需在横线处编写适当代码,也不要删除或移动“//****found****”。//proj2.cpp#include<iostream>usingnamespacestd;Structnode{chardata;node*link;}*head;//链表首指针voidInsert(node*q)//将节点插入链表首部{//********found********________;head=q;}intmain(){charch;node*P;head=NULL;tout<<"Pleaseinputthestring"<<end1;while((ch=cin.get())!='n'){//********foHnd********________;//用new为节点p动态分配存储空间P->data=ch;//********found********________;//插入该节点}p=head;while(p!=NULL){tout<<p->data;p=p->iink;}tout<<end1;return0;}
【正确答案】正确答案:(1)q->link = head (2)p = new node (3)Insert(p)
【答案解析】解析:(1)主要考查考生对链表的掌握,函数功能是将节点插入链表首部。在插入链表首部,即将该节点的指针域指向头结后head。 (2)主要考查考生对动态分配的掌握,用new为节点p动态分配存储空间节点P为node类型,因此直接使用new node分配空间并将首地址赋给P即可。 (3)程序要求插入该节点,应调用Insert函数,并将指针P作为函数的实参。