include<stdio.h>
include<stdlib.h>
define OK 1
define ERROR 0
define OVERFLOW -2
typedef int Status;
 typedef float ElemType;
 typedef ElemType *Triplet; // 声明Triplet为ElemType指针类型
//三元组的初始化
 Status initTriplet(Triplet &T, ElemType v0, ElemType v1, ElemType v2)
 {
 T = ElemType malloc(3sizeof(ElemType)); if T == NULL
 {
 printf(“分配内存失败!”);
 exit(OVERFLOW);
 }
 T[0] = v0;
 T[1] = v1;
 T[2] = v2;
 return OK;
 }
 //释放内存,退出系统, 注意:动态分配内存需要及时释放内存空间
 void destroyTriplet(Triplet &T)
 {
 free(T) ;
 printf(“分配内存已释放!”);
 exit(0);
 }
 // 用e获取T的第i(1~3)个元素的值,
 Status getElem(Triplet T, int i, ElemType &e)
 {
 if (i < 1 || i > 3)
 return ERROR;
 else e = T[i-1] ;
 return OK;
 }
 // 置T的第i元的值为e
 Status putElem(Triplet &T,int i,ElemType e)
 {
 if (i < 1 || i > 3)
 return ERROR;
 else T[i-1] = e ;
 return OK;
 }
 int main()
 {
 Triplet T;
 Status flag;
 ElemType v0, v1, v2, e;
 printf(“请进入三元组的三个值v0,v1,v2:\n”);
 scanf("%f%f%f", &v0, &v1, &v2);
 // 初始化三元组
 initTriplet(T, v0, v1, v2);
 printf(“调用初始化函数后,T的三个值为:%.1f,%.1f,%.1f\n”, T[0], T[1], T[2]);
 // 调用函数获得T的第2元的值
 getElem(T, 2, e) ;
 printf(“三元组第2元的值为:%.1f\n”,e);
 // 调用函数修改T的第2元的值为56.7
 putElem(T, 2, 56.7) ;
 // 再次输出T的第2元的值
 printf(“三元组第2元的值改成了:%.1f\n”,T[1]);
destroyTriplet(T);
return 0;
}
 正确答案
 第一空:
 ElemType *或 Triplet
 第二空:
 T == NULL或!T
 第三空:
 free(T)
 第四空:
 e = T[i-1]
 第五空:
 T[i-1] = e
 第六空:
 getElem(T, 2, e)
 第七空:
 putElem(T, 2, 56.7)