русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Контрольная 2 (с элементами тестирования).


Дата добавления: 2015-06-12; просмотров: 597; Нарушение авторских прав


 

1.(Ссылочный тип). Что будет выведено?

void fun1(int a, int &b, int &c)

// или void fun1(int a, int b, int &c)

// или void fun1(int &a, int &b, int c)

// и т.д.

{ int d; a=…; b=…; c=…; d=…; cout<<a%c<<" "<<(b / d )<<endl; }

int main() { int u=…, v=…, w=…, z=…; fun1(u,v,w);

cout<<u<<" "<<v<<" "<<(w + z)<<endl; getch(); return 0; }

В присваивании конкретные числа или выражения.

2 ( Параметры по умолчанию). Пусть описана функция

void fun (int i, char c='*', float f=1.2)

{ cout<< endl<< i<<'\t'<<c<<'\t'<<f<< endl; }

Какие из следующих вызовов допустимы? Что будет выведено для правильных вызовов? 1) fun(10, ‘A’); 2) fun (10, 65); 3) if (fun(10, ‘A’, 2.2)) cout<<”+++”; else cout<<”---“;

3 (Перегрузка функций). Будет ли компилироваться и выполняться следующая программа?

int Sum (int , int ); //1

float Sum (float, float); //2

int main() {int i1=…, i2=…; cout<<Sum(i1,i2)<<" "; //3

float f1=…, f2=…; cout<<Sum(f1,f2)<<" "; //4

getch(); return 0; }

int Sum (int x, int y) {return x%10 + y%10; } //5

float Sum (float x, float y) {return x>y?x:y;} //6

Варианты ответов:

1) Да. Будет выведено (записать самим) … 2) Нет, так как …

3) Нет, так как …. 4) Нет, так как ….

5) Нет (указать другую причину).

4. (Как вызвать функцию типа void и функцию, отличную от типа void).Пусть описаны функции

4.1. void Test (int x, int y, int &r) { r=…; }

int Test2 (int x, int y, int& r) { r=выражение1; return выражение 2; }

Укажите номера строк, в которых правильные вызовы функций. Что будет выведено для правильных вызовов? int main() { int R;



if (Test(12, 12, R)) cout<<" Yes "<<R; else cout<<" No "<<R; //1

if (Test2(14, 12, R)) cout<<" Yes "<<R; else cout<<" No "<<R; //2

Test2(4, 14, R); cout<<" "<<R<<" "; //3

Test(12, 12, R); R ? cout<<" Yes ": cout<<" No "; cout<<R; //4

int RES=0, x=12; RES=Test(x, 12, 3); RES? cout<<"Yes": cout<<"No"; cout<<R; //5

int RES=0, x=12; RES=Test2(x, 12, 3); RES? cout<<"Yes": cout<<"No"; cout<<R; //6

Test(12, 12, R); if (R) cout<<" Yes "<<R; else cout<<" No "<<R; //7

Test2(12, 14, R); if (R) cout<<" Yes "<<R; else cout<<" No "<<R; //8

getch(); return 0; }

4.2.

void Test (float x, float y, float r, int res) // или void Test (float x, float y, float r, int &res)

{ res= x*x+y*y<=r*r && (x<=0 && y<=0 || x>0 && y>0)?1:0; cout<<res<< endl; }

Какие из следующих вызовов синтаксически правильные. Что будет выведено? ( в качестве параметров конкретные числа)

1) int RES; cout<<Test(…, …, …, RES)<<endl;

2) int RES=0; float x=…; Test(x, …, …., RES); if (RES) cout<<"Yes"; else cout<<"No";

3) cout<<endl; if (Test(…, …, …,…)) cout<<"Yes"; else cout<<"No";

5. (Понятие указателя (см.[3]). Пусть int t=10; int* p=&t; Какие из следующих операторов допустимы и что они означают:1) cout<< p; 2) p=1000; 3)*p=1000;

4) t=5; t*=*p; 5) cout<<(*p); ?

