实验程序代码.docx
《实验程序代码.docx》由会员分享,可在线阅读,更多相关《实验程序代码.docx(25页珍藏版)》请在冰点文库上搜索。
![实验程序代码.docx](https://file1.bingdoc.com/fileroot1/2023-5/10/8f23dc4b-5992-464f-9ad4-937a89f4cad2/8f23dc4b-5992-464f-9ad4-937a89f4cad21.gif)
实验程序代码
实验一
1.6#include
voidmain()
{
inti,j;
for(i=1;i<=6;i++)
{for(j=1;j<=6-i;j++)
printf("");
printf("A");
if(i!
=1)
if(i!
=4)
{for(j=1;j<=2*i-1;j++)
printf("");
printf("A\n");}
else{for(j=1;j<=4;j++)
printf("A");
printf("\n");}
elseprintf("\n");
}
}
实验二选择
必做题
2.1
#include
main()
{
inta,b,c,t;
printf("Inputa,b,c:
");
scanf("%d,%d,%d",&a,&b,&c);
if(a>b){t=a;a=b;b=t;}
if(a>c){t=a;a=c;c=t;}
if(b>c){t=b;b=c;c=t;}
printf("中间数=%d\n",b);
}
2.2
#include
main()
{
intx,y;
printf("Inputx:
");
scanf("%d",&x);
if(x<1)y=x;
elseif(x<10)y=2*x-1;
elsey=3*x-11;
printf("x=%d,y=%d\n",x,y);
}
2.3
#include
main()
{
inty0,m0,d0,y1,m1,d1,nl;
printf("Input生日(年,月,日):
");
scanf("%d,%d,%d",&y0,&m0,&d0);
printf("Input当前日期(年,月,日):
");
scanf("%d,%d,%d",&y1,&m1,&d1);
if(m1>m0||m1==m0&&d1>=d0)nl=y1-y0;
elsenl=y1-y0-1;
printf("年龄=%d\n",nl);
}
2.4
#include
main()
{
charc1,c2,c3,c4,max,min;
printf("Input四个字符:
");
c1=getchar();c2=getchar();c3=getchar();c4=getchar();
max=min=c1;
if(c2>max)max=c2;
if(c3>max)max=c3;
if(c4>max)max=c4;
min=c2c2:
min;
min=c3c3:
min;
min=c4c4:
min;
printf("max=%c,min=%c\n",max,min);
}
2.5
#include
main()
{
inta,t,m;
printf("Inputa=");
scanf("%d",&a);
if(a>0)
{t=a/10;
switch(t)
{case0:
case1:
case2:
m=1;break;
case3:
m=2;break;
case4:
m=3;break;
case5:
m=4;break;
default:
m=6;}
printf("m=%d\n",m);
}
else
printf("a为非正数\n");
}
实验三循环
必做题
3.1#include
main()
{
intn,i,s=0,m=0;
printf("Inputn:
");
scanf("%d",&n);
for(i=2;i{if(n%i==0)
{printf("%5d",i);s+=i;m++;}
if(m%10==0)printf("\n");}
printf("\ns=%d\n",s);
}
3.2
#include
#include
main()
{
doublex0,x1=0.0;
do
{x0=x1;
x1=cos(x0);}
while(fabs(x1-x0)>=1e-6);
printf("\nx1=%.2f\n",x1);
}
3.3
#include
#include
main()
{
charc;
intn1,n2,n3,n4;
n1=n2=n3=n4=0;
printf("请输入一行字符,以换行结束:
");
while((c=getchar())!
='\n')
if(isupper(c))n1++;
elseif(islower(c))n2++;
elseif(isdigit(c))n3++;
elseif(c=='')n4++;
printf("\n大写=:
%d,小写:
%d,数字:
%d,空格:
%d,\n",n1,n2,n3,n4);
}
3.4
#include"stdio.h"
#defineN20
voidmain()
{inti,j,array[N][N]={0},n;
printf("请输入n行:
\n");
scanf("%d",&n);
for(i=0;i{array[i][0]=1;array[i][i]=1;}
for(i=2;ifor(j=1;j
array[i][j]=array[i-1][j-1]+array[i-1][j];
printf("杨辉三角形:
\n");
for(i=0;i{for(j=0;j<=i;j++)
printf("%4d",array[i][j]);
printf("\n");}
printf("\n");
}
选做题
3.1
#include
#include
main()
{
floatx,sum=1,t;
inti=1,s=1,m=1;
printf("请输入x:
");
scanf("%f",&x);
t=x;
do
{sum+=t;
i++;m*=i;t=s*1.0/m*pow(x,i);s=-s;}
while(fabs(t)>=1e-6);
printf("\nx=%f,f(x)=%f\n",x,sum);
}
3.2
#include
#include
main()
{
inti,m,n,k=0,j;
doubles;
printf("请输入正整数m,n(m");
scanf("%d,%d",&m,&n);
for(i=m+1;i{s=sqrt(i);
for(j=2;j<=s;j++)
if(i%j==0)break;
if(j>=s){printf("%6d",i);k++;}
if(k%8==0)printf("\n");
}
printf("\n\n");
}
3.3
#include
main()
{
inti,m=2,j,n;
doubles=0.0,k=1.0,t;
printf("请输入正整数n:
");
scanf("%d",&n);
for(i=1;i<=n;i++)
{t=m/k;
s+=t;
j=m;m=m+k;k=j;
}
printf("\n和为:
%lf\n",s);
}
3.4
#include"stdio.h"
voidmain()
{inti;
doubleh=100.0,h1,s=100.0;
for(i=2;i<=10;i++)
{h1=h/2;
h=h1;
s+=2*h;
}
printf("s=%lf,h=%lf\n",s,h);
}
实验四数组
必做题
4.1
#include"stdio.h"
#include"math.h"
#defineN20
voidmain()
{inti,array[N],j,m,k=0;
for(i=3;i<=N;i++)
{m=sqrt(i);
for(j=2;j<=m;j++)
if(i%j==0){array[k++]=i;break;}
}
for(i=0;i<=k-1;i++)
printf("%d",array[i]);
printf("\n");
}
4.2
#include"stdio.h"
#include"string.h"
#defineN80
voidmain()
{inti,k;
chars1[N],t;
gets(s1);
k=strlen(s1);
for(i=0;i{t=s1[i];s1[i]=s1[k-1-i];s1[k-1-i]=t;}
printf("\n%s\n",s1);
}
4.3
#include"stdio.h"
#defineN10
voidmain()
{inti,j,array[N],m,t;
printf("请输入10个整数:
");
for(i=0;iscanf("%d",&array[i]);
for(i=0;i{m=i;
for(j=i+1;jif(array[j]>array[m])m=j;
if(m!
=i)
{t=array[m];array[m]=array[i];array[i]=t;}
}
for(i=0;iprintf("%d",array[i]);
printf("\n");
}
4.4
#include"stdio.h"
#defineN5
voidmain()
{inti,j,array[N][N],s=0;
printf("请输入5×5个整数:
");
for(i=0;ifor(j=0;jscanf("%d",&array[i][j]);
for(i=0;ifor(j=0;j{if(i==j||i+j==N-1)s+=array[i][j];
if(i==j&&i+j==N-1)s+=array[i][j];}
for(i=0;i{for(j=0;jprintf("%4d",array[i][j]);
printf("\n");}
printf("s=%d\n",s);
}
选做题
4.1
#include"stdio.h"
#include"string.h"
#defineM5
voidmain()
{inti,j,a[M],k,x;
charstr[M][80],t[M];
printf("请输入5个字符串:
");
for(i=0;i{gets(str[i]);a[i]=strlen(str[i]);}
for(i=0;i{k=i;
for(j=i+1;jif(a[j]>a[k])k=j;
if(k!
=i){strcpy(t,str[i]);strcpy(str[i],str[k]);strcpy(str[k],t);
x=a[k];a[k]=a[i];a[i]=x;}
}
for(i=0;iputs(str[i]);
printf("\n");
}
4.2
#include"stdio.h"
#include"string.h"
#defineM80
voidmain()
{inti,j=0,k=0,a;
chars[M],t[M],w[M];
printf("请输入1个字符串:
\n");
gets(s);a=strlen(s);
for(i=0;iif(!
(s[i]>='0'&&s[i]<='9'))t[j++]=s[i];
elsew[k++]=s[i];
t[j]='\0';w[k]='\0';
strcat(t,w);strcpy(s,t);
puts(s);
printf("\n");
}
4.3
#include"stdio.h"
#defineN6
voidmain()
{inti,array[N],t,k;
printf("请输入N个整数:
\n");
for(i=0;iscanf("%d",&array[i]);
k=N%2?
N/2+1:
N/2;
for(i=0;i{t=array[i];array[i]=array[k+i];array[k+i]=t;}
for(i=0;iprintf("%d",array[i]);
printf("\n");
}
4.4
#include"stdio.h"
#defineN4
voidmain()
{inti,j,array[N][N],t;
printf("请输入4×4个整数:
\n");
for(i=0;ifor(j=0;jscanf("%d",&array[i][j]);
printf("移动前矩阵:
\n");
for(i=0;i{for(j=0;jprintf("%4d",array[i][j]);
printf("\n");}
printf("\n");
for(i=0;ifor(j=0;j<2;j++)
if(j==0){t=array[i][j];array[i][j]=array[i][2-j];array[i][2-j]=t;}
else{t=array[i][j];array[i][j]=array[i][4-j];array[i][4-j]=t;}
printf("移动后矩阵:
\n");
for(i=0;i{for(j=0;jprintf("%4d",array[i][j]);
printf("\n");}
printf("\n");
}
实验五函数
必做题
5.1
#include
main()
{
intn;
printf("请输入正整数n:
\n");
scanf("%d",&n);
if(Isprime(n))printf("%disprime!
\n",n);
elseprintf("%disn'tprime!
\n",n);
printf("\n");
}
intIsprime(intm)
{intj;
for(j=2;j<=m/2;j++)
if(m%j==0)break;
if(j>m/2)return1;
elsereturn0;}
5.2
#include
#include
intLowest_common_multiple(intm,intn,inth);
intGreatest_common_divisor(intm,intn);
main()
{
intm,n,t,p,k;
printf("请输入两个正整数m,n:
\n");
scanf("%d,%d",&m,&n);
if(mk=Greatest_common_divisor(m,n);
p=Lowest_common_multiple(m,n,k);
printf("最大公约数:
%d\n",k);
printf("最小公倍数:
%d\n",p);
printf("\n");
}
intLowest_common_multiple(intm,intn,inth)
{returnm*n/h;}
intGreatest_common_divisor(intm,intn)
{intr;
while(r=m%n!
=0)
{m=n;n=r;}
returnn;
}
5.3
#include"stdio.h"
#include"string.h"
#defineN80
voidfun(chars[]);
voidmain()
{inti,k;
chars1[N];
printf("请输入一个字符串:
\n");
gets(s1);puts(s1);
k=strlen(s1);
fun(s1);
printf("\n%s\n",s1);
}
voidfun(chars[])
{inti;
for(i=0;s[i]!
='\0';i++)
if(islower(s[i]))s[i]=s[i]-32;
}
5.4
#include"stdio.h"
#defineN3
voidconvert(inta[][3]);
voidmain()
{inti,j,array[N][N],s=0;
printf("请输入3×3个整数:
\n");
for(i=0;ifor(j=0;jscanf("%d",&array[i][j]);
printf("转置前:
\n");
for(i=0;i{for(j=0;jprintf("%4d",array[i][j]);
printf("\n");}
convert(array);
printf("转置后:
\n");
for(i=0;i{for(j=0;jprintf("%4d",array[i][j]);
printf("\n");}
printf("\n");
}
voidconvert(inta[][3])
{inti,j,t;
for(i=0;ifor(j=i+1;j{t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}
}
选做题
5.1
#include
#defineN40
voidFibonacci(longa[]);
intfun(intt);
inta[N];
main()
{
intt,k;
printf("请输入正整数t:
\n");
scanf("%d",&t);
Fibonacci(a);
k=fun(t);
printf("小于%d的最小的一个数:
%d\n",t,k);
}
intfun(intt)
{intj;
for(j=0;jif(a[j]>t)break;
returna[j];
}
voidFibonacci(longa[])
{inti;
a[0]=a[1]=1;
for(i=2;i<=N;i++)
a[i]=a[i-2]+a[i-1];
}
5.2
#defineN10
#include
floataverf(floats[],intn);
main()
{
intn,i;
floats[N],av;
printf("请输入10个数组元素:
\n");
for(i=0;iscanf("%f",&s[i]);
printf("请输入n:
\n");
scanf("%d",&n);
av=averf(s,n);
printf("\n前%d个数的平均:
%f\n",n,av);
}
floataverf(floats[],intn)
{intj;
floatsum=0.0,av;
for(j=0;jsum+=s[j];
av=sum/n;
returnav;
}
5.3
#include"stdio.h"
#defineM4
#defineN4
voidfun(intxx[][N],intpp[]);
voidmain()
{inti,j,xx[M][N],pp[M*N];
printf("请输入4×4个整数:
\n");
for(i=0;ifor(j=0;jscanf("%d",&xx[i][j]);
printf("矩阵:
\n");
for(i=0;i{for(j=0;jprintf("%4d",xx[i][j]);
printf("\n");}
fun(xx,pp);
printf("转换后的一维数组:
\n");
for(i=0;iprintf("%4d",pp[i]);
printf("\n");
}
voidfun(intxx[][N],intpp[])
{inti,j;
for(i=0;ifor(j=0;jpp[4*i+j]=xx[i][j];
}
5.4
#include"stdio.h"
#include"string.h"
#defineN80
voiddeletechar(charstr[],charch);
voidmain()
{
charstr[N],ch;
printf("请输入一个字符串:
\n");
gets(str);
printf("请输入要删除的一个字符:
\n");
ch=getchar();
deletechar(str,ch);
printf("\n%s\n",str);
}
voiddeletechar(charstr[],charch)
{inti,j=0;
for(i=0;str[i]!
='\0';i++)
if(str[i]!
=ch)str[j++]=str[i];
str[j]='\0';
}
实验六指针
必做题
6.1
#include