数据结构实验标准答案Word格式.docx

上传人:b****5 文档编号:15933535 上传时间:2022-11-17 格式:DOCX 页数:65 大小:615.48KB
下载 相关 举报
数据结构实验标准答案Word格式.docx_第1页
第1页 / 共65页
数据结构实验标准答案Word格式.docx_第2页
第2页 / 共65页
数据结构实验标准答案Word格式.docx_第3页
第3页 / 共65页
数据结构实验标准答案Word格式.docx_第4页
第4页 / 共65页
数据结构实验标准答案Word格式.docx_第5页
第5页 / 共65页
点击查看更多>>
下载资源
资源描述

数据结构实验标准答案Word格式.docx

《数据结构实验标准答案Word格式.docx》由会员分享,可在线阅读,更多相关《数据结构实验标准答案Word格式.docx(65页珍藏版)》请在冰豆网上搜索。

数据结构实验标准答案Word格式.docx

m++){

if(n%m==0)return0。

return1。

}

/*输出100以内所有素数*/

intmain(){

inti。

for(i=2。

i<

100。

i++)

if(isprime(i)==1)printf(“%4d”,i)。

return0。

运行结果:

2、调试程序:

对一维数组中的元素进行逆序排列。

#defineN10

inta[N]={0,1,2,3,4,5,6,7,8,9},i,temp。

printf(“theoriginalArrayis:

\n”)。

for(i=0。

N。

printf(“%4d”,a[i])。

N/2。

i++){/*交换数组元素使之逆序*/

temp=a[i]。

a[i]=a[N-i-1]。

a[N-i-1]=temp。

}

printf(“\nthechangedArrayis:

\n”)。

3、调试程序:

在二维数组中,若某一位置上的元素在该行中最大,而在该列中最小,则该元素即为该二维数组的一个鞍点。

要求从键盘上输入一个二维数组,当鞍点存在时,把鞍点找出来。

#defineM3

#defineN4

inta[M][N],i,j,k。

printf(“请输入二维数组的数据:

M。

for(j=0。

j<

j++)

scanf(“%d”,&

a[i][j])。

i++){/*输出矩阵*/

printf(“%4d”,a[i][j])。

printf(“\n”)。

i++){

k=0。

for(j=1。

j++)/*找出第i行的最大值*/

if(a[i][j]>

a[i][k])

k=j。

j++)/*判断第i行的最大值是否为该列的最小值*/

if(a[j][k]<

break。

if(j==M)/*在第i行找到鞍点*/

printf(“%d,%d,%d\n”),a[i][k],i,k)。

4、调试程序:

利用指针输出二维数组的元素。

inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}。

int*p。

for(p=a[0]。

p<

a[0]+12。

p++){

if((p-a[0])%4==0)printf(“\n”)。

printf(%4d”,*p)。

5、调试程序:

输入10个学生的成绩,每个学生成绩包括学号、姓名和三门课的成绩。

要求打印出三门课的平均成绩及成绩最高者的姓名和成绩。

#defineN10。

structstudent{

charnum[6]。

/*学号*/

charname[8]。

/*姓名*/

intscore[3]。

/*成绩*/

floatavr。

/*平均成绩*/

}stu[N]。

inti,j,max,maxi,sum。

floataverage。

i++){/*输入10个学生的成绩信息*/

printf(“\n请输入第%d学生的成绩:

\n”,i+1)。

printf(“学号:

”)。

scanf(“%s”,stu[i].num)。

printf(“姓名”)。

scanf(“%s”,stu[i].name)。

for(j=0。

3。

j++){

printf(“成绩%d”,j+1)。

stu[i].score[j])。

}

average=0。

max=0。

maxi=0。

i++){/*计算平均成绩,找出成绩最高的学生*/

sum=0。

sum+=stu[i].score[j]。

stu[i].avr=sum/3.0。

average+=stu[i].avr。

if(sum>

max){

max=sum。

maxi=i。

average/=10。

printf(“学号姓名成绩1成绩2成绩3平均分\n)。

10。

printf(“%8s%10s”,stu[i].num,stu[i].name)。

printf(“%7d”,stu[i].score[j])。

printf(“%6.2f\n”,stu[i].avr)。

printf(“平均成绩是:

%5.2f\n”,average)。

printf(“最好成绩的学生是:

%s,总分是%d”,stu[maxi].name,max)。

运行结果

3、实验小结

对C语言中函数、数组、指针和结构体的概念,有了进一步的加深。

并且可以利用C语言进行初步程序设计。

四、教师评语

实验一顺序表与链表

1、掌握线性表中元素的前驱、后续的概念。

2、掌握顺序表与链表的建立、插入元素、删除表中某元素的算法。

3、对线性表相应算法的时间复杂度进行分析。

4、理解顺序表、链表数据结构的特点(优缺点)。

1、阅读下面程序,在横线处填写函数的基本功能。

并运行程序,写出结果。

malloc.h>

#defineERROR0

#defineOK1

#defineINIT_SIZE5/*初始分配的顺序表长度*/

#defineINCREM5/*溢出时,顺序表长度的增量*/

typedefintElemType。

/*定义表元素的类型*/

typedefstructSqlist{

ElemType*slist。

/*存储空间的基地址*/

intlength。

/*顺序表的当前长度*/

intlistsize。

/*当前分配的存储空间*/

}Sqlist。

intInitList_sq(Sqlist*L)。

/*初始化顺序表L,并将其长度设为0*/

intCreateList_sq(Sqlist*L,intn)。

/*构造顺序表的长度为n*/

intListInsert_sq(Sqlist*L,inti,ElemTypee)。

/*在顺序线性表L中第i个

元素之前插入新的元素e*/

intPrintList_sq(Sqlist*L)。

/*输出顺序表的元素*/

intListDelete_sq(Sqlist*L,inti)。

/*删除第i个元素*/

intListLocate(Sqlist*L,ElemTypee)。

/*查找值为e的元素*/

intInitList_sq(Sqlist*L){

L->

slist=(ElemType*)malloc(INIT_SIZE*sizeof(ElemType))。

if(!

L->

slist)returnERROR。

length=0。

listsize=INIT_SIZE。

returnOK。

}/*InitList*/

intCreateList_sq(Sqlist*L,intn){

ElemTypee。

n。

printf("

inputdata%d"

i+1)。

scanf("

%d"

&

e)。

ListInsert_sq(L,i+1,e))

returnERROR。

}/*CreateList*/

/*输出顺序表中的元素*/

intPrintList_sq(Sqlist*L){

for(i=1。

=L->

length。

%5d"

L->

slist[i-1])。

}/*PrintList*/

intListInsert_sq(Sqlist*L,inti,ElemTypee){

intk。

if(i<

1||i>

length+1)

returnERROR。

if(L->

length>

listsize){

slist=(ElemType*)realloc(L->

slist,

(INIT_SIZE+INCREM)*sizeof(ElemType))。

slist)

listsize+=INCREM。

for(k=L->

length-1。

k>

=i-1。

k--){

slist[k+1]=k。

slist[i-1]=e。

length++。

}/*ListInsert*/

/*在顺序表中删除第i个元素*/

intListDelete_sq(Sqlist*L,inti)

{

if((i<

1)||(i>

length))returnERROR。

for(p=i-1。

->

p++)

slist[p]=L->

slist[p+1]。

length--。

/*在顺序表中查找指定值元素,返回其序号*/

intListLocate(Sqlist*L,ElemTypee){

Sqlistsl。

intn。

pleaseinputn:

"

)。

/*输入顺序表的元素个数*/

n)。

if(n>

0){

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1