Главная / Программирование /
Введение в программирование больших вычислительных задач на современном Фортране с использованием компиляторов Intel / Тест 5
Введение в программирование больших вычислительных задач на современном Фортране с использованием компиляторов Intel - тест 5
Упражнение 1:
Номер 1
Укажите верные утверждения. Внутренние файлы
Ответ:
 (1) могут быть последовательного доступа 
 (2) могут быть прямого доступа 
 (3) могут быть символьной строкой 
 (4) содержат форматные записи 
 (5) содержат неформатные записи  
Номер 2
Укажите верные утверждения. Внешние файлы
Ответ:
 (1) могут быть последовательного доступа 
 (2) могут быть прямого доступа 
 (3) содержат только неформатные записи 
 (4) могут иметь совместный доступ 
 (5) хранятся в оперативной памяти 
Номер 3
Укажите верные утверждения. Форматные файлы
Ответ:
 (1) характеризуются большим объемом и низкой скоростью обработки 
 (2) характеризуются малым объемом и низкой скоростью обработки 
 (3) характеризуются большим объемом и высокой скоростью обработки 
 (4) могут быть только внешними 
 (5) могут быть только внутренними 
 (6) длина записи 128 байт 
 (7) длина записи 16 байт 
 (8) длина записи 1 байт 
Номер 4
Укажите верные утверждения. Неформатные файлы
Ответ:
 (1) характеризуются большим объемом и низкой скоростью обработки 
 (2) характеризуются малым объемом и низкой скоростью обработки 
 (3) характеризуются большим объемом и высокой скоростью обработки 
 (4) характеризуются малым объемом и высокой скоростью обработки 
 (5) могут быть только внутренними 
 (6) могут быть только внешними 
 (7) длина записи 128 байт 
 (8) длина записи 1 байт 
Номер 5
Укажите верные утверждения. Двоичные файлы
Ответ:
 (1) характеризуются большим объемом и низкой скоростью обработки 
 (2) характеризуются малым объемом и низкой скоростью обработки 
 (3) характеризуются большим объемом и высокой скоростью обработки 
 (4) характеризуются малым объемом и высокой скоростью обработки 
 (5) могут быть только внутренними 
 (6) могут быть только внешними 
 (7) длина записи 128 байт 
 (8) длина записи 16 байт 
 (9) длина записи 1 байт 
Упражнение 2:
Номер 1
Данный оператор read(1, "(i8)", rec = 10) koeff может быть записан для файла
Ответ:
 (1) прямого доступа 
 (2) последовательного доступа 
 (3) внешнего 
 (4) внутреннего 
 (5) двоичного 
 (6) форматного 
 (7) неформатного 
Номер 2
Данный оператор write(1, "(e9.3)") param может быть записан для файла
Ответ:
 (1) прямого доступа 
 (2) последовательного доступа 
 (3) внешнего 
 (4) внутреннего 
 (5) двоичного 
 (6) форматного 
 (7) неформатного 
Номер 3
Данный оператор read(1,END=200) MASSIV может быть записан для файла
Ответ:
 (1) прямого доступа 
 (2) последовательного доступа 
 (3) внешнего 
 (4) внутреннего 
 (5) двоичного 
 (6) форматного 
 (7) неформатного 
Номер 4
Данный оператор write(1,*,ERR=100, asynchronous='NO') A,B,C может быть записан для файла
Ответ:
 (1) прямого доступа 
 (2) последовательного доступа 
 (3) внешнего 
 (4) внутреннего 
 (5) двоичного 
 (6) форматного 
 (7) неформатного 
Номер 5
Данный оператор write(buf,200,ERR=100) A,B,C может быть записан для файла
Ответ:
 (1) прямого доступа 
 (2) последовательного доступа 
 (3) внешнего 
 (4) внутреннего 
 (5) двоичного 
 (6) неформатного 
