Всички големи компании постоянно търсят талантливи програмисти, които да се присъединят към техните екипи. Трябва да придобиете възможно най-много „знание“, за да получите възможност в тези големи корпорации.

Интервюто за работа на програмист неизбежно ще включва въпроси относно програмирането. Винаги ще трябва да сте запознати с основи на програмирането, независимо от езика за програмиране, който използвате.

Намалихме напрежението ви, като съставихме списък с най-често срещаните въпроси, които ще бъдат задавани по време на интервютата за програмиране.

Водещи въпроси и отговори за интервю за програмиране

За да ви улесним, разделихме въпросите в две категории (вижте по-долу).

  1. Концептуални въпроси за интервю
  2. Въпроси за интервю, базирани на кодиране

Въпроси за интервю за програмиране въз основа на концепция

Въпросите за интервюто в тази част ще оценят вашето разбиране на основните концепции за програмиране.

Какво се разбира под компютърно програмиране?

Компютърното програмиране е процес стъпка по стъпка на писане на алгоритъм с помощта на език за програмиране и неговото изпълнение.


Опишете алгоритъм. Кои са някои от основните му характеристики?

Колекция от отделни стъпки, когато се следват, помага при изпълнението на конкретна задача. Времето, пространството и паметта са ключови характеристики на алгоритъма.

Обяснете абстракцията на данни

Абстракцията на данни е процесът на отделяне на логическата структура на данните от тяхната физическа реализация. Абстракцията на данни позволява на програмистите да създават програми, които са независими от физическите структури на данни и които могат да се използват за различни типове данни.

Какво разбирате под поддържане и актуализиране на компютърна програма?

Процесът на поддръжка и актуализиране на компютърна програма започва след успешното й инсталиране.

Докато надграждането на компютърна програма включва извършване на малки и значителни подобрения с течение на времето, поддръжката на програмата се отнася до текущата дейност по проверка на програмата за пропуски и грешки.

Какво представляват структурите от данни< br />
Структури от данни, това е методът за организиране, сортиране и манипулиране на данни. Масивите, дърветата и графиките са някои от широко използваните структури от данни.


Какво точно е масив?

Група от обекти, съхранявани в последователни места в паметта, се нарича масив.

Свързани списъци : Какви са те?

Свързаният списък е линейна структура от данни, подобна на масив, където компонентите не винаги се поддържат заедно.

Опишете LIFO.

Това е метод за получаване на достъп до, съхраняване и извличане на данни. Last In First Out се нарича LIFO.

Опишете FIFO.

Данните могат да бъдат достъпни, запазени и извлечени с помощта на този метод. First In First Out се нарича FIFO.


Какво е рекурсия?

Рекурсията е процес на самоизвикване на функция в отговор на грешка. Използва се стековата структура на данните, защото се използва LIFO.


Защо се използват Deque?

Възможно е да има две опашки наведнъж. Премахването или вмъкването на елемент от всеки край е възможно в тази структура.

Избройте всички възможни форми на грешки, които могат да възникнат, докато компютърната програма се изпълнява, и обяснете всяка от тях.

Логическа грешка
r: Логическа грешка възниква, когато има неправилно използване на синтаксис и логика в кодирането. Тези грешки са трудни за отстраняване на грешки, когато отчетите не се генерират


Грешка по време на изпълнение: Грешка по време на изпълнение възниква, когато има грешно внедряване на код или незаконна употреба на синтаксис. Например, разделяне на число на 0. Грешките по време на изпълнение са най-вече грешки, които лесно се отстраняват, защото се показват преди изпълнението на програмата.

Синтактична грешка: Както всеки език има синтаксис. Когато тези синтаксиси се използват неправилно, ще възникне грешка. Синтактичните грешки са граматични грешки при писане на език за програмиране. Само компилатор може да открие синтактични грешки.

Опишете променливите с няколко изречения

Променливите са контейнери, които съхраняват както входните данни, така и произвеждат изходни данни, когато бъдат поискани. В действителност това са именувани местоположения в паметта. По време на изпълнение на програмата, стойността, съхранявана в променлива, може да се промени.

