c语言数组练习题及答案

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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 n,int b[]) {

int i,j,k,t,m=10;

for(i=0;i

{

k=i;

for(j=i+1;j

if(a[j]%1000

else if(a[j]%1000==a[k]%1000 && a[j]>a[k]) k=j;

if(k!=i)

{

t=a[i]; a[i]=a[k]; a[k]=t;

}

}

for(i=0;i

return m;

}

第七题:在三位数(100至999)中寻找符合下面条件的整数.它即是完全平方数,又有两位

数字相同.(如:144,676;)并将符合条件数的个数n由函数值返回,符合条件的数存入数组a中返回.

int fun(int a[])

{

int i,j,hun,ten,data,n=0;

for(i=10;i<32;i++)

{

j=i*i;

if(j>=100&&j<=999)

{

hun=j/100;

ten=j%100/10;

data=j%10;

if(hun==ten||ten==data||data==hun) a[n++]=j;

}

}

return n;

}

第八题:判断一个长整型数是否为回文数(回文数是指其数字左右对称的整数).当该数是回文

数时,函数值返回1,否则返回0.(提示:利用逻辑量flag进行操作). int

fun(long m)

{

int i=0,n=0,flag=1,a[20];

while(m)

{

a[n]=m%10; m=m/10; n++;

}

while(i<=n/2 && flag)

if(a[i]!=a[--n] flag=0;

else i++;

return flag;

}

第九题:在数组a中存有n个数据,试编一函数:依次从数组中取出一个数据,如查该数连续大于该

数以后的5个数且该数是奇数,统计出满足此条件数的个数m由函数值返回,并把这些数按从小到大的顺序存入数组b中.

int fun(int a[],int n,int b[]) {

int i,j,flag,m=0;

for(i=0;i

{

for(j=i+1;j<=i+5;j++)

if(a[i]>a[j]) flag=1;

else {

flag=0; break;

}

if(flag==1 && a[i]%2==1) b[m++]=a[i];

}

for(i=0;i

for(j=0;j

相关文档
最新文档