Zkouška 27.1.2012

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í.
cre8or
Matfyz(ák|ačka) level I
Příspěvky: 13
Registrován: 26. 1. 2011 10:58
Typ studia: Informatika Mgr.

Zkouška 27.1.2012

Příspěvek od cre8or »

1) Jaky vystup da nasledujici kod:

Kód: Vybrat vše

class Prg {
        private static Func<double, Func<double, double>> Add(int c) {
            return x => y => x + y++ + (c *= 2); 
        }

        public static void Main(string[] args) {
            int a = 1;
            int b = 100;
            var F = Add(2);
            var G = F(a);
            G(b);
            Console.WriteLine(G(b));
        }   
    }
2) Jakeho typu bude promenna G z predchoziho kodu?

3) Jaky placeholder typ lze dosadit do nasledujiciho kodu?

Kód: Vybrat vše

class X<T> where T : struct { }
Byly tam nejaky moznosti, obecne odpoved zni: jakykoli hodnotovy typ.

4) Assembly a.exe psana v managed C# a prelozena jako AnyCPU, assembly b.dll psana v managed C# a prelozena jako x86, assembly c.dll psana v C++. Exe se odkazuje na b.dll, ktere se odkazuje pres DllImport na c.dll. Jak se musi prelozit c.dll, aby to slo spustit pod x64?
Odpoved: AnyCPU nebo x64.

5) Ktera z nasledujicich moznosti by byla idealni doplnit misto ???? :

Kód: Vybrat vše

class Profile {
        public static Profile CreateProfile(string name) {
            Profile profile = new Profile();
            StreamReader reader;
            try {
                reader = new StreamReader(name + ".profile");
                ...
            } catch (IOException ex) {
                Debug.Print("...");
                ????????
            }
            return profile;
        }
    }
a) throw new ArgumentException("...")
b) throw new ArgumentException("...",ex)
c) throw new IOException()
d) throw new IOException("...")
e) throw new IOException("...",ex)
f) throw ex;
g) throw;
Dal jsem (b), ale opravdu nevim.

6) Nejaka silenost s kovarianci a kontravarianci

7) Jaka je velikost promenne p v nasledujicim kodu?

Kód: Vybrat vše

Func<string, int> p = int.Parse;
Odpoved: zavisi to na platforme.

8 ) Jakeho typu je promenna x?

Kód: Vybrat vše

class Prg {
        private static T Value<T>(T a, T b) where T : IComparable<T> {
            return a.CompareTo(b) < 0 ? a : b; 
        }

        public static void Main(string[] args) {
            var x = Value(5f, 6f);
        }   
    }
Odpoved: float.

9) Metody T1 a T2 se spusti ve dvou vlaknech, vyberte pravdiva tvrzeni:

Kód: Vybrat vše

class Prg {
        private volatile int a, c;
        private int b;

        public void T1() {
            a = 1;
            b = 2;
            c = 3;
        }

        public void T2() {
            b = -1;
            Console.WriteLine(b);
        }  
    }
a) V T1 se do a vzdy zapise driv nez do c
b) V T1 se do b vzdy zapise driv nez do c
c) V T1 se do b vzdy zapise pozdeji nez do a
d) T2 muze vypsat -1
e) T2 muze vypsat 2
f) T2 muze vypsat 0
Pak jeste nejaky dalsi moznosti, ale ty si nepamatuju. Vybral jsem a,b,d,e.

Vsechno je samozrejme bez zaruky, obvzlast odpovedi :-)
Odpovědět

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