
- •Основы программирования язык “с” Минск – 2005
- •§1 Введение в программирование
- •Void main()
- •Void main()
- •Void main()
- •2 Распечатать свою фамилию следующим образом
- •3. Распечатать прямоугольник следующим образом
- •1.1 Простые программы: печать стоки текста Понятие переменной.
- •Volatile while
- •1.2 Целый тип данных
- •1.3 Числа с плавающей точкой
- •Void main({
- •1.4 Символьный тип
- •Void main()
- •§2 Управляющий структуры
- •2.1 Структура выбора if (если) и if/else(если - иначе)
- •Void main()
- •Void main()
- •2.2 Структуры повторенийfor(цикл)
- •Void main()
- •Void main()
- •2.3 Структура повторения while (пока)
- •Void main()
- •Void main()
- •Void main(){
- •Void main()
- •Void main()
- •2.4 Структура многомерного выбора switch
- •Void main()
- •Void main()
- •2.5 Операторы continue и break
- •Void main()
- •Void main()
- •2.6 Контрольные вопросы:
- •§3 Функция
- •Int printf(“const char * string”,…); %[флаг][ширина][точность][модификатор типа] тип_формата
- •Int scanf(const char * format, ……); возвращаемое значение – число считанных полей
- •3.1 Определение функции:
- •3.2 Классы памяти.
- •3.3 Указатели
- •Void main()
- •Void fff(int,int,int*,int*,int*,double*);
- •Void main()
- •Void fff(int a,int b,int*p1,int*p2,int*p3,double*p4)
- •Генерация случайных чисел.
- •Void main()
- •Void main()
- •Void main()
- •Void main(){
- •Void main()
- •3.6 Переменные перечисляемого типа
- •Int rollDice();
- •Void main()
- •Int sum,myPoint;
- •Int rollDice(){
- •Int die1,die2,workSum;
- •Void main()
- •§4 Массивы
- •4.1 Одномерные массивы
- •Int array[10];
- •4.2 Примеры использования массивов
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •4.3 Сортировки массивов
- •Void main()
- •Void main()
- •Void main()
- •Void main(){
- •Int arr1[maxsize],arr2[maxsize],buf;
- •Void main()
- •4.4 Передача массивов функции
- •4.5 Двумерные массивы
- •Void main()
- •Int I,j,temp;
- •Void main()
- •4.6 Контрольные вопросы:
- •§5 Символьная строка
- •5.1 Объявление символьной строки
- •Void main()
- •Void main()
- •Int srav(char *,char *);
- •Void main()
- •Int srav(char *X,char *y)
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •5.3 Массив строк
- •Void main()
- •Void main()
- •Void main()
- •§6 Динамическое распределение памяти
- •6.1 Функция malloc()
- •Void * malloc(unsigned size)
- •Void free(free *ptr)
- •Void main(){
- •Void main(){
- •Void vvod_mas(int*,int);
- •Void sort_vozr(int*,int);
- •Void main()
- •Vvod_mas(ptr1,n1);
- •Vvod_mas(ptr2,n2);
- •Void sort_vozr(int*X,int n)
- •Void vvod_mas(int*X,int n)
- •6.2 Функция сalloc()
- •Void * сalloc(unsigned num ,unsigned size)
- •6.3 Функция realloc()
- •Void * realloc(void *ptr ,unsigned size)
- •§7 Структура
- •7.1 Объявление структуры
- •Void main()
- •7.2 Объединения
- •§8 Файлы и потоки
- •8.1 Объявления файла
- •Int feof(file *);
- •8.2 Работа с текстовым файлом
- •Int fprintf(file *, const char format, …);
- •Void main()
- •Int account;
- •Int fputs(const char *, file *);
- •Int fscanf( file *, const char *format, …..);
- •Void main()
- •Void main()
- •Int account;
- •Void main()
- •Int fseek(file *,long ,int );
- •Void main()
- •Void main()
- •Void main()
- •Void show_file(file *k1)
- •Void dobav_file(file *k1)
- •Void fill_file(file *k1)
- •Создание файла произвольного доступа.
- •8.3 Работа с бинарным файлом
- •Void main()
- •Void main()
- •Void print_file(file *);
- •Void main(){
- •If(feof(k1)){
- •If(feof(k2)){
- •Void print_file(file *k){
- •8.4 Kонтрольные вопросы
- •Какие операции определены со строками?
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]);
}
}
Перемножение матриц. Использовать функции ввода и вывода массивов.
#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]);
}
}
}
Написать программу, которая перемножает две квадратные матрицы А 3x3 и B 3x3 через функцию. Прототип функции следующий.void proizv(int [][3], int [][3], int [][]3);
4.6 Контрольные вопросы:
Функция активизируется с помощью _______________________________________ ______
Переменная, которая известна только внутри функции, в которой она определена, называется ________________________________________________
Оператор __________________ в функции используется, чтобы передать значение выражения в вызываемую функцию.
Ключевое слово ____________ используется в прототипе функции, чтобы указать, что функция не возвращает значений.
_________________ позволяет компилятору проверить количество, типы и порядок следования параметров, передаваемых функции.
Укажите все классы памяти, которые Вы знаете _____________________________________
Переменная, объявленная в блоке или в списке параметров функции, имеют класс памяти _____________, если не указано иное.
Переменная, объявленная вне любого блока или функции, является ____________________
Для того, чтобы локальная переменная сохраняла свое значения между вызовами функции, ее необходимо объявить как _____________ переменную.
Определить содержат ли следующие фрагменты ошибки и укажите правильную версию описание функции,
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;
}
Указатель – это переменная, которая содержит в качестве своего значения ___________ другой переменной.
Для присвоения указателю начального значения можно использовать три значения ______, _____________ и _____________.
Напишите прототип функции exchange, которая получает в качестве параметров два указателя на числа с плавающей точкой x и y и не возвращает никакого значения.
Объявите массив типа float с именем number с 10 элементами и присвойте начальные значения 0.0, 1.1, 2.2, 3.3, …., 9.9.
а) приведите два различных оператора, которые присваивают начальный адрес массива number указателю float *pf _______________________________________________.
б) напечатайте элементы массива обращаясь к ним через указатель pf ___________________________ ________________________________________________________________________________________ ________________________________.
Пусть в функции объявлены переменные 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 в убывающем порядке и функция вывода массива. А третий массив переписать число из двух массивов, так чтобы они были записаны в возрастающем порядке.