C语言模拟试卷(程序填空)
模拟试卷
程序填空(每空2分,共20分)
1、将一个数组中的元素按逆序重新存放。例如原来的顺序为:8,6,5,4,1, 要求改为:1,4,5,6,8。
#define N 7
main()
{ int a[N]={12,9,16,5,7,2,1},k,s;
printf("\n初始数组:\n");
for (k=0;k
printf("%4d",a[k]);
for (k=0;k< (1) ;k++)
{ s=a[k]; a[k]= (2) ; (2) =s;
}
printf("\n交换后的数组:\n");
for (k=0; (3) ;k++)
printf("%4d",a[k]);
}
2、用递归方法求N阶勒让德多项式的值,递归公式为
#include
main()
{ float pn();
float x,lyd;
int n;
scanf("%d%f",&n,&x);
lyd= (1)
printf("pn=%f",lyd);
}
float pn(float x,int n)
{ float temp;
if (n==0) temp= (2)
else if (n==1) temp= (3)
else temp= (4)
return(temp);
}
3、在数组中同时查找最大元素下标和最小元素下标,分别存放在main函数的变量max和min中。
#include
void find(int *a,int *max,int *min)
{ int i;
*max=*min=0;
for(i=1;i
if(a[i]>a[*max]) (1) ;
else if(a[i]
return;
}
main()
{ int a[]={5,8,7,6,2,7,3};
int max,min;
find( (3) );
printf("%d,%d\n",max,min);
}
程序填空(每空2分,共20分)
1、有 N个国家名,要求按字母先后顺序排列(用起泡排序法)后输出。
#define N 20
#include
#include
void main()
{ int a[N][30],t[30],i,j,s;
printf("\n初始数组:\n");
for (i=0;i
gets(a[i]);
for (i=0;i< (1) ;i++)
for(j=0;j< (2) ;j++)
if( (3) )
{ strcpy(t,a[j]);
strcpy(a[j],a[j+1]);
strcpy(a[j+1],t);
}
printf("\n排序后:\n");
for (i=0;i
printf("%s\n",a[i]);
}
2、求出两数的最大公约数。其中求非负整数X,Y的最大公约数GCD(X,Y)的公式如下:
#include
int gcd(int x,int y)
{ int temp;
if(y==0) temp= (1)
else if(x>=y) temp= (2)
else temp= (3)
return(temp);