return(max);
}
floatmin(intn,floata[])
{inti;
floatmin;
min=a[0];
for(i=0;iif(min>a[i])min=a[i];
return(min);
}
floataver(intn,floata[])
{inti;
floatsum=0,aver;
.7.
for(i=0;isum=sum+a[i];
aver=sum/n;
return(aver);
}
#include"math.h"
main()
{inti;
floatm,n,a[5],c;
for(i=0;i<5;i++)
scanf("%f",&a[i]);
m=max(5,a);
n=min(5,a);
c=aver(5,a);
printf("%5f%5f%5f\n",m,n,c);
}
25.(**)编写函数,求一个不超过五位的十进制整数各位数值的和。
(如:
输入2634,输出15)
#include"math.h"
main()
{inti,a[5],m,n=0;
scanf("%d",&m);
for(i=0;i<=4;i++)
{a[i]=m%10;
n=n+a[i];
m=m-a[i]*10;
printf("%5d",a[i]);}
printf('\n');
printf("%d",n);
}
26.(**)编程求出一个3x3矩阵的最大和最小元素及其下标。
main()
{inti,j,max,min,a[3][3],m1,n1,m2,n2;
for(i=0;i<=2;i++)
for(j=0;j<=2;j++)
scanf("%d",&a[i][j]);
min=max=a[0][0];
.8.
for(i=0;i<=2;i++)
for(j=0;j<=2;j++)
if(a[i][j]>max){max=a[i][j];m1=I;n1=j;}
elseif(a[i][j]{min=a[i][j];m2=i;n2=j;}
printf("max=%d,%3d,%3d,min=%d,%3d,%3d",max,m1,n1,min,m2,n2);
}
27.(**)有一个字符串,包含n个字符,编写一个函数,将此字符串中从第m个字符开始的全部字符复制成另一个字符串。
main()
{charchs2[30]={0},chs1[30]="thisismyfirstCprogram";
inti,j,m;
scanf("%d",&m);
for(i=m,j=0;i<30;i++,j++)
chs2[j]=chs1[i];
chs2[29]='\0';
printf("%s",chs2);
}
28.(**)求一个3x3矩阵的对角线元素之和。
main()
{inti,j,sum1=0,sum2=0,a[3][3];
for(i=0;i<=2;i++)
for(j=0;j<=2;j++)
scanf("%d",&a[i][j]);
for(i=0;i<=2;i++)
{for(j=0;j<=2;j++)
if(i==j)sum1+=a[i][j];
if((i+j)==2)sum2+=a[i][j];
}
printf("%5d%5d",sum1,sum2);}
29.(**)从键盘输入两个整数,输出其最大公约数和最小公倍数。
程序1:
main()
{inta,b,t,p,r;
scanf("%d,%d",&a,&b);
if(a
p=a*b;
while(b!
=0)
{r=a%b;a=b;b=r;}
printf(“%5d%5d”,a,p/a);}
.9.
main()
{inta,b,m,n,i,t;
scanf(“%d%d”,&a,&b);
if(a
m=a;n=b;
for(i=1;i<=n;i++)
if((m%i==0)&&(n%i==0))
{printf("%5d\n",i);break;}
printf("%5d",a*b/i);
}
30.(**)一个已按从小到大的顺序排序的数组,有9个元素,从终端输入第10个数,要求按原来排序的规律将它插入数组中。
(该数比第一个数大,比第九个数小)
#defineN10
main()
{intb,i,n,a[N]={1,5,7,11,15,19,23,28,31};
scanf("%d",&b);
for(i=0;iif(a[i]>b){n=i;break;}
for(i=(N-2);i>=n;i--)
a[i+1]=a[i];
a[n]=b;
for(i=0;iprintf("%5d",a[i]);
}
31.(**)请编写程序,输出以下扬辉三角形(要求输出10行)。
1
11
121
1331
14641
:
#defineM10
#defineN10
main()
{inta[M][N],i,j;
for(i=0;ifor(j=0;j<=i;j++)
if(j==0||j==i)a[i][j]=1;
else
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i{for(j=0;j<=i;j++)
printf("%4d",a[i][j]);
printf("\n");}
}
32.(**)从键盘输入少于50个的整数,其值在0和4之间(包括0和4),用-1作为输入
结束标志,统计每个整数的个数。
请编程实现。
33.(**)从键盘输入两个字符串a和b,要求不用库函数strcat把串b的前五个字符连接
到串a中;如果b的长度小于5,则把b的所有元素都连接到a中,请编程实现。
main()
{chara[50],b[10],*p1,*p2;
inti,j;
scanf(“%s%s”,a,b);
n=strlen(a);
for(p1=a+n,p2=b;p1<=a+(n+4);p1++,p2++)
{*p1=*p2;
if(*p2==’\0’)break;}
*p1=’\0’;
printf(“%s”,a);}
34.(**)编写函数,在一个一维数组中查找指定值,若找到则返回该数值的下标,否则返
回-1。
要求用指针变量传递数组首地址。
main()
{floata[10]={1,2,3,4,5,6,7,8,9,10};
floatb;
inti;
scanf("%f",&b);
for(i=0;i<10;i++)
if(b==a[i])
{printf("%d\n",i);break;}
if(i>=10)printf("-1");
printf("\n");
}
35.(**)写一程序,要求用户在键盘上输入一个整数,并把每位数字转换为英文。
例如:
输入1024时,输出OneZeroTwoFour
main()
{longintn;
intm,i=0,c[10];
scanf("%ld",&n);
do
{m=n%10;
i++;
c[i]=m;
printf("%5d%5d%5d\n",i,m,c[i]);
}
while((n/=10)>0);
while(i>=1)
{i--;
switch(c[i+1])
{case0:
{printf("zero");printf("");break;}
case1:
{printf("one");printf("");break;}
case2:
{printf("two");printf("");break;}
case3:
{printf("three");printf("");break;}
case4:
{printf("four");printf("");break;}
case5:
{pr