c 语言数组练习题及答案
第一题 : 在数组 a 中, 存放有 n 个学生的成绩 . 试编一函数 : 将低于平均分的学生
人数 m 由函数值返回 , 将低于平均分的分数由数组 b 带回 . int fun(int a[],int
n,int b[]) {
int i,m=0,aver=0;
for(i=0;i
aver/=n;
for(i=0;i
if(a[i]
return m;
}
第二题 : 试编一函数 : 求出 1000 之间能被 7 或 11 整除 , 但不能同时被 7 或 11 整
除的 所有整数的个数 n 由函数值返回 , 并将符合条件的数放在数组 a 中带回 . int
fun(int a[])
{
int i,n=0;
for(i=1;i<1000;i++)
if((i%7==0&&i%11!=0)||(i%7!=0&&i%11==0)) a[n++]=i;
return n;
}
第三题 : 试编一函数 : 将大于整数 m且紧靠 m的 k 个素数存入数组 a 中. void
fun(int m,int k,int a[]) {
int i,n,data,flag;
data=m+1; n=0;
while(n
{
flag=1;
for(i=2;i<=data/2;i++)
if(data%i==0)
{
flag=0; break;
}
if(flag) a[n++]=data;
data++;
}
}
第四题 : 试编一函数 : 在数组 a 中有 n 个整数 , 要求把下标从 0 到 p(p 小于等于
n-1) 的数
平移到数组的最后 .
如 : 原始内容 : 1,2,3,4,5,6,7,8,9,10; 当 p=4 时 :
移后内容 : 6,7,8,9,10,1,2,3,4,5
void fun(int a[],int n,int p) {
int i,j,t;
for(i=0;i<=p;i++)
{
t=a[0];
for(j=1;j
a[n-1]=t;
}
}
第五题 : 试编一函数 : 在具有 n 个数据的数组 a 中, 求出次最大值的下标并由函
数值返回 .
int fun(int a[],int n)
{
int i,j,max,may;
if(a[0]>a[1])
{
max=0; may=1;
}
else {
max=1; may=0;
}
for(i=2;i
if(a[i]>a[max])
{
may=max;
amx=i;
}
else if(a[i]>a[may]) may=i;
return may;
}
第六题 : 在数组 a 中有 n 个四位数 . 试编一函数 , 要求按每个数的后三位的大小
进行升序排
列 , 当后三位等相同时 , 则对这些数值按原始四位数据进行降序排序 . 将排序后
的前 10 个数存入数组 b 中.( 提示 : 可采用选择排序 )
int fun(int a[],int