6. (Указатели и массивы(см.[3].).

Пусть const n=10; int a[n]={-1, -2, 33, 44, -5, -6, 77, 8}; int *q;

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

1) q=a; 2) q=*a[0]; 3) q=n; 4) q=&a[0]; 5) int i=5; q=&a[i]; 6) int i=2; q=a[i];

7) q=a[0]; 8) int i=9; q=a[i]; ?

7. (Передача массивов в функцию(см. [1],[2],[3]).

7.1. Дан код: void Fun (int *x, int N, int &S)

{ S=0; for (int i=0; ; ) { S+=x[i++]; if (x[i]==0 || i ==N ) return; } }

/* или

void Fun (int *x, int N, int &S)

{ S=0; for (int i=0; i<N-1; ) if (x[++i]>0) S+=x[i]; } */

int main( ) { const n=10; int a[n]= {…}; // конкретный числовой массив в { }

int &Sum0; Fun (a,n,Sum0); cout<<endl<<Sum0; //1

int Sum; Fun (&a[0],n/2,Sum); cout<<endl<<Sum; //2

int Sum; Fun (a,n,Sum); cout<<endl<<Sum; //3

int Sum2; Fun (&a[5], 5, Sum2); cout<<endl<<Sum2; //4

int *Sum;Fun (a,n,Sum);cout<<endl<<Sum; //5

int *q=a[5], Sum=0; Fun(q, n/2, Sum); cout<<endl<<Sum; //6

int *q=a[n/2], Sum=0; Fun(q, 5, Sum);cout<<endl<<Sum; //7

int *q=&a[n/2], Sum=0; Fun(q, 5, Sum); cout<<endl<<Sum; //8

int *q=*a[n/2], Sum=0; Fun(q, 5, Sum); cout<<endl<<Sum; //9

getch(); return 0; }

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

7.2. Описана функция:

void OutChar (int *a, int N, int k)

{ cout<< endl; for (int i=0; i<N; i++) printf("%d %c %c", a[i], a[i], ( i+1)%k ? '\n': ' ' ); }

// или { cout<< endl; for (int i=0; i<N; i++) printf("%d %c %c", a[i], a[i], ( i+1)%k ? ' ': '\n'); }

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

main(){ const n=10; int k=5; int a[n]= {48, 49,50,51, 52, 53, 54, 55, 56, 57};

OutChar (a,n,k); OutChar(a, k, n);

OutChar(&a[0], k,k/2); OutChar(&a[k], k,k/2);

OutChar( a[0], k, n); OutChar (a,2*k,k);

OutChar(a[0], n, k); OutChar(*a[0], n, k);

getch(); }

8. (Глобальные переменные) Дан код: void fun1(…);

int a;

void main() { … }

void fun1 (…) { … }

Можно ли переменную a использовать без дополнительного объявления внутри функции main? … внутри функции fun1, если она внешняя?

…внутри функции fun1, если она встроенная?

Эти же вопросы, если переменная а объявлена внутри main.

Что получится, если переменная а объявлена дважды: и в main, и в fun1

9. (Матрицы, функции и указатели(см. [3]).

9.1.Что будет выведено в результате выполнения следующей программы?

const size2=6;

void Sort1(int X[],int n);

void MyOut(int M[][size2],int n,int m)

{ cout<<endl; for(int i=0;i<n;i++){cout<<endl;

for(int j=0;j<m;j++) printf("%4d ",M[i][j]);

} cout<<endl;

}

void Sortmatr1(int M[][size2],int n,int m);

int main() {const n=3,m=6; int A[n][size2]={ …

} ;

Sortmatr1(A, n, m); cout<<endl; MyOut (A, n, m);

getch(); return 0;

}

void Sort1(int X[], int m)

{ int min, Nmin; for(int k=0;k<m-1;k++)

{ min=X[k]; Nmin=k;

for (int j=k;j<m;j++)

if(X[j]<min) { min=X[j]; Nmin=j; }

X[Nmin]=X[k]; X[k]=min;

}

}

void Sortmatr1(int M[][size2],int n,int m)

{ for(int i=0;i<n;i++) Sort1( M[i] ,m);

}

9.2. В каких строках есть ошибки? Если ошибок нет, что будет выведено?

const size2=6; int Sum(int *X, int ); //1

void Sum2(int M[][size2],int ,int, int &, int & ); //2

void MyOut(int *x, int n) //3

{cout<<endl; for(int i=0;i<n;i++)

printf("%5d%c", x[i], (i+1)%size2?' ':'\n'); } //4

int main()

{const n=4,m=6; int A[n][size2]={ {4, -3, 2, 0, 5}, {-11, 2, 3},

{5, -6, 4}, {-2, 4, 3, -2,1, 5} }, S1, S2;

MyOut (A[0],n*m); //5

Sum2(A,n,m,S1, S2); cout<<endl<<S1<<" "<< S2; //6

getch(); return 0; }

int Sum(int X[],int m) //7

{ int S=0; for(int j=0; j<m; j++) if (X[j]>0) S+=X[j]; return S; }

void Sum2 (int M[][size2],int n,int m, int &S1, int &S2) //8

{ S1= Sum(M[0] ,n*m/2); //9

S2=Sum(&M[2][0], n*m/2); } //10

9.3. Пусть описана функция:

int MyFun (int *x, int n)

{ по некоторому алгоритму для одномерного массива x размерности n получаем и возвращаем одно целое число

}

A).Как её использовать для получения и (или) вывода этого же параметра всей матрицы (одного целого числа), объявленной так:

const n=4,m=6; int A[n][m];? Выбери правильные варианты ответов:

1) cout<< MyFun (&A[0], n*m);

