Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в программирование на С.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
930.82 Кб
Скачать

Void main()

{

const int n=4,m=3;

int mat[n][m];

Int I,j,temp;

for(i=0;i<n;i++)

{

printf("\nВвод %d-ой строки: ",i+1);

for(j=0;j<m;j++)

scanf("%d",&mat[i][j]);

}

for(i=0;i<n;i++){

printf("\n\n");

for(j=0;j<m;j++)

printf("%d ",mat[i][j]);

}

for(i=0;i<n*m;i++){

for(j=0;j<m*n;j++){

if(mat[i/m][i%m]<mat[j/m][j%m]){

temp=mat[i/m][i%m];

mat[i/m][i%m]=mat[j/m][j%m];

mat[j/m][j%m]=temp;

}

}

}

for(i=0;i<n;i++){

printf("\n\n");

for(j=0;j<m;j++)

printf("%d ",mat[i][j]);

}

}

  1. Перемножение матриц. Использовать функции ввода и вывода массивов.

#include<stdio.h>

Void main()

{

const int n=3,m=3,m1=3;

double a[n][m],b[m][m1],c[n][m1];

int i,j,k;

printf("I massiv:\n");

for(i=0;i<n;i++){

for(j=0;j<m;j++){

printf("a[%d][%d]=",i,j);

fflush(stdin);

scanf("%lf",&a[i][j]);

}

}

printf("\n II massiv:\n");

for(i=0;i<m;i++){

for(j=0;j<m1;j++){

printf("b[%d][%d]=",i,j);

fflush(stdin);

scanf("%lf",&b[i][j]);

}

}

i=0;

while(i<n){

j=0;

while(j<m1){

c[i][j]=0;

k=0;

while(k<m){

c[i][j]+=a[i][k]*b[k][j];

k++;

}

j++;

}

i++;

}

for(i=0;i<n;i++){

for(j=0;j<m1;j++){

printf("c[%d][%d]=%.2lf\n",i,j,c[i][j]);

}

}

}

  1. Написать программу, которая перемножает две квадратные матрицы А 3x3 и B 3x3 через функцию. Прототип функции следующий.void proizv(int [][3], int [][3], int [][]3);

4.6 Контрольные вопросы:

  1. Функция активизируется с помощью _______________________________________ ______

  2. Переменная, которая известна только внутри функции, в которой она определена, называется ________________________________________________

  3. Оператор __________________ в функции используется, чтобы передать значение выражения в вызываемую функцию.

  4. Ключевое слово ____________ используется в прототипе функции, чтобы указать, что функция не возвращает значений.

  5. _________________ позволяет компилятору проверить количество, типы и порядок следования параметров, передаваемых функции.

  6. Укажите все классы памяти, которые Вы знаете _____________________________________

  7. Переменная, объявленная в блоке или в списке параметров функции, имеют класс памяти _____________, если не указано иное.

  8. Переменная, объявленная вне любого блока или функции, является ____________________

  9. Для того, чтобы локальная переменная сохраняла свое значения между вызовами функции, ее необходимо объявить как _____________ переменную.

  10. Определить содержат ли следующие фрагменты ошибки и укажите правильную версию описание функции,

a) которая получает три целых числа и возвращает сумму полученных чисел

int sum (a, b, c)

{

return a+b+c;

}

b) которая получает два целых числа и печатает деление этих чисел.

void printResult ( int a, int b)

{

printf(“%d/%d=%lf\n”,a,b,a/b);

return a/b;

}

  1. Указатель – это переменная, которая содержит в качестве своего значения ___________ другой переменной.

  2. Для присвоения указателю начального значения можно использовать три значения ______, _____________ и _____________.

  3. Напишите прототип функции exchange, которая получает в качестве параметров два указателя на числа с плавающей точкой x и y и не возвращает никакого значения.

  4. Объявите массив типа float с именем number с 10 элементами и присвойте начальные значения 0.0, 1.1, 2.2, 3.3, …., 9.9.

а) приведите два различных оператора, которые присваивают начальный адрес массива number указателю float *pf _______________________________________________.

б) напечатайте элементы массива обращаясь к ним через указатель pf ___________________________ ________________________________________________________________________________________ ________________________________.

  1. Пусть в функции объявлены переменные double a[10]; int i; Какие из операторов цикла обеспечат присвоение 10 числовых значений всем элементам массива:

а) for(i=0; i<10; i++)

scanf(“%lf”,a+i);

б) for(i=0; i<10; i++)

scanf(“%lf”,a[i]);

с) for(i=1; i<=10; i++)

scanf(“%lf”,&a[i]);

д) for(i=0; i<10; i++)

scanf(“%lf”,&a[0]+i);

16 Функция ___________ используется для получения случайных чисел.

17 Функция ____________ для того, чтобы при каждом вызове программы выдавались различные числа.

Задача:

Программа, которая через функции вводит массив и сортирует I массив в возрастающем порядке, а второй II в убывающем порядке и функция вывода массива. А третий массив переписать число из двух массивов, так чтобы они были записаны в возрастающем порядке.