附录习题及实验参考答案
习题1参考答案
1.1.选择题
(1).A.(2).A.(3).A.(4).B.,C.(5).A.(6).A.(7).C.(8).C.(9).B.(10.)
A.
1.2.填空题
(1).数据关系
(2).逻辑结构物理结构
(3).线性数据结构树型结构图结构
(4).顺序存储链式存储索引存储散列表(Hash)存储
(5).变量的取值范围操作的类别
(6).数据元素间的逻辑关系数据元素存储方式或者数据元素的物理关系
(7).关系网状结构树结构
(8).空间复杂度和时间复杂度
(9).空间时间
(10).Ο(n)
1.3名词解释如下:
数据:数据是信息的载体,是计算机程序加工和处理的对象,包括数值数据和非数值数据。
数据项:数据项指不可分割的、具有独立意义的最小数据单位,数据项有时也称为字段或域。
数据元素:数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理,
一个数据元素可由若干个数据项组成。
数据逻辑结构:数据的逻辑结构就是指数据元素间的关系。
数据存储结构:数据的物理结构表示数据元素的存储方式或者数据元素的物理关系。
数据类型:是指变量的取值范围和所能够进行的操作的总和。
算法:是对特定问题求解步骤的一种描述,是指令的有限序列。
1.4语句的时间复杂度为:
2
(1)Ο(n)
2
(2)Ο(n)
2
(3)Ο(n)
(4)Ο(n-1)
3
(5)Ο(n)
1.5参考程序:
main()
{
intX,Y,Z;
scanf(“%d,%d,%d”,X,Y,Z);
if(X=Y)
if(X=Z)
if(Y=Z)
{printf(“%d,%d,%d”,X,Y,Z);}
else
{printf(“%d,%d,%d”,X,Z,Y);}
else
{printf(“%d,%d,%d”,Z,X,Y);}
else
if(Z=X)
if(Y=Z)
{printf(“%d,%d,%d”,Y,Z,X);}
else
{printf(“%d,%d,%d”,Z,Y,X);}
else
{printf(“%d,%d,%d”,Y,X,Z);}
}
1.6参考程序:
main()
{
inti,n;
floatx,a[],p;
printf(“\nn=”);scanf(“%f”,n);
printf(“\nx=”);scanf(“%f”,x);
for(i=0;i=n;i++)
scanf(“%f”,a[i]);
p=a[0];
for(i=1;i=n;i++)
{p=p+a[i]*x;
x=x*x;}
printf(“%f”,p)’
}
习题2参考答案
2.1选择题
(1).C.(2).B.(3).B.(4).B.5.D.6.B.7.B.8.A.9.A.10.D.
2.2.填空题
(1).有限序列
(2).顺序存储和链式存储
(3).O(n)O(n)
(4).n-i+1n-i
(5).链式
(6).数据指针
(7).前驱后继
(8).Ο(1)Ο(n)
(9).s-next=p-next;p-next=s;
(10).s-next
2.3.解题思路:将顺序表A中的元素输入数组a,若数组a中元素个数为n,将下标为0,
1,2,?,(n-1)/2的元素依次与下标为n,n-1,?,(n-1)/2的元素交换,输出数组a的
元素。
参考程序如下:
main()
{
inti,n;
floatt,a[];
printf(“\nn=”);scanf(“%f”,n);
for(i=0;i=n-1;i++)
scanf(“%f”,a[i]);
for(i=0;i=(n-1)/2;i++)
{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
for(i=0;i=n-1;i++)
printf(“%f”,a[i]);
}
2.4算法与程序:
main()
{
inti,n;