2) int Res; Res=MyFun (&A[0][0], n); cout<<Res;

3) int Res; Res=MyFun (A[0], m); cout<<Res;

4) int Res; Res=MyFun (A[0], m*n); cout<<Res;

5) cout<< MyFun (&A[0][0], n*m);

6) cout<< MyFun (A[0][0], n*m);

7) int Res=MyMax(&A[0][0], n*m); cout<<Res;

B). Как эту же функцию без изменений использовать для получения и (или) вывода этого же параметра в каждой строке матрицы (т.е для получения и (или) вывода n чисел, по одному для каждой строки)? Выбери правильные варианты ответов: …

Теоретические тесты

10. (Встроенные и внешние функции) Выберите правильные утверждения:

1) тело встроенной функции встраивается в каждую точку вызова;

2) встроенная функция выполняется быстрее внешней;

3) тело (код) встроенной функции дублируется в памяти столько раз, сколько раз она вызывается;

4) встроенная функция выполняется медленнее внешней;

5) при использовании встроенной функции мы проигрываем в памяти, но выигрываем во времени выполнения;

6) при использовании встроенной функции мы выигрываем в памяти, но при этом увеличивается время выполнения программы;

7) при использовании встроенной функции мы проигрываем как в памяти, так и во времени выполнения программы;

8) при использовании встроенной функции мы выигрываем как в памяти, так и во времени выполнения программы;

Аналогичные утверждения для внешних функций.

11. Параметры по умолчанию для функций: Выберите правильные утверждения:

1) значение по умолчанию может быть задано только в прототипе функции;

2) значение по умолчанию может быть задано или в прототипе функции, или в заголовке функции при её описании, но только один раз;

3) значение по умолчанию может быть задано только в заголовке функции при её описании;

4) значение по умолчанию можно задать как в прототипе функции, так и в заголовке функции при её описании;

5) параметры по умолчанию, если они есть, должны быть обязательно в начале списка параметров;

6) параметры по умолчанию, если они есть, должны быть обязательно в конце списка параметров;

12. (Перегрузка функций) Выберите правильные утверждения:

1) перегружаемые функции могут отличаться типами параметров и их количеством;

2) перегружаемые функции, отличные от типа void, могут отличаться только типом возвращаемого значения;

3) перегружаемые функции могут иметь разные имена;

4) перегружаемые функции могут отличаться только типами параметров;

5) перегружаемые функции всегда имеют одинаковое количество параметров;

 



<== предыдущая лекция | следующая лекция ==>
Контрольная 1 (с элементами тестирования). | Задачи из 2-й контрольной работы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.647 сек.