A.int a[3][4]={0};
B.int a[3][4]={{1,2},{1,2,3},{1,2,3,4}};
C.int a[3][]={0,1,2,3,4,5,6,7,8,9,10,11,12};
D.int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};
面试题:二维数组中的查找
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
阅读下列函数说明和C代码,将应填入 处的字句写在答题纸的对应栏内。
[函数1.1说明]
函数int factors(int n)的功能是判断整数n(n>=2)是否为完全数。如果n是完全数,则函数返回0,否则返回-1。
所谓“完全数”是指整数n的所有因子(不包括n)之和等于n自身。例如28的因子为1、2、4、7、14,而28=1+2+4+7+14,因此28是“完全数”。
[函数1.1]
int factors(int n)
{
int i,s;
for(i=1,s=0;i<=n/2;i++)
if(n%i==0) (1) ;
if((2) )return 0;
return -1;
}
[函数1.2说明]
函数int maxint(int a[], int k)的功能是用递归方法求指定数组中前k个元素的最大值,并作为函数值返回。
[函数1.2]
int maxint(int a[],int k)
{
int t;
if((3) ) return (4) ;
t=maxint(a+1, (5) );
return (a[0]>t)?a[0]:t;
面试题:数字在排序数组中出现的次数
题目:统计一个数字在排序数组中出现的次数。例如输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输出4。
编写下面的方法,返回二维数组中最大元素的位置。
返回值是包含两个元素的一维数组,这两个元素表示二维数组中最大元素的行下标和列下标。编写一个测试程序,提示用户输入一个二维数组,然后显示这个数组中最大元素的位置。
指定n的值,这里只计算为n奇数的魔方。
把魔方数存储在二维数组中,首先把1放在第0行的中间,剩下的数2,3,…,n2依次向上移动一行,并向右移动一列。当可能越过数组边界时需要“绕回”到数组的另一端。例如,如果需要把下一个数放到-1行,就将其存储到n-1行(最后一行);如果需要把下一个数放到第n列,就将其到第0列。如果某个特定的数组元素已被占用,就把该数存储在前一个数的正下方。