可可簡歷網

位置:首頁 > 面試 > 面試筆試

新思科技(Synopsys)筆試題目(回憶收集篇)

新思科技(Synopsys)筆試題目(回憶收集篇)
網友一:(2004)
今天Synopsys筆試內容大致如下,有一題想不起來了,大家幫忙回憶:
1.說出指標和引用的區別。
2.說下深度優先遍歷和廣度優先遍歷區別。
3.C++語法錯誤判斷。這題很有趣,我記下了,貼出來大家看看:)
class base{
private:int i;
public: base(int x){i=x;}
};
class derived: public base{
private:int i;
public: derived(int x, int y) {i=x;}
void printTotal() {int total = i+base::i;}
};
4.實現strcpy函式。
5.程式設計判斷字串是否對稱。如:ABCCBA對稱,ABCDBA就不對稱。
6.1,2,5,10四個基數任意次數組合相加得到一個數N,求所有可能組合。
7.二叉樹前序遍歷得到表示式。
8.題目意思不是很明白,可能是推出產生式的意思吧。
9.用盡可能多的方法來表示陣列a[2][3]裡第一個元素的地址
cout << (int)&a[0][0] << endl;
cout << (int)&a[0] << endl;
cout << (int)a << endl;
10.迴圈連結串列的節點對換和刪除。
表實現。

網友二:(2005)
1.給出指標的資料型別
t (**p)[10]
le *(*p)[10]
c.記不清了,大概是 char *(*p)()之類的
*((*p)[10])
2.給出程序間通訊的方法
管道
Socket通訊
訊號
共享記憶體
訊息佇列
3.給出程式執行結果
a void func(char **p, int num)
{
*p = malloc(num);
}
main()
{
char *p=NULL;
func(&p, 100);
strcpy(p,”blabla”);
printf(”%s”,p);
free(p);
}
blabla
b main()
{
char *p=NULL;
p = malloc(100);
strcpy(p,”blabla”);
free(p);
printf(”%s”,p);
}
有可能是亂碼
4.
a.一個正整數序列,值最大不超過K,沒有重複項,給出排序演算法
b.如果有重複項,需要對排序演算法做何改動
c.證明演算法最壞情況下複雜度為O(N)
d.給出演算法的空間複雜度
基數排序
5.給出二叉樹中序遍歷演算法,包括資料結構和函式實現
6.設計一個model,滿足下列條件
a.分為test group 和develop group兩部分
lop group是test group的3倍
c.要求能夠並行處理,比如develop 2nd的時候,可以test 1st
d.任何形式的設計都可以
7.描述多執行緒程式的並行處理
=y y(0)=1 求 x=0.4
a.h=0.2 h=0.1 分別計算y(0.4)
b.根據誤差和h成正比的公式,計算出h=0時的y(0.4)
c.要達到和b同等精度,需要迭代計算多少次(?)
9.比較兩套程式寫法哪個好,為什麼
a
(1) for(i=1;i<k;i++)
{
a = i + b + c * j;
printf(”%d”,a);
}
(2) a = b + c * j;
for(i=1;i<k;i++)
{
printf(”%d”,a+i);
}
2號,減少了不必要的步驟
b char a
(1) if(a==’A') ….
(2) if(’A'==a) ….
2號,減少出錯(誤把==寫成=)概率
10.給出表示式的樹結構表示 black=red+green×7+blue.