Упражнение 3:
Номер 1
Оператор, создающий устройство В/В и связывающий с ним внешний файл
Ответ:
 (1) open
 
 (2) inquire
 
 (3) close
 
 (4) backspace
 
 (5) flush
 
Номер 2
Оператор, закрывающий устройство В/В
Ответ:
 (1) open
 
 (2) inquire
 
 (3) close
 
 (4) backspace
 
 (5) flush
 
Номер 3
Оператор, перемещающий файловый указатель в начало файла
Ответ:
 (1) open
 
 (2) inquire
 
 (3) close
 
 (4) backspace
 
 (5) rewind
 
Номер 4
Оператор, позволяющий получить информацию о том существует файл или нет
Ответ:
 (1) open
 
 (2) inquire
 
 (3) close
 
 (4) backspace
 
 (5) flush
 
Номер 5
Оператор, перемещающий файловый указатель на одну запись назад
Ответ:
 (1) open
 
 (2) inquire
 
 (3) close
 
 (4) backspace
 
 (5) flush
 
Упражнение 4:
Номер 1
Укажите процедуру, которая определяет доступ к файлу
Ответ:
 (1) ACCESS
 
 (2) CHMOD
 
 (3) GETDRIVEDIRQQ
 
 (4) GETDRIVESQQ
 
 (5) FINDFILEQQ
 
Номер 2
Для удаления файла можно воспользоваться языковыми средствами
Ответ:
 (1) вызвать процедуру DELFILESQQ
 
 (2) вызвать процедуру DELDIRQQ
 
 (3) применить оператор CLOSE
 
 (4) применить оператор INQUIRE
 
 (5) вызвать процедуру ACCESS
 
Номер 3
Для смены атрибутов файла можно воспользоваться языковыми средствами
Ответ:
 (1) вызвать процедуру CHMOD
 
 (2) вызвать оператор INQUIRE
 
 (3) вызвать функцию EOF
 
 (4) применить оператор OPEN
 
 (5) использовать директиву !DEC$ ATTRIBUTES
 
Номер 4
Чтобы получить расширение файла
Ответ:
 (1) вызвать процедуру SPLITPATHQQ
 
 (2) использовать оператор INQUIRE
 
 (3) использовать подстроки и символьные процедуры для полного имени файла 
 (4) вызвать процедуру SETFILETIMEQQ
 
 (5) вызвать процедуру GETDRIVEDIRQQ
 
Номер 5
Процедура выполняющая установку текущего диска
Ответ:
 (1) CHANGEDRIVEQQ
 
 (2) CHANGEDIRQQ
 
 (3) GETDRIVEDIRQQ
 
 (4) GETDRIVESQQ
 
 (5) GETFILEINFOQQ
 
Упражнение 5:
Номер 1
Для открытия файла в режиме добавления данных следует использовать спецификатор
Ответ:
 (1) ACCESS
 
 (2) ACTION
 
 (3) PAD
 
 (4) ORGANIZATION
 
 (5) TYPE
 
Номер 2
Для открытия файла в режиме "только для чтения" следует использовать спецификатор
Ответ:
 (1) ACTION
 
 (2) STATUS
 
 (3) SHARE
 
 (4) POSITION
 
 (5) USEROPEN
 
Номер 3
Для открытия файла в режиме асинхронного ввода/вывода следует использовать спецификатор
Ответ:
 (1) ASYNCHRONOUS
 
 (2) MODE
 
 (3) ORGANIZATION
 
 (4) STATUS
 
 (5) DISPOSE
 
Номер 4
Для создания двоичного файла, используется спецификатор
Ответ:
 (1) FORM
 
 (2) STATUS
 
 (3) DISPOSE
 
 (4) POSITION
 
 (5) CONVERT
 
Номер 5
Для организации совместного доступа к файлу используется спецификатор
Ответ:
 (1) SHARE
 
 (2) MODE
 
 (3) FORM
 
 (4) STATUS
 
 (5) POSITION
 
