微软的测试题
Test Paper for Software Design Engineer(Test time: 60 minutes)
Name: Date: Location:
Part 1: Technical Skills Set
(请将 “ ● ”paste在您所掌握的技能程度表格内,并注明您的使用时间和相关的证书)
技能列表精通 熟练 掌握 了解 使用时间(月)所获证书
English (oral)
English (written)
OOPprogramming skills
C/C++ (pointer, memory)
Java
C#
NET
算法&数据结构
Win API experience –plus
Part 2 : Technical Test
1.实现二分查找的递归算法的函数。(使用C++,不建议用伪码)
2.请指出该程序的错误。
#include <iostream.h>
int *p;
void Function();
{
int n;
n = 25;
p = &n;
}
void main()
{
Function();
cout<<"value of *p: "<<*p<<endl;
}
3. 英语写作
Question: Please describe your career path in the next two years.
[ Last edited by ayong401 on 2004-9-28 at 17:32 ] 这是我在CSDN上发现的
大家有兴趣可以衡量一下自己的水平如何?
版主
你的这个帖子我颇有兴趣,能给我一个链接嘛?我想看看。 Originally posted by songfun at 2004-9-30 12:35 AM:
你的这个帖子我颇有兴趣,能给我一个链接嘛?
我想看看。
你好.链接如下:
http://dev.csdn.net/develop/article/33/33811.shtm
;)祝你好运! 但是没有答案啊。看到别人的回答都不满意。 #include 后面为什么没东西?
int *p 可以不在函数里被定义吗?
主函数放在最后没关系把?
主函数里的Function()能成为一个单独的语句吗?
初学者,这个是我不确定的,想知道答案,高手指点
回题目
应该是指针返回了局部地址的问题吧! 最大的问题:p是全局变量,在Function()函数中指向的是局部变量n的地址,Function()调用结束后,这些局部变量是要被释放的,后面再调用该地址的值很容易出错。:)
1.实现二分查找的递归算法的函数。(使用C++)自己写代码的水平不过关,找了一个,大家看看
int binsearch(seqlist r,int low,int high,rectype k)
{
int mid=(low+high)/2;
if (low<=high)
{
if (r.key) return mid;
if (r.key>k) return binsearch(r,low,mid-1,k);
else return binsearch(r,mid+1,high,k);
}
else return 0;
}
2. 请指出该程序的错误。
指针变量*p 也没有被初始化吧。。。 请高手给个改完后的答案,拜托! 我倒,全是高手啊~~~这么难得题目~~~居然还在这讨论~!@#$%^&* Originally posted by qingtian at 2004-12-6 09:40 AM:
我倒,全是高手啊~~~这么难得题目~~~
居然还在这讨论~!@#$%^&*
汗:o
这都是C++基础啊。 变量N在函数在FUNCTION结束后就释放掉空间了,那么*P指向的就是一个空地址了。最后输出不了什么东西的。大忌!
版主archonwang的程序没有给出具体的预定义哦!线性数组中的定义要先给出,否则其中的成员KEY是哪里来的?
开个玩笑,版主莫怪! 局部变量在函数调用后,会把变量N释放,但N原来的值还在栈中.指针p 是这个变量N的地址,但在调用这个函数后,这个变量N被释放了.虽然N的值还存在栈中,但N不存在了,所以指针P也不会指到这个地址,所以我们无法知道这P指针指向什么地址.因此*p的结果是未知的. gaosou 递归算法那道题有标准答案吗?
递归算法
实现二分查找的递归算法的函数,只要代碼書寫規範就可以了,沒甚麼別的.我改一下上面的那個代碼.(使用C++)int binsearch(seqlist r,int low,int high,rectype k)
{
if(low>high)
{
return -1;//0 也是數組的首位置嗎
}
else
{
int mid=(high-low)/2; //加怎麼行了
if (r.key==k)
return mid;
if (r.key>k)
return binsearch(r,low,mid-1,k);
if(r[mid.key<k)
return binsearch(r,mid+1,high,k);
}
//可能還有錯誤,沒改 这就是学习啊,也许我们不是高手,但在这里有教室的氛围!我喜欢