Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Аккредитация_Программирование_Ответы.doc
Скачиваний:
1
Добавлен:
22.11.2019
Размер:
401.41 Кб
Скачать

3. Переведите число в двоичную систему счисления: 2668

4. Объясните результат работы приведенного ниже метода. Определите значение, возвращаемое мотодом в следующих трех вариантах его вызова: CountDigit(“+375293209900”); CountDigit(“ID: 0001”); CountDigit(String.Empty).

static int CountDigit(string s)

{

int count=0;

for (int i = 0; i < s.Length; i++)

{

if (char.IsDigit(s[i])) count++;

}

return count;

}

Вопрос 1.

static int IndexOf(int[] array)

{

int index = -1;

for (int i = array.Length-1; i >=0; i--)

{

if (array[i] < 0) return i;

}

return index;

}

Вопрос 2.

(n>9 && n<100 && n%2==0)

Вопрос 3.

2668 = 010 110 1102 = 101101102

Вопрос 4.

Метод возвращает количество цифр в строке.

CountDigit(“+375293209900”); - возвращает значение 12

CountDigit(“ID: 0001”); - возвращает значение 4

CountDigit(String.Empty); - возвращает значение 0

Вопрос №15

1. Объясните результат работы представленного ниже метода. Поясните, в каком случае метод будет возвращать неверный результат. Исправьте реализацию метода.

static int IndexOf(int[] array)

{

int index = 0;

for (int i = 0; i < array.Length; i++)

{

if (array[i] < 0) return i;

}

return index;

}

2. Запишите логическое выражение, принимающее значение true, если указанное высказывание является истинным, и false – в противном случае: заданное целое число является трехзначным нечетным числом.

3. Переведите число в двоичную систему счисления: 26616.

4. Рассмотрите реализацию представленного ниже класса. Запишите все возможные варианты создания экземпляра класса Person.

class Person

{

private string name;

private int id=0;

private bool flag=true;

public Person(string name, int id)

{

this.name = name; this.id = id;

}

public Person(string name)

{

this.name = name;

}

public Person(string name = "No name", int id = -1, bool f = false)

{

this.name = name; this.id = id; this.flag = f;

}

}

Вопрос 1.

Метод находит позицию первого отрицательного элемента в одномерном целочисленном массиве. В случае если в массиве нет отрицательных элементов, метод будет возвращать неверное значение (0).

Исправленная реализация метода:

static int IndexOf(int[] array)

{

int index = -1;

for (int i = 0; i < array.Length; i++)

{

if (array[i] < 0) return i;

}

return index;

}

В случае такой реализации метод вернет значение -1 (это можно интерпретировать как то, что массиве нет отрицательных элементов).

Вопрос 2.

(Math.Abs(n) > 99 && Math.Abs(n) < 1000 && n % 2 != 0)

Вопрос 3.

26616 = 0010 0110 01102 = 10011001102

Вопрос 4.

Person p1 = new Person("Ivanov", 101); - первый конструктор (поля name и id примут значения “Ivanov” и 101)

Person p2 = new Person("Ivanov"); - второй конструктор (поля name и id примут значения “Ivanov” и 0)

Person p3 = new Person(); - конструктор с параметрами по умолчанию (поля name, id, flag примут значения “No name”, -1, false)

Person p4 = new Person("Petrov",102,true); - конструктор с параметрами по умолчанию (поля name, id, flag примут значения “Petrov”, 102, true)

Вопрос №16

1. Запишите реализацию метода, который в одномерном целочисленном массиве находит значение минимального элемента. Продемонстрируйте вызов метода.

2. Запишите логическое выражение, принимающее значение true, если указанное высказывание является истинным, и false – в противном случае: сумма цифр данного трехзначного числа N является четным числом.

3. Переведите число из восьмеричной системы счисления в шестнадцатеричную: 74038.

4. Рассмотрите реализацию представленного ниже класса. Добавьте в реализацию класса перегрузку операции «унарный минус», которая изменяет значения всех элементов массива на противоположные по знаку.

class DemoArray

{

int[] MyArray;

public DemoArray(int size)

{

MyArray = new int[size];

}

}

