-
Data: 2005-12-17 13:43:28
Temat: Motorola Kraków - rozmowa
Od: Łukasz Góralczyk <l...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie 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
Następne wpisy z tego wątku
- 17.12.05 17:45 Krzysztof Stachlewski
- 17.12.05 20:08 leszek
- 17.12.05 20:45 Sławomir Szyszło
- 17.12.05 22:57 Lukasz
- 17.12.05 23:13 Sławomir Szyszło
- 18.12.05 00:43 Łukasz Góralczyk
- 18.12.05 01:07 Łukasz Góralczyk
- 18.12.05 09:20 leszek
- 18.12.05 11:44 Lukasz
- 18.12.05 13:58 Muchomor
- 18.12.05 15:18 Plissken
- 18.12.05 15:27 leszek
- 18.12.05 18:02 Paweł
- 18.12.05 18:36 leszek
- 18.12.05 18:46 Muchomor
Najnowsze wątki z tej grupy
- Wyjaśnienie patologii opisanej w art. pt. "Przeciw bezkarności biznesu"
- Agora zwalnia grupowo, mimo że w firmie pojawiły się zyski, czyli załoga zapracowała na siebie
- Walka Lewicy o B2B na etat
- Najbogatsi ludzie na świecie są jeszcze bogatsi. Bezprecedensowa skala zysków
- Awantura w PiS o Jacka Kurskiego. "Nierób zarabia krocie"
- Dokerzy z Gdańska walczą
- "[...] w pierwszej połowie roku 2025 przedsiębiorstwa zgłosiły zamiary zwolnień grupowych obejmujących 80 tys. pracowników."
- "[...] trzy związki zawodowe działające w koncernie Ringier Axel Springer Polska domagają się od firmy podwyżek płac."
- "sieć handlowa Kaufland przegrała w Polsce kolejny proces z działaczami związkowymi"
- Panuje się 181 159,42 zł./mies. na posła w 2026r.
- W czerwcu il. ofert pracy w PUP spadała o 50%, a rok do roku spadła o 66,6%
- Next.Gazeta informuje, że od 2029 roku (lub 2030 roku) cyfrowe euro stanie się prawnym środkiem płatniczym w całej UE
- Drastycznie rośnie import stali - w hucie w Dąbrowie Górniczej zostanie wygaszony wielki piec
- Teoria Organizacji w Ujęciu Totaliztycznym - NOWA MONOGRAFIA
- "w państwie bez stosów" poszukującego pracy wsadzają do psychiatryka za "niewygodne pytania"
Najnowsze wątki
- 2026-01-17 Wrocław => Junior Konsultant wdrożeniowy ERP <=
- 2026-01-17 Warszawa => Inżynier Systemów i Sieci <=
- 2026-01-17 Poznań => Konsultant SAP HCM <=
- 2026-01-17 Myślenice => Junior SAP CO Consultant <=
- 2026-01-17 Warszawa => Data Developer <=
- 2026-01-15 Białystok => Solution Architect (Workday) - Legal Systems <=
- 2026-01-15 Białystok => Frontend Developer React <=
- 2026-01-15 Myślenice => Junior SAP CO Consultant <=
- 2026-01-15 Wyjaśnienie patologii opisanej w art. pt. "Przeciw bezkarności biznesu"
- 2026-01-13 Warszawa => Recruiter 360 <=
- 2026-01-13 Katowice => Key Account Manager <=
- 2026-01-13 Warszawa => Senior Backend Java Developer <=
- 2026-01-13 Wrocław => ERP Implementation Consultant <=
- 2026-01-12 Warszawa => BI Developer <=
- 2026-01-09 Warszawa => Dynamics 365 Commerce/POS Developer <=




Fakturzystka, fakturzysta