-
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
- 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
- Re: SOLUTIONS MANUAL: Optical Properties of Solids 2nd Ed by Mark Fox
- zapłata
- Re: Cwana cwaniurka czyli niemieccy oszuści.
- Re: Cwana cwaniurka czyli niemieccy oszuści.
- Jawność zarobków wszystkich
- rozmówki przy wódeczce...
Najnowsze wątki
- 2024-11-29 Błonie => Sales Specialist <=
- 2024-11-29 Warszawa => IT Expert (Network Systems area) <=
- 2024-11-29 Warszawa => Ekspert IT (obszar systemów sieciowych) <=
- 2024-11-29 Warszawa => Head of International Freight Forwarding Department <=
- 2024-11-29 Białystok => Inżynier Serwisu Sprzętu Medycznego <=
- 2024-11-29 Białystok => Application Security Engineer <=
- 2024-11-29 Białystok => Programista Full Stack (.Net Core) <=
- 2024-11-29 Gdańsk => Software .Net Developer <=
- 2024-11-29 Wrocław => Key Account Manager <=
- 2024-11-29 Gdańsk => Specjalista ds. Sprzedaży <=
- 2024-11-29 Chrzanów => Specjalista ds. public relations <=
- 2024-11-28 Katowice => Technical Artist <=
- 2024-11-28 Katowice => Technical Artist <=
- 2024-11-28 Bydgoszcz => QA Engineer <=
- 2024-11-28 Zielona Góra => Spedytor międzynarodowy <=