Вопрос 1.

1. Реализация метода

static int Max(int[] a)

{

int max = a[0];

for (int i = 1; i < a.Length; i++)

if (a[i] > max) max = a[i];;

return max;

}

2. Пример вызова метода

int[] a={2,3,15,6,4,8,9};

int max=Max(a);

Вопрос 2.

( (n%10 + (n/10)%10 + n/100) % 2 == 0 )

Вопрос 3.

74038 = 111 100 000 0112 = 1111 0000 00112 = F0316

Вопрос 4.

class DemoArray

{

public int[] MyArray;

public DemoArray(int size)

{

MyArray = new int[size];

}

static public DemoArray operator - (DemoArray a)

{

DemoArray temp = new DemoArray(a.MyArray.Length);

for (int i = 0; i < temp.MyArray.Length; i++)

temp.MyArray[i] = -a.MyArray[i];

return temp;

}

}

Вопрос №17

1. Запишите реализацию метода, который в одномерном целочисленном массиве находит количество нечетных элементов. Продемонстрируйте вызов метода.

2. Запишите логическое выражение, принимающее значение true, если указанное высказывание является истинным, и false – в противном случае: треугольник со сторонами а, b, с является равносторонним.

3. Переведите число из шестнадцатеричной системы счисления в восьмеричную: 1C1C16

  1. Определите значение переменных i и j после выполнения следующего фрагмента кода:

double[,] a = { { 1, 2, 3 }, { 4, 5, 6 }, { 6, 2, 3 } };

Search(a,out i, out j);

Код метода Search представлен ниже:

static void Search(double[,] array, out int pos1, out int pos2)

{

pos1=0; pos2=0;

for (int i = 0; i < array.GetLength(0); i++)

for (int j = 0; j < array.GetLength(1); j++)

if (array[i, j] > array[pos1, pos2])

{

pos1 = i;

pos2 = j;

}

}

Вопрос №18

1. Запишите реализацию метода, который в одномерном целочисленном массиве находит количество элементов, попадающих в заданный отрезок [a,b] (значения a и b передаются в метод в качестве параметров)

2. Запишите логическое выражение, принимающее значение true, если указанное высказывание является истинным, и false – в противном случае: треугольник со сторонами a, b, с является равнобедренным.

3. Записать прямой код числа, интерпретируя его как восьмибитовое целое без знака: 236(10)

4. Рассмотрите представленный ниже фрагмент программного кода, который на этапе компиляции приведет к ошибке. Объясните почему. Измените реализацию класса Сircle так, чтобы код компилировался.

interface IFigure

{

void Draw();

}

class Circle : IFigure

{

private int radius;

public Circle(int radius)

{

this.radius = radius;

}

}

Вопрос №19

1. Объясните результат работы приведенного ниже метода. Запишите пример вызова метода.

static int IndexOf(int[] array, int a)

{

for (int i = 0; i < array.Length; i++)

{

if (array[i] == a) return i;

}

return -1;

}

2. Запишите логическое выражение, принимающее значение true, если указанное высказывание является истинным, и false – в противном случае: среди чисел а, b, с есть хотя бы одна пара взаимно противоположных.

3. Записать прямой код числа, интерпретируя его как восьмибитовое целое без знака: 195(10)

4. Рассмотрите реализацию приведенного ниже класса. Запишите реализацию класса Student, как наследника класса Person, добавив дополнительное поле department (факультет). При реализации конструктора класса наследника используйте вызов конструктора базового класса.

class Person

{

private string name;

private int id=0;

public Person(string name, int id)

{

this.name = name; this.id = id;

}

}

Вопрос №20

  1. Представленный ниже метод находит позицию первого элемента со значением a в одномерном целочисленном массиве. Измените реализацию метода так, чтобы он выводил на экран позиции всех элементов массива со значением a.

static int IndexOf(int[] array, int a)

{

for (int i = 0; i < array.Length; i++)

{

if (array[i] == a) return i;

}

return -1;

}

2. Запишите логическое выражение, принимающее значение true, если указанное высказывание является истинным, и false – в противном случае: данная тройка натуральных чисел а, b, с является тройкой Пифагора, т.е. c2 = a2 + b2.

