首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
针对以下C语言程序,请按要求回答问题。 已知link. c源程序如下: /*link. c程序对单向链表进行操作,首先建立一个单向链表,然后根据用户的选择可以对其进行插入结点、删除结点和链表反转操作*/ #include<stdio. h
针对以下C语言程序,请按要求回答问题。 已知link. c源程序如下: /*link. c程序对单向链表进行操作,首先建立一个单向链表,然后根据用户的选择可以对其进行插入结点、删除结点和链表反转操作*/ #include<stdio. h
admin
2013-03-13
66
问题
针对以下C语言程序,请按要求回答问题。
已知link. c源程序如下:
/*link. c程序对单向链表进行操作,首先建立一个单向链表,然后根据用户的选择可以对其进行插入结点、删除结点和链表反转操作*/
#include<stdio. h>
#include<stdlib. h>
typedef struct list_node * list_pointer; //定义链表指针
typedef struct list_node{ //定义链表结构
int data;
list_pointer link;
}list_node;
//用到的操作函数
list_pointer create(); //建立一个单向链表
void insert(list_pointer * p_ptr,list_pointer node); //在node后加入一个新的结点
void delete_node(list_pointer * p_ptr,list_pointer trail,list_pointer node);
//删除前一个结点是trail的当前结点node
void print(list_pointer * p_ptr); //打印链表结点中的值
list_pointer invert(list_pointer lead); //反转链表
int main()
{
list_pointer ptr=NULL;
list_pointer node,trail;
list_pointer * P=&ptr;
int choose,location,i;
printf("you should create a link first:\n");
//建立一个单向链表
prt=create(); //ptr指向链表的第一个结点
print(ptr);
//根据用户的不同选择进行相应的操作:
printf("input number 0,you can quit the program\n");
printf("input number 1,you can insert a new node to link\n"):
printf("input number 2,you can delete a node from the link\n");
printf("input number 3,you can invert the link\n"):
printf("please input you choice\n");
scanf("%d",&choose);
while(choose!=0){
switch(choose){
case 1:
i=1:
while(i<location){
node=node->link;
i++:
}
insert(p,node); //p为指向ptr的指针
print(ptr);
break;
case 2:
printf("you will delete a node from the link\n");
printf("please input the location of the node:\n");
scanf("%d",&location):
node=ptr;
if(location==1)
trail=NULL;
trail=ptr;
i=1:
while(i<location){
trail=trail->link:
i++:
}
node=trail->link;
delete_node(p,trail,node);
print(ptr);
break;
case 3:
printf("you will invert the link\n");
ptr=invert(ptr);
print(ptr);
break;
default;
break;
return -1;
}
printf("please input you choice\n");
scanf("%d". &choose):
}
return 0;
//根据用户的输入值建立一个新的单向链表:
list_pointer create()
{
int i,current,length;
list_pointer p1,p2,head;
printf("please input the node number of the link:\n");
scanf("%d". &length):
printf("the number of the link is:%d",length);
printf("please input the data for the link node:\n");
i=0;
p1=p2=(list_pointer)malloc(sizeof(list_node));
head=p1;
for(i=1;i<length;i++){
scanf("%d",&current);
p1->data=current;
p2->link=p1;
p2=p1;
p1=(list_pointer)malloc(sizeof(list_node));
}
p2->link=NULL;
return head;
}
画出主函数main的控制流程图。
选项
答案
主函数的控制流程如下图所示。 [*]
解析
转载请注明原文地址:https://kaotiyun.com/show/saNZ777K
本试题收录于:
四级软件测试工程师题库NCRE全国计算机四级分类
0
四级软件测试工程师
NCRE全国计算机四级
相关试题推荐
网络传输介质包括有线介质与无线介质,但(61)目前还不是网络传输介质。网络的数据传输速率通常采用单位bps,它代表(62)。
关系数据库的三种基本关系运算是(23)。在关系代数运算中,(24)运算结果的关系模式与原关系模式相同。
下列各项中不属于设备管理技术的是(18),设备管理中引入通道的主要目的是(19)。
甲企业委托张明开发一个软件。张明对曾经为乙企业开发的一款同功能软件略作修改后,提交给甲企业。张明的行为(27)。
当客户机需要接收电子邮件时,客户端软件(例如,OutlookExpress或FoxMail等)与POP3服务器之间建立一条(66)连接。
类的实例化过程不仅是根据单个类进行的空间分配、初始化和绑定,它是一种实例的合成过程。指与编译程序进行这种合成的是(46)。
对于具有n个元素的一个数据序列,若只需要得到其中第A个元素之前的部分排序,最好采用(43)。
执行算术右移指令的操作过程是(34)。
数字视频信息的数据量相当大,必须对数字视频信息进行压缩编码才适合于存储和传输。下面关于数字视频压缩编码的叙述中,错误的是(39)。
随机试题
阀门按控制作用不同,可分为几类?各类的主要作用是什么?
列出student表中所有男同学数据的SQL语句是______。
用治顽固性头痛,宜选
患者,女,43岁。近3个月来劳力后心悸,气短收入院。心脏杂音20年,查体:血压:110/70mmHg,心界扩大,心率122次/分,律不齐,S1强弱不等,脉短绌,心尖Ⅲ/6级全收缩期杂音,向腋下传导,有轻度舒张期隆隆样杂音,肺底部湿啰音。首要治疗措施为
我国《商业银行资本充足率管理办法》规定,计入附属资本的长期次级债务不得超过核心资本的()。
毛泽东曾在一首诗里写道“我欲因之梦寥廓,芙蓉国里尽朝晖”,其中“芙蓉”指的是()。
曙光机械厂、华业机械厂、祥瑞机械厂都在新宁市辖区。他们既是同一工业局下属的兄弟厂,在市场上也是竞争对手。在市场需求的五种机械产品中,曙光机械厂擅长生产产品1、产品2和产品4,华业机械厂擅长生产产品2、产品3和产品5,祥瑞机械厂擅长生产产品3和产品5。如果两
已知矩阵A=那么下列矩阵中与矩阵A相似的矩阵个数为()
在窗体中添加一个名称为Commandl的命令按钮,然后编写如下事件代码:PrivateSubCommandl_Click()Dima(10,10)Form=2To4Forn=4To5a(m
Intheearliesttimes,childrenneededtolearn______.
最新回复
(
0
)