首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
针对以下C语言程序,请按要求回答问题。 已知link. c源程序如下: /*link. c程序对单向链表进行操作,首先建立一个单向链表,然后根据用户的选择可以对其进行插入结点、删除结点和链表反转操作*/ #include<stdio. h
针对以下C语言程序,请按要求回答问题。 已知link. c源程序如下: /*link. c程序对单向链表进行操作,首先建立一个单向链表,然后根据用户的选择可以对其进行插入结点、删除结点和链表反转操作*/ #include<stdio. h
admin
2013-03-13
55
问题
针对以下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://jikaoti.com/ti/ZUE7FFFM
本试题收录于:
四级软件测试工程师题库NCRE全国计算机四级分类
0
四级软件测试工程师
NCRE全国计算机四级
相关试题推荐
数据结构被形式地定义为(K,R),其中K是(34)的有限集合,R是K上(35)的有限集合。
(19)是解决进程间同步和互斥的一对低级通信原语。
MIPS是用来衡量计算机系统的(12)这一性能指标的。
在编译程序中,语法分析的方法有自底向上分析和自顶向下分析。自底向上分析方法自左向右扫描输入符号串,通过(46)分析其语法是否正确。例如,(47)就是一种自底向上的分析方法,与其他自底向上分析方法不同,它是根据(48)来进行归约的。自顶向下分析方法从文法的开
需求分析的任务是借助于当前系统的物理模型导出目标系统的逻辑模型,解决目标系统“做什么”的问题。(52)并不是需求分析的实现步骤之一。
(17)这一计算机软件著作权权利是不可以转让的。
若有一个仓库,可以存放P1、P2:两种产品,但是每次只能存放一种产品,要求:①w=P1的数量-P2的数量②-i<w<k(i、k为正整数)若用PV操作实现P1和P2产品的入库过程,至少需要(51)同步信号量及(52)个互斥信号量,其中,同步
下列选项中,不属于职务发明创造的是(65)。
在常见的文字处理软件中,选择全文的快捷键是(1)。
在操作系统中引入并发可以提高系统效率。若有两个程序A和B,A程序执行时所做的工作按次序需要占用CPU:5秒,DEV1:5秒,CPU:10秒,DEV2:10秒,CPU:10秒;B程序执行时所作的工作按次序需要占用DEV1:10秒,CPU:10秒,DEV2:5
随机试题
小李希望对Excel2010工作表的D、E、F三列设置相同的格式,同时选中这三列的最快操作方法是________。
下列选项中,适用无过错责任原则的侵权责任是()。
我国《公司法》上关于资本金的规定、发行债券的条件限制等体现了公司法的()
治疗妊娠漏血,胎动不安,宜选用的药物是
《水污染防治法》规定,新建、改建、扩建直接或者间接向水体排放污染物的建设项目和其他水上设施,应依法进行()。
生羊皮的检验检疫监督类别是M.P/N.Q,说明该种货物进境时需实施品质检验和动植物检疫。( )报检时须提供国外官方出具的检疫证书正本。( )
“进口口岸”栏应填“标记唛码及备注”栏应填:
已知A公司销售当季收回货款的55%,下季度收回货款的40%,下下季度收回5%,预算年度期初应收账款金额为28万元,其中包括上年第三季度销售的应收账款10万元,第四季度销售的应收账款18万元。下列说法中不正确的是()。
WhoaretheresearchsubjectsofDr.Stone’sstudy?
CultureTherearesomanythingsaboutourlivesthatbelongtothecontentofculturethatitisimpossibletocoverthemal
最新回复
(
0
)