C语言上机考试:二维数组峰点查找与修正.pdfVIP

  • 1
  • 0
  • 约3.17千字
  • 约 3页
  • 2026-03-14 发布于北京
  • 举报

C语言上机考试:二维数组峰点查找与修正.pdf

2009年秋二级C语言上机试卷(试卷代号C08)

一、改错题(16分)

在一个二维数组中查找峰点,若找到则输出峰点位置及峰点值,否则输出“notfound”。

所谓峰点是指元素aij在第i行上是最大值并且在第j列上也是最大值。在一个二维数

组中可能有多个峰点,也可能没有峰点。

【测试数据与运行结果】

数组初始化数据:

1234

2341

3412

4123

输出:

a[0][3]=4a[1][2]=4a[2][1]=4a[3][0]=4

【含有错误的源程序】

#includestdio.h

#includeconio.h

intfindmaxpoint(inta[][4],intb[][2])

{inti,j,k,m=0,maxi,maxj,max;

for(i=0;i4;i++)

for(j=0;j4;j++)

{max=a[0][0];/*算法错,难,改为:max=a[i][j];*/

for(k=0;k4;k++)

if(k!=ia[k][j]max)break;

if(k4)break;/*算法错,中,改为:continue*/

for(k=0;k4;k++)

if(k!=ja[i][k]max)break;

if(k4)continue;

b[m][0]=i;

b[m][1]=j;

m++;

}

returnm;

}

voidmain()

{inti,j,k,n,a[][]={{1,2,3,4},{2,3,4,1},{3,4,1,2},{4,1,2,3}},b[4][2];

/*语法错,易,改为inta[4][4]={{1,2,3,4},{2,3,4,1},{3,4,1,2},{4,1,2,3}};*/

n=findmaxpoint(a[4][4],b[4][2]);/*语义错,易,改为:n=findmaxpoint(a,b);*/

if(n0)printf(Notfoundmax_point);

else

for(k=0;kn;k++)

{i=b[k][0];

j=b[k][1];

printf(a[%d][%d]=%d\t,i,j,a[i][j]);

}

getch();

}

二、编程题(24分)

找出满足以下条件的一个自然数:该数的七进制表示是一个三位数,该数的九进制表

示也是一个三位数,这两个三位数中出现的数字相同并且排列的顺序正好相反。

【编程要求】

1.编写函数intfun(char*p,char*q)实现以下功能:找出满足上述条件的自然数。将该自然

数的七进制表示转换为字符串保存到p指向的数组中,将该自然数的九进制表示转换为

字符串保存到q指向的数组中,函数返回该自然数。

2.编写函数main实现以下功能:两个字符数组并用其作为实参调用fun函数,将求得

的满足上述条件的自然数及该自然数的七进制表示字符串和九进制表示字符串输出到

屏幕及文件myf2.out中。最后将考生

文档评论(0)

1亿VIP精品文档

相关文档