《2022年2022年经典C语言程序设计例 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年经典C语言程序设计例 .pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、经典 C语言程序设计 100例(八)【程序 71】题目:编写 input()和 output()函数输入,输出 5 个学生的数据记录。1. 程序分析:2. 程序源代码:#define N 5 struct student char num6; char name8; int score4; stuN; input(stu) struct student stu; int i,j; for(i=0;i printf(n please input %d of %dn,i+1,N); printf(num: ); scanf(%s,stui.num); printf(name: ); scanf(%
2、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;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;
3、 else ptr=ptr-next; ptr=head; while(ptr!=NULL) printf(The value is =%dn,ptr-data); ptr=ptr-next; 【程序 73】题目:反向输出一个链表。1. 程序分析:2. 程序源代码:/*reverse output a list*/ #include stdlib.h #include stdio.h 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - -
4、- 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;
5、ptr=ptr-next; while(ptr!=NULL) printf(The value is =%dn,ptr-data); ptr=ptr-next; 【程序 74】题目:连接两个链表。1. 程序分析:2. 程序源代码:#include stdlib.h #include stdio.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) /*delet
6、e first node*/ return pointer-next; else 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - 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(li
7、nk pointer,int num) link tmp,btmp; int i,min; for(i=0;i tmp=pointer; min=tmp-data; 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; poi
8、nter=(link)malloc(sizeof(node); pointer-data=array0; tmp1=pointer; for(i=1;i tmp2=(link)malloc(sizeof(node); tmp2-next=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; 名师资料总结 -
9、- -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - 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); 【程序 75】题目:放松一下,算一道简单的题目。1. 程序分析:2. 程序源代码:main() int i,n; for(i=1;i1)
10、break; if(n%2=0) printf(Even=); sum=dcall(peven,n); else printf(Odd=); sum=dcall(podd,n); printf(%f,sum); 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
11、(*fp)(); int n; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - float s; s=(*fp)(n); return(s); 【程序 77】题目:填空练习(指向指针的指针)1. 程序分析:2. 程序源代码:main() char *s=man,woman,girl,boy,sister; char *q; int k; for(k=0;kage; printf(%s,%d,(*q).name,(*q).age)
12、; 【程序 79】题目:字符串排序。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - 1. 程序分析:2. 程序源代码: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)
13、 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); char swap(p1,p2) char *p1,*p2; char *p20; strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p); 【程序 80】题目:海滩上有一堆桃子, 五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的
14、一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?1. 程序分析:2. 程序源代码: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) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - - count+; else break; i=m; if(count=4) printf(%dn,count); break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -