上海先锋商贸科技有限公司面试
来源:互联网 发布:mac免费翻墙回国软件 编辑:程序博客网 时间:2024/04/28 03:13
面试题内容(C,C++嵌入式)
题目我记不全了,大楷内容有:
1。c的基础知识(字符串数组,指针等)
2。数据结构,队列,双向列表,替归,堆栈,二叉树遍历
3。地图着色问题
4。模拟计算器
四大内容
主管面试
1。项目经验
2。考一个C语言的题目
--------------------------------------------------------出自
在网上找到类似题目
阅读以下程序说明和C程序,将应填入__(n)__处的字句,写在答卷的对应栏内。
[程序说明]
一个相连的区域被不规则地分割成n个不同的小区域;每个小区域与若干其它小区域相邻接。现用cn种不同颜色为该区域着色,要求每个小区域着同一种颜色,相邻小区域着不同颜色。
设小区域被顺序编号为0,1,…,n-1。每个小区域与其它小区域的邻接关系用两维数组bordering表示,元素bordering[i][j]表示i号小区域与j 号小区域之间的邻接关系:
0 j小区域与i小区域不邻接
bordering[i][j]=
1 j小区域与i小区域相邻接
程序中,把计算结果存入于两维数组colored中,颜色编号为0,1,…,cn-1,元素colored[coler][j]的含义是
0 j小区域不用颜色color着色
colored[color][j]=
1 j小区域用颜色color着色
函数colorcountry(bordering,colored,n,cn)根据所给的小区域邻接关系数组bordering、小区域个数n 、颜色数cn,将找到的着色方案记录在数组colored中。函数采用试探法找解。首先从第一个小区域着第一种颜色开始顺序为各小区域找着色方案。对某个小区域,当为它找到一种未被它的相邻小区域着色的颜色时,就用该颜色对该小区域着色,并准备处理下一个小区域。当不能为某个小区域找到一个未被它的相邻小区域着色的颜色时,就回溯。如最终为全部小区域找到着色方案,函数返回1;否则,函数返回0。
程序假定小区域个数不超过20,颜色数为4。
[程序]
#include
#define n 20
#define CN 4
int colorcountry(int bordering[][N], int colored[][N], int n,int cn)
{ int color,used,i,c;
for(color=0;colorn;i++)colored[color][i]=0;
c =0; /*从第1个小区域开始*/
color =0; /*从着第1种颜色开始试控*/
while(cc;i++)
if(____(2)____)used=1;
if(!used)break; /*当前颜色未被相邻小区域着色*/
color++
}
if(!used)
{ /*找到一种可用颜色,用此色着色,并准备处理下一个小区域*/
____(3)____=1; color=0;
}else{/*未找到一种可用颜色,回溯*/
c--;if (cfor(color=0;____(4)____;color++);
____(5)____=0
}
}
return 1;
}
print(int colored[ ][N],int n,int cn) /*输出结果*/
{ char *colort[ ]={“RED”,”BLUE”,”GREEN”,”YELLOW”};
int color,i;
for(color=0;colorn;i++)
if(colored[color][i]) printf(“ %d”,i);
printf(“ ”);
}
}
int colored[CN][N],bordering[N][N];
main()
{ int c,i,j,n;
printf(“Enter number of areas.”); scanf(“%d”,&n);
printf(“Enter bordering: ”);
for(i=0;in;j++)bordering[i][j]=0;
for(i=0;i0 to next). ”,i);
scanf(“&d”,&j);
while(j>=0)
{ if(i !=j) bordering[i][j]=bordering[j][i]=1;
scanf(“%d”,&j);
}
}
if(colorcountry(bordering,colored,n,CN))
print(colored,n,CN);
else printf(“No Solution. ”);
}
[程序说明]
一个相连的区域被不规则地分割成n个不同的小区域;每个小区域与若干其它小区域相邻接。现用cn种不同颜色为该区域着色,要求每个小区域着同一种颜色,相邻小区域着不同颜色。
设小区域被顺序编号为0,1,…,n-1。每个小区域与其它小区域的邻接关系用两维数组bordering表示,元素bordering[i][j]表示i号小区域与j 号小区域之间的邻接关系:
0 j小区域与i小区域不邻接
bordering[i][j]=
1 j小区域与i小区域相邻接
程序中,把计算结果存入于两维数组colored中,颜色编号为0,1,…,cn-1,元素colored[coler][j]的含义是
0 j小区域不用颜色color着色
colored[color][j]=
1 j小区域用颜色color着色
函数colorcountry(bordering,colored,n,cn)根据所给的小区域邻接关系数组bordering、小区域个数n 、颜色数cn,将找到的着色方案记录在数组colored中。函数采用试探法找解。首先从第一个小区域着第一种颜色开始顺序为各小区域找着色方案。对某个小区域,当为它找到一种未被它的相邻小区域着色的颜色时,就用该颜色对该小区域着色,并准备处理下一个小区域。当不能为某个小区域找到一个未被它的相邻小区域着色的颜色时,就回溯。如最终为全部小区域找到着色方案,函数返回1;否则,函数返回0。
程序假定小区域个数不超过20,颜色数为4。
[程序]
#include
#define n 20
#define CN 4
int colorcountry(int bordering[][N], int colored[][N], int n,int cn)
{ int color,used,i,c;
for(color=0;colorn;i++)colored[color][i]=0;
c =0; /*从第1个小区域开始*/
color =0; /*从着第1种颜色开始试控*/
while(cc;i++)
if(____(2)____)used=1;
if(!used)break; /*当前颜色未被相邻小区域着色*/
color++
}
if(!used)
{ /*找到一种可用颜色,用此色着色,并准备处理下一个小区域*/
____(3)____=1; color=0;
}else{/*未找到一种可用颜色,回溯*/
c--;if (cfor(color=0;____(4)____;color++);
____(5)____=0
}
}
return 1;
}
print(int colored[ ][N],int n,int cn) /*输出结果*/
{ char *colort[ ]={“RED”,”BLUE”,”GREEN”,”YELLOW”};
int color,i;
for(color=0;colorn;i++)
if(colored[color][i]) printf(“ %d”,i);
printf(“ ”);
}
}
int colored[CN][N],bordering[N][N];
main()
{ int c,i,j,n;
printf(“Enter number of areas.”); scanf(“%d”,&n);
printf(“Enter bordering: ”);
for(i=0;in;j++)bordering[i][j]=0;
for(i=0;i0 to next). ”,i);
scanf(“&d”,&j);
while(j>=0)
{ if(i !=j) bordering[i][j]=bordering[j][i]=1;
scanf(“%d”,&j);
}
}
if(colorcountry(bordering,colored,n,CN))
print(colored,n,CN);
else printf(“No Solution. ”);
}
答案:
(3分) color < cn
答color < 4给3分;答 color <= cn给2分。
(3分)bordering [c ] [ i ] && colored [ color ] [ i ]
答bordering [c ] [ i ] ==1 && colored [ color ] [ i ] == 1 给3分。
答bordering [c ] [ i ] * colored [ color ] [ i ] == 1 给3分,而将其中相等运算符“==”写成赋值运算符“=”时,只给1分。其中bordering [c ][ i ]可写成bordering[ i ][c ]。运算符‘&&’左右只对一半给2分。
(3分)colored [ color ] [ c++ ]
答colored [ color ] [ c ]给2分。
答colored [ color ] [ … ]给1分。
答c++ 给1分。
(3分) colored[color][c] == 0或! colored [ color ] [ c ]或colored [ color ] [ c ] !==1
(3分)colored [ color ++ ] [ c ]
答colored [ color ] [ c ]给2分,
答colored [ color ] [ … ]给1分。
(3分) color < cn
答color < 4给3分;答 color <= cn给2分。
(3分)bordering [c ] [ i ] && colored [ color ] [ i ]
答bordering [c ] [ i ] ==1 && colored [ color ] [ i ] == 1 给3分。
答bordering [c ] [ i ] * colored [ color ] [ i ] == 1 给3分,而将其中相等运算符“==”写成赋值运算符“=”时,只给1分。其中bordering [c ][ i ]可写成bordering[ i ][c ]。运算符‘&&’左右只对一半给2分。
(3分)colored [ color ] [ c++ ]
答colored [ color ] [ c ]给2分。
答colored [ color ] [ … ]给1分。
答c++ 给1分。
(3分) colored[color][c] == 0或! colored [ color ] [ c ]或colored [ color ] [ c ] !==1
(3分)colored [ color ++ ] [ c ]
答colored [ color ] [ c ]给2分,
答colored [ color ] [ … ]给1分。
我只能想起这些了,总之需要有扎实的C语言功底
面试时,他们是要看项目经验的,很看中你是否跟他们的要求相近(你做过的和他们现在的)!
好了,祝大家好运!
- 上海先锋商贸科技有限公司面试
- 上海先锋商泰面试题
- 计算n!中结尾零的个数——上海先锋商泰面试归来
- 细谈volatile限定符——上海先锋商泰面试归来
- 计算n!中结尾零的个数——上海先锋商泰面试
- 计算n!中结尾零的个数——上海先锋商泰面试归来
- 计算n!中结尾零的个数——上海先锋商泰面试归来
- 先锋商泰面试
- 面试心得 --- 晶朝科技有限公司面试心得
- 科马先锋笔试+面试
- 广州虎鱼网络科技有限公司面试
- 深圳起航创势科技有限公司面试
- 13年上海先锋商泰试题总结
- 2015先锋(笔试-面试-复试)
- 去上海盛大网络面试
- 面试上海理光
- 电话面试(上海阿尔卡特)
- 第一次面试:hello 上海
- 数据库设计经验(转)
- ubuntu8.04 DCOPSERVER问题!
- Search all jsp filename in the text,but the filename which should not include the symbol '_'
- Mememoir - 科学家们的 Wiki
- 在VC中透明浮动按键的实现
- 上海先锋商贸科技有限公司面试
- XP风格界面的实现
- 下拉列表select可写
- java中文件操作大全
- web服务器+数据库服务器+静态页服务器分离
- 这时,我有了新的想法,新的观念
- Fedora 9 安装mplayer
- 通用的ASP防SQL注入攻击程序
- NeHe OpenGL教程 (一)