课程名称:Fortran语言程序设计;试卷编号:A 卷;考试时间:120分钟
1.Fortran语言中有:整数型逻辑型字符型实数型复数型五种基本数据类型。
2.Fortran程序的书写格式有两种固定格式自由格式。
3. 字符型常数’this”s’的字符长度为6
4. 下列程序运行结果为125。
Program main
Implicit none
Integer::floor=5,i
Do i=1, floor
If(i==3)cycle
If(i==4)cycle
Write(*,*)i
End do
end
5. 下列程序的运行结果为7
6.0,2.0。
Program main
Implicit none
Real :: a, b, m
A=2.0
B=76.0
If(a<b)then
M=a
A=b
B=m
End if
Write(*,*) “a=”,a “b=”,b
end
6. 下列程序的运行结果是10302。
Program test
Implicit none
do i=1,203,2
sum=sum+i
end do
write(*,*) i
end
7.下列程序的运行结果是12000。
Program test
Implicit none
Integer::i
Integer::a(5)=(/ (i, i=1,5) /)
Integer::b(5)=0
Where (a<3)
b=a
End where
Write(*,”(5(i3,1x))”) b
end
8.下列程序的运行结果是30。
Program test
Implicit none
Integer,parameter:: limit=10
Integer counter
Integer:: ans=0
Counter=2
do while(counter<=limit)
ans=ans+counter
counter=counter+2
end do
Wrte(*,*)ans
end
9.下列程序的运行结果是2,3。
Program main
implicit none
integer ::a=1
integer ::b=2
call add ( a )
Call add ( b)
Write(*,*) a , b
Stop
end
Subroutine add (sum)
Implicit none
integer :: sum
end
10.下列程序的运行结果是3。
Program main
implicit none
integer, target :: a=1
integer, pointer :: p
p=>a
p=3
write(*,*)a
end
11.二维数组12
34
在内存中的存储顺序为:1324 。
12.下列程序的运行结果是55555 。
Program test
Implicit none
Integer::i
Integer::a(5)
Forall ( i=1:5 )
A(I)=5
End forall
Write(*,*)a
Stop
end
13.数学表达式13-1/2的值为:13。
14.逻辑表达式((3>5).and.(4>1)).or.(5<8)的值为: ture 。
15. 下列程序的运行结果是(3.000000,6.000000)。
Program test
Implicit none
Complex a,b,c
A=(1.0,2.0)
b= (2.0,4.0)
c=a+b
Write(*,*) c
Stop
end
二、程序说明题(10分,每空2分)
Fortran语句中,“!”后的内容为对整个程序或某行程序的说明,请在下面程序中感叹号后,对相应fortran 语句进行说明。
(10分,每空2分)
Program test
Implicit none !无隐藏变量
integer, parameter :: students=5 !定义一个永久常量STUDENT,令其等于5
integer ::s t u d e n t(s t u d e n t s)!定义一个长度为5的数组
integer :: I
Do i=1, students
write(*,"('number',i2)")I !输出I的数值长度为2
read(*,*) s t u d e n t(i)!输入一个数值赋值到对应的STUDENT(i)中区
end do
end
三、程序完善题(20分,每空2分)
1.编写程序,读入一个学生的考试成绩,然后输出该成绩的等级。
成绩等级规定为:90~100分为A级,80~89分为B级,70~79分为C级,60~69分为D级,60分以下为E级。
若输入负分或大于100分的成绩,则程序输出一个“?”号。
program main
implicit none
integer::score
character grade
write(*,*)” score:”
read(*,*) score
if(score>100)then
grade=”?”
elseif( score>=90 )then
grade=”A”
elseif( score>=80 )then
grade=”B”
elseif( score>=70 )then
grade=”C”
elseif(score>=60)then
grade=”D”
elseif(score>=0)then
grade=”E”
ELSE
grade=”?”
endif
write(*,*)”成绩等级为:”,grade
end
2.编写程序,读入一年级5个班同学的数学成绩,每个班有10名学生。
program main
implicit none
integer,parameter::classes=5
integer,parameter::students=10
integer::student( students , classes )
integer::s
integer::c
do c=1, classes
do s=1, students
write(*,*)"number",s,"classes",c
read(*,*) student(students,classes)
end do
end do
end
四、程序编写题(40分)
1.计算1+2+3+4+ (100)
Program test
Implicit none
Integer::sum,i
sum=0.0
do i=1,100,1
sum=sum+i
end do
write(*,*)sum
stop
end
2.编写程序将100个整数按照从小到大的顺序排列(备注:用子程序实现排序功能,然后通过主程序来调用)。