精品文档
x):删除顺序表L中第一个值小于x的元素,若该表中没有小于x的元素则不作任何操作。(10分)
3.设有一个带头结点的单链表,表中各数据元素为无序的正整数,编写下列2个函数。(10分) (1)node *find_min_node(node *h) :找出头指针h指向的单链表中数据值最小的结点,打印该结点的数据值,并返回该结点指针;(5分)
(2)void switch_next_node(node *p) :若指针p指向的结点数据值为奇数,则将该结点与其直接
.
精品文档
后继结点的数值交换,若指针p指向的结点无后继结点或数据值为偶数,则不做任何操作;(5分)
软件技术基础答案
.
精品文档
一,填空
1,逻辑结构; 数据操作集合 2, 链式 ; 顺序 3,0 ;1 4,队列 ;栈 5, 36 6, 5 ; 7 ; 1023 。 7, n-i+1 ; n-i 8, front == (rear + 1) % MAX , front==rear 9, 图 10, 互斥条件 ;部分分配条件;不可剥夺条件 11, pcb(进程控制块);后备 12. 软件设计;编程实现 ; 软件测试 二,选择
ADAAC BBDCA DCCDB
三,简答题 1,
(1)软件设计的任务是将需求分析阶段获得的需求说明书转换为计算机中可实现的系统,完成系统的结构设计,包括数据结构和程序结构,最好得到软件设计说明书。(2分) (2)软件设计通常可分为两个步骤:概要设计和详细设计。(1分)
(3)概要设计完成软件系统的模块的划分和模块的层次结构以及数据库设计;
详细设计完成每个模块的控制流程的设计。(2分) 2.,
第一趟:[3,12],24,45,1,18 第二趟:[3,12,24],45,1,18 第三趟:[3,12,24,45],1,18 第四趟:[1,3,12,24,45],18 第五趟:[1,3,12,18,24,45]
3 4
四,程序题
(5分)
.
精品文档
1,下面是实现二分查找算法的函数,试将其补充完整。
high=n-1; low<=high mid=(low+high)/2; low=mid+ high=mid-1; 2,
typedef struct
{ int data [10]; int num ; } listtype ;
void dellist(listtype *L,int x); /* 删除函数声明 */ main( )
{ listtype list={78,91,66,95,35,88,52,100},*L; /* int x; L=&list; l->num=8;
scanf(“%d”,&x); dellist(L,x); }
void dellist(listtype *L,int x) {int i,j;
for(i=0;i { for (j=i+1; j } } } 3, typedef struct node { int data; struct node *next; }node; void main() { node *head,*p; head=creat( ); /*创建单链表*/ p=find_min_node(head); /*查找数据值最小的结点*/ . 初始化顺序表*/ 精品文档 switch_next_node(p); } node *find_min_node(node *h) { int min; node *p,*t; if(h==NULL) return NULL; p=h->next; t=NULL; min=p->data; while(p!=NULL) { if(p->data printf(\ return t; } void switch_next_node(node *p) { node *q; int t; q=p->next; if(q==NULL || p->data%2==0) return; t=p->data; p->data=q->data; q->data=t; } .