-
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
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
- "w państwie bez stosów" poszukującego pracy wsadzają do psychiatryka za "niewygodne pytania"
- M$ kroczy tradycyjną ścieżką amerykańskich korpo wytyczoną przez IBM i Dehomag w latach 30. XXw. w III Rzeszy
- Ponad 300 pracowników Aquinos Bedding Poland w Łodzi nie otrzymało dotychczas pensji za kwiecień
- Trzy największe polskie centrale związkowe domagają się znacznych podwyżek w budżetówce i wzrostu płacy minimalnej.
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Francja: "Za mało pracujemy, za dużo wydajemy" - a pierwsi chcieli pracować 4/7 !!!
- Pedalskie ogłoszenia na rządowej s. WWW oferty.praca.gov.pl:443
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Ile powinien trwać tydzień pracy?
- Jakie znacie działające serwery grup dyskusyjnych?
- is it live this group at news.icm.edu.pl
- praca 12/24
- 5 minut przerwy przy komputerze
- raczej już nigdy nie będę pracował w Polsce
- Stanowiska sztucznie tworzone
Najnowsze wątki
- 2025-07-14 Gdańsk => Programista Kotlin <=
- 2025-07-14 Warszawa => Junior Rekruter <=
- 2025-07-14 Warszawa => Specjalista rekrutacji IT <=
- 2025-07-14 Warszawa => Specjalista ds. Sprzętu Komputerowego <=
- 2025-07-14 Warszawa => International Freight Forwarder <=
- 2025-07-14 Warszawa => Recruiter 360 <=
- 2025-07-14 Warszawa => Sales Assistant <=
- 2025-07-12 Warszawa => PC Hardware Expert / Specjalista PC <=
- 2025-07-12 Warszawa => Account Manager - Usługi rekrutacyjne <=
- 2025-07-12 Warszawa => Administrator IT <=
- 2025-07-12 Warszawa => IT Administrator <=
- 2025-07-12 Warszawa => Asystent/tka ds. Administracji <=
- 2025-07-12 Warszawa => Specjalista/stka ds. Organizacji <=
- 2025-07-12 Warszawa => MENA New Business Manager <=
- 2025-07-12 Gdynia => Controlling systems Consultant <=