Упражнение 6:
Номер 1
В операторе read
для передачи управления исполняемому оператору при возникновении ошибочной ситуации "достигнут конец файла" используется спецификатор
Ответ:
 (1) EOF
 
 (2) ERR
 
 (3) END
 
 (4) IOSTAT
 
 (5) IOLIST
 
Номер 2
В операторе write
для передачи управления исполняемому оператору при возникновении ошибки ввода/вывода используется спецификатор
Ответ:
 (1) ERR
 
 (2) END
 
 (3) IOSTAT
 
 (4) ADVANCE
 
 (5) SIZE
 
Номер 3
В файлах прямого доступа для задания номера записи в операторе read используется спецификатор
Ответ:
 (1) SIZE
 
 (2) REC
 
 (3) ADVANCE
 
 (4) NML
 
 (5) IOLIST
 
Номер 4
Для запрета асинхронного чтения данных из файла используется спецификатор
Ответ:
 (1) ASYNCHRONOUS
 
 (2) ADVANCE
 
 (3) END
 
 (4) ERR
 
 (5) EOR
 
Номер 5
Для разрешения асинхронной записи данных в файл используется спецификатор
Ответ:
 (1) ASYNCHRONOUS
 
 (2) ADVANCE
 
 (3) REC
 
 (4) ERR
 
 (5) ACTION
 
Упражнение 7:
Номер 1
В [текстовом файле] записаны целые числа в виде:
1
2
3
4
и т.д.
Выберите фрагмент программы, вычисляющий общее количество целых чисел в файле
Ответ:
 (1) k=0
open(1, file = "D:\1.txt")
do while (.NOT.EOF(1))
read(1,*) k
end do
 
 (2) k=0
open(1, file = "D:\1.txt")
do while (.NOT.EOF(1))
k=k+1
read(1,*) N
end do
 
 (3) k=0
open(1, file = "D:\1.txt")
do while (EOF(1))
read(1,*) k
end do
 
 (4) k=0
open(1, file = "D:\1.txt")
do while (EOF(1))
rewind(1)
read(1,*) k
end do
 
 (5) k=0
open(1, file = "D:\1.txt")
k=eof(1)
 
Номер 2
Какой из фрагментов программы открывает файл в режиме только для чтения и доступный только для чтения другим программам ?
Ответ:
 (1) open(1, file = "D:\1.txt", action='READ', share='DENYRW')
read(1,*) k
 
 (2) open(1, file = "D:\1.txt", action='READ', share='DENYWR')
read(1,*) M
 
 (3) open(1, file = "D:\1.txt", share='DENYNONE')
read(1,*) k
 
 (4) open(1, file = "D:\1.txt")
read(1,*) k
 
 (5) open(1, file = "D:\1.txt", pad='YES')
read(1,*) k
 
Номер 3
Какой из операторов создает временный файл, удаляемый после работы программы ?
Ответ:
 (1) open(1, status='SCRATCH')
 
 (2) open(1, file='$0001.tmp', status='OLD')
 
 (3) open(1, file='C:\TEMP\temp.tmp', form='BINARY')
 
 (4) open(1, file='$0001.tmp', status='UNKNOWN')
 
 (5) close(1, status='DELETE')
 
Номер 4
Какой из приведенных фрагментов программы выполняет копирование файла ids.exe в файл ids2.exe ?
Ответ:
 (1) character p
open(1,file='D:\ids.exe')
open(2,file='D:\ids2.exe')
do while (.not.eof(1))
read(1,*) p
write(2,"(A,\)") p
end do
close(1)
close(2)
 
 (2) character p
open(1,file='D:\ids2.exe',form='binary')
open(2,file='D:\ids.exe',form='binary')
do while (.not.eof(1))
read(1) p
write(2) p
end do
close(1)
close(2)
 
 (3) character p(1024)
open(1,file='D:\ids.exe',form='unformatted')
open(2,file='D:\ids2.exe',form='unformatted')
do while (.not.eof(1))
read(1) p
write(2) p
end do
close(1)
close(2)
 
 (4) character p(1024)