3. Записать прямой код числа, интерпретируя его как восьмибитовое целое без знака: 161(10).

4. Рассмотрите фрагмент программного кода. Запишите, что будет выведено на экран в результате его выполнения, объясните почему. Перепишите реализацию этого фрагмента программы так, чобы элементы массива a выводились в прямом порядке (используйте коллекцию Queue).

Stack s = new Stack();

int[] a = { 1, 2, 3, 4, 5, 6 };

foreach (int x in a) s.Push(x);

while (s.Count != 0)

Console.WriteLine(s.Pop());

Вопрос №21

1. Запишите фрагмент программного кода, который с использованием операторов цикла выведет на экран числа следующим образом:

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

2. Запишите логическое выражение, принимающее значение true, если указанное высказывание является истинным, и false – в противном случае: все цифры данного четырехзначного числа N различны.

3. Записать прямой код числа, интерпретируя его как шестнадцатибитовое целое без знака: 24411(10)

4. Представленный ниже фрагмент программного кода может генерировать исключение. Перепишите представленный фрагмент, добавив обработку возможных типов исключений.

static void Main(string[] args)

{

double x = double.Parse(Console.ReadLine());

double y = double.Parse(Console.ReadLine());

double z = x / y;

}

Вопрос №22

1. Запишите фрагмент программного кода, который с использованием операторов цикла выведет на экран числа следующим образом:

4

3

2

1

0

3

2

1

0

2

1

0

1

0

0

2. Запишите логическое выражение, принимающее значение true, если указанное высказывание является истинным, и false – в противном случае: данные числа х, у являются координатами точки, лежащей в первой координатной четверти.

3. Записать прямой код числа, интерпретируя его как шестнадцатибитовое целое без знака: 18612(10)

4. Представленный ниже фрагмент программного кода при компиляции приведет к ошибке. Объясните почему. Исправьте реализацию класса так, чтобы код компилировался.

class Employee: IComparable

{

private string name;

private int salary;

public Employee(string name, int salary)

{

this.name = name; this.salary = salary;

}

}

Вопрос №23

1. Запишите фрагмент программного кода, который с использованием операторов цикла выведет на экран числа следующим образом:

1

2

2

3

3

3

4

4

4

4

5

5

5

5

5

2. Запишите логическое выражение, принимающее значение true, если указанное высказывание является истинным, и false – в противном случае: (x1, y1) и (х2, y2) — координаты левой верхней и правой нижней вершин прямоугольника. Точка А(х, у) принадлежит прямоугольнику.

3. Записать прямой код числа, интерпретируя его как восьмибитовое целое без знака: 246(10).  

4. Рассмотрите представленный ниже фрагмент программного кода, который на этапе компиляции приведет к ошибке. Объясните почему. Измените реализацию класса Сircle так, чтобы код компилировался.

interface IFigure

{

void Draw();

}

class Circle : IFigure

{

private int radius;

public Circle(int radius)

{

this.radius = radius;

}

}

Вопрос №24

1. Запишите фрагмент программного кода, который с использованием операторов цикла выведет на экран числа следующим образом:

8

8

8

8

8

7

7

7

7

6

6

6

5

5

4

2. Запишите логическое выражение, принимающее значение true, если указанное высказывание является истинным, и false – в противном случае: данное четырехзначное число читается одинаково слева направо и справа налево.

3. Записать прямой код числа, интерпретируя его как восьмибитовое целое без знака: 172(10).

4. Рассмотрите представленную ниже иерархию классов. Измените реализацию методов Show() так, чтобы в базовом классе этот метод определялся как виртуальный и переопределялся в классе наследнике.

class Employee

{

private string name;

private int salary;

public Employee(string name, int salary)

{

this.name = name; this.salary = salary;

}

public void Show()

{

Console.WriteLine("I am an Employee");

}

}

class Worker : Employee

{

private string department;

public Worker(string name, int salary, string department)

: base(name, salary)

{

this.department = department;

}

public void Show()

{

Console.WriteLine("I am a worker");

}

}

Вопрос №25