首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
针对以下C语言程序,请按要求回答问题。 已知link. c源程序如下: /*link. c程序对单向链表进行操作,首先建立一个单向链表,然后根据用户的选择可以对其进行插入结点、删除结点和链表反转操作*/ #include<stdio. h
针对以下C语言程序,请按要求回答问题。 已知link. c源程序如下: /*link. c程序对单向链表进行操作,首先建立一个单向链表,然后根据用户的选择可以对其进行插入结点、删除结点和链表反转操作*/ #include<stdio. h
admin
2013-03-13
27
问题
针对以下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://jikaoti.com/ti/eUE7FFFM
本试题收录于:
四级软件测试工程师题库NCRE全国计算机四级分类
0
四级软件测试工程师
NCRE全国计算机四级
相关试题推荐
软件的维护并不只是修正错误。为了满足用户提出的增加新功能、修改现有功能及一般性的改进要求和建议,需要进行(55),它是软件维护工作的主要部分。
以下关于面向对象技术的叙述中,说法错误的是(48)。
对于二维数组A[0..5,1..8],设每个元素占1个存储单元,且以列为主序存储,则元素A[3,6]相对于数组空间起始地址的偏移量是(40)。
在虚拟存储系统中,相联存储器的访问方式是(24)寻址的。
在单指令流多数据流计算机(SIMD)中,各处理单元必须(17)。
在操作系统中引入并发可以提高系统效率。若有两个程序A和B,A程序执行时所做的工作按次序需要占用CPU:5秒,DEV1:5秒,CPU:10秒,DEV2:10秒,CPU:10秒;B程序执行时所作的工作按次序需要占用DEV1:10秒,CPU:10秒,DEV2:5
信息安全就是要防止非法攻击和病毒的传播,保障电子信息的有效性,从具体的意义上来理解,需要保证哪几个方面的内容?(40)。 Ⅰ.保密性(Confidentility)Ⅱ.完整性(InteSdty)Ⅲ.可用性(Availability)Ⅳ.可控性
设求解某问题的递归算法如下: F(int n){ if n==1{ Move(1); } else{ F(n-1); Move(n);
许多网络通信需要进行多播,以下选项中不采用多播协议的应用是(25)。在 IPv4中把(26)类地址作为多播地址。
在下面的IP地址中属于C类地址的是(62)。
随机试题
关于真菌的培养,不正确的是
某地调查110名男性,感染某疾病30人;120名女性,感染人数40人。则下列正确的是
投标文件应当对招标件作出实质性响应的内容有()。
数据驱动程序的主要优点是程序结构简单。()
过度工作和压力不可避免导致失眠症。森达公司的所有管理人员都有压力。尽管医生已经提出警告,但大多数的管理人员每周工作仍然超过60小时,而其余的管理人员每周仅仅工作40小时。只有每周工作超过40小时的员工才能得到一定的奖金。以上的陈述最能支持下面哪项结
李克强总理在西安看望慰问快递员时曾说:“快递业是中国经济的‘黑马’,你们把幸福快递给千家万户。”近年来,随着电子商务的爆发式增长,快递服务实现了几近翻番式增长。2013年,我国快递业务量为92亿件,居世界第二,2014年突破100亿件,中国快递业跨入“百亿
错(malocclusion)
二进制数11000000对应的十进制数是
Whatistheadvertisementmainlyabout?
HowmanyChineseAmericansarethereintheU.S.today?
最新回复
(
0
)