经典C例题与答案(71~80).pdf
.:.:经典c程序100例=71-80:.:.:.:经典c程序100例=71-80:.:.经典c程序100例=71-80经典c程序100例=71-80【程序71】题目:编写input()和output()函数输入,输出5个学生的数据记录。1.程序分析:2.程序源代码:#include stdio.h#include conio.h#define N 5 struct student char num6;char name8;int score4;stuN;input(stu)struct student stu;int i,j;for(i=0;iN;i+)printf(n please input%d of%dn,i+1,N);printf(num:);scanf(%s,stui.num);printf(name:);scanf(%s,stui.name);for(j=0;j3;j+)printf(score%d.,j+1);scanf(%d,&stui.scorej);printf(n);print(stu)struct student stu;int i,j;printf(nNo.Name Sco1 Sco2 Sco3n);for(i=0;iN;i+)printf(%-6s%-10s,stui.num,stui.name);for(j=0;jn);for(i=0;idata=num;ptr-next=(link)malloc(sizeof(node);if(i=4)ptr-next=NULL;else ptr=ptr-next;ptr=head;while(ptr!=NULL)printf(The value is=%dn,ptr-data);ptr=ptr-next;getch();=【程序73】题目:反向输出一个链表。1.程序分析:2.程序源代码:/*reverse output a list*/#include stdlib.h#include stdio.h#include conio.h struct list int data;struct list*next;typedef struct list node;typedef node*link;void main()link ptr,head,tail;int num,i;tail=(link)malloc(sizeof(node);tail-next=NULL;ptr=tail;printf(nplease input 5 data=n);for(i=0;idata=num;head=(link)malloc(sizeof(node);head-next=ptr;ptr=head;Page 2 of 72012-4-11file:/D:st-editCzl100example7180.htm ptr=ptr-next;while(ptr!=NULL)printf(The value is=%dn,ptr-data);ptr=ptr-next;getch();=【程序74】题目:连接两个链表。1.程序分析:2.程序源代码:#include stdlib.h#include stdio.h#include conio.h struct list int data;struct list*next;typedef struct list node;typedef node*link;link delete_node(link pointer,link tmp)if(tmp=NULL)/*delete first node*/return pointer-next;else if(tmp-next-next=NULL)/*delete last node*/tmp-next=NULL;else/*delete the other node*/tmp-next=tmp-next-next;return pointer;void selection_sort(link pointer,int num)link tmp,btmp;int i,min;for(i=0;idata;btmp=NULL;while(tmp-next)if(mintmp-next-data)min=tmp-next-data;btmp=tmp;tmp=tmp-next;printf(40:%dn,min);pointer=delete_node(pointer,btmp);link create_list(int array,int num)link tmp1,tmp2,pointer;int i;pointer=(link)malloc(sizeof(node);Page 3 of 72012-4-11file:/D:st-editCzl100example7180.htm pointer-data=array0;tmp1=pointer;for(i=1;inext=NULL;tmp2-data=arrayi;tmp1-next=tmp2;tmp1=tmp1-next;return pointer;link concatenate(link pointer1,link pointer2)link tmp;tmp=pointer1;while(tmp-next)tmp=tmp-next;tmp-next=pointer2;return pointer1;void main(void)int arr1=3,12,8,9,11;link ptr;ptr=create_list(arr1,5);selection_sort(ptr,5);getch();=【程序75】题目:放松一下,算一道简单的题目。1.程序分析:2.程序源代码:main()int i,n;for(i=1;i1)break;if(n%2=0)printf(Even=);sum=dcall(peven,n);else printf(Odd=);sum=dcall(podd,n);printf(%f,sum);getch();float peven(int n)float s;int i;s=1;for(i=2;i=n;i+=2)s+=1/(float)i;return(s);float podd(n)int n;float s;int i;s=0;for(i=1;i=n;i+=2)s+=1/(float)i;return(s);float dcall(fp,n)float(*fp)();int n;float s;s=(*fp)(n);return(s);=【程序77】题目:填空练习(指向指针的指针)1.程序分析:2.程序源代码:#include stdio.h#include conio.h main()char*s=man,woman,girl,boy,sister;char*q;int k;for(k=0;k5;k+);/*这里填写什么语句*/printf(%sn,*q);Page 5 of 72012-4-11file:/D:st-editCzl100example7180.htm getch();=【程序78】题目:找到年龄最大的人,并输出。请找出程序中有什么问题。1.程序分析:2.程序源代码:#define N 4#include stdio.h#include conio.h static struct man char name20;int age;personN=li,18,wang,19,zhang,20,sun,22;main()struct man*q,*p;int i,m=0;p=person;for(i=0;iN;i+)if(mage)q=p+;m=q-age;printf(%s,%d,(*q).name,(*q).age);getch();=【程序79】题目:字符串排序。1.程序分析:2.程序源代码:#include stdio.h#include conio.h main()char*str120,*str220,*str320;char swap();printf(please input three stringsn);scanf(%s,str1);scanf(%s,str2);scanf(%s,str3);if(strcmp(str1,str2)0)swap(str1,str2);if(strcmp(str1,str3)0)swap(str1,str3);if(strcmp(str2,str3)0)swap(str2,str3);printf(after being sortedn);printf(%sn%sn%sn,str1,str2,str3);getch();char swap(p1,p2)char*p1,*p2;char*p20;strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);=【程序80】题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只 猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了 一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,Page 6 of 72012-4-11file:/D:st-editCzl100example7180.htm 问海滩上原来最少有多少个桃子?1.程序分析:2.程序源代码:#include stdio.h#include conio.h main()int i,m,j,k,count;for(i=4;i10000;i+=4)count=0;m=i;for(k=0;k5;k+)j=i/4*5+1;i=j;if(j%4=0)count+;else break;i=m;if(count=4)printf(%dn,count);break;getch();Page 7 of 72012-4-11file:/D:st-editCzl100example7180.htm