eGospodarka.pl
eGospodarka.pl poleca

PracaGrupypl.praca.dyskusjeMotorola Kraków - rozmowaMotorola Kraków - rozmowa
  • Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!newsfeed.tpinternet.pl!
    atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
    From: Łukasz Góralczyk <l...@g...com>
    Newsgroups: pl.praca.dyskusje
    Subject: Motorola Kraków - rozmowa
    Date: Sat, 17 Dec 2005 14:43:28 +0100
    Organization: tp.internet - http://www.tpi.pl/
    Lines: 153
    Message-ID: <do14mg$mh$1@atlantis.news.tpi.pl>
    NNTP-Posting-Host: edl93.neoplus.adsl.tpnet.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: 8bit
    X-Trace: atlantis.news.tpi.pl 1134827024 721 83.22.253.93 (17 Dec 2005 13:43:44 GMT)
    X-Complaints-To: u...@t...pl
    NNTP-Posting-Date: Sat, 17 Dec 2005 13:43:44 +0000 (UTC)
    User-Agent: Mozilla Thunderbird 1.0.7 (X11/20051017)
    X-Accept-Language: en-us, en
    Xref: news-archive.icm.edu.pl pl.praca.dyskusje:171027
    [ ukryj nagłówki ]

    Witam,

    Może komuś pomoże/przyda się. Całkiem niedawno (2, 3 tyg. temu),
    pierwszy etap na stanowisko Software Engineer w dziale rozwojowym UMTS.
    Czas: 1,5 godziny (można było ciut dłużej pisać). Cały test po angielsku
    (pytania), odpowiedzi można było pisać po Polsku. 1 pytanie z UML, 4 z
    Java, ok. 3 z Perla, reszta z C/C++.

    UML:
    1. Narysować: drzwi, użytkownik, który po wprowadzeniu
    hasła może otworzyć drzwi, oraz po wprowadzeniu hasła
    może je zamknąć. Administrator, który może zmieniać hasła.

    Perl:
    1. Dziedziczenie w Perlu (czy można i jak).
    2. Co to jest i do czego służy zmienna $_.
    3. Podane 2 tablice, jak najlepiej jest znaleźć różnice
    tych zbiorów (wylistować elementy pierwszego zbioru, których
    nie ma w drugim).

    Java:
    1. Czy jest możliwe wielokrotne (wielopokoleniowe) dziedziczenie
    w Java, jeśli nie, to czym można to zastąpić.
    2. Które odpowiedzi są fałszywe (tutaj kilka opcji)
    średnio trudne (niuanse języka).
    3. Które odpowiedzi są prawdziwe (tutaj kilka opcji),
    średnio trudne (niuanse języka).
    4. Kawałek programu z instrukcją switch(), wskazać błąd i
    ew. jak go poprawić - brakowało instrukcji breake na
    końcu każdego case.
    5. Kawałek programu z tablicą. Jedna funkcja próbuje
    wyciągnąć element z poza tablicy, w kodzie jest
    instrukcja "catch" - czyli przechwycenie wyjątku. Pytanie:
    co program wypisze?

    C/C++:
    Generalnie pytania miały postać: podany program, co
    jest źle, co wypisze na ekranie. Tylko w kliku pytaniach
    można było zaznaczyć a, b, c, itd.
    1. x = 1000 + 0666 + 0444 = ? (ile wynosi x).
    2. Standardowe pytania z #define kwadrad(x) x*x, potem
    printf( "(%d+%d)^2 = %d\n", a, b, kwadrat(a+b) ).
    3. Cztery klasy (możliwe, że była jeszcze jakaś funkcja wirtualna):
    class A { public: char a[100] };
    class B:virtual A { public: char b[100] };
    class C:virtual A { public: char c[100] };
    class D:A { public: char d[100] };
    class E:B,C,D { char e[100] };
    Ile (mniej więcej) zajmuje klasa E (możliwe 4, 5 wariantów):
    100, więcej niż 100, 200, więcej niż 200, 500, itd.
    4. Zaimplementowac klasę działającą jak stos (musza byc funkcje
    push, pop, print (wypisz ostatni jako pierwszy)).
    5. Znalezc blad. Podane 2 klasy A i B. B jest potomkiem A.
    B proboje uzyskac dostep do prywatnych skladnikow A (na tym
    polega blad).
    6. Kilka klas, wzajemne dziedziczenie. Klasy maja funkcje
    o tych samych nazwach, tylko jedna z nich jest wirtualna.
    Tworzony jest wskaznik klasy rodzica, ktory wskazuje na klase
    dziecko, potem za pomoca tego wskaznika sa wywolywane funkcje.
    Do tego przeładowanie funkcji o tej samej nazwie, jedna
    f(int) znajduje się w jednej klasie, druga f(void) znajduje
    się w drugiej klasie (dziecko tej pierwszej).
    7. Kilka klas, jedna dziedziczy druga. Pytanie co bedzie na wyjsciu
    (chodzi o kolejnosc wywolywania konstruktorow).
    8. 2 Klasy, jedna implementuje liste, druga dziedziczy liste i
    liczy sume elementow dodawanych do listy. Krotki programik -
    podac wynik (sume), jaka naliczy klasa. Trik polegal na tym,
    ze funkcja wstawiajaca elementy byla wirtualna i wywolywana
    za pomoca referencji do klasy List. Cos takiego
    (nie jestem pewien):
    class List
    {
    [blah, blah, inicjalizacja]
    virtual void insert( int a );
    };

    class TotalList:List
    {
    [blah, blah]
    insert( int a );
    func( List& );
    };

    TotalList::func( List &l )
    {
    l.insert(10);
    l.insert(20);
    };

    main()
    {
    [blah blah]
    TotalList a;
    a.func();
    }
    9. Tablica (chyba taka: int tab[] = { {'a','b'}, {'c','d'}, {'e','f'} };).
    Tworzony jest wskaźnik na tę tablicę, potem taka instrukcja:
    printf( "%d %d %d", *ptr++, *ptr++, *ptr++ ) - jaki bedzie wynik?
    10. Kolejna standardowa pulapka: #define abs(x) (x)>0?(x):(-x);,
    potem gdzieś to w programie zrobione z parametrem abs(++a);.
    11. Cos takiego:
    int tab[100], i;
    int *ptr = tab;
    for( i=0;i<100;i++ )
    {
    *ptr=i;
    f(&ptr);
    }
    f( **ptr)
    {
    **ptr++;
    *ptr++;
    }
    Jaka będzie zawartość tablicy tab (coś było z wskaźnikiem
    do wskaźnika)?
    12. Znaleźć prawdopodobny błąd - chodziło o to, że
    operator new, w konstruktorze, tworzył ciąg o długości
    100 znaków. Potem w ciele konstruktora kopiowane było
    pierwsze 100 znaków do tego nowego ciągu (pominięto
    znak końca '\0'). Gdzie błąd i jak poprawić?
    13. Dokończyć program, który zlicza ilość linii w podanym pliku
    (był zaczęty w C++).
    14. Taki program (w podobnym stylu):
    #define y x
    #define z x
    #define x y

    main()
    {
    int z,x;
    z = 2
    {
    x = y + z;
    // ile wynosi x tutaj.
    }
    }
    Dla mnie kłopotem było, czy w pytaniu też dokonać zamiany, czy nie.
    15. Dziwnie prosty program (może miał jakiś haczyk):
    f( char *a )
    {
    memcpy( a, "abcd", 4 );
    }
    main()
    {
    char b[] = "1234";
    f( b );
    }
    Co będzie w b? (możliwośc wyboru gotowej odpowiedzi)


    --
    Łukasz Góralczyk
    http://liku.sdfpau.org

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1