SYNOPSYS新思科技的笔试题

时间:2021-03-18 12:44:42 综合指导 我要投稿

SYNOPSYS新思科技的笔试题

  SYNOPSYS(新思科技)上海研发中心,原为AVANTI(先驱微电子)上海研发中心,01年12月被合并。目前地址在兆丰大厦(长宁)主要是做EDA软件。除了LIBRARY组做硬件库外,其余组都是运用语言编程或测试。毕竟是EDA软件,所以对VHDL,VERILOG,电路基础知识也有一定要求。

SYNOPSYS新思科技的笔试题

  今天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表实现。


【SYNOPSYS新思科技的笔试题】相关文章:

新媒体运营笔试题08-22

教育科技局举办新入职幼儿教师岗前培训07-12

给学弟学妹的求职笔面试总结09-02

科技创业公司失败的原因03-28

2017笔试各题型答题技巧07-10

新的零元的创业开店03-25

新入职员工培训的目的09-03

新职员培训总结03-25

职业生涯规划的10大谜思01-18

科技创业协会的工作计划07-17