电子科技大学 软件技术基础试题带答案

发布时间 : 星期六 文章电子科技大学 软件技术基础试题带答案更新完毕开始阅读

精品文档

D. 层次,网状、关系

30.下面那个协议是应用层协议 D

A. IP B. TCP C. UDP D. HTTP 得 分 三、简答题( 共36分)

1.设元素1、2、3、4、5依次进栈,在输出端得到序列32451,给出应进行的各入栈和出栈操作。(5分)

Push 1; push 2; push 3; pop 3; pop 2; push 4; pop 4; push 5; pop 5; pop 1(每句0.5分)

2.设单链表结点结构定义如下,现要在单链表中删除指针p所指结点的直接后继(此结点及其直接后继均存在),给出各操作语句。(5分)

struct node { int data;

struct node *next; };

struct node *q; (1分) q=p->next; (1分) p->next=p->next->next; (2分) free(q); (1分)

3.给出下图二叉树的先序、中序和后序遍历序列,其中左右子树的遍历先左后右。(6分)

先:2,8,12,16,20,13,32,9,10 中:12,16,8,20,2,13,9,32,10 后:16,12,20,8,9,10,32,13,2

(每个2分)

16 .

2 8 12 20 13 32 9 10 精品文档

4.以关键字序列(53,12,80,64,32,92,17,75,45,26)为例,写出快速排序的各趟

结果。(8分)

[26,12,45,17,32] 53 [92,75,64,80] [17,12] 26 [45,32] 53 [80,75,64] 92 12,17,26,32,45,53 [64,75] 80 92 12,17,26,32,45,53,64,75,80,92

(每趟2分)

5.已知一个图的边集为{(1,2),(1,4),(1,7),(2,3),(2,4),(3,5),(3,6),(4,

5),(5,8),(6,8),(7,8)},画出这张图的邻接矩阵和邻接表结构示意图,并给出从2开始的深度优先和广度优先遍历序列(邻接点编号小的先访问)。(8分)

0 1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 (2分)

6 .

1 2 3 4 5 2 3 5 5 ? 8 ? 8 ? 8 ? 4 4 ? 6 ? 7 ? 7 8 ? 精品文档

(2分) 深度:2,1,4,5,3,6,8,7 (2分) 广度:2,1,3,4,7,5,6,8 (2分)

6.已知有一组序列为(17,26,38,27,46,72,82,93),设哈希表长m=14,哈希函

数H(key)=key。利用二次探测再散列处理冲突,建立哈希表。(4分) 地址 0 key 1 2 46 3 82 4 26 5 38 6 17 7 27 8 72 9 93 10 11 12 13 (每个0.5分)

四、编程题 (共14分)

对一个班级学生数学成绩进行管理:由给出的数据结构和初始化的按数学成绩递增有序的成绩表,编写程序:

1. 完成插入一个学生数据的函数,要求插入操作后学生数据依然递增有序。(5分)

要插入的学生数据为:studyid: 21; name: 王强;mathscore: 87

2. 完成主函数main: 实现成绩表数据的初始化(调用给出的初始化函数:initlist)、实现成绩表数据

插入操作(调用第1题中编写的函数)并输出成绩表中的所有数据。(9分)

#include \#define STUDENTNUMBER // 学生数据结构 typedef struct {

int studyid; char name[10];

float mathscore;

30

}STUDENT; // 班级学生表结构 typedef struct

.

精品文档

{

STUDENT data[STUDENTNUMBER]; int num; }listtype;

// 初始化班级学生表中数据 void initlist(listtype *p) { p->data[0].studeyid=10;

strcpy(p->data[0].name,\李一\p->data[0].mathscore=82; p->data[1].studeyid=2;

strcpy(p->data[1].name,\张二\p->data[1].mathscore=85; p->data[2].studeyid=5;

strcpy(p->data[2].name,\赵三\p->data[2].mathscore=88;

…… /* 班级中按数学成绩递增有序的学生总共有20位*/ p->num=20; }

void charu(listtype *p, STUDENT x) { int i;

for(i=p->num-1;p->data[i].mathscore>=x.mathscore;i--) p->data[i+1]=p->data[i]; p-data[i+1]=x; p->num++; } int main( ) { int i;

listtype LIST *p=&LIST;

.

联系合同范文客服:xxxxx#qq.com(#替换为@)