数组.docx

上传人:b****4 文档编号:3505364 上传时间:2022-11-23 格式:DOCX 页数:37 大小:26.56KB
下载 相关 举报
数组.docx_第1页
第1页 / 共37页
数组.docx_第2页
第2页 / 共37页
数组.docx_第3页
第3页 / 共37页
数组.docx_第4页
第4页 / 共37页
数组.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

数组.docx

《数组.docx》由会员分享,可在线阅读,更多相关《数组.docx(37页珍藏版)》请在冰豆网上搜索。

数组.docx

数组

数组

2.3.编程题.请编写一个函数fun(),它的功能是:

找出一维数组元素中最大的值和它所在的下标,最大值.和它所在的下标通过形参传回。

数组元素中的值已在主函数中赋予。

主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。

注意:

部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

#include

#include

voidfun(inta[],intn,int*max,int*d)

{

}

main()

{

inti,x[20],max,index,n=10;

randomize();

for(i=0;i<=n;i++)

{

x[i]=rand()%50;

printf("%4d",x[i]);/*输出一个随机数组*/

}

printf("\n");

fun(x,n,&max,&index);

printf("Max=%5d,Index=%4d\n",max,index);

}

3.3.编程题.请编写一个函数fun(),它的功能是:

求出1到m(含m)之内能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。

例如,若传给m的值为50,则程序输出:

711142122283335424449注意:

部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

#include

#include

#defineM100

voidfun(intm,int*a,int*n)

{

}

main()

