`
dato0123
  • 浏览: 915121 次
文章分类
社区版块
存档分类
最新评论

笔试题集锦(2)

 
阅读更多

1 下面代码有哪些错误?(台湾某公司0512月笔试题)

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

#include<iostream>
usingnamespacestd;

intmain()
{
int&t1;
int*pi;
*pi=3;
constdoubledt;
cout
<<pi<<endl;
return0;
}

答案#region答案
1引用不能为空,必须在定义时同时初始化
2声明了一个整型指针,但没有指向实际的地址,因此赋值的操作为出错
3常量定义时应该同时初始化
#endregion


2下面是一个蛇型矩阵

21 22 23。。。

20 7 8 9 10

19 6 1 2 11

18 5 4 3 12

17 16 15 14 13


1点的坐标为(00),X方向向右为正,y方向向下为正,如:7的坐标为(-1-1),2的坐标为(01),编程实现输入任意一坐标(x,y,输出所对应的数.(诺基亚05年笔试题).

#include<iostream>
#include
<cstdlib>
#include
<algorithm>

usingnamespacestd;

constintN=100;

intdata[N+1][N+1];

enumDIRECTION
{
RIGHT,DOWN,LEFT,UP
}
;

//模拟整个过程
voidSimulate(intn)
{
intx,y;
x
=y=(n-1)/2;//1的位置
data[x][y]=1;
intlen=1;
intcount=0;
intnum=2;
DIRECTIONdir
=RIGHT;
while(num<=n*n)
{
for(inti=0;i<len;i++)
{
switch(dir)
{
caseLEFT:
--y;break;
caseRIGHT:
++y;break;
caseUP:
--x;break;
caseDOWN:
++x;break;
default:break;
}

data[x][y]
=num++;
}

count
++;
if(count==2)
{
count
=0;
len
++;
}

dir
=(DIRECTION)((dir+1)%4);
}

}


//打印螺旋矩阵
voidOutput(intn)
{
inti,j;
for(i=0;i<n;i++)
{
cout
<<data[i][0];
for(j=1;j<n;j++)
cout
<<"/t"<<data[i][j];
cout
<<endl;
}

}


//以(1,1)所在位置作为原点,向右作为x正半轴,向下作为y正半轴
intGetValue(intx,inty)
{
intm=max(abs(x),abs(y));
intrightBottom=m*m*4-2*m+1;
intvalue=0;
if(x==-m)
{
value
=rightBottom+2*m+m-y;
}

elseif(y==m)
{
value
=rightBottom+m-x;
}

elseif(y==-m)
{
value
=rightBottom+4*m+x+m;
}

elseif(x==m)
{
value
=rightBottom-(m-y);
}



returnvalue;
}


voidTestPos(intn)
{
inti,j;
for(i=0;i<n;i++)
{
cout
<<GetValue(0-(n-1)/2,i-(n-1)/2);
for(j=1;j<n;j++)
cout
<<"/t"<<GetValue(j-(n-1)/2,i-(n-1)/2);
cout
<<endl;
}

}


intmain()
{
intn;
while(cin>>n)
{
if(n<=0||n>100)
{
cerr
<<"Sizeerror!"<<endl;
break;
}

else
{
Simulate(n);
Output(n);
cout
<<"*******************"<<endl;
TestPos(n);
}

}


return0;
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics