Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Synopsys Interview Experience for R&D Senior Engineer 1

  • Last Updated : 20 Aug, 2021

Recently I had gone through four rounds of Synopsys Interviews for R&D Senior Engineer 1

Round 1: 

Hey geek! It's time to become a success story instead of reading them. Check out our most renowned DSA Self Paced Course, now at a student-friendly price and become industry ready. And if you are looking for a more complete interview preparation resource, check out Complete Interview Preparation Course that will prepare you for the SDE role of your dreams!

Feeling prepared enough for your interview? Test your skills with our Test Series that will help you prepare for top companies like Amazon, Microsoft, TCS, Wipro, Google and many more!

Output-based questions:



  1. C++




    int j = 0;
      
    for(int i = n; i > 1; i = i/2) j++;
      
    int add(int &a, int &b)
      
    {
      
     int c = a + b;
      
     return c;
      
    }
      
    int main()
      
    {
      
     int int1, int2, sum;
      
     sum = add(int1, int2);
      
    }

    
    

  2. C++




    int a =10;
      
    int &r = a;
      
    int b = 25;
      
    r = b;
      
    r++;
      
    cout << r << endl << a << endl << b << endl;
      
    void printArray(int A[])
      
    {
      
     // write code here
      
    }
      
    int main()
      
    {
      
     int Arr[5] = {2, 4, 6, 8, 10};
      
     printArray(Arr);
      
     return 0;
      
    }

    
    

  3. C++




    void ChangeArray(int A[], int n)
      
    {
      
     for(int i = 0; i < n; i++)
      
      A[i]++;
      
    }
      
    int main()
      
    {
      
     int Arr[5] = {2, 4, 6, 8, 10};
      
     ChangeArray(Arr, 5);
      
     for(int i = 0; i < 5; i++)
      
         cout << Arr[i] << " ";
      
     return 0;
      
    }

    
    

  4. C++




    void func(int n)
      
    {
      
     cout << n;
      
     func(n-1);
      
    }
      
    int main()
      
    {
      
     func(3);
      
     return 0;
      
    }
      
    int func(int n)
      
    {
      
     static int x = 0;
      
     if(n<=0)
      
      return 0;
      
     x++;
      
     return func(n-1) + x;
      
    }
      
    main()
      
    {
      
     func(5);
      
    }

    
    

  5. C++




    void foo(int n, int sum)
      
    {
      
     if(n==0) return;
      
     int k = n%10;
      
     int j = n/10;
      
     sum = sum + k;
      
     foo(j, sum);
      
     cout << k << ", ";
      
    }
      
    int main()
      
    {
      
     int a = 2048, sum = 0;
      
     foo(a, sum);
      
     cout << sum << endl;
      
    }

    
    

  6. C++




    int j = 0;
      
    for(int i = n; i > 1; i = i/2) j++;
      
    int i = n; 8
      
    int j = 0;
      
    while(i > 1) {
      
    j++;
      
    i = i/2;
      
    }

    
    

  7. C++




    void printArray(int A[])
      
    {
      
     // write code here
      
     int len = sizeof(A)/sizeof(A[0]);
      
     for(int i = 0; i < len; i++) {
      
      printf("%d ", A[i]);
      
     }
      
    }
      
    int main()
      
    {
      
     int Arr[5] = {2, 4, 6, 8, 10};
      
     printArray(Arr);
      
     return 0;
      
    }

    
    

  8. C++




    int func(int n)
      
    {
      
     static int x = 0;
      
     if(n<=0)
      
      return 0;
      
     x++;
      
     return func(n-1) + x;
      
    }
      
    main()
      
    {
      
     func(5);
      
    }

    
    

  9. C++




    void foo(int n, int sum)
      
    {
      
     if(n==0) return;
      
     int k = n%10;
      
     int j = n/10;
      
     sum = sum + k;
      
     foo(j, sum);
      
     cout << k << ", ";
      
    }
      
    int main()
      
    {
      
     int a = 2048, sum = 0;
      
     foo(a, sum);
      
     cout << sum << endl;
      
    }

    
    

  10. Build Binary search tree using preorder and inorder traversal
  11. Virtual function questions in C++

Round 2:

  1. Design Queue using stacks
  2. Next Greater element and previous smaller element
  3. Declare 2d array in C++
  4. What each declaration means below
    const char* p; // pointer itself is constant
    char * const p; // value is consstant  
    const char * const p; // both are constants
  5. Design your own vector class and difference between vector and array.

Round 3:

  1. Second largest element in a BST.
  2. Cycle in a directed and undirected graph
  3. Basic C++ questions related to virtual functions and constructors.

Round 4:

  1. Find the next number in the series
    3, 5, 8, 13, 22
    3 * 2 = 6 - 1   5  
    5 * 2 = 10 - 2  8  
    8 * 2 = 16 - 3  13  
    13 * 2 = 26- 4  22
    22 * 2 = 44- 5  39
  2. Convert string number to integer like atoi and ensure proper test cases are covered
  3. Why looking for a change and few other behavioral questions.



My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!