2022年西南交大高级语言程序设计实验代码宣贯 .pdf
西南交大高级语言程序设计实验相关代码【仅供参考】-【西南加大高级语言程序设计实验报告代码全】实验 1 分支程序设计:1 #includestdio.h void main() char ch; printf(Input a zimu:n); scanf(%c,&ch); if(ch=A&ch=Z)ch+=32; printf(The result is %c,ch); 2 #includestdio.h #includemath.h void main() int x,y,z,p,s; printf(Input x y and z:n); scanf(%d%d%d,&x,&y,&z); if(x+y=z|x+z=y|y+z=z|abs(x-z)=y|abs(y-z)=x) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 41 页 - - - - - - - - - printf(NO);return;p=(x+y+z)/2;s=sqrt(p*(p-x)*(p-y)*(p-z); printf(The result is %d,s); 3 #includestdio.h void main() int n;char level; printf(Input n=); scanf(%d,&n); if(n100)printf(Invalid input.n);return; if(n95)level=A; else if(n85)level=B; else if(n75)level=C; else if(n60)level=D; else level=E; printf(the level is %cn,level); 4 #includestdio.h void main() char ch;int zimu=0,shuzi=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 41 页 - - - - - - - - - printf(Input ch=n); while(1) scanf(%c,&ch);if(ch=?)break; if(ch=A&ch=a&ch=0&ch=9)shuzi+; printf(zimushu is %dnshuzishu is %dn,zimu,shuzi); 实验 2 循环程序设计 11 #includestdio.h void main() int i,s=0; for(i=300;i=A&ch=a&ch=w&ch=W&chn); 4 #includestdio.h void main() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 41 页 - - - - - - - - - int i,j,n;char ch; printf(Input zimu:n);scanf(%c,&ch); n=(int)(ch-96); for(i=0;in;i+) for(j=0;jn-i-1;j+)putchar(32); putchar(ch+i-n+1); for(j=0;ji;j+) putchar(32); putchar(ch+i-n+1); printf(n); 5 #includestdio.h void main() int n,k,h,m=0,g=1; printf(Input n=n); scanf(%d,&n); while(n) k=n%8;h=n/8;m+=k*g;g=g*10; n=h; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 41 页 - - - - - - - - - printf(%dn,m); 实验 3 循环程序设计 21 #includestdio.h void main() int n,i,j; printf(Input n=n); scanf(%d,&n); for(i=0;in;i+) for(j=0;jn-i;j+)printf(*); for(j=0;j2*i;j+)putchar(32); for(j=0;jn-i;j+)printf(*); printf(n); 2 #includestdio.h void main() int a,b,temp,m; printf(Input a and b:n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 41 页 - - - - - - - - - scanf(%d%d,&a,&b); m=a*b; while(b!=0) temp=a%b;a=b;b=temp; printf(gcd is %d,lcm is %dn,a,m/a); 3 #includestdio.h void main() int n,k=2,isfirst=1; printf(Input n=); scanf(%d,&n); while(k=n) if(n%k=0) if(isfirst) printf(%d=%d,n,k);isfirst=0; else printf(*%d,k); n/=k; else k+; printf(n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 41 页 - - - - - - - - - 4 #includestdio.h void main() int x,y,z; printf(%8s%8s%8sn,men,women,children); for(x=0;x17;x+) for(y=0;y=0&x+y+z=30) printf(%8d%8d%8dn,x,y,z); 实验 4 一维数组程序设计1 #includestdio.h void main() int a5,i,max,min; printf(Input Array:n); for(i=0;i5;i+) scanf(%d,&ai); max=a0;min=a0; for(i=0;imax)max=ai; if(aimin)min=ai; printf(the max is %d,the min is %dn,max,min); 2 #include #define N 11 void main() int aN,i,j,t; printf(Input 10 numbers:n); for(i=1;iN;i+)scanf(%d,&ai); printf(n); for(j=1;j=N-2;j+)for(i=1;iai+1)t=ai;ai=ai+1;ai+1=t; printf(The sorted numbers:n); for(i=1;iN;i+)printf(%d ,ai); 3 #include void main() char a10;int i; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 41 页 - - - - - - - - - printf(Input a string:n); for(i=0;i10;i+)scanf(%c,&ai); for(i=0;i=A&ai=a&ai=z) printf(%c,ai); for(i=0;i=0&ai=9) printf(%c,ai); for(i=0;i=A&ai=a&ai=0&ai=9) continue;else printf(%c,ai); 4 #include void main() double a81,k;int m,n,i,j,t; printf(Input n=);scanf(%d,&n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 41 页 - - - - - - - - - if(n81)printf(Invalid input.n);return; printf(Input %d integers:n,n); for(i=0;in;i+)scanf(%lf,&ai);printf(n); for(j=0;jn-1;j+)for(i=0;in-1-j;i+) if(aiai+1)t=ai;ai=ai+1;ai+1=t; printf(The sorted numbers:n); for(i=0;in;i+)printf(%4g,ai); printf(Input k=);scanf(%lf,&k); for(i=0;iai) for(m=i+1;m=n;m+) am=am-1; ai=k; else an=k; for(i=0;i=n;i+)printf(%4g,ai); 实验 5 多维数组程序设计1 #include void main() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 41 页 - - - - - - - - - int a10;double b10;int i; printf(Input 10 numbers:n); for(i=0;i5;i+) scanf(%d%d,&ai,&ai+5); for(i=0;i9;i+) bi=(ai+ai+1)/2.0; for(i=0;i9;i+) if(i%3=0) printf(n); printf(%4g,bi); printf(n); 2 #includestdio.h void main() int a10,i,n=1,num=10; printf(Input Array:n); for(i=0;i=1&num!=0) printf(Input n=); scanf(%d,&n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 41 页 - - - - - - - - - for(i=n-1;inum;i+) ai=ai+1; num-; for(i=0;inum;i+) printf(%d ,ai); printf(n); 3 #include void main() char str1100,str2100; int i=0,m=1,n=1; printf(Input string1:n); scanf(%s,str1); for(i=0;str1i;i+)n+; printf(Input string2:n); scanf(%s,str2); for(i=0;str2i;i+)m+; for(i=0;im;i+)str1n+i-1=str2i; printf(The united string is:n); puts(str1); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 41 页 - - - - - - - - - 4 #include void main() int a55,i,j,t; printf(Input Matric A(5rows,5cols):n); for(i=0;i5;i+)for(j=0;j5;j+) scanf(%d,&aij); for(i=0;i5;i+)for(j=0;ji;j+) t=aij;aij=aji;aji=t; printf(n Matrix AT(5rows,5cols):n); for(i=0;i5;i+) for(j=0;j5;j+) printf(%6d,aij); printf(n); 实验 6 函数调用程序设计 11 #include int min1(int x,int y,int z) int n;n=x; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 41 页 - - - - - - - - - if(ny)n=y; if(nz)n=z; return(n); int min2(int x,int y,int z) int m;m=x; if(m2*y)m=2*y; if(m3*z)m=3*z; return(m); void main() int x,y,z,m,n; printf(Input three numbers:n); scanf(%d%d%d,&x,&y,&z); n=min1(x,y,z); m=min2(x,y,z); printf(n=%2d,m=%2d,n,m); 2 #include void Hz(char a,int m,int n) int i,t; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 41 页 - - - - - - - - - for(i=0;in;i+) if(i=m)t=ai;ai=am+n-i-1;am+n-i-1=t; void main() int m,n,i,t;char a26; printf(Input n=); scanf(%d,&n); for(i=0;in;i+) ai=a+i; printf(Input m=); scanf(%d,&m); Hz(a,m,n); for(i=0;in;i+) printf(%c,ai); 3 #include int digit(int n,int k) int m,i; for(i=1;i=k;i+) m=n%10;n=(n-m)/10; return(m); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 41 页 - - - - - - - - - void main() int n,k,i,m; printf(Input n=n,k=n); scanf(%d%d,&n,&k); m=digit(n,k); printf(%d,m); 实验 7 函数调用程序设计 21 #include int n; void f(int n) for(n=1;n1000;n+) if(n%3=1&n%5=2&n%7=3) printf(%4d,n); void main() f(n); 2 #include 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 41 页 - - - - - - - - - void water() int a,b,i,j,k; for(i=0;i=9;i+) for(j=0;j=9;j+) for(k=0;k100) printf(%4d,a); void main() water(); 31#include int a,b,m,n; gcd(int a,int b) int t; if(!b)m=a; while(b!=0) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 41 页 - - - - - - - - - t=a%b;a=b;b=t; m=a; return(m); lcm(int a,int b) n=(a*b)/m; return(n); void main() printf(Input a=n,b=n); scanf(%d%d,&a,&b); m=gcd(a,b); n=lcm(a,b); printf(gcd=%d,lcm=%d,m,n); 32#include gcd(int a,int b) int t,m; if(!b)m=a; while(b!=0) t=a%b;a=b;b=t; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 41 页 - - - - - - - - - m=a; return(m); lcm(int a,int b) int n; n=(a*b)/gcd(a,b); return(n); void main() int a,b,m,n,t; printf(Input a=n,b=n); scanf(%d%d,&a,&b); m=gcd(a,b); n=lcm(a,b); printf(gcd=%d,lcm=%d,m,n); 实验 8 指针应用程序设计1 #includestdio.h #includestdlib.h #includestring.h #define N 5 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 41 页 - - - - - - - - - #define SWAP(a,b,t) (t)=(a),(a)=(b),(b)=(t) void main() char word31,*aN,*p;int i,j; printf(Input %d words:n,N); for(i=0;iN;i+) scanf(%s,word); ai=(char*)malloc(strlen(word)+1); strcpy(ai,word); for(i=1;iN;i+) for(j=0;j0) SWAP(aj,aj+1,p); for(i=0;iN;i+)printf(%s ,ai); printf(n); for(i=0;iN;i+) free(void*)ai); 2 #includestdio.h #includestring.h void main() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 41 页 - - - - - - - - - char s81,*p,*q,temp; printf(Input a string:n); gets(s); p=s;q=s+strlen(s)-1; while(pq) temp=*p;*p=*q;*q=temp; p+;q-; printf(Reversed string:n%sn,s); 3 #include #define nameLen 20 int IsFirstBig(char *name1, char *name2) do if(*name1 *name2) return 1; if(*name1=*name2) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 41 页 - - - - - - - - - name1+; name2+; else break; while(*name1 & *name2); if(*name1 *name2) return 1; else return 0; void ChangeName(char *name1, char *name2) int i; char temp; for(i=0; i20; i+) temp=*name1; *name1=*name2; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 41 页 - - - - - - - - - *name2=temp; name1+; name2+; void SortName(char *name) int i,j; int isBig; for(i=0; i4; i+) for(j=0; j4-i; j+) isBig=IsFirstBig(name+nameLen*j), (name+nameLen*(j+1); if(isBig) ChangeName(name+nameLen*j), (name+nameLen*(j+1); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 41 页 - - - - - - - - - int main() char name5nameLen; int i; printf(Please input five students name:n); for(i=0; i5; i+) scanf(%s,namei); SortName(&name00); for(i=0;i5;i+) printf(%st,namei); getch(); 实验 9 结构体与链表应用程序设计1 #include #include 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 25 页,共 41 页 - - - - - - - - - #define N 5 struct student char name20; long num; char sex; char yx20; ; void main() int i,j,m=0; struct student stN; struct student st1; char s20; printf(input %d students data:n,N); printf(nametnumtsextyxtn); for(i=0;iN;i+) scanf(%s%ld%*c%c%*c%s,sti.name,&sti.num,&sti.sex,sti.yx); for(i=1;iN;i+) for(j=0;jstj+1.num) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 26 页,共 41 页 - - - - - - - - - st1=stj; stj=stj+1; stj+1=st1; printf(nnnametnumtsextyxtn); for(i=0;iN;i+) printf(%s,%ld,%c,%sn,sti.name,sti.num,sti.sex,sti.yx); while(1) m=0; printf(input the yx name:); scanf(%s,s); for(i=0;iN;i+) if(strcmp(s,sti.yx)=0)m+; printf(the num of %s is %d:n,s,m); 2 #include #include #define N 5 struct qiuyuan 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 27 页,共 41 页 - - - - - - - - - char name20; char jlb20; int high; int age; ; void main() int i,j; struct qiuyuan qyN; struct qiuyuan qy1; printf(input %d qiuyuan data:n,N); printf(nametjlbthightagetn); for(i=0;iN;i+) scanf(%s%*c%s%d%d,qyi.name,qyi.jlb,&qyi.high,&qyi.age); for(i=1;iN;i+) for(j=0;jN-i;j+) if(qyj.highqyj+1.high) qy1=qyj; qyj=qyj+1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 28 页,共 41 页 - - - - - - - - - qyj+1=qy1; printf(nnnametjlbthightagetn); for(i=0;iN;i+) printf(%s,%s,%d,%dn,qyi.name,qyi.jlb,qyi.high,qyi.age); for(i=1;iN;i+) for(j=0;jN-i;j+) if(qyj.ageqyj+1.age) qy1=qyj; qyj=qyj+1; qyj+1=qy1; printf(nnnametjlbthightagetn); for(i=0;iN;i+) printf(%s,%s,%d,%dn,qyi.name,qyi.jlb,qyi.high,qyi.age); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 29 页,共 41 页 - - - - - - - - - 3 #include struct TimeTpint h,m,s;t1,t2,t; long TimeToSec(struct TimeTp *p) return 3600*(p-h)+60*(p-m)+p-s; void SecToTime(long n,struct TimeTp *p) p-h=n/3600;p-m=n/60%60;p-s=n%60; void DiffTime(struct TimeTp *pt1,struct TimeTp *pt2,struct TimeTp *dt) long n,n1,n2; n1=TimeToSec(pt1); n2=TimeToSec(pt2); n=n1-n2; if(n0) n=-n; SecToTime(n,dt); void main() printf(input time 1(h:m:s)=); scanf(%d:%d:%d,&t1.h,&t1.m,&t1.s); printf(input time 2(h:m:s)=); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 30 页,共 41 页 - - - - - - - - - scanf(%d:%d:%d,&t2.h,&t2.m,&t2.s); DiffTime(&t1,&t2,&t); printf(Difference Time=%d:%d:%dn,t.h,t.m,t.s); 4 #include #include typedef struct node char data; struct node *next; NodeTp; #define CreateNode(p) p=(NodeTp*)malloc(sizeof(NodeTp); #define DeleteNode(p) free(void*)p); NodeTp *crt() NodeTp *q,*p; char ch; CreateNode(q); q-next=NULL; while(1) scanf(%c,&ch); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 31 页,共 41 页 - - - - - - - - - if(ch=n) break; CreateNode(p); p-data=ch; p-next=q-next; q-next=p; return q; void main() NodeTp *h,*p; printf(input a string:n); h=crt(); printf(lixu shuchu:n); p=h-next; while(p) printf(%c,p-data); p=p-next; printf(n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 32 页,共 41 页 - - - - - - - - - 5 #include #include typedef struct node char data; struct node *next; NodeTp; #define CreateNode(p) p=(NodeTp*)malloc(sizeof(NodeTp); #define DeleteNode(p) free(void*)p); void main() NodeTp *q,*p,*last; char ch; printf(input a string:n); CreateNode(q); scanf(%c,&ch); q-next=NULL; q-data=ch; last=q; while(1) scanf(%c,&ch); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 33 页,共 41 页 - - - - - - - - - if(ch=n) while(q) printf(%c,q-data); q=q-next; break; CreateNode(p); p-data=ch; p-next=last-next; last-next=p; last=p; if(ch=?) printf(the delete one is:%cn,q-data); q=q-next; printf(n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 34 页,共 41 页 - - - - - - - - - 6 struct st int x; int *y; *p; int dt4=10,20,30,40; struct st aa4=50,&dt0,60,&dt1,70,&dt2,80,&dt3; main() p=aa; printf(%dn,+p-x); printf(%dn,(+p)-x); printf(%dn,+*(p-y); 实验 10 文件应用程序设计1 #include struct student int num; char name10; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 35 页,共 41 页 - - - - - - - - - int x; int y; int z; int avg; ; void main() struct student st5; FILE *fw; int i; fw=fopen(stud.txt,w); printf(input the data:n); for(i=0;i5;i+) scanf(%d%*c%s%d%d%d,&sti.num,sti.name,&sti.x,&sti.y,&sti.z); sti.avg=(sti.x+sti.y+sti.z)/3; if(fw=NULL) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 36 页,共 41 页 - - - - - - - - - printf(create file failedn); return; for(i=0;i5;i+) fprintf(fw,%10d%10s%10d%10d%10d%10dn,sti.num,sti.name,sti.x,sti.y,sti.z,sti.avg); fclose(fw); 2 #include #define M 5 #define N 4 void main() long aMN,bNM; int i,j; FILE *fr,*fw; fr=fopen(a1.txt,r); if(!fr) printf(can not find filen); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 37 页,共 41 页 - - - - - - - - - return; fw=fopen(a2.txt,w); if(!fw) printf(create file failedn); return; for(i=0;iM;i+) for(j=0;jN;j+) fscanf(fr,%ld,&aij); bji=aij; for(i=0;iN;i+) for(j=0;jM;j+) fprintf(fw,%10ld,bij); fprintf(fw,n); fclose(fr); fclose(fw); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 38 页,共 41 页 - - - - - - - - - 附加文件“ a1.txt ”内容为:5 6 7 8 1 2 3 4 5 6 7 9 9 8 7 6 5 4 3 2 3 #include void main() FILE *fr; int c; char ch,fname81; printf(input c soure file name:); gets(fname); fr=fopen(fname,r); if(!fr) printf(can not find filen); return; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 39 页,共 41 页 - - - - - - - - - c=0