}/*文件名:exp1-1.cpp*/ #include
void main() { int n,i,j=0; /*j用于累计素数个数*/ printf(\ scanf(\ printf(\小于等于%d的素数:\\n\ if (n>2) { printf(\ j++; } for (i=3;i<=n;i+=2) if (prime(i)==1) { printf(\ if (j!=0 && ++j==0) /*每行最多显示10个素数*/ printf(\ } printf(\
}/*文件名:exp1-2.cpp*/ #include
void main() { int n; printf(\
printf(\输入一个整数:\
scanf(\
printf(\各位数字之和:%d\\n\ printf(\
}/*文件名:exp1-3.cpp*/ #include void main() { char s[MAX]; printf(\输入一字符串:\ scanf(\ if (func(s)==1) printf(\字符串是回文\\n\ else printf(\字符串不是回文\\n\}/*文件名:exp2-1.cpp*/ #include extern void InitList(SqList *&L); extern void DestroyList(SqList *L); extern int ListEmpty(SqList *L); extern int ListLength(SqList *L); extern void DispList(SqList *L); extern int GetElem(SqList *L,int i,ElemType &e); extern int LocateElem(SqList *L, ElemType e); extern int ListInsert(SqList *&L,int i,ElemType e); extern int ListDelete(SqList *&L,int i,ElemType &e); void main() { SqList *L; ElemType e; printf(\初始化顺序表L\\n\ InitList(L); printf(\依次采用尾插法插入a,b,c,d,e元素\\n\ ListInsert(L,1,'a'); ListInsert(L,2,'b'); ListInsert(L,3,'c'); ListInsert(L,4,'d'); ListInsert(L,5,'e'); printf(\输出顺序表L:\ DispList(L); printf(\顺序表L长度=%d\\n\ printf(\顺序表L为%s\\n\空\非空\ GetElem(L,3,e); printf(\顺序表L的第3个元素=%c\\n\ printf(\元素a的位置=%d\\n\ printf(\在第4个元素位置上插入f元素\\n\ ListInsert(L,4,'f'); printf(\输出顺序表L:\ DispList(L); printf(\删除L的第3个元素\\n\ ListDelete(L,3,e); printf(\输出顺序表L:\ DispList(L); printf(\释放顺序表L\\n\ DestroyList(L); }/*文件名:exp2-2.cpp*/ #include typedef struct LNode /*定义单链表结点类型*/ { ElemType data; struct LNode *next; } LinkList; extern void InitList(LinkList *&L); extern void DestroyList(LinkList *&L); extern int ListEmpty(LinkList *L); extern int ListLength(LinkList *L); extern void DispList(LinkList *L); extern int GetElem(LinkList *L,int i,ElemType &e); extern int LocateElem(LinkList *L,ElemType e); extern int ListInsert(LinkList *&L,int i,ElemType e); extern int ListDelete(LinkList *&L,int i,ElemType &e); void main() { LinkList *h; ElemType e; printf(\初始化单链表h\\n\ InitList(h); printf(\依次采用尾插法插入a,b,c,d,e元素\\n\ ListInsert(h,1,'a'); ListInsert(h,2,'b'); ListInsert(h,3,'c'); ListInsert(h,4,'d'); ListInsert(h,5,'e'); printf(\输出单链表h:\ DispList(h); printf(\单链表h长度=%d\\n\ printf(\单链表h为%s\\n\空\非空\ GetElem(h,3,e); printf(\单链表h的第3个元素=%c\\n\ printf(\元素a的位置=%d\\n\ printf(\在第4个元素位置上插入f元素\\n\ ListInsert(h,4,'f'); printf(\输出单链表h:\ DispList(h); printf(\删除h的第3个元素\\n\ ListDelete(h,3,e); printf(\输出单链表h:\ DispList(h); printf(\释放单链表h\\n\ DestroyList(h); }/*文件名:exp2-3.cpp*/ #include typedef struct DNode /*定义双链表结点类型*/ { ElemType data; struct DNode *prior; /*指向前驱结点*/ struct DNode *next; /*指向后继结点*/ } DLinkList; extern void InitList(DLinkList *&L); /*以下均为外部函数*/ extern void DestroyList(DLinkList *&L); extern int ListEmpty(DLinkList *L); extern int ListLength(DLinkList *L); extern void DispList(DLinkList *L); extern int GetElem(DLinkList *L,int i,ElemType &e); extern int LocateElem(DLinkList *L,ElemType e); extern int ListInsert(DLinkList *&L,int i,ElemType e); extern int ListDelete(DLinkList *&L,int i,ElemType &e); void main() { DLinkList *h; ElemType e; printf(\初始化双链表h\\n\ InitList(h); printf(\依次采用尾插法插入a,b,c,d,e元素\\n\ ListInsert(h,1,'a'); ListInsert(h,2,'b'); ListInsert(h,3,'c'); ListInsert(h,4,'d'); ListInsert(h,5,'e'); printf(\输出双链表h:\ DispList(h); printf(\双链表h长度=%d\\n\ printf(\双链表h为%s\\n\空\非空\ GetElem(h,3,e); printf(\双链表h的第3个元素=%c\\n\ printf(\元素a的位置=%d\\n\ printf(\在第4个元素位置上插入f元素\\n\ ListInsert(h,4,'f'); printf(\输出双链表h:\ DispList(h); printf(\删除h的第3个元素\\n\ ListDelete(h,3,e); printf(\输出双链表h:\ DispList(h); printf(\释放双链表h\\n\ DestroyList(h); }/*文件名:exp2-4.cpp*/ #include typedef struct LNode /*定义循环单链表结点类型*/