Open In App

Synopsys Interview Experience for R&D Senior Engineer 1

Last Updated : 20 Aug, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

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

Round 1: 

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.


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads