Что напечатает следующий код
Перейти к содержимому

Что напечатает следующий код

  • автор:

 

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой — мы готовы помочь.

Сколько родительских классов может иметь производный класс?

Не больше двух 5 v Всегда один ® Любое количество Не больше одного

Что выведет на экран код:

static void Main() <

Console.Writ e L i ne(i);

® v Код не скомпилируется

public abstract class A <

public string PublicPrintO < return Print Oj

protected virtual string Print() < return "A";

protected override string Print() < return "C";

Каков будет результат при выполнении следующего кода:

Ж Какими способами из перечисленных может быть перегружен метод в С#

П другой тип возвращаемого значения 0 другое имя метода [71 v другой тип параметров О v ‘ другое количество параметров

V Скомпилируется ли следующий код?

public class CustomConvertor <

public static string ToDate(out this DateTime dt) <

Пояснение : He будет работать .

  1. Класс содержащий расширяющие методы должен быть статическим.
  2. Модификатор » out » в объявлении расширяющего метода • не нужен.

К Возможно ли иметь/создать статический индексатор в С#?

public Name(string name) <

/*!*/ public string Name <

private set; get;

static void Main(string[] args) <

/*2*/ Name n = new Name(«Helo Wrold»);

/*3*/ n.Dispose(); // освобождаем память .

I I Комментарии вида /* */ недопустимы

3 ^ Строка ГУ I Класс Name не может содержать свойство Name 0 Строка Г2*1 : ошибки в фразе » Helo Wrold » 3 * Строка ГУ! — вызов Dispose для переменной п невозможен.

‘ Что напечатает данный код:

static void increment (int p) <

static void Main( ) <

Операторы и операци

Console. Write Line (x++) ;

Код не скомпилируется

Пояснение: Параметр х передается в метод по значению. Сначала произойдет вывод значения, а потом инкремент, таи как в данном случае используется постфиксный оператор

Ж Что напечатает следующий код:

for (int i = 0; i < 3; i++) <

Console.WriteLine(«Sum of » + i + » numbers is » + sum);

(§) Sum of 3 numbers is 3 Sum of 2 numbers is 3 Sum of 3 numbers is 6 v Возникнет ошибка компиляции

Возникнет ошибка времени выполнения

Для инкапсуляции вы хотите определить автосвойство так, чтобы невозможно было вызвать сеттер Общие понятия за пределами класса, но геттер оставить доступным. В каком из заданных вариантов описано нужное свойство?

public int Value < get ; set ; >86 / 4756

© v public int Value < get; private set; >3260 / 4756

private int Value < public get; set; >299 / 4756

public int Value < get ; >434 / 4756

Что будет выведено на экран?

static void Main(string[] args) <

Console. WriteLine(«i = <0>«, i++);

® ✓ i = 1 i =2 i =<0>1 i =<0>2

код не скомпилируется

К Что будет выведено на консоль в результате выполнения следующего кода:

namespace ConsoleApplicationl t

static void Main(string[] args) <

Console. Write (Test. Foo ( 1) +Test. Foo ( 2)*Test. Foo ( 3) ) j Console.ReadLine();

public static int Foo(int o) <

Console.Write(o); return o;

2317 ; ✓ 1237 3217

•<э Возникнет ошибка компиляции, тип int нужно привести к строке

К В каких строках кода допущены ошибки?

class A < >interface Inner

struct S : A, Inner //1 <

static void Main(string[] args) <

Каким ключевым словом объявляется запечатанный класс (тот, который нельзя наследовать)?

Ваш ответ: ( private 1

Правильные ответы: sealed

К Что напечатает следующий код:

static bool Method10

Console.WriteLine(«in Method1»); return false;

static bool Method2()

Console.WriteLine(«in Method2»); return true;

static void Main(string[] args)

if (Method!() & Method2()) <

in Methodl in Method2

in Methodl in Method2 inside if

18 Какие из определений для абстрактных классов в С# являются корректными? Классы и объекты

П V Абстрактный класс может включать как абстрактные члены так и виртуальные ^491 /9144

В абстрактных классах нельзя определять поля

Абстрактные классы не могут наследовать интерфейсы

Абстрактные классы нельзя наследовать

Г71 v Нельзя создавать экземпляр абстрактного класса 7800 / 9144

Пояснение: Нельзя создавать экземпляр абстрактного класса по определению абстрактного класса, Абстрактный класс может включать как абстрактные члены так и виртуальные — это не запрещено.

public abstract class A <

public string PublicPrint() < return Print();

protected virtual string Print() < return "A"j

public class В : A < >public class С : В <

protected override string Print() < return "C"j

Каков будет результат при выполнении следующего кода

Ошибка выполнения Ошибка компиляции

К Какими способами правильно инициализировать двумерный массив? (Выберите все верные ^ варианты)

  1. int[][] k = new int [2][3]
  2. intk[][] = newint[2][3]
  3. int[][] k = new int[2][] 0 int k[,] = new int [2,3] 0 ✓ int[,] k = new int [2,3]

Пояснение: int k [][] = new int [2][3], int [][] к = new int [2][3], int k [,] = new int [2,3] — неправильное объявление массива; int [ ][] к = new int [2][] — объявление ступенчатого массива, а не инициализация.

Что напечатает следующий код:

public static void Main () <

Int32 v = 5; Object о « vj v = 123;

Console.WriteLine(v + » + (Int32) o);

Возникнет ошибка приведения типов 123, 123 ® ✓ 123, 5 5,5

Скомпилируете» ли данный код?

internal sealed class SomeGenericClass<T> <

public static T SomeMethod() <

V ✓ нет 5486 / 8650

Пояснение: He (компилируется, т.к не указано ограничение (происходит вызов открытого конструктора без параметров, но не у всех ссылочных типов он есть). Для того, чтобы код (компилировался необходимо добавить ограничение, например:

Скомпилируется ли следующий фрагмент кода:

private void GetValues(int a,int b, out int c,out int d) <

d ■ с — a; с ■ a + b;

private void SomeMethod() <

GetValues(l, 2, out a, out b);

Пояснение: He скомпилируется, поскольку переменная с в выражении d — с — а должна быть сначала проинициализирована

К Как могут инициализироваться readonly поля экземпляра класса?

1 с помощью свойств Г71 ✓ при объявлении

в instance методах в статических методах | | v в конструкторе Комментировать вопрос (всего: 1)

(^компилируется ли следующий код (как часть некоторого метода):

string[] str = new string[5]; try

str[4] = «anything»; catch (Exception e)

Console.Write Line(e.Message); catch (IndexOutOfRangeException e) Console.Write Line(e. Message);

Что будет выведено на консоль после выполнения следующего кода

static public void Main(string[] args)

string s = «Hello, world»;

Console. WriteLine(«i body_text_(3) _normal» awml:style=»Body text (3)» style=»margin-bottom:12.000000pt;margin-top:0.000000pt;margin-left:27.000000pt»>Console. WriteLine(«i body_text_(3) _normal» awml:style=»Body text (3)» style=»margin-bottom:0.000000pt;margin-top:0.000000pt;margin-left:27.000000pt»>Console. WriteLine(«s body_text_(3) _normal» awml:style=»Body text (3)» style=»margin-bottom:0.000000pt;margin-top:0.000000pt;margin-left:27.000000pt»>ModifyString(s);

Console. WriteLine(«s body_text_(52) _normal» awml:style=»Body text (52)» style=»margin-bottom:12.550000pt;margin-left:27.000000pt»> >

static void Modifylnt ( int i) <

static void ModifyString(string s) <

s = «Hello, I’ ve been modified.»;

s = Heto, world s = Heto, I’ve been modified.

s = Heto, world s = Heto, I’ve been modified.

s = Heto, world s = Heto. world

i Какой будет результат компиляции и выполнения данного кода:

public static void Main(string[] args) <

public event Action C;

public static class Program <

public static void Main() <

Foo foo = new Foo();

foo.A += () => < >j // 1 foo.A(); // 2

foo. В += () => < >; 11 3 foo.BQj // 4

1 Код компилируется успешно, в нём нет ошибок 0 1

Ж Что выведет данный код?

static void Main(string[] args) <

Пустую строку v Код не скомпилируется

Код скомпилируется, но во время исполнения возникнет Exception

К В какой кодировке хранятся символьные ( char ) переменные в С#?

✓ UTF-16 Windows1251 Win1252 UTF-4 KOI-8

‘ Каким будет результат выражения

если х и у предварительно объявлены как:

int х = 5; int у = 8;

в выражении допущена синтаксическая ошибка 1 О

Можно ли разместить объекты разных типов в массиве ( System . Array )?

К Укажите все правильные способы объявления массива в результате которых массив будет корректно инициализирован

[71 int[4] someArray; П У int[] someArray = new int[] <1,2,3,4>;

  1. v int[] someArray = new int[4];

Г 71 V int[] someArray = new int[4] <1,2,3,4>; [71 int someArray[] — new int[4];

  1. ✓ int[] someArray = <1,2,3,4>;

struct S : A, Inner //1 <

static void Main(string[] args) <

S obj = new S (); //5

0 V 1 □ 2 □ ✓ 3 0 4 0 5

IS Что напечатает следующий код:

for (int i = 0; i < 3; i++) <

Console.WriteLine(«Sum of » + i + » numbers is » + sum);

(§) Sum of 3 numbers is 3 Sum of 2 numbers is 3 Sum of 3 numbers is 6 ✓ Возникнет ошибка компиляции

Возникнет ошибка времени выполнения Комментировать вопрос (всего: 8)

* Отметьте все верные утверждения о классе SomeClass :

internal sealed class SomeClass <

public void SomeMethod() <

G SomeClass является значимым типом (value-type) 387 / 8369

    У SomeClass наследуется от System . Object 6769 / 8369 (3 v SomeClass доступен для использования только внутри сборки, в которой он определён 6892 / 8369 0 SomeClass могут наследовать другие классы 907 / 8369 Г

Пояснение: 1) SomeClass неявно наследует System . Object

  1. у SomeClass не может быть наследников (модификатор sealed означает, что класс не может порождать наследников)
  2. SomeClass доступен для использования только внутри сборки, в которой он определён (модификатор internal определяет класс, как внутренний)
  3. явное определение конструктора без параметров для ссылочного типа необязательно • компилятор создаёт его, если конструктор не определён явно

Классы и объекты

  1. SomeClass • ссылочный тип, т.к. унаследован от object

К Выберите верные утверждения на счет наследования в С#

0 Класс может наследовать сколько угодно реализаций

  1. v Класс может наследовать только одну реализацию
  2. * Класс может наследовать сколько угодно интерфейсов
  3. Класс не может наследовать реализацию
  4. Класс не может наследовать интерфейсы

0 Класс может наследовать только один интерфейс

Данный код скомпилируете успешно (как часть некоторого метода):

Console.WriteLine(«TRY» ); throw new Exception(«EXCEPTION»);

К Что напечатает следующий код:

static bool Methodic) <

Console.WriteLine(«in Met hod1»); return false;

static bool Method2() <

Console.WriteLine(«in Method2»); return true;

static void Main(string[] args) <

® in Methodl in Method2

in Methodl in Method2 inside if

Пояснение: Правый операнд оператора ftft не нуждается в вычислении, так как Methodl вернул false .

К Выберите успешно компилируемые строки:

object o2 = «123»; //3

  1. ^ 3
  2. 4 0 5

К Скомпилируете ли следующий код (как часть некоторого метода):

ArrayList list = new ArrayList()j list .Add(new ObjectO); list.Add(new Exception()); list.Add(new Random().Next(10))j list.Add(new ArrayList())j

К Два последовательных вызова GetHashCode у одного и того же объекта должны возвращать одно и то же значение.

Комментировать вопрос (всего: 4) Автс

* Какие строки приведут к ошибке компилляции этого кода если он является частью метода?

case 1: Console.WriteLine(«Case I м ); //2 case 2 : //3

default: Console.WriteLine(«Default»); //4

  1. * 2 246 / 677 0 3 276 / 677
  2. * 4 182/677 О Код успешно скомпиллируется 233 / 677

Пояснение: 2. ВСЯ в конструкции switch не допускается проход ( fall through ) в следующий раздел без операторов goto case или goto default . В конце каждого раздела требуется наличие оператора break или другой передачи управления ( return , throw , continue ). Исключением являются пустые разделы (как 1 и 3). 4. Эти правила также относятся и к последнему разделу.

К в определении каких методов класса допущены ошибки?

public class Foo

public void Ml(int[] pi, int[] p2) < > public void N2(int[] plj params int[] p2) < >public void M3(params int[] pi, int[] p2) < >public void pa rams int[] pi, params int p2) < >

  1. Ошибок нет, всё определено корректно 107 / 625
  2. М1 27 1 625 й М2 153 / 625 0 У МЗ 387/625
  3. ^ M4 440 / 625

Пояснение: После параметра с ключевым словом params , дополнительные параметры не допускаются. Не допускается использование ключевого слова params в объявлении метода более одного раза http :// msdn . microsoft . com / ru — ru / library / w 5 zay 9 db ( VS .90). aspx

К Может л и этот тест пройти?

Пояснение: Может, если А • структура

>. SetValue ( a , 83); ) . SetValue ( a , 42);

К Какие из определений для абстрактных классов в С# являются корректными? классы i

  1. Абстрактные классы не могут наследовать интерфейсы 136<
  2. * Нельзя создавать экземпляр абстрактного класса 781! 0 v Абстрактный класс может включать как абстрактные члены так и виртуальные 649′
  3. Б абстрактных классах нельзя определять поля 154: 0 Абстрактные классы нельзя наследовать 103*

Пояснение: Нельзя создавать экземпляр абстрактного класса по определению абстрактного класса, Абстрактный класс может включать как абстрактные члены так и виртуальные • это не запрещено.

К Какой конструктор называют конструктором типа?

■ ^ конструктор, отмеченный модификатором static ® конструктор, отмеченный модификатором internal конструктор, отмеченный модификатором protected конструктор, отмеченный модификатором private

конструктор, который не определяется явно — его J IT компилятор объявляет самостоятельно

К Укажите корректные примеры использования ключевого слова var для автоматического вывода типов:

  1. var someCollection = <1,2, 3>; 0 var myNuU = null;

0 У var mylNt = 1; 0 var dontKnowType;

  1. v var evenNumbers ■ new int [] <2, 4, 6, 8>; 0 v var myString = «Goodbye word»;

Пояснение: Смотрим no правой части где явно можно вывести тип

Что будет выведено на экран?

static void Main(string[] args) <

i Щ 2 = <0>1 = <0>2 код не скомпилируется

public abstract class A

public virtual string Print()

public class B:A

public virtual new string Print()

public class C:B

public override string Print()

Каков будет результат при выполнении следующего кода:

К Будет ли компилироваться данный фрагмент кода?

FileStream F = new FileStream(«myfile.txt»); string s = F.ReadLine();

Пояснение: Компилятор ругнется на то, что переменная F не определена в месте вызова F . Closef )

* Чем отличаются следующие объявления переменной: 1.

v в первом случае объявляется обыкновенный двумерный массив. Во втором случае объявляется «рваный массив», т.е. массив массивов, где каждая строк массива может иметь свою длину. 522 / 7

(3) в первом случае объявляется «рваный массив», т.е. массив массивов, где каждая строка массива может иметь свою длину. Во втором случае объявляете обыкновенный двумерный массив. 63/7

Ничем не отличаются. 104 / 7

В первом случае — объявление двумерного массива. Во втором — трехмерного. 9/7

* Среди перечисленных конструкций С# укажите объявление метода

(§) string this [int i] > string Name > string Name; v sting GetName () Комментировать вопрос (всего: 4)

К Что выведет на экран данный код?

static void Main(string[] args)

public static string Foo(string str) <

Console.WriteLine(«In finally»); str ■ «Somewhere in finally»;

(3) in finally Somewhere in finally

Ошибка при компиляции

Э v in finally Original string

public string A <

private set; get;

private string В

public set; public get;

private string x;

public string С <

public string D <

К Что выведется на консоль:

static void Main() <

Console.WriteLine(i ?? Convert . Tolnt 32( i . HasValue ));

@ Код не скомпилируется

Код выдаст исключение NullReferenceException null j v О

Комментировать вопрос (всего: 1)

public abstract class A

public virtual string Print()

Dublic class В : A

public override new string Print()

public class С : В

public string Print()

Каков будет результат при выполнении следующего кода:

v Ошибка компиляции 235 / 5

Пояснение: Совместное использование модификатора new и модификатора переопределения в одном члене является недопустимым, поскольку два

Что будет выведено на консоль в результате выполнения следующего кода:

static void Main(string[] args) <

public static int Foo(int o)

Console.Write(o); return o;

2317 V 1237 3217

Возникнет ошибка компиляции, тип int нужно привести к строке

Какое ключевое слово используется для прекращения выполнения конструкций switch , for , while ?

Ваш ответ: ( break Правильные ответы: break

Согласны ли вы с утверждением: у каждого объекта есть метод Finalize , который вызывается у этого объекта классы и объекты при сборке мусора?

@ V Нет 4858 / 8707

Пояснение: В классе System . Object определён метод Finalize , но CLR его игнорирует, поэтому объекты всех классов, производных от Object (только если в них явно не определён метод Finalize ), не считаются подлежащими завершению, т.е. метод Finalize при сборке мусора не вызывается для объектов этих классов.

К Что из перечисленного верно:

  1. v Переменные ссылочного типа размещаются в стеке потока и хранят адрес объекта в управляемой куче
  2. Переменные ссылочного типа размещаются в управляемой куче 0 Переменные значимого типа размещаются в неуправляемой куче 0 v Переменные значимого типа размещаются в стеке потока
  3. Переменные ссылочного типа размещаются в стеке потока и хранят адрес объекта в неуправляемой куче

Что напечатает следующий код:

static bool Methodic )

Console.WriteLine(«in Methodl»); return false;

static bool Method2() <

Console.WriteLine(«in Method2»); return true;

static void Main(string[] args) \i

if (Methodl() & Method2Q) <

® * in Methodl in Method2

in Methodl in Method2 inside if

Скомпилируется ли следующий код:

private static int i;

static Program(int a)

Console.WriteLine(«In static constructor»);

static void Main(string[] args) < >

Скомпилируете ли данный фрагмент кода успешно?

private int GetID (string inputText) <

return 1; else if (inputText == «») return 0;

^ Что произойдет в результате выполнения следующего кода:

static void Main(string[] args) <

char[] vowels = <'a'j'e'j'i'j'o'j'u'>; for (int i = 1; i <= vowels.Length; i++) Console.Write(vowels[i] + » «);

a e i о u e iou

Возникнет ошибка компиляции a e i о

® ^ Код напечатает » e i о u «, а дальше уже возникает ошибка времени выполнения 1

Пояснение: Нумерация элементов массива начинается с О. Для обхода всех символов массива необходимо организовать цикл таким образом: for ( int i = 0; i < vowels . Length ; i ++) (строго меньше vowels . Length ).

В данном же случае возникнет ошибка IndexOutOfRangeException .

Что будет выведено на консоль в результате выполнения следующего кода:

static void Main(string[] args) <

Console.Write(Test.Foo(l)+Test.Foo(2)*Test.Foo(3)); Console.Read L i ne();

public static int Foo(int o)

Console.Write(o); return o;

2317 D У 1237 3217

(§) Возникнет ошибка компиляции, тип int нужно привести к строке

^ В какой строке кода допущена ошибка:

int а = 0; int b ■ 1; if (а == b ) а = а; if ( a ) b = а;

в третьей: нельзя присвоить переменной ее же значение @ ✓ в четвертой: условие должно возвращать логическое значение в этом коде нет ошибок

К Укажите имя класса, от которого наследуются все исключения.

Правильные ответы : Exception,System.Exception public abstract class A <

public string PublicPrintO < return Print();

protected virtual string Print() < return "A";

public class В : A < >public class С : В <

protected override string Print() < return "C";

Каков будет результат при выполнении следующего кода:

Какие действия необходимо и достаточно выполнить для того, чтобы программа компилировалась?

class Туреб :TypeA <

public override void HethodA()

public virtual void HethodAQ

static void tein(string[] args) <

туреА a = пей туреА (); TypeB b = леи TypeB();

  1. HethodA();
  2. HethodA(); Console.ReadLine()j

Добавить в начале программы строчку » using ТуреА» ничего изменять не надо, программа и так компилируется Изменить модификатор доступа класса ТуреА на public □ v Изменить модификатор доступа класса ТуреВ на public

] v Изменить строчку «ТуреВ b = new ТуреВ ();» на » TypeA . TypeB b = new ТуреА. ТуреВ ();»

* Что выведет данный код ?

static void Main(string[] args) <

Пустую строку ® 10 . v код не скомпилируете

Код скомпилируете, но во время исполнения возникнет Exception

* Скомпилируется ли следующий код (как часть некоторого метода):

string[] str = new string[5]; try

str[4] = «anything»; catch (Exception e)

Console.WriteLine(e.Message); catch (IndexOutOfRangeException e) Console.WriteLine(e.Message);

Пояснение: Код не компилируется.

Обработка исключений должна идти в восходящем порядке по иерархии исключений (от классов-детей к суперклассам).

Что будет напечатано в результате выполнения следующего кода?

public virtual void Print() <

Console. WriteLine («A: : Print»);

public override void Print() <

Console. WriteLine ( » В: : Print» ) ;

public new void Print() < base.Print();

Console. WriteLine ( » С: : Print» ) ;

  1. Print ();
  2. Print();
  3. Print();

Какие типы данных используются для хранения значений с плавающей запятой?

  1. bool (Boolean)
  2. long (Int64)

0 decimal (Decimal) 0 У float (Single)

  1. ^ double (Double)

Пояснение: float — является вещественным типом данных для хранения 32- bit значений и предназначен для хранения дробных чисел double — является вещественным типом данных для хранения 64- bit значений и также предназначен для хранения дробных чисел

шкоитмплоатк onnrw (огагп-

Согласны ли вы с утверждением: у каждого объекта есть метод Finalize , который вызывается у этого объекта при сборке мусора?

Что будет выведено на экран?

static void Main(string[] args) <

= 1 = 2 = <0>1 = <0>2 код не скомпилируется

public abstract class A

public virtual string Print()

public class В : A

public override new string Print()

public class С : В

public string Print()

Каков будет результат при выполнении следующего кода:

© У Ошибка компиляции 235

 

Пояснение: Совместное использование модификатора new и модификатора переопределения в одном члене является недопустимым, поскольку два модификатора имеют взаимоисключающие значения.

К Что будет выведено на консоль при выполнении этого кода:

using ByteCollectionl = System.Collections.ObjectModel.Collection<byte>;

class ByteCollection2 : Collection<byte> < >

static void Main(string[] args) <

Console.WriteLine(typeof(ByteCollectionl) == typeof(Collection<byte>)); Console.WriteLine(typeof(ByteCollection2) == typeof(Collection<byte>));

Возникнет ошибка компиляции

Можно ли объявить глобальную функцию в программе на С#?

Я Каким будет результат выражения

если х и у предварительно объявлены как:

int х = 5; int у = 8;

(3) в выражении допущена синтаксическая ошибка 1 О

ivoiwim npaonyiortv; ии омо/ icn роииприплцпл Mciu^i

public static class stringExtension

public static string Reverse(super string s)

char(] msv s s.ToCharArray(); Array. Reverse( msv) ; return new string(msv);

public static class stringExtension

public static string Reverse(base string s)

char[] msv = s.ToCharArray (); Array. Reverse (msv) ; return new string(msv);

public static class stringExtension

public static string Reverse(this string s)

char[] msv = s.ToCharArray(); Array .Reverse(msv); return new string(msv);

Что напечатает следующий код :

Console.WriteLine(a == b); Console.WriteLine(a.Equals(b)); Console.WriteLine(a == c); Console.WriteLine(a.Equals(c)); Console.Read L i n e();

True False False

True True False

® v True False True False

Комментировать вопрос (всего: 7)

К Что будет выведено на консоль в результате выполнения следующего метода:

public void TestMethod() < int k = 1;

Console.WriteLine(k++ + ++k); Console.ReadLine();

<§) Возникнет ошибка компиляции

Пояснение: Постинкремент k ++ вернет 1 и увеличит к на 1, в результате преинкремент увеличит к=2 на 1 и сумма будет равна 4.

К Укажите все правильные способы объявления массива в результате которых массив будет корректно инициализирован

  1. v int[] someArray = new int[4];
  2. v int[] someArray = new int[4] <1,2,3,4>;
  3. int[4] someArray;
  4. v int[] someArray = <1,2,3,4>;
  5. ^ int[] someArray = new int[] <1,2,3,4>; 0 int someArray[] = new int[4];

Какими способами правильно инициализировать двумерный массив? (Выберите все верные варианты)

  1. 1 пЩП k = new int[2][] 0 intk[][] = new int [2] [3] Ш int k[,] = new int [2,3]
  2. int[][] к = new int [2][3]
  3. v int[,] к = new int [2,3]
  4. v int[,] к = <<2,-2>,<3,-22>,<0,4>>

Пояснение: int k [][] = new int [2][3], int [][] к = new int [2][3], int k [, J = new int [2,3] — неправильное объявление массива; int [][] к = new int [2][] — объявление ступенчатого массива, а не инициализация.

Будет ли компилироваться данный фрагмент кода?

FileStream F = new FileStream(«myfile.txt»); string s = F.ReadLine();

Пояснение: Компилятор ругнется на то, что переменная F не определена в месте вызова F . CloseQ

* Что напечатает следующий код:

static void Main() <

int a = b = 2; Swap(a, b);

Console.WriteLine(«a=» + a + b body_text_(173) _normal» awml:style=»Body text (173)» style=»margin-bottom:13.050000pt;margin-left:24.000000pt»> >

private static void Swap(int a, int b)

int с = a ; a = b ; b = c ;

Возникнет ошибка компиляции Возникнет ошибка времени выполнения ® а=2, Ь=1 ; ^ а=1, Ь=2

Скомпилируете^ ли следующий код (как часть некоторого метода):

string[] str = new string[5]; try

str[4] = «anything»; catch (Exception e)

Console.MriteLine(e.Message); catch (IndexOutOfRangeException e) Console.WriteLine(e.Message);

Пояснение: Код не компилируется.

Обработка исключений должна идти в восходящем порядке по иерархии исключений (от классов-детей к суперклассам).

С# является регистрозависимым языком.

С компилируется л и следующий код:

private static int i;

static Program(int a)

Console.MriteLine(«In static constructor»);

static void Main(string[] args) < >

Пояснение: В коде две ошибки:

  1. Статический конструктор класса (конструктор типа) не должен содержать параметров.
  2. Ключевое слово ‘ this ‘ нельзя использовать в статическом свойстве, методе или инициализаторе статического поля.

* Что будет выведено на консоль в результате выполнения программы

static !Enumerable<char> GetLetters() <

yield return ‘A’; yield return ‘В’; yield return ‘G’j

static void Main(string[] args) <

foreach(char ch in GetLettersQ) <

Console . Write ( ch );

® Программа не скомпилируете 11(

Программа «зациклится» 71

Пояснение: Функция CetLettersf ) создает перечисление по объектам типа char .

Оператор yield return показывает компилятору, какое значение возвращает итератор на текущей итерации. На следующей итерации выполнение продолжается со следующего оператора.

Подробнее здесь: http :// msdn . microsoft . com / ru — ru / library / dscyy 5 s 0. aspx

Что выведет на экран код:

static void Main() <

(§> ^ Код не скомпилируется

Скомпилируется ли данный код:

static void Main() <

int a = 16; int b = 20; byte с = a + b; Console.WriteLine(c);

К Укажите все правильные способы объявления массива:

□ ЩЗ] к; 0 ^ Щ] к = new int [3];

Среди перечисленных конструкций укажите объявление индексатора

® v string this [int i] > string Name;

string Name > sting GetName ()

Можно л и разместить объекты разных типов в массиве ( System . Array )?

@ нет ^ Можно ли объявить глобальную функцию в программе на С#?

Кпмкдритипппатк Rnnnnr (вгргп- Л)

* Что будет напечатано в результате выполнения следующего кода?

Owblic virtual void <

0abliC OvCrtidt vOid WifttO < C0A£0l«.Wit6LiAft( " 6:

0wbliC *tw void M£«t() <

COrt&Ol*. МГ it«L iA*t’СS/it»);

static void RaiA(strt4eC] С

A b • *tw 5 C); Ac* tt« C();

  1. WiAt();
  2. rrt«t():

Одмбиа to згле* комздггц**

8::Pf1rvt K:MK C:Pr%*

A::Mt 8::Prtot C:Pr*t

K6w«<w!voo8aTw вопрос (acefo: 6|

К Что будет выведено на консоль в результате выполнения следующего метода:

public void TestMethod() < int k - 1;

Console.WriteLine(k++ + ++k); Console.Read Line();

(§) Возникнет ошибка компиляции

Пояснение: Постинкремент k ++ вернет 1 и увеличит к на 1, в результате преинкремент увеличит к=2 на 1 и сумма будет равна 4.

Какие из перечисленных ключевых слов используются в конструкции «если»

then elseif ® ✓ if Else

Сколько раз выполнится тело следующего цикла:

код не скомпилируете

К Будет ли выведена строка в результате выполненения следующего кода:

object а = 1; object b = 1;

К Можно л и разместить объекты разных типов в массиве ( System . Array )?

К Какие модификаторы доступа из перечисленных по умолчанию даются классу, описанному в namespace ? классы и объект! 0 public 2136 / 8353

□ Ни один из перечисленных 370 / 8353

Пояснение: Невложенный класс — класс, который находится непосредственно в namespace . Такой класс может иметь 2 модификатора доступа — public и internal . По умолчанию класс имеет модификатор internal .

К Какие из строк вызовут ошибку компиляции?

  1. Туре tl = typeof(System.Int32);
  2. Type t2 = Type.GetType(«System.Int32»);
  3. Type t3 = Type.GetType(System.Int32);
  1. Type t4 = System.Int32.GetType();

1930 /938 3283 / 938 5565 / 938 4664 / 938

Пояснение: У Type есть метод GetType , который принимает в качестве параметра String . А у каждого типа из CLR есть метод CetType , но уже без параметров.

Ж Что из перечисленного верно:

  1. Переменные ссылочного типа размещаются в управляемой куче
  2. Переменные значимого типа размещаются в неуправляемой куче

7] v Переменные ссылочного типа размещаются в стеке потока и хранят адрес объекта в управляемой куче

Переменные ссылочного типа размещаются в стеке потока и хранят адрес объекта в неуправляемой куче П v Переменные значимого типа размещаются в стеке потока

Скомпилируется ли следующий код (как часть некоторого метода):

string[] str = new string[5]; try

str[4] = «anything»; catch (Exception e)

Console.WriteLine(e.Message); catch (IndexOutOfRangeException e) Console.WriteLine(e.Message);

^ В какой строке кода допущена ошибка:

int а = 0; int b = 1; if (а == b ) а = а; if ( a ) b ■ а;

в третьей: нельзя присвоить переменной ее же значение ® v в четвертой: условие должно возвращать логическое значение в этом коде нет ошибок

Что произойдет в результате выполнения следующего кода:

static void Main(string[] args) <

(§) v Код напечатает «е i о и», а дальше уже возникает ошибка времени выполнения

Возникнет ошибка компиляции

Пояснение: Нумерация элементов массива начинается с О. Для обхода всех символов массива необходимо организовать цикл таким образом:

К Данный код скомпилируется успешно (как часть некоторого метода):

Console.WriteLine(«TRY»); throw new Exception(«EXCEPTION»);

К Как могут инициализироваться readonly поля экземпляра класса?

  1. в instance методах |7] v при объявлении
  2. ^ в конструкторе
  3. с помощью свойств
  4. в статических методах

public string PublicPrint() < return Print();

protected virtual string Print() < return "A";

protected override string Print() <

Каков будет результат при выполнении следующего кода:

** public abstract class A <

Ошибка компиляции Ошибка выполнения

Пояснение: Основное правило полиморфизма. Вызывается перегруженный метод определенный в объекте, экземпляр которого был создан. При этом в базовом классе метод должен быть помечен как virtual , а в классе наследнике он должен содержать override

Что напечатает следующий код:

static void Main() <

int a = 1, b = 2; Swap(a, b);

Console.WriteLine(«a=» + a + b body_text_(207) _normal» awml:style=»Body text (207)» style=»margin-bottom:13.050000pt»> >

private static void Swap(int a, int b)

int с = a ; a = b ; b = c ;

Возникнет ошибка времени выполнения <§) v а»1, Ь=2

Возникнет ошибка компиляции а=2, Ь=1

К Какие ошибки содержатся в представленном коде:

static void f(ref int a, out int b)

static void Main(string[] args)

int b — 5.C; f(ref a, out b);

0 v Перед вызовом метода f переменная а должна быть проинициализирована.

  1. v в методе f необходимо обязательно присвоить значение переменной b
  2. Метод f должен быть объявлен как public
  3. v в методе f переменная b должна быть инициализирована до ее использования
  4. Метод f должен содержать конструкцию return

D ^ Переменная b должна быть проинициализирована целочисленным значением или не инициализирована вовсе

  1. В этом коде нет ошибок

* Укажите имя класса, от которого наследуются все исключения.

Ваш ответ: (Extetnal

Правильные ответы: Exception,System.Exception

Сколько родительских классов может иметь производный класс? классы и ofoei

Любое количество 931 / 932

Не больше одного 2027 / 933

® v Всегда один 6227 / 932

Не больше двух 144 / 932

Пояснение: Всегда один. В С# нет множественного наследования, а любой объявленный класс без явного указания родительского класса автоматически становится производным от System . Object .

Сам System . Object не имеет родительского класса, но в вопросе спрашивается только о производных классах.

Что напечатает программа:

static bool SomeMethod() <

Console.WriteLine(«Method was invoked»); return true;

Операторы и операции

static void Main(string[] args) <

if (true & false & SomeMethodO) <

Console.WriteLine(«Inside IF operator»);

(§) Ошибка компиляции Method was invoked

Inside IF operator

Ошибка времени выполнения Ничего не напечатает

S Method was invoked

Пояснение: Операция ft в условном операторе позволяет полностью вычислить условие независимо от операндов, даже если очевидно, что результат не зависит от последующих операндов. Эта операция отличается от операции ftft тем, что полностью вычисляет выражение.

Укажите , какие свойства определены неверног

gj _ A g _ В gj _ С gj _ D 0 E □ V F

К Лямбда-выражения на платформе . Net могут существовать в виде:

  1. файла, проецируемого в память
  2. v кода на промежуточном языке MSIL (в виде делегатов)
  3. исключительной ситуации [7] v дерева выражений

Комментировать вопрос (всего: 0)

Что будет выведено на консоль в результате выполнения кода?

public static void Foo(params string[] lines) <

foreach (string 1 in lines) < Console.Write(1);

public static void Main() <

string[] data = new string[] < "1"* "2", "3" >;

Возникнет ошибка времени выполнения ® Программа не компилируется : ✓ 123АВС

Пояснение: Foo • метод, принимающий произвольное количество строк в качестве параметров. Также не запрещено передавать в метод готовый массив строк

К Какими способами правильно инициализировать двумерный массив? (Выберите все верные варианты)

  1. int[][] k = new int[2][] 0 int к [,] = new int [2,3] 0 v int[,] к = new int [2,3]
  2. int[][] k = newint[2][3]
  3. int k[][] = new int [2] [3]

Пояснение: int k [][] = new int [2][3], int [][] к = new int [2][3], int k [,] = new int [2,3] — неправильное объявление массива; int [][] к = new int [2][] — объявление ступенчатого массива, а не инициализация.

К Что напечатает следующий код:

static bool Methodic)

Console.WriteLine(«in Methodl»); return false;

static bool Method2() <

Console.WriteLine(«in Method2»); return true;

static void Main(string[] args) <

if (Methodl() & Method2()) <

® in Methodl in Method2 inside if

У in Methodl in Method2

Пояснение: Оператор ft всегда вычисляет значение обоих операндов

Какие из перечисленных ключевых слов используются в конструкции «если»:

elseif then ® Y if Else

В каких строках содержатся ошибки компиляции?

public class Foo

private double field;

public double A

public static class Program <

public static void Main() <

double a = f.A; //4 int b = f.B; // 5

  1. 3
  2. 4
  3. 5

К Что будет выведено на консоль в результате выполнения следующего кода:

static void Main(string[] args) <

Console.WriteLine(Test.Foo().ToString()); Console.Read Line();

public static int Foo() <

пустая строка @ NULL

System. Null ■ v Возникнет ошибка компиляции

К Напишите название функции, которая является точкой входа в любую программу на С#.

Ваш ответ: fviod Main Правильные ответы: Main

Согласны ли вы с утверждением: у каждого объекта есть метод Finalize , который вызывается у этого объекта классы и объекты при сборке мусора?

Пояснение: В классе System . Object определён метод Finalize , но CLR его игнорирует, поэтому объекты всех классов, производных от Object (только если в них явно не определён метод Finalize ), не считаются подлежащими завершению, т.е. метод Finalize при сборке мусора не вызывается для о6″ьектпов этих классов.

К Укажите ошибки в коде:

using SystM; nmespace Q

public U»e( string nine) i

/»1″/ public string Usoe <

static void Hain(strinjf] args) <

fZ’f Mane n « пей Uane(*Helo wrold»);

/’t’/ n.Oispose(); // © евобахввеи пенять .

  1. ^ Строка /*3*/ — вызов Dispose для переменной п невозможен.

комментарии вида /* V недопустимо!

  1. * Строка /*1*/ класс Name не может содержать свойство Name

Строка /*2*/ : ошибки в фразе » Heto Wrokf

Пояснение: /**/ • вполне себе комментарии

Hello world является строковым выражением, его синтаксис не проверяется*) класс не может содержать членов с именем, совпадающим с именем самого класса. Dispose не объявлен.

Какие ошибки содержатся в представленном коде:

static void -F(ref int a, out int b) <

static void Main(string[] args) <

int b = 5.0; f(ref a, out b);

  1. v в методе f необходимо обязательно присвоить значение переменной b

G * В методе f переменная b должна быть инициализирована до ее использования

  1. v Переменная b должна быть проинициализирована целочисленным значением или не инициализирована вовсе 0 В этом коде нет ошибок
  2. Метод f должен содержать конструкцию return

П * Перед вызовом метода f переменная а должна быть проинициализирована. О Метод f должен быть объявлен как public

К Что будет выведено на консоль в результате выполнения следующего кода:

static void Main(string[] args) <

string @string = «ABC»; Console.Write L ine(string);

v Возникнет ошибка компиляции System. String Пустая строка © ABC

Ш Что напечатает следующий код:

static bool Methodl()

Console.WriteLine(«in Method1» ) ; return false;

static bool Method2()

Console.WriteLine(«in Method2»); return true;

static void Main(string[] args)

Console.WriteLine ( » inside if » );

in Methodl in Method2

(§) in Methodl in Methodl inside if

Пояснение: Правый операнд оператора ftft не нуждается в вычислении, так как Methodl вернул false .

18 Можно ли в конструктор передать параметр с ключевым словом ref ?

К Какими способами из перечисленных может быть перегружен метод в С#?

[71 другой тип возвращаемого значения П v другое количество параметров П v другой тип параметров Г71 другое имя метода

^ Что напечатает следующий код:

static void Main() <

int a = 1, b = 2; Swap(a, b);

Console.WriteLine(«a =» + a + b body_text_(254) _normal» awml:style=»Body text (254)» style=»margin-bottom:12.550000pt;margin-left:25.000000pt»> >

private static void Swap(int a, int b) <

int с = a ; a = b ; b = c ;

Возникнет ошибка времени выполнения а=2, b =1 <§) v а=1, Ь=2

Возникнет ошибка компиляции

* Какое ключевое слово используется для прекращения выполнения конструкций switch , for , while ?

Что напечатает следующий код

Напишите код по следующему словесному алгоритму:

1. Попросить пользователя ввести число от 1 до 9. Полученные данные связать с переменной x.

2. Если пользователь ввел число от 1 до 3 включительно, то

· попросить пользователя ввести строку. Полученные данные связать с переменной s;

· попросить пользователя ввести число повторов строки. Полученные данные связать с переменной n, предварительно преобразовав их в целочисленный тип;

· выполнить цикл повторения строки n раз;

· вывести результат работы цикла.

3. Если пользователь ввел число от 4 до 6 включительно, то…

· попросить пользователя ввести степень, в которую следует возвести число. Полученные данные связать с переменной m;

· реализовать возведение числа x в степень m;

· вывести полученный результат.

4. Если пользователь ввел число от 7 до 9, то выполнить увеличения числа x на единицу в цикле 10 раз, при этом на экран вывести все 10 чисел.

5. Во всех остальных случаях выводить надпись «Ошибка ввода».

Напишите программу, которая бы выполняла следующие задачи:

1. выводила название программы «Общество в начале XXI века»;

2. запрашивала у пользователя его возраст;

3. если пользователь вводит числа от 0 до 7, то программа выводила надпись «Вам в детский сад»;

4. от 7 до 18 — «Вам в школу»;

5. от 18 до 25 — «Вам в профессиональное учебное заведение»;

6. от 25 до 60 — «Вам на работу»;

7. от 60 до 120 — «Вам предоставляется выбор»;

8. меньше 0 и больше 120 — пятикратный вывод надписи «Ошибка! Это программа для людей!»

В программе желательно использовать все «атрибуты» структурного программирования: функцию, ветвление и цикл.

3. Контрольные вопросы по Python

программирование python лабораторный язык

1. Какая встроенная функция вводит данные с клавиатуры?

2. Какая встроенная функция выводит данные на экран?

3. Как применить функцию cos к действительному числу?

4. Имеется строки x=» 1» и у=» 5». Как сложить эти числа и получить число 6.

5. Какие ключевые слова могут входить в состав оператора цикла for.

6. Какую из следующих операций можно применить к строке:

d) Ни одну из них.

7. Что напечатает следующий код:

d) Код вызовет ошибку.

8. Что произойдет при выполнении следующего кода:

9. Данное выражение эквивалентно

a) Поменяются местами значения х и у;

b) В этой строке синтаксическая ошибка

10. Что выведет следующий код:

d) Возникнет ошибка.

11. Какого типа значение получится в результате вычисления следующего выражения:

Что напечатает программа? Что будет напечатано в результате выполнения следующего фрагмента кода? s := '123456789'; writeln(s[5]

Объём файла = i * V * t;
i — разрешение, в нашем случае 1.
t — время, в нашем случае 1 минута, переведем в секунды = 60.
V — частота дискретизации, 8кГц = 8000Гц.

Объём файла = 1 * 60 * 8000 = 480000 бит = 60000 байт = 58.59Кбайт.

N = 2^i
110 = 2^i
i = 7 бит (ближайшая степень после числа 110)
I = K * i
I = 72* 7 = 504 бит = 504/8 байт = 63 байта

Ответ:

Объяснение:

Информационный объём 1 сообщения равен произведению количества K символов в сообщении на информационный вес i символа алфавита: I=К⋅i

Т.к. формат текстового файла предназначен для хранения именно текста и на 1 символ (букву) в нём обычно тратится от 1 до 2 байтов, то такой формат наиболее оптимален по соотношению количества информации к физическому объёму файла.

В растровом (картинка) формате хранится информация о пикселах и их цвете, поэтому на один символ даже в чёрно-белом формате тратится объём данных для изображение матрицы точек минимум 8х8, соответствующей графическому изображению символа.

8*8*1=64 бит = 8 байт — для такой буквы.

Видео формат содержит в себе набор растров + еще и аудио-информацию, поэтому он занимает наибольший физический объём при наименьшем информационном объёме.

Русские Блоги

Модуль: Думайте как компьютерщик + обзор упражнений

## Думай как компьютерщик
(Возможно, вы не знаете, в сообществе Python есть поговорка: «Python поставляется с батареями (включая батареи)», что это значит? Исходя из философии дизайна Python, философия дизайна Python такова: элегантный и ясный И простота. Поэтому разработчики Python разработали философию использования одного метода, желательно толькоСпособ сделать что-то одно. Хотя маленькая черепаха часто побуждает всех думать больше, все дороги ведут в Рим, то есть тренировать разные мыслительные процессы, но в формальном программировании, если есть полные и тщательно протестированные модули, которые могут быть непосредственно реализованы, то лучшим вариантом является Используйте для работы готовые модули. )

※ Итак, Python поставляется с установленной стандартной библиотекой Python, обычно мы говоримаккумуляторНаходится в стандартной библиотеке PythonМодульЭти модули чрезвычайно полезны. Стандартная библиотека Python содержит модули, необходимые для общих задач. Однако стандартная библиотека Python содержит до 100 модулей. На самом деле ненаучно говорить по одному, поэтому этот доклад , Мы научимся самостоятельно изучать модули.

※ Учебные материалы по Python всегда под рукой, потому что Python имеет не только аккумулятор, но и зарядное устройство! , Мы здесь, чтобы проанализировать для всех, как нам искать ответы, когда мы сталкиваемся с проблемами, на самом деле, вы можете найти решение для 90% ответов следующими способами.

※ Первое, что нужно сделать, это открыть документ Python, открыть IDLE-> Help-> Python Docs (F1) следующим образом:


(Я обнаружил, что все они написаны птичьими текстами, я их не понимаю, но мне нужно их выучить, потому что в условиях сегодняшней экономической глобализации самые последние и самые полные документы — это в основном птичьи тексты, поэтому вы действительно пассивны, если совсем не понимаете английский. Но не расстраивайтесь: для программирования вам необязательно быть на уровне 4 или 6, вам нужно только выучить слова, связанные с компьютером.)

## Основные компоненты документа

※1、What’s new in Python3.8?
Представлены новые функции и новые возможности в версии 3.8, а также перечислены новые функции, начиная с Python 2.0.

※2、Tutorial
Это простой учебник, который кратко знакомит с синтаксисом Python.

※3、Liberary Reference
Книга подушек Python, вот подробный список всех встроенных функций Python и использования каждого модуля стандартной библиотеки. Он очень подробный, но вы не можете прочитать его от начала до конца, просто посмотрите его как словарь.

※4、Inatalling Python Modules
Это руководство, которое научит вас устанавливать сторонние модули Python.

※5、Distuributing Python Modules
Научите вас публиковать сторонние модули для Python. Вы должны знать, что в дополнение к сотням официальных модулей в стандартной библиотеке существует также сообщество под названием pypi, —-https://pypi.python.org/pypi, Собраны модули, предоставленные энтузиастами Python со всего мира. Вы также можете написать модуль самостоятельно и опубликовать его в сообществе pypi, чтобы поделиться им со всем миром.

※6、language reference
Обсудите синтаксис и философию дизайна Python

※7、Python setup and usage
Поговорите о том, как Python используется на разных платформах

※8、Python HOWTOs
Углубленное и подробное обсуждение конкретных тем

※9、Extending and Embedding
Расскажите, как использовать C и C ++ для разработки модулей расширения Python, и разработать соответствующие необходимые функции API.

※ PEP — это сокращение от Python Enhancement Proposals, которое переводится как значение Python Enhancement Proposals. Он используется для стандартизации и определения технических спецификаций для различных улучшений и расширений Python, так что сообщество разработчиков Python может иметь основу для общих действий.

※ Каждый PEP имеет уникальный номер, после того, как этот номер будет присвоен, он не изменится. Например, PEP 3000 используется для определения соответствующих технических спецификаций Python 3.0, а PEP 333 — это спецификация программного интерфейса веб-приложений Python WSGI (интерфейс шлюза веб-сервера 1.0). Соответствующие спецификации самого PEP определены в PEP 1, а PEP 8 определяет руководство по стилю для кода Python.
※ Список PEP можно найти в PEP 0: https://www.python.org/dev/peps/

(Например, вам нужно использовать модуль timeit сейчас, но вы этого не знаете. Вы можете найти и просмотреть документы обучения timeit с помощью индексации и поиска, как показано ниже: Существуют простые методы использования, введения, а также какие классы и какие включены в этот модуль Функции, какие еще переменные, их функции и использование, наконец, есть пример, большинство документов следуют этому порядку, чтобы объяснить)

(Если вы хотите быстро понять использование модуля, лучше всего использовать интерактивный интерфейс IDLE, сначала импортируйте модуль, затем вы можете вызвать атрибут __doc__, чтобы вы могли просмотреть введение модуля)

(Фактически, вы должны быть хорошо знакомы с этим методом. Это то же самое, что и документ функции, о котором мы говорили. Это строка, написанная в начале модуля. Эта строка отформатирована. Мы можем использовать print ( ) Распечатайте этот формат. Там будут отступы и разрывы строк, так будет лучше 🙂

(Тогда вам может потребоваться узнать, какие переменные, какие функции и какие классы определены в этом модуле, вы можете использовать встроенный метод dir () для его отображения 🙂

(Не все отображаемые имена полезны для нас, поэтому нам нужно фильтровать некоторые вещи, которые нам не нужны. Тогда вы можете заметить атрибут __all__, который на самом деле помогает нам завершить процесс фильтрации , Мы вызываем атрибут __all__ 🙂

(Он возвращает нам список. В этом списке всего 4 члена. Если вы прочитаете предыдущий документ о timeit, то обнаружите, что Timer — это класс, а timeit, repeat и default_timer — три интерфейсные функции. Итак, , То, что показывает наш атрибут __all__, — это все, что этот модуль может вызывать для внешнего мира, поэтому информация)

(Здесь следует отметить два момента. Во-первых, не все модули имеют атрибут __all__. Если есть __all__, содержание, содержащееся в этом атрибуте, является именем, которое автор хочет вызвать извне. Эти функции являются классами, а другие — нет. Я надеюсь, что его можно вызвать извне. Во-вторых, второй момент заключается в том, что если у модуля установлен атрибут __all__, тогда используйте оператор from’module name ‘import * для импорта в операцию пространства имен, и только имя внутри атрибута __all__ может быть импортировано .Например:)

(Атрибут __all__ установлен, и можно импортировать только имя внутри атрибута __all__, например, first Timer.

Но если вы не установите этоall Для атрибутов from’module name ‘import * импортирует все имена, которые не начинаются с подчеркивания, в текущее пространство имен. Поэтому мы предлагаем, чтобы при написании модулей внешне предоставляемые интерфейсные функции и классы были установлены на атрибут __all__ В списке это более стандартизированный подход. )

※ Существует еще один атрибут, называемый атрибутом __file__, этот атрибут указывает расположение исходного кода модуля.

※ Как мы уже говорили, есть три волшебных оружия для быстрого улучшения навыков программирования: одно — постоянно писать код, а второе — читать код мастера.

※ Здесь указан путь к исходному коду, мы можем его найти и, прочитав его исходный код, усвоить его суть и удалить его шлаки

※ Наконец, мы также можем использовать функцию help (), которая немного более подробная, чем атрибут doc, и немного проще, чем официальный документ. Справочный документ между ними может быстро узнать об использовании каждой функции

## Упражнения для анализа прошлого и познания нового
Всего вопросов 16. Если вы получили 14 или меньше вопросов, не садясь в машину, признайтесь сами!

Примечание. Хотя тема проста, есть подводные камни. В любом случае, в этой лекции нечего проверять. Просто проверьте свой здравый смысл ^ _ ^

0. Что напечатает следующий код?

A. <type ‘function’>
B. <type ‘tuple’>
C. <type ‘NoneType’>
D. <type ‘type’>
Ответ: C

1. Что напечатает следующий код?

2. Что напечатает следующий код?

A. <type ‘NoneType’>
B. <type ‘function’>
C. <type ‘int’>
D. <type ‘tuple’>

3. Что напечатает следующий код?

4. Что напечатает следующий код?

A. 9 10
B. 9 9
C. 10 10
D. Выбросить исключение

5. Что напечатает следующий код?

A. 666
B. 888
C. None
D. Выбросить исключение

6. Что напечатает следующий код?

A. 1 2 3 5
B. 1 1 2 3 5
C. 1 2 3 4 3 2 1
D. Выбросить исключение
Ответ: B

7. Что напечатает следующий код?

A. 1 1 4 9 25
B. 1 1 2 3 5
C. 0.5 0.5 1 1.5 2.5
D. 2 2 4 6 10

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *