资源描述:
《程序设计例题分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、程序设计例题分析1.如果一个数恰好是小于它的各个不同因子之和那么该数倍称为“完数”。例如6的因子是1,2,3,而6=1+2+3,因此6就是一个完数。找出1-1000Z间的所有完数。#includeintperfect(intn){inti,sum;sum^O;for(i=l;i0){printf("
2、%5d=",i);for(j=l;jl)printf("+");printf("%5d",j);}}}printf("");return0;}2.已知指针ha和hb分別指向两个单链表LinkList的头结点,并且已知两个链表的长度分别为m和n。试写一算法将这两个链表连接在一起,假设指针he指向连接后的链表的头结点。voidMergeList(LinkList*ha,LinkList*hb,LinkList*hc){LinkList*pa,*pb;pa=ha;pb=hb;while(pa
3、->next&&pb->next){pa=pa->next;pb=pb->next;}if(!pa->next){hc=hb;while(pb・>next)pb=pb->next;pb->next=ha->next;}clsc{hc=ha;while(pa->next)pa=pa->next;pa->next=hb->next;}}1.编程求出一个最小的数x,使联等式X=a3+b3=c3+d3成立,其中a,b,c,d等都是自然数,aHc,aHdo#includeintmain(){inta,b,c,d,flag=O;fo
4、r(b=3;;b++){for(d=2;d
5、排列,编写一个程序将上面两个文件屮的字符按降序合并到文件c.dat屮。#includeintmain()FILE*inl,*in2,*out;intfl=f2=l;chara,b,c;inl=fopen(“a.dat",”r”);in2二fopen(“b.dat”,”r”);out=fopen("c.dat",”w”);if(!inlll!in2ll!out){printf(ucannotopenfile.'n”);exit(O);}do{if(!feof(inl)&&fl){a=fgetc(inl);if(feof(i
6、n1)&&feof(in2))break;}if(!feof(in2)&&⑵{b=fgetc(in2);if(feof(in1)&&feof(in2))break;}if(a>b){c=a;fl=l;f2=0;)else{c=b;fl=0;f2=l;}fputc(c,out);}while(l);fclose(inl);fclose(in2);fclose(out);}5.假设有两个按元素值递增有序排列的线性表A和B,均以单链表作存储结构,请编写算法将A表和B表归并成一个按元素值递减冇序(即非递增冇序,允许表中含冇值相同的元索)排列的线性
7、表C,并要求利用原表(即A表和B表)的结点空间构造C表。Link*ListMcrgc(Link*A,Link*B,Link*C){LinkList*pa,*pb,*qa,*qb;pa=A;pb=B;qa=pa;qb=pb;pa=pa->next;pb=pb->next;A->next=NULL;C=A;whilc(pa&&pb){if(pa->datadata){qa=pa;pa=pa->next;qa->next=A->next;A->ncxt=qa;}else{qb=pb;pb=pb->next;qb->ncxt=A->nc
8、xt;A->next=qb;}}while(pa){qa=pa;pa=pa->ncxt;qa->next=A->next;A->next=qa;}while(pb){qb=pb;pb=pb->