open(1,file='D:\ids.exe',form='binary')
open(2,file='D:\ids2.exe',form='binary')
do while (.not.eof(1))
read(1) p
write(2) p
end do
close(1)
close(2)
 
Номер 5
Какой из фрагментов программы переводит символьное представление года в числовое?
Ответ:
 (1) character(128) buf
integer Y,M,D
write(buf,"(A)") "2012//05//07"
read(buf,"(i4)") Y
read(buf,"(i4)") M
read(buf,"(i4)") D
 
 (2) character(128) buf
integer Y,M,D
write(buf,"(A)") "2012//05//07"
read(buf(1:4),"(i4)") Y
read(buf(1:2),"(i4)") M
read(buf(1:2),"(i4)") D
 
 (3) character(128) buf
integer Y,M,D
write(buf,"(A)") "2012//05//07"
read(buf(1:4),"(i4)") Y
read(buf(5:6),"(i4)") M
read(buf(7:8),"(i4)") D
 
 (4) write(buf,"(A)") "2012//05//07"
forall (i=1:len(buf),buf(i:i)=='/')
buf(i:i)=' '
end forall
read(buf,*) Y, M, D
 
 (5) write(buf,"(A)") "2012//05//07"
where (buf=='/')
buf=' '
end forall
read(buf,*) Y, M, D
 
Упражнение 8:
Номер 1
Файл [data1.txt] содержит двоичные данные целочисленного массива A(Mi,Mj,Mk).
Данные записаны в формате по умолчанию в следующем порядке Mk, Mi, Mj, A.
Найдите сумму элементов матрицы А.
Ответ:
 (1) 124 
 (2) -368 
 (3) -455 
 (4) 446 
 (5) -235 
 (6) 368 
Номер 2
Файл [data2.txt] содержит двоичные данные целочисленного массива A(Mi,Mi).
Данные записаны в формате по умолчанию в следующем порядке Mi, A.
Найдите сумму элементов нижней треугольной матрицы A (без диагонали).
Ответ:
 (1) 185 
 (2) 324 
 (3) 2353 
 (4) 454 
Номер 3
Файл [data3.txt] содержит двоичные данные целочисленного массива A(Mi,Mj,Mk,Mn).
Данные записаны в формате по умолчанию в следующем порядке Mi,Mj,Mk,Mn,A.
Найти количество нулевых значений матрицы А.
Ответ:
 (1) 2352 
 (2) 3536 
 (3) 65857 
 (4) 11550 
Номер 4
Файл [data4.txt] содержит двоичные данные целочисленного массива A(Mi,Mj).
Данные записаны в формате по умолчанию в следующем порядке Mi, Mj, A.
Найдите сумму элементов 10-й и 20-й строк матрицы A.
Ответ:
 (1) 427 
 (2) 656 
 (3) 1567 
 (4) 1954 
Номер 5
Файл [data5.txt] содержит двоичные данные целочисленного массива A(Mi,Mi).
Данные записаны в формате по умолчанию в следующем порядке Mi, Mi, A.
Найдите сумму элементов побочной диагонали
Ответ:
 (1) 500 
 (2) 700 
 (3) 867 
 (4) 1000 
Упражнение 9:
Номер 1
Что можно сказать о следующих строках удачно скомпилированной программы ?open(2,file='c:\data.txt',action='WRITE')
write(2,*) 10, 20, 50
rewind(2)
Выберите верные утверждения
Ответ:
 (1) создано устройство В/В с номером 2, связанное с файлом C:\data.txt 
 (2) файл C:\data.txt открыть в режиме только для записи 
 (3) в файл C:\data.txt записаны целые числа 
 (4) файловый указатель перемещен на начало первой записи 
 (5) другие процессы могут работать с файлом в режиме "только запись" 
 (6) файловый указатель перемещен на две записи назад 
 (7) файл открыт в режиме последовательного доступа 
 (8) файл открыт в режиме прямого доступа 
 (9) оператор open
