社区应用 最新帖子 精华区 社区服务 会员列表 统计排行 社区论坛任务 迷你宠物
  • 3633阅读
  • 0回复

[笔试]新思科技笔试题

级别: 经院本科
发帖
1586
铜板
2193
人品值
2089
贡献值
15
交易币
0
好评度
1575
信誉值
0
金币
0
所在楼道
SYNOPSYS(新思科技)上海研发中心,原为AVANTI(先驱微电子)上海研发中心,01年12月被合并。
目前地址在兆丰大厦(长宁)
主要是做EDA软件。
除了LIBRARY组做硬件库外,其余组都是运用语言编程或测试。
毕竟是EDA软件,所以对VHDL,VERILOG,电路基础知识也有一定要求。
 
发信人: cocofly (巧克力飞鹰), 信区: Career
标 题: Re: synopsys考的什么内容啊?透露一下吧
发信站: BBS 水木清华站 (Thu Nov 18 15:09:01 2004), 站内
 
C/C++基础
算法
数据结构。
【 在 bestleman (天气变凉了~~) 的大作中提到: 】
: 谢谢
 
 
发信人: cokio (慢慢长大), 信区: job
标 题: synopsys CS笔试题
发信站: 饮水思源 (2004年12月07日20:55:54 星期二), 站内信件
 
今天Synopsys笔试内容大致如下,有一题想不起来了,大家帮忙回忆:
1。说出指针和引用的区别。
1) 引用必须被初始化,指针不必。
3) 不存在指向空值的引用,但是存在指向空值的指针。
 
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;}                    ---------(1)
            void printTotal() {int total = i+base::i;}         ----------(2)
};
 
(1)“base” : 没有合适的默认构造函数可用
(2)“base::i” : 无法访问 private 成员(在“base”类中声明)
 public:   derived(int x, int y):base(y) {i=x;}                    ---------(1)
程序员定义构造函数后,编译器就不会自动生成默认构造函数了,而派生类必须调用基类的构造函数,所以出错
 
4。实现strcpy函数。
5。编程判断字符串是否对称。如:ABCCBA对称,ABCDBA就不对称。
6。1,2,5,10四个基数任意次数组合相加得到一个数N,求所有可能组合。
背包问题(非0/1)
#include "stdafx.h"
using namespace std;
const int INPUT = 10;
const int N = 10;
int a[N];
int b[4] = {10, 5, 2, 1
};
void inita()
{
    for(int i = 0; i < N; i++)
    {
       a = 0;
    }
}
 
bool ok(int num, int k)
{
    return num >= a[k] && a[k] <= a[k-1];
}
void backtrack(int num, int k)
{
    if(k >= INPUT || num == 0)
    {
       if(num == 0)
       {
           for(int i = 0; i < k; i++)
           {
              cout << a << " + ";
           }
           cout << endl;
       }
    }
    else
       for(int i = 0; i < 4; i++)
       {
           a[k] = b;
           if(ok(num, k))
              backtrack(num -a[k], k+1);
       }
}
 
int main(void)
{
    inita();
    a[-1]=INPUT;
    backtrack(INPUT, 0);
    return 0;
}
 
 
7。二叉树前序遍历得到表达式。
 
8。题目意思不是很明白,可能是推出产生式的意思吧。
9。用尽可能多的方法来表示数组a[2][3]里第一个元素的地址。
    cout << (int)&a[0][0] << endl;
    cout << (int)&a[0] << endl;
    cout << (int)a << endl;
10。循环链表的节点对换和删除。
 
11。hash表实现。
 
发信人: yangfanzuozi (风行云影), 信区: Career_Plaza
标 题: synopsys笔试题(CS卷)
发信站: 水木社区 (Tue Oct 25 10:21:50 2005), 站内
 
攒下rp,有些题记不清了,昨天考过的同学出来指正一
 
1, 给出指针的数据类型
 
   a,float (**p)[10]
   b, double *(*p)[10]
   c, 记不清了,大概是 char *(*p)()之类的
   d, int *((*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两部分
   b,develop group是test group的3倍
   c,要求能够并行处理,比如develop 2nd的时候,可以test 1st
   d,任何形式的设计都可以
 
7,描述多线程程序的并行处理
 
8,dy/dx=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
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
描述
快速回复

您目前还是游客,请 登录注册
温馨提示:欢迎交流讨论,请勿纯表情、纯引用!
认证码:
验证问题:
10+5=?,请输入中文答案:十五