首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
针对以下C语言程序,请按要求回答问题。 已知link. c源程序如下: /*link. c程序对单向链表进行操作,首先建立一个单向链表,然后根据用户的选择可以对其进行插入结点、删除结点和链表反转操作*/ #include<stdio. h
针对以下C语言程序,请按要求回答问题。 已知link. c源程序如下: /*link. c程序对单向链表进行操作,首先建立一个单向链表,然后根据用户的选择可以对其进行插入结点、删除结点和链表反转操作*/ #include<stdio. h
admin
2013-03-13
36
问题
针对以下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函数的语句覆盖率能达到100%。如果认为该函数的语句覆盖率无法达到100%,需要说明原因。
选项
答案
设计测试用例如下: 输入数据:choose=0,预期输出:0。 输入数据:choose=1,预期输出:在链表某位置的结点后插入一个结点。 输入数据:choose=2,预期输出:删除链表中某个位置的结点。 输入数据:choose=3,预期输出:反转链表的链接顺序。 输入数据:choose=其他非零数,预期输出:-1。 采用条件覆盖设计的测试用例如下表所示。 [*]
解析
转载请注明原文地址:https://kaotiyun.com/show/zaNZ777K
本试题收录于:
四级软件测试工程师题库NCRE全国计算机四级分类
0
四级软件测试工程师
NCRE全国计算机四级
相关试题推荐
面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析、设计和实现一个软件系统的方法和过程,尽可能接近于人类认识世界解决问题的方法和过程。因此面向对象方法有许多特征,如软件系统是由对象组成的;(50);对象彼此之间仅能通过传递消息互相联系;层
单个用户使用的数据视图的描述为(22)。
下列各项中不属于设备管理技术的是(18),设备管理中引入通道的主要目的是(19)。
MIPS是用来衡量计算机系统的(12)这一性能指标的。
计算机可以使用各种高级程序设计语言编写的程序,但是运行时必须经过编译程序把它们转换成(30),才能在计算机上执行。
若有一个仓库,可以存放P1、P2:两种产品,但是每次只能存放一种产品,要求:①w=P1的数量-P2的数量②-i<w<k(i、k为正整数)若用PV操作实现P1和P2产品的入库过程,至少需要(51)同步信号量及(52)个互斥信号量,其中,同步
在操作系统中,外设从数据交换的方式可分为字符设备和块设备两类,下面不是字符设备的是(43)。
设甲、乙同为计算机软件企业。甲企业得知乙企业研制新型杀毒软件后,窃取了其核心技术并率先推出产品。在这一过程中,甲企业侵犯了乙企业的(26)。根据《中华人民共和国刑法》和(27)的规定,甲企业应承担一定的行政、民事以及刑事责任。
许多网络通信需要进行多播,以下选项中不采用多播协议的应用是(25)。在 IPv4中把(26)类地址作为多播地址。
随机试题
以下关于滚动计划法的说法,正确的有()
呕吐痰饮内阻证的临床特点是
脂肪酸进行β氧化的形式是
患者男性,58岁。肝癌晚期,在病房大叫疼痛,浑身大汗淋漓,根据癌痛治疗原则,可首选
在公路工程进度计划主要形式中,主要用于公路工程投标文件中施工组织设计的附表,以反映公路工程的施工进度的是()。
总承包单位将其承包工程中的专业工程发包给有相应资质的其他承包单位完成的活动称为( )。
19世纪德国经济学家瓦格纳提出的税收原则包括()。
1937年卢沟桥事件的爆发,促使原本针锋相对的国共两党暂停对立状态,继而选择了国共合作,建立抗日民族统一战线。用马克思主义哲学原理来进行分析,这一历史事实说明了()。
捷通路桥公司是一家具备路桥建设资质的公司,通过招标与某市市政部门签订了承建吊桥的工程合同。工程合同签订后,捷通公司与A设计院签订了吊桥设计合同。经发包人同意将吊桥两边的土石方工程分包给乙公司。两年后,该工程通过竣工验收,该桥设计的保质期为70年,该桥的管理
产业资本循环是( )
最新回复
(
0
)