будет выполнен с ошибкой, файл должен существовать 
 (10) файл открыт в режиме исключающем запись данных 
Номер 2
Что можно сказать о следующих строках удачно скомпилированной программы ? if (.NOT.(eof(1)) read(1) base
read(1) A
close(1,status='DELETE')
Выберите верные утверждения
Ответ:
 (1) файл, связанный с номером 5 является бинарным или неформатным файлом  
 (2) возможно из файла читается 6-ти мерный массив 
 (3) возможно из файла читается переменная типа complex 
 (4) после обработки файл будет удален 
 (5) если файловый указатель не указывает на конец файла, то будет прочитан возможно массив целого типа  
 (6) будет записана константа A символьного типа длиной 1 байт 
 (7) если переменная base является массивом, то возможна ошибка чтения файла при достижении записи "конец файла" 
 (8) если base является массивом из 100 элементов, то он будет прочитан без ошибки "достигнут конец файла", так как была вызвана функция eof 
 (9) файл является форматным 
 (10) файл открыт в режиме прямого доступа 
 (11) файл открыт в режиме последовательного доступа 
 (12) перед оператором if мог быть вызван оператор rewind(5) 
Номер 3
Что можно сказать о следующих строках удачно скомпилированной программы ?write(1,"(i4)",rec=100) param
rewind(1)
Выберите верные утверждения
Ответ:
 (1) файл открыт в режиме прямого доступа 
 (2) файл открыт в режиме последовательного доступа 
 (3) файл является внутренним 
 (4) запись 100-й записи значением переменной param 
 (5) все записи в файле одинаковой длины, равной 4 байта 
 (6) перевод файлового указателя на первую запись файла 
 (7) получение сведений о записи номер 100 
 (8) все записи в файле имеют длину кратную 4 
 (9) файл является форматным 
Номер 4
Что можно сказать о следующих строках удачно скомпилированной программы ? logical ex
inquire (file='F:\geom.inf', exist = ex)
if (ex) open(1,file='G:\copy.txt', action='write', form='binary')
Выберите верные утверждения
Ответ:
 (1) происходит проверка существования файла F:\geom.inf 
 (2) происходит определение размера файла F:\geom.inf 
 (3) файл F:\geom.inf открыт для добавления данных 
 (4) файл G:\copy.txt открыт для добавления данных 
 (5) файл G:\copy.txt открыт только для записи 
 (6) файл G:\copy.txt будет создан, если отсутствует файл F:\geom.inf 
 (7) файл G:\copy.txt будет создан, если существует файл F:\geom.inf 
 (8) файлу G:\copy.txt устанавливается атрибут "только для чтения" 
 (9) файл F:\geom.inf открыт в режиме последовательного доступа 
 (10) по окончания работы программы файл G:\copy.txt будет удален автоматически 
Номер 5
Что можно сказать о следующих строках удачно скомпилированной программы в среде Windows? open(8, asynchronous='YES', form='BINARY')
write(8,asynchronous='NO') A, B(:,:,10:1000,-1:90)
wait(2)
write(8,asynchronous='NO') C(:,10:1000:2,:,:,:,:)
Выберите верные утверждения
Ответ:
 (1) устройство В/В под номером 8 является временным файлом 
 (2) устройство В/В под номером 8 может поддерживает асинхронный В/В 
 (3) происходит синхронизация файла связанного с номером 2 
 (4) асинхронный вывод A, B 
 (5) синхронный вывод С 
 (6) асинхронный ввод A 
 (7) переменные A, B записываются в форматном виде 
Упражнение 10:
Номер 1
Какой из фрагментов программ выполняет перенос данных из файла vector.txt ^^^1^^^4^^^5^^^8^^^9^^^0^^^7 в файла spisok.dat в виде 0001000400050008000900000007
Ответ:
 (1) character ch
open(1,file='vector.txt', access='direct', recl=1, form='formatted')
open(2,file='spisok.dat')
do k=4,28,4
read(1,"(A)",rec=k) ch
write(2,"(3('0'),A,\)") ch
end do
 
 (2) character ch*4
open(1,file='vector.txt', access='direct', recl=1, form='formatted')
open(2,file='spisok.dat')
do k=1,28,4
read(1,"(A)",rec=k) ch
write(2,"(A)") '000',ch(3:4)
end do
 
 (3) character ch*28
open(1,file='vector.txt')
open(2,file='spisok.dat')
read(1,*) ch
forall (k=1:28, ch(k:k)=='^')
ch(k:k)='0'
end forall
write(2,*) ch
 
Номер 2
Какой из фрагментов программ выполняет перенос данных из файла vector.txt ^^^1^^^4^^^5^^^8^^^9^^^0^^^7 в файла spisok.dat в виде 0001000400050008000900000007
Ответ:
 (1) character ch*4
open(1,file='vector.txt', access='direct', recl=1, form='formatted')
open(2,file='spisok.dat')
do k=1,28,4
read(1,"(A)",rec=k) ch
write(2,"(A)") '000',ch(3:4)
end do
 
 (2) character ch*28
open(1,file='vector.txt')
open(2,file='spisok.dat')
read(1,*) ch
forall (k=1:28, ch(k:k)=='^')
ch(k:k)='0'
end forall
write(2,"(A)") ch
 
 (3) character ch
open(1,file='vector.txt', access='direct', recl=1, form='formatted')
open(2,file='spisok.dat')
do k=4,28,4
read(1,"(A)",rec=k) ch
write(2,*) ch
end do
 
Номер 3
Фрагмент программы преобразует файл vector.txt ^^^1^^^4^^^5^^^8^^^9^^^0^^^7 в файл spisok.dat с данными 0001000400050008000900000007?
Расположите строки в верном порядке. 1) read(1,"(A28)") ch
2) ch(k:k+2)='000'
3) write(1,"(A28)") ch
4) character ch*28
5) open(1,file='C:\spisok.dat')
6) rewind(1)
7) end do
8) ires = RENAMEFILEQQ ('vector.txt','spisok.dat')
9) do k=1,28,4
Ответ:
 (1) 1;3;8;7;5;6;4;2;9 
 (2) 4;8;5;1;9;2;7;6;3  
 (3) 4;5;8;7;6;3;1;2;9 
 (4) 6;8;7;5;4;3;2;1;9 
