Datorprofessorer
Masters programprovning
Du kommer att bli ombedd att slutföra ett riktigt test som en del av din ansökan.
Syftet med detta korta test är att bedöma din förmåga att lösa elementära programmeringsproblem på ett språk som du väljer.
Skriv dina lösningar i Java om du är bekant med det språket. Använd annars ett av dessa språk: C, C ++ eller C #. För varje av problemen nedan, skriv den enklaste, tydligaste lösningen du kan, i form av ett kort program.
PROV TEST
- En matris med ett udda antal element sägs vara centrerat om alla element (utom den mellersta) är strängt större än värdet av mittelementet. Observera att endast arrayer med ett udda antal element har ett mellannement. Skriv en funktion som accepterar ett heltal och returnerar 1 om det är en centrerad array, annars returnerar den 0.
Exempel:
om ingångsarrayen är | avkastning |
{1, 2, 3, 4, 5} | 0 (mittelementet 3 är inte strängt mindre än alla andra element) |
{3, 2, 1, 4, 5} | 1 (mittelementet 1 är strängt mindre än alla andra element) |
{3, 2, 1, 4, 1} | 0 (mittelementet 1 är inte strängt mindre än alla andra element) |
{1, 2, 3, 4} | 0 (inget mellannement) |
{} | 0 (inget mellannement) |
10 {} | 1 (mittelementet 10 är strängt mindre än alla andra element) |
- Skriv en funktion som tar en rad heltal som ett argument och returnerar ett värde baserat på summan av det jämnaste och udda talet i matrisen. Låt X = summan av udda tal i arrayen och låt Y = summan av jämntal. Funktionen ska returnera X-Y
Funktionen underskrift är:
int f (int [] a)
Exempel
om input array är | avkastning |
1 {} | 1 |
{1, 2} | -1 |
{1, 2, 3} | 2 |
{1, 2, 3, 4} | -2 |
{3, 3, 4, 4} | -2 |
{3, 2, 3, 4} | 0 |
{4, 1, 2, 3} | -2 |
{1, 1} | 2 |
{} | 0 |
- Skriv en funktion som accepterar en teckenuppsättning, en nollbaserad startposition och en längd. Det ska returnera en teckenuppsättning som innehåller längdtecken som börjar med startainmatningsgruppens karaktär. Funktionen bör göra felkontroll i startpositionen och längden och returnera null om värdet inte är lagligt.
Funktions signaturen är:
char [] f (char [] a, int start, int len)
Exempel
om ingångsparametrar är | avkastning |
{'a', 'b', 'c'}, 0, 4 | null |
{'a', 'b', 'c'}, 0, 3 | {'a', 'b', 'c'} |
{'a', 'b', 'c'}, 0, 2 | {'a', 'b'} |
{'a', 'b', 'c'}, 0, 1 | {'a'} |
{'a', 'b', 'c'}, 1, 3 | null |
{'a', 'b', 'c'}, 1, 2 | {'före Kristus'} |
{'a', 'b', 'c'}, 1, 1 | {'b'} |
{'a', 'b', 'c'}, 2, 2 | null |
{'a', 'b', 'c'}, 2, 1 | {'c'} |
{'a', 'b', 'c'}, 3, 1 | null |
{'a', 'b', 'c'}, 1, 0 | {} |
{'a', 'b', 'c'}, -1, 2 | null |
{'a', 'b', 'c'}, -1, -2 | null |
{}, 0, 1 | null |
- Skriv en funktion för att vända ett heltal med numeriska operatörer och utan att använda några arrayer eller andra datastrukturer.
Funktionen underskrift är:
int f (int n)
Exempel
om ingångsnumret är | avkastning |
1234 | 4321 |
12005 | 50021 |
1 | 1 |
1000 | 1 |
0 | 0 |
-12345 | -54321 |
- Skriv en funktion för att returnera en array som innehåller alla element som är gemensamma för två givna arrays som innehåller tydliga positiva heltal. Du bör inte använda några inbyggda metoder. Du får använda något antal arrays.
Funktionen underskrift är:
int [] f (int [] först, int [] andra)
Exempel
om ingångsparametrar är | avkastning |
{1, 8, 3, 2}, {4, 2, 6, 1} | {1, 2} |
{1, 8, 3, 2, 6}, {2, 6, 1} | {2, 6, 1} |
{1, 3, 7, 9}, {7, 1, 9, 3} | {1, 3, 7, 9} |
{1, 2}, {3, 4} | {} |
{}, {1, 2, 3} | {} |
{1, 2}, {} | {} |
{1, 2}, null | null |
null, {} | null |
null, null | null |
- Tänk på en array A med n av positiva heltal. En heltal idx kallas en punktpunkt för A, om A [0] + A [1] + ... + A [idx - 1] är lika med A [idx + 1] + A [idx + 2] + ... + A [n - 1]. Skriv en funktion för att returnera POE för en array, om den existerar och -1 annars.
Funktionen underskrift är:
int f (int [] a)
Exempel
om ingångssystem är | avkastning |
{1, 8, 3, 7, 10, 2} | 3 Reason: a [0] + a [1] + a [2] är lika med en [4] + a [5] |
{1, 5, 3, 1, 1, 1, 1, 1, 1} | 2 Reason: a [0] + a [1] är lika med en [3] + a [4] + a [5] + en [6] + en [7] + en [8] |
{2, 1, 1, 1, 2, 1, 7} | 5 Reason: a [0] + a [1] + a [2] + a [3] + a [4] är lika med en [6] |
{1, 2, 3} | -1 Anledning: Ingen POE. |
{3, 4, 5, 10} | -1 Anledning: Ingen POE. |
{1, 2, 10, 3, 4} | -1 Anledning: Ingen POE. |
Notera: Vänligen läs lista över vanliga programmeringsfel som eleverna har begått på vårt test.