Zkouska 9.2.2011

Cílem semináře je seznámit posluchače s jazykem C#, prostředím platformy .NET a tvorbou aplikací s grafickým uživatelským rozhraním. Předpokládají se znalosti objektově orientovaného programování.
kopsys
Matfyz(ák|ačka) level I
Příspěvky: 2
Registrován: 28. 5. 2010 18:19
Typ studia: Informatika Bc.

Zkouska 9.2.2011

Příspěvek od kopsys »

Ahoj, az kdyz jsem to sepisoval, tak jsem zjistoval, jak moc si zadani nepamatuju :? . Ale tak aspon orientacne. Pisemka mi prisla jako jedna z tezsich, aspon co jsem videl tady na foru.
Nektere casti si bohuzel nepamatuju vubec, takze spoleham, ze me mi spoluzkouseni doplni :wink:

1.nemuzu si vzpomenout

2.
klasicke binarni pocitani, neco jako

Kód: Vybrat vše

(1024 ^ 6) & (~(3))
3.

Kód: Vybrat vše

A:

var x = "string";
x = x.Length;

B:

System.Object x = "string";
x = x.Length;
  • A se neprelozi
  • B se neprelozi
  • A a B se prelozi, NEJSOU ekvivalentni
  • A a B se prelozi, JSOU ekvivalentni
4.

Kód: Vybrat vše

interface I<in T> {
	void M<U>();
}

class C<T> {
	void M<U>() where U:T {}
}
class Zvire {}
class Savec : Zvire {}
class Kocka : Savec {}
Class Vrabec: Zvire {}

class Program {
 public static void Main(string [] args) {
	I<Zvire> izvire = new C<Zvire>();
	I<Kocka> ikocka = new C<Kocka>();

	...
 }
}
Ktera moznost pasuje misto "..." tak, aby se kod v poradku zkompiloval a probehl bez chyby?
  • A)
    izvire = ikocka;
    izvire.M<Zvire>;
  • B)
    izvire = ikocka;
    izvire.M<Savec>;
  • C)
    izvire = ikocka;
    izvire.M<Kocka>;
  • D)
    izvire = ikocka;
    izvire.M<Vrabec>();
  • E)
    ikocka = izvire;
    ikocka.M<Zvire>();
  • F)
    ikocka = izvire;
    ikocka.M<Savec>();
  • G)
    ikocka = izvire;
    ikocka.M<kocka>();
  • H)
    ikocka = izvire;
    ikocka.M<Vrabec>();
  • I)
    I<Savec> = ikocka; ... a nejake variace na tohle, to si presne nevybavuju, pomozte nekdo

5.
Implemntaci ceho si muze vynutit interface I, ktery trida C implementuje?
  • abstraktni metodu
  • public metodu
  • internal metodu
  • staticke pole
  • datovou polozku
  • property
  • opereator[] (indexer)
  • implementaci jineho interface
  • copy konstruktor
(nebo neco takove, tahle otazka je dost klasicka)

6.
Mame program a.exe, zkompilovany pro AnyCPU, psany v managed C#, dal mame b.dll kompilovanou pro x86, taky v managed C# a potom mame c.dll psany unmanaged C++. a.exe pouziva metody z b.dll a b.dll pres DllImport pouziva c.dll. S jakym nastavenim musime zkompilovat c.dll, abychom mohli a.exe spustit na Windows 7 64-bit na architekture Intel64/AMD64?
  • A) x86
  • B) x64
  • C) AnyCPU
  • D) s zadnym nastavenim to nebude fungovat

7.nemuzu si vzpomenout


8.
Namisto "..." muzete, ale nemusite neco dopsat. Nikam jinam nic pripisovat nesmite. Upravte kod tak, aby fungoval bez chyby a na stdout vypsal

Kód: Vybrat vše

A x
B y

Kód: Vybrat vše

class ArrayComparer<T> ...
{
private int index;
public ArrayComparer<T>(int index) {
	this.index = index;
}
public CompareTo(T[] x, T[] y) {
	return x[index].CompareTo(y[index]);
}
}

class Program {
static string[][] table = {
	{ "B", " y" }, 
	{ "A", " x" }
};
public static void Main(string[] args) {
	Array.Sort(... table, ... new ArrayComparer ... ( 0) );	

	Array.ForEach(table, (x) => Console.WriteLine(x[0] + x[1]) );
}
}

Je dost pravdepodobne, ze jsem se alespon v necem zmylil, takze prosim, pokud vite o me chybe a nebo si vzpomenete na to, co ja jsem zapomnel, pro budouci generace to sem doplnte.
Werkov
Matfyz(ák|ačka) level I
Příspěvky: 7
Registrován: 20. 1. 2010 11:33
Typ studia: Informatika Bc.

Re: Zkouska 9.2.2011

Příspěvek od Werkov »

ad 4) Tuším, že ta třída to rozhraní implementovala explicitně.

ad 7) Něco tu chybí, tak to mohlo být tohle:

Kód: Vybrat vše

string s1 = "a", s2 = "b", s3 = "ab";
s1 += s2;
bool a, b;

a = s1 == s3;
b = (object)s1 == (object)s3;
Co bude v a, b:
  • Nejde to přeložit
  • false, false
  • false, true
  • true, false
  • true, true
Odpovědět

Zpět na „NPRG035 Jazyk C# a platforma .NET“