Какво означава терминът „Резервирана ключова дума“?

В определен език за програмиране, запазените ключови думи са термини с предварително определени дефиниции.


Какво разбирате под цикли?

Инструкция за цикъл които могат да се повторят определен брой пъти, докато не бъде изпълнено определено условие

Какво означават константите в програмирането?

Програмни обекти, наречени константи за имат стойности, които не могат да бъдат променяни, докато програмата работи.

Опишете операторите.

В компютърна програма операторите се използват за извършване определени действия върху данни. За тяхното представяне се използват символи. Например математическите символи / и * означават съответно деление и умножение.

Какво разбирате под подпрограма

Подпрограмата е група за идентичност или изрази, които могат да се използват от всяко място в алгоритъм или програма.

Контролът се изпраща обратно в раздела на подпрограмата на програмата, след като подпрограмата е изпълнила успешно задачата, за която е предназначена да изпълни.

Какво разбирате под машинен код?

Машинният код е език за програмиране от ниско ниво. Това е най-основната форма на програмиране, защото се състои от единици и нули. Машинният код е бил използван в миналото за програмиране на компютри. Той все още се използва днес за програмиране на компютри, но не е толкова популярен, колкото езиците от високо ниво като C++ или Java.

Обяснете тестването на софтуера. Защо ни е необходимо?

Тестването на софтуера е процесът на изпълнение на програма или система с намерението да се открият софтуерни грешки

Тестването на софтуер е важна част от разработката на софтуер, защото помага да се открият грешки в кода.

Някои хора биха казали, че това е загуба на време и пари, но тестването на софтуера всъщност е много важно, за да се уверите, че продуктът ще бъде доставен на своите потребители без големи проблеми.

Какво имате предвид под „бета версия“ на компютърна програма?

Бета версия на компютърна програма е втората версия на софтуер приложение, което все още не е достатъчно тествано, за да бъде пуснато за широката публика.

Бета версията обикновено е достъпна за безплатно изтегляне и ще има повече функции от предишната алфа версия. Възможно е обаче да има грешки и други проблеми, които трябва да бъдат отстранени, преди да бъде активиран.

Какво е компилатор?

Компилаторът е компютърна програма, която превежда език за компютърно програмиране (изходен код) на друг език.

Какво е отстраняване на грешки?

Отстраняването на грешки е процес на намиране и коригиране на грешки в програма

Защо добавяме коментари в кодове?

Коментарите са редове текст, които са включени в кода, за да помогнат обяснете какво прави кодът. Коментарите могат да ви помогнат да си спомните какво сте мислили, когато сте писали кода, и могат да направят вашите програми по-лесни за разбиране от други хора, които може да се наложи да ги модифицират.

Кои са някои от най-добри практики за кодиране

Някои от най-добрите практики за кодиране са:

  1. Използвайте подходящи променливи
  2. Използвайте функции, за да направите кода си по-четлив
  3. Създайте модулен код
  4. Коментирайте вашия код

Въпроси за интервю за програмиране, базирани на кодове

Кой код за проверка на низ е палиндром или не?

Код:

#include <string.h>
int main()
{
    char x[2500];  
    int i,n,y=0;
    printf("input string : ");
    gets(x);
    n=strlen(x);
    for(i=0;i<n/2;i++)  
    {
   if(s[i]==x[n-i-1])
   y++;
   }
   if(y==i)
       printf("string is palindrome");
    else
        printf("string is not palindrome");
    return 0;
}

Напишете метод, който ще премахне даден символ от низ?

Код:

public class RemoveChar {  
    public static void main(String[] args) {  
              String str = "Visit anythingprogramming.com"; 
              System.out.println(charRemoveAt(str, 7));  
           }  
           public static String charRemoveAt(String str, int p) {  
              return str.substring(0, p) + str.substring(p + 1);  
           }  
}

Отпечатване на цялата пермутация на String Рекурсивен начин?

Код:

