return k;
}
main()
{ void CHECK();
int arr[10]={56,178,6,123,87,243,161,124,78,143},k;
clrscr();
k=suffix(arr,10);
printf("数组arr的最大元素为:
arr[%d]=%d\n",k,arr[k]) ;
getch();
CHECK();
}
/*在sum函数中,根据整型形参m,计算如下公式的值。
1 1 1 1
y = ------- + --------- + --------- + …… + -------
100*100 200*200 300*300 m*m
例如,若形参 m = 2000,则程序输出:
The result is:
0.000160。
*/
#include
/************Fill in the blanks************/
double sum(int m)
{ int i;
double y,d;
/************Fill in the blanks************/
y=0;
for(i=100;i<=m;i+=100){
d = (double)i * (double)i ;
y += 1.0/d;
}
/************Fill in the blanks************/
return(y);
}
main( )
{ int n = 2000 ;
printf("\nThe result is:
%lf\n",sum(n));
getch();
}
/*比较数组a[]和数组b[]中,a[i]>b[i]、a[i]=b[i]和a[i]
其中comp函数的功能是:
当x>y时,返回1;当x=y时,返回0;当x=y时,返回0。
*/
#include
/**********Error**********/
int comp(int x,int y)
{ int flag;
if(x>y) flag=1;
/**********Error**********/
else if(x==y) flag=0;
else flag=-1;
return(flag);
}
main()
{ int i,n=0,m=0,k=0;
int a[10]={5,-23,5,21,6,18,9,12,23,7};
int b[10]={6,-9,64,23,-52,0,9,8,-35,12};
printf("数组a:
\n");
for(i=0;i<10;i++) printf("%4d",a[i]);
printf("\n");
printf("数组b:
\n");
for(i=0;i<10;i++) printf("%4d",b[i]);
printf("\n");
for(i=0;i<10;i++){
if(comp(a[i],b[i])==1) n=n+1;
else if(comp(a[i],b[i])==0) m=m+1;
else k=k+1;
}
printf("a[i]>b[i]%2d 次\na[i]=b[i]%2d 次\na[i]
getch();
}
/*将 1 到 n 之间,能同时被 7 和 11 整除的整数存储到形参数组a[]中,并返回这些整数的个数。
例如:
当 n = 1000 时,程序输出:
77 154 231 308 385 462 539 616 693 770 847 924 */
#include
int fun(int a[],int n)
{ int i; int k=0;
for(i=1;i<=1000;i++)
if(i%7==0&&i%11==0)
{a[k]=i;
k++;
}
return k;
}
main()
{ void CHECK();
int arr[20],i,k,n;
clrscr();
n=1000;
k=fun(arr,n);
for(i=0;i printf("%4d",arr[i]);
getch();
CHECK();
/*计算N×N的二维数组的所有数组元素的平均值。
例如:
a 数组中的值为
|0 1 2 7 9|
|1 9 7 4 5|
a = |2 3 8 3 1|
|4 5 6 8 2|
|5 9 1 4 1|
则平均值为:
4.280000。
*/
#include
#define N 5
float count(int a[N][N])
{ int i,j;
float sum=0,ave;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
sum=sum+a[i][j];
ave=sum/(N*N);
return ave;
}
main()
{ void CHECK();
int arr[N][N]={{0,1,2,7,9},{1,9,7,4,5},{2,3,8,3,1},{4,5,6,8,2},{5,9,1,4,1}};
clrscr();
printf("二维数组arr的元素的平均值为:
%f\n",count(arr)) ;
getch();
CHECK();
}
/*求广义菲玻那契数列的第n项。
广义菲玻那契数列前3项分别是1,1,1,从第4项开始,各项分别是其前3项之和。
广义菲玻那契级数的前n项为:
1,1,1,3,5,9,17,31,…… 。
例如,若 n = 20,则应输出
广义菲玻那契级数的第20项为:
46499。
*/
#include
long fibonacci(int n)
{ long a=1,b=1,c=1,d;
int i;
/************Fill in the blanks************/
for(i=4;i<=n;i++)
{
/************Fill in the blanks************/
d=a+b+c;
a=b;
b=c;
c=d;
}
/************Fill in the blanks************/
return d;
}
main()
{ int n=20;
printf("广义菲玻那契级数的第%d项为:
%ld\n",n,fibonacci(n));
getch();
}
/*应用冒泡排序算法,对数组a[]中的元素从小到大进行排序。
*/
#include
void sort(int a[],int n)
{ int i,j,t;
for(j=0;j for(i=0;i if(a[i]>a[i+1]){
t=a[i];
/**********Error**********/
a[i]=a[i+1];
/**********Error**********/
a[i+1]=t;
}
}
main()
{ int k,a[10]={6,-9,78,23,-12,0,9,8,-3,12};
printf("数组a:
\n");
for(k=0;k<10;k++)
printf("%d ",a[k]);
sort(a,10);
printf("\n从小到大排序:
\n");
for(k=0;k<10;k++)
printf("%d ",a[k]);
printf("\n");
getch();
}
/*计算1到形参n之间,能被3和7整除的整数的和,并作为函数值返回。
例如,n为1800时,程序输出:
1到1800之间,能被3和7整除的整数的和为:
76755 */
#include
long sum(int n)
{
int i;
long sum=0;
for(i=1;i<=n;i++)
if(i%3==0&&i%7==0)
sum=sum+i;
return(sum);
}
main()
{ void CHECK();
int n=1800;
clrscr();
printf("1到%d之间,能被3和7整除的整数的和为:
%ld\n",n,sum(n)) ;
getch();
CHECK();
}
/*统计子字符串substr在字符串str中出现的次数。
例如,若字符串为This is a C Program,子字符串为is,则应输出2。
*/
#include
int count(char str[],char substr[])
{ int i,j,k,num=0;
/************Fill in the blanks************/
for(i=0;str[i]!
='\0';i++)
for(j=i,k=0;substr[k]==str[j];k++,j++)
/************Fill in the blanks************/
if(substr[k+1]=='\0')
{
num++;
break;
}
/************Fill in the blanks************/
return num;
}
main()
{
char str[80],substr[80];
printf("Input a string:
");
gets(str);
printf("Input a substring:
");
gets(substr);
printf("The result is:
%d\n",count(str,substr));
getch();
}
/*求二维数组a[3][3]中各列元素的平均值,并依次存储在一维数组b[3]中。
*/
#include
void fun(int a[3][3],float b[3])
{ int i,j;
for(i=0;i<3;i++){
for(j=0;j<3;j++)
/**********Error**********/
b[j]+=a[i][j];
}
for(i=0;i<3;i++)
/**********Error**********/
b[i]/=3;
}
main()
{ int a[3][3]={{1,2,3},{4,5,6},{7,8,9}},i;
float b[3]={0,0,0};
fun(a,b);
for(i=0;i<3;i++)
printf("%4.1f ",b[i]);
printf("\n") ;
getch();
}
/*有一个3×4的矩阵,求所有元素中的最小值。
*/
#include
min_value(int array[][4])
{ int i,j,min;
min=array[0][0];
for(i=0;i<3;i++)
/************Fill in the blanks************/
for(j=0;j<4;j++)
if(array[i][j]/************Fill in the blanks************/
min=array[i][j];
/************Fill in the blanks************/
return(min);
}
main()
{ int a[3][4]={{-11,23,15,37},{29,48,6,-8},{15,17,34,12}};
printf("矩阵中所有元素的最小值= %d\n",min_value(a));
getch();
}
/*求班级学生考试成绩的平均值。
*/
#include
float average(float array[],int n)
{ int i;
float aver,sum=array[0];
/************Fill in the blanks************/
for(i=1;i sum=sum+array[i];
/************Fill in the blanks************/
aver=sum/n;
/************Fill in the blanks************/
return (aver);
}
main()
{ float score_1[5]={98.5,97,91.5,60,55};
float score_2[10]={67.5,89.5,99,69.5,77,89.5,76.5,54,60,99.5};
printf("班级A学生考试成绩的平均值= %6.2f\n",average(score_1,5));
printf("班级A学生考试成绩的平均值= %6.2f\n",average(score_2,10));
getch();
}
/*将每个英语单词的第一个字母改成大写(这里的“单词”是指由空格隔开的字符串)。
例如,若输入:
I am a student to take the examination.,
则应输出:
I Am A Student To Take The Examination.。
*/
#include
/**********Error**********/
void change(char s[])
{ int i,k;
k=0;
/**********Error**********/
for(i=0;s[i]!
='\0';i++)
if(k)
{if(s[i]==' ') k=0;}
else if(s[i]!
=' ')
{k=1;
s[i]=toupper(s[i]);
}
}
main()
{ char str[80];
printf("\nPlease enter an English text line:
");
gets(str);
printf( "Before changing:
\n %s",str);
change(str);
printf("\nAfter changing:
\n %s\n",str);
getch();
}
/*计算
1 1 1 1 1
1 - --- + --- - --- + --- - ... ---
2 3 4 5 n
例如,n=100时,运算结果为:
0.688172。
*/
#include
float count(int n)
{ int i;
float sign=1; float sum=0;
for(i=1;i<=n;i++)
{
sum=sum+sign/i;
sign=(-1)*sign;
}
return sum;
}
main()
{ void CHECK();
int n=100;
clrscr();
printf(" 1 1 1 1 1\n");
printf("1 - --- + --- - --- + --- - ... --- = %f\n",count(n));
printf(" 2 3 4 5 %d\n",n);
getch();
CHECK();
}
/*求出以下分数序列的前n项之和。
2 3 5 8 13 21
┄┄ , ┄┄ , ┄┄ , ┄┄ , ┄┄ , ┄┄ , ……
1 2 3 5 8 13
例如,若n = 5,则应输出:
8.391667。
*/
#include
/************Fill in the blanks************/
double sum(int n)
{ int a,b,c,k;
double s;
/************Fill in the blanks************/
s=0;
a=2;
b=1;
for(k=1;k<=n;k++){
s=s+(double)a/b;
c=a;
/************Fill in the blanks************/
a=b+c;
b=c;
}
return s;
}
main()
{ int n=5;
printf("\nThe value of function sum is:
%lf\n",sum(n));
getch();
}
/*计算两个双精度数的和的平方根。
例如,若输入:
23.18,32.4721,则输出:
z=7.460034。
*/
#include
/**********Error**********/
double count(double a,double b)
{ double c;
/**********Error**********/
c=sqrt(a+b);
return c;
}
main()
{ double x,y,z;
printf("Enter x,y:
");
scanf("%lf,%lf",&x,&y);
z=count(x,y);
printf ("z=%f\n",z);
getch();
}
/*计算n!
。
例如,给n输入5,则输出5!
=120。
*/
#include
long count(int n)
{ int i;
long s=1;
for(i=1;i<=n;i++)
s=s*i;
return s;
}
main()
{ void CHECK();
int n;
clrscr();
printf("Input N:
");
scanf("%d", &n);
printf("%d!
=% ld\n",n,count(n));
getch();
CHECK(