Номер 4
Фрагмент программы преобразует файл vector.txt ^^^1^^^4^^^5^^^8^^^9^^^0^^^7 в файл spisok.dat с данными 0001000400050008000900000007.Введите номера строк, разделяя ; в порядке выполнения программы 1) open(1,file='vector.txt', access='direct', recl=1, form='formatted')
2) read(1,"(A)",rec=k) ch
3) do k=1,28
4) character ch
5) end do
6) if (ch=='^') write(1,"(A)",rec=k) '0'
7) ires = RENAMEFILEQQ ('vector.txt','spisok.dat')
Ответ:
 (1) 4;1;3;2;6;5;7 
 (2) 7;5;4;6;3;1;2 
 (3) 4;2;1;3;6;7;5 
 (4) 4;7;6;3;2;5;1 
Номер 5
Фрагмент программы преобразует файл vector.txt ^^^1^^^4^^^5^^^8^^^9^^^0^^^7 в файла spisok.dat с данными 0001000400050008000900000007.Введите номера строк, разделяя ; в порядке выполнения программы 1) read(1,"(A4)",rec=k) ch
2) end do
3) character ch*4
4) do k=1,7
5) write(1,"(A4)",rec=k) ch
6) ch(1:3)='000'
7) open(1,file='vector.txt', access='direct', recl=4, form='formatted')
Ответ:
 (1) 3;7;4;1;6;5;2 
 (2) 4;5;6;1;2;3;7 
 (3) 2;1;3;7;6;5;4 
 (4) 3;4;5;6;7;1;2