public class XYZ {

    static void printPerm(String str, String ans)
    {

        if (str.length() == 0) {
            System.out.print(ans + " ");
            return;
        }
        for (int i = 0; i < str.length(); i++) {

            char ch = str.charAt(i);
String ros = str.substring(0, i) + 
                         str.substring(i + 1);
            // Recurvise call
            printPerm(ros, ans + ch);
        }
    }
    // Driver code
    public static void main(String[] args)
    {
        String s = "xyz";
        printPermutn(s, "");
    }
}

Напишете функция за намиране на най-дългия палиндром в даден низ?

Код:

public class Demo {
public static void main(String[] args) {
     Demo lp = new Demo();
     String pal = lp.LongPalindrome("bananas");
        System.out.println("" + pal);    
     pal = lp.LongPalindrome("abaradab121");
        System.out.println("" + pal);
}
public String LongPalindrome(String s) {
     // Validations
     if (s.isEmpty()) {
         return "Please enter a String";
     }
     if (s.length() == 1) {
         return s;
     }
     // Validations end
     // Start with one char (starting) as a longest palindrome
     String longest = s.substring(0, 1);
     for (int i = 0; i < s.length(); i = i+1) {
         // get longest palindrome for odd length (center is i)
         String tmp = checkForEquality(s, i, i);
         if (tmp.length() > longest.length()) {
             longest = tmp;
         }
         // get longest palindrome for even length (center is i, i+1)
         tmp = checkForEquality(s, i, i + 1);
         if (tmp.length() > longest.length()) {
             longest = tmp;
         }
     }
     return longest;
}
public String checkForEquality(String s, int begin, int end) {
     while (begin >= 0 && end <= s.length() - 1 && s.charAt(begin) == s.charAt(end)) {
         begin--;
         end++;
     }
return s.substring(begin + 1, end);
}
}

Как да получите съвпадащите елементи в масив от цели числа?

Код:

for (m = 0; m < size; m++)

{

for (n = m + 1; n < size; n++)

{

if (arry[m] == arry[n])

System.out.print(arr[m]);

}

}

Как да изчисля първия символ на низ, който не се повтаря?

Код:

Set<Character> repeated = new HashSet<>();

List<Character> nonRepeated = new ArrayList<>();

for (int m = 0; m < wrd.length(); m++) {

char l = wrd.charAt(m);

if (repeated.contains(l)) {

continue;

}

if (nonRepeated.contains(l)) {

nonRepeated.remove((Character) l);

repeated.add(l);

} else {

nonRepeated.add(l);

}

}

return nonRepeated.get(0);

}

Как получавате съвпадащите елементи в масив от цели числа?

int[] a = { 1, 2, 3, 4, 5, 1, 2, 6, 7 };

for (int m = 0; m ‹ a.length; m++) {

for (int n = m + 1; n ‹ a.length; n++) {

if (a[m] == a[n])

System.out.print(a[m]);

}

}

Как бихте приложили алгоритъма за сортиране с мехурчета?

int[] x = { 0, 3, 7, 9, 11, 13, 19 };

for (int y = 0; y ‹ x.length; y++) {

за (int l = 0; l ‹ x.length - l - 1; l++) {

if (x[l] > a[0+ 1]) {

int z = x[l];

x[l] = x[l + 1];

x[l + 1] = z;

}

}

}

Как бихте приложили алгоритъма за сортиране чрез вмъкване?

int[] x = { 0, 3, 7, 9, 11, 13, 19 };

for (int a = 1; a ‹ x.length; a++) {

int b = a;

докато (b › 0 && x[b - 1] › x[b]) {

int y = x[b];

x[b] = x[b - 1];

x[b - 1] = y;

b--;

}

}

Заключение

Въпросите в този списък ще ви помогнат да успеете в прецизните интервюта и са такива, с които всеки бъдещ програмист трябва да е запознат. Моля, коментирайте, ако срещнете други недостатъци, които не са в този списък по време на интервюто, за да можем да ги включим в списъка. Късмет!