{

intaa[M],n,k;

clrscr();

fun(50,aa,&n);

for(k=0;k

if((k+1)%20==0)/*每行输出20个数*/

{printf("%4d",aa[k]);

printf("\n");

}

else

printf("%4d",aa[k]);

printf("\n");

}

5.2.改错题

下列给定程序中,函数fun()的功能是:

先从键盘上输入一个3行3列的矩阵的各个元素的值,然后输出主对角线元素之和。

请改正函数fun()中的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include

intfun()

{

inta[3][3],sum;

inti,j;

/**********************found***********************/

sum=1;

for(i=0;i<3;i++)

{for(j=0;j<3;j++)

/**********************found***********************/

scanf("%d",a[i][j]);

}

for(i=0;i<3;i++)

sum=sum+a[i][i];

printf("Sum=%d\n",sum);

}

main()

{

fun();

}

8.1.填空题

下列给定程序中,函数fun()的功能是:

给一维数组a输入任意4个整数,并按如下的规律输出。

例如输入1,2,3,4,程序运行后输出以下方阵:

4123

3412

2341

1234

试题程序:

#include

#defineM4

voidfun(【1】)

{inti,j,k,m;

printf("Enter4number:

");

for(i=0;i

printf("\n\nTheresult:

\n\n");

for(i=M;i>0;i--)

{k=a[M-1];

for(j=M-1;j>0;j--)

a[j]=a[j-1];

【3】;

for(m=0;m

printf("\n");

}

}

main()

{inta[M];

fun(a);printf("\n\n");

}

8.3.编程题.编写函数intfun(intlim,intaa[MAX]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求出的素数的个数.注意:

部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

#include

#include

#defineMAX100

intfun(intlim,intaa[MAX])

{

}

main()

{

intlimit,i,sum;

intaa[MAX];

clrscr();

printf("输入一个整数");

scanf("%d",&limit);

sum=fun(limit,aa);

for(i=0;i

{

if(i%10==0&&i!

=0)/*每行输出10个数*/

printf("\n");

printf("%5d",aa[i]);

}

}

9.3.编程题.编写程序,实现矩阵(3行3列)的转置(即行列互换)。

例如,若输入下面的矩阵:

100200300

400500600

700800900

则程序输出:

100400700

200500800

300600900

注意:

部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

#include

#include

intfun(intarray[3][3])

{

}

main()

{

inti,j;

intarray[3][3]={{100,200,300},{400,500,600},{700,800,900}};

clrscr();

for(i=0;i<3;i++)

{for(j=0;j<3;j++)

printf("%7d",array[i][j]);

printf("\n");

}

fun(array);

printf("Convertedarray:

\n");

for(i=0;i<3;i++)

{for(j=0;j<3;j++)

printf("%7d",array[i][j]);

printf("\n");

}

}

10.3.编程题

请编写函数fun(),函数的功能是求出二维数组周边元素之和,作为函数值返回。

二维数组中的值在主函数中赋予。

例如:

若二维数组中的值为

13579

29994

69998

13570

则函数值为61。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

#include

#include

#defineM4

#defineN5

intfun(inta[M][N])

{

}

main()

{

intaa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}};

inti,j,y;

clrscr();

printf("Theoriginaldatais:

\n");

for(i=0;i

{for(j=0;j

printf("%6d",aa[i][j]);

printf("\n");

}

y=fun(aa);

printf("\nThesun:

%d\n",y);

printf("\n");

}

11.1.填空题给定程序中,函数fun()的功能是:

使数组中的元素的值增加10倍。

试题程序:

#include

#include

intm[10];

【1】fun(void)

{

intj;

printf("Insubfuncaftercalling\n");

for(j=0;【2】;j++)

{

  m[j]=【3】;

printf("%3d",m[j]);

}

}

main()

{inti;

printf("Inmainbeforecalling\n");

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

{

m[i]=i;

printf("%3d",m[i]);

}

fun();

printf("\nInmainaftercalling\n");

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

printf("%3d",m[i]);

getch();

}

11.3.编程题.下列程序定义了N×N的二维数组,并在主函数中赋值。

请编写函数fun(),函数的功能是:

求出数组周边元素的平均值并作为函数值返回给主函数中的s。

例如:

若a数组中的值为a=

01279

19745

23831

45682

59141

则返回主程序后s的值应为3.375。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

#include

#include

#include

#defineN5

doublefun(intw[][N])

{

}

main()

{

inta[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};

inti,j;

doubles;

clrscr();

printf("*****Thearray*****\n");

for(i=0;i

{for(j=0;j

{printf("%4d",a[i][j]);}

printf("\n");

}

s=fun(a);

printf("*****THERESULT*****\n");

printf("Thesumis:

%lf\n",s);

}

12.3.编程题.下列程序定义了N×N的二维数组,并在主函数中自动赋值。

请编写函数fun(inta[][N]),该函数的功能是:

使数组左下半三角元素中的值全部置成0。

例如a数组中的值为a=

197

238

456

则返回主程序后a数组中的值应为

097

008

000

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

#include

#include

#include

#defineN5

intfun(inta[][N])

{

}

main()

{

inta[N][N],i,j;

clrscr();

printf("*****Thearray*****\n");

for(i=0;i

{for(j=0;j

{a[i][j]=rand()%10;

printf("%4d",a[i][j]);

}

printf("\n");

}

fun(a);

printf("THERESULT\n");

for(i=0;i

{for(j=0;j

printf("%4d",a[i][j]);

printf("\n");

}

}

17.2.改错题

下列给定的程序中,函数fun()的功能是:

用选择法对数组中的n个元素按从小到大的顺序进行排序。

请改正程序中的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include

#defineN20

voidfun(inta[],intn)

{inti,j,t,p;

for(j=0;j

/**********************found***********************/

{p=j

for(i=j;i

if(a[i]

/**********************found***********************/

p=j;

t=a[p];a[p]=a[j];a[j]=t;

}

}

main()

{inta[N]={9,6,8,3,-1},i,m=5;

printf("排序前的数据:

");

for(i=0;i

fun(a,m);

printf("排序后的顺序:

");

for(i=0;i

}

18.1.填空题

下列给定程序中,函数fun()的功能是:

输出M行M列整数方阵,然后求两条对角线上的各元素之和,返回此和数。

试题程序:

#include

#include

#defineM5

【1】fun(intn,intxx[][M])

{inti,j,【2】;

printf("\nThe%dx%dmatrix:

\n",M,M);

for(i=0;i

{for(j=0;j

printf("%4d",xx[i][j]);

printf("\n");

}

for(i=0;i

sum+=【3】;

return(sum);

}

main()

{intaa[M][M]={{1,2,3,4,5},{4,3,2,1,0},{6,7,8,9,0},{9,8,7,6,5},{3,4,5,6,7}};

printf("\nThesumofallelementson2diagnalsis%d",fun(M,aa));

}

18.3.编程题

请编写函数voidfun(intx,intpp[],int*n),它的功能是:

求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。

例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

#include

#include

voidfun(intx,intpp[],int*n)

{

}

main()

{

intx,aa[1000],n,i;

clrscr();

printf("\nPleaseenteranintegernumber:

\n");

scanf("%d",&x);

fun(x,aa,&n);

for(i=0;i

printf("%d",aa[i]);

printf("\n");.

}

19.2.改错题假如整数数列中的数不重复,并存放在数组中。

下列给定的程序中,函数fun()的功能是:

删除数列中值为X的元素。

N中存放的是数列中元素的个数。

请改正程序中的错误果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

#include

#defineN20

fun(int*a,intn,intx)

{intp=0,i;

a[n]=x;

while(x!

=a[p])

p=p+1;

if(p==n)return-1;

else

{for(i=p;i

/**********************found***********************/

a[i+1]=a[i];

returnn-1;

}

}

main()

{intw[N]={-3,0,1,5,7,99,10,15,30,90},x,n,i;

n=10;

printf("Theoriginaldata:

\n");

for(i=0;i

printf("\nInputx(todelete):

");scanf("%d",&x);

printf("Delete:

%d\n",x);

n=fun(w,n,x);

if(n==-1)printf("***Nobefound!

***\n\n");

else

{printf("Thedataafterdeleted:

\n");

for(i=0;i

}

}

22.2--.改错题.给定程序中,函数fun()的功能是:

使数组中的元素的值缩小5倍。

请改正程序中的错误,使它能得出正确的结果。

#include

#include

floatm[10];

/**********************found***********************/

intfun(void)

{

intj;

printf("Insubfuncaftercalling\n");

for(j=0;j<10;j++)

{

;

/**********************found***********************/

printf("%f",m[j]%5);

}

}

main()

{

inti;

printf("Inmainbeforecalling\n");

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

{

m[i]=i+20;

printf("%f",m[i]);

}

fun();

printf("\nInmainaftercalling\n");

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

printf("%f",m[i]/5);

}

24.2.改错题.下列给定程序中,函数fun()的功能是:

输出M行N列整数方阵,然后求两条对角线上的各元素的平方和,返回此和数。

#include

#include

#defineM5

intfun(intn,intxx[][M])

{

inti,j,sum=0;

printf("\nThe%dx%dmatrix:

\n",M,M);

for(i=0;i

{

for(j=0;j

/**********************found***********************/

printf("%4d",xx[ij]);

/**********************found***********************/

printf('\n');

}

for(i=0;i

sum+=xx[i][i]*xx[i][i]+xx[i][n-i-1]*xx[i][n-i-1];

return(sum);

}

main()

{

intaa[M][M]={{3,12,4,24,35},{11,3,3,7,56},{61,27,58,49,24},{17,28,7,36,85},

{15,33,5,24,9}};

clrscr();

printf("\nTheresultofallelementson2diagnalsis%d",fun(M,aa));

}

26.2.改错题.下列给定程序中,函数fun()的功能是:

用冒泡法对6个字符串按由大到小的顺序进行排序。

请改正程序中的错误,使它能得到正确结果

#include

#include

#defineMAXLINE20

voidfun(char*pstr[6])

{

inti,j;

char*p;

for(i=0;i<5;i++)

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

/**********************found***********************/

if(strcmp((pstr+i),(pstr+j))<0)

{

p=*(pstr+i);

*(pstr+i)=*(pstr+j);

/**********************found***********************/

*(pstr+j)=*p;

}

}

main()

{

inti;

char*pstr[6],str[6][MAXLINE];

clrscr();

for(i=0;i<6;i++)

pstr[i]=str[i];

printf("\nEnter6string(1stringateachline):

\n");

for(i=0;i<6;i++)

scanf("%s",pstr[i]);

fun(pstr);

printf("Thestringsaftersorting:

\n");

for(i=0;i<6;i++)

printf("%s\n",pstr[i]);

}

28.2.改错题

下列给定程序中,函数fun()的功能是:

对N名学生的学习成绩,按从低到高的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。

#include

#include

#include

#include

#defineN10

typed

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1