加载中…
正文 字体大小:

2012年10月22日 CSR掌微电子笔试(Software Tool Development)

(2012-10-22 17:57:09)
标签:

杂谈

分类: 找工作那些事儿

1. 请找出以下程序中的错误

int function(int *p)
{
 int x;
 if(p==NULL)   x=0;
 else   x=*p;
 x+=count();  

 *p=x;  //经[MMOG]JeffChen指点,确定该步错误,当p=NULL时,会报错,Unhandled exception
 return 0;
}

2.请找出以下程序中的错误

void example()
{
 int buf[10];
 int *x=&buf[1];
 int i=0;
 for (;i<=10;i++)  //出界
  x[i]=0;
}

3.请找出以下程序中的错误

int wrong_code()
{
 void *p=NULL;
 void *q=malloc(20);
 if(!p || !q) return -1;  //如果判断满足,p,q指针无法释放
 free(q);  //p,q指针即使释放,为悬空指针
 free(p);
 return 0;
}

4.请找出以下程序中的错误

int f(void *p)
{
 if(some_error())
 {
  free(p);
  return -1;
 }
 return 0;
}
void func(void *p)
{
 int k=*p;
}
void g()
{
 void *p=malloc(42);
 if(f(p)<0)  free(p);  //p释放了2次
 func(p);
}

5.给定两个字符串s1和s2,要求判定s2是否能够被通过s1做循环移位(rotate)得到字符串包含。例如,S1=AABCD和s2=CDAA,返回true;给定s1=ABCD和s2=ACBD,返回false。用伪代码或流程图叙述解法。【编程之美】

解法一:从题目中可以看出,我们可以使用最直接的方法对S1进行循环移动,再进行字符串包含的判断,从而遍历其所有的可能性。字符串循环移动,时间复杂度为O(n),字符串包含判断,采用普通的方法,时间复杂度为O(n*m),总体复杂度为O(n*n*m)。字符串包含判断,若采用KMP算法,时间复杂度为O(n),这样总体的复杂度为O(n*n)。若字符串的长度n较大,显然效率比较低。其中n为S1的长度,m为S2的长度。

解法二(可选,加分):我们也可以对循环移位之后的结果进行分析。
以S1 = ABCD为例,先分析对S1进行循环移位之后的结果,如下所示:
ABCD--->BCDA---->CDAB---->DABC---->ABCD……
假设我们把前面的移走的数据进行保留,会发现有如下的规律:
ABCD--->ABCDA---->ABCDAB---->ABCDABC---->ABCDABCD……
因此,可以看出对S1做循环移位所得到的字符串都将是字符串S1S1的子字符串。如果S2可以由S1循环移位得到,那么S2一定在S1S1上,这样时间复杂度就降低了。

6.写一个程序,用以占用CPU资源,占用的百分比由用户选择,程序越精确越好,计算机语言不限。(假设系统空闲时CPU占用率接近0%)【编程之美】

//C# code static

void MakeUsage(float level)

{

  PerformanceCounter p = new PerformanceCounter("Processor", "% Processor Time", "_Total");

  while (true) { if (p.NextValue() > level) System.Threading.Thread.Sleep(10); }

}

7.判断计算机的字节存储顺序是小端点(little endian)还是大端点(big endian)

int i = 1;  
char *p = (char *)&i;  
if(*p == 1) printf("Little Endian");
else printf("Big Endian");

8.构造一个char类型的引用ch并保证它是64字节对齐的(&ch是64的倍数)

不会,直接写了#pragma pack (32) //指定按64字节对齐

9.在一个重男轻女的国家里,每家每户都想生男孩。若一户人家生了一个女孩,便会再生一个,直到生下的是男孩为止。请问这个国家的男女比例是多少?

这个极限推导一下,1:1

10.英译中

After a year in Sunnyvale, California, doing test managerment, I'm pulling up stakes again. I'm off to Virginia, where I’ve been hired by Reliable Software Technologies, a company known for tools and consulting dedicated to achieving very high quality software. I’ll spend most of my time in a consulting role, which is a very different reality from software management. But it will be an interesting one, nonetheless, especially since I’ve never worked in an environment that put reliability ahead of marketability, or even abreast of it.

11.你如何看待中医(即中国传统医学,以元气论,阴阳,五行为理论基础)的科学性和发展前景,用两三句话阐述。

0

阅读 评论 收藏 转载 喜欢 打印举报
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有