Fortran90第六章、第七章习题答案
编译原理第七章 习题参考答案

第1 题已知文法A→aAd|aAb|ε判断该文法是否是SLR(1)文法,若是构造相应分析表,并对输入串ab#给出分析过程。
答案:文法:A→aAd|aAb|ε拓广文法为G′,增加产生式S′→A若产生式排序为:0 S' →A1 A →aAd2 A →aAb3 A →ε由产生式知:First (S' ) = {ε,a}First (A ) = {ε,a}Follow(S' ) = {#}Follow(A ) = {d,b,#}G′的LR(0)项目集族及识别活前缀的DFA 如下图所示在I0 中:A →.aAd 和A →.aAb 为移进项目,A →.为归约项目,存在移进-归约冲突,因此所给文法不是LR(0)文法。
在I0、I2 中:Follow(A) ∩{a}= {d,b,#} ∩{a}=所以在I0、I2 中的移进-归约冲突可以由Follow 集解决,所以G 是SLR(1)文法。
构造的SLR(1)分析表如下:对输入串ab#的分析过程:第2 题若有定义二进制数的文法如下:S→L·L|LL→LB|BB→0|1(1) 试为该文法构造LR 分析表,并说明属哪类LR 分析表。
(2) 给出输入串101.110 的分析过程。
答案:文法:S→L.L|LL→LB|BB→0|1拓广文法为G′,增加产生式S′→S若产生式排序为:0 S' →S1 S →L.L2 S →L3 L →LB4 L →B5 B →06 B →1由产生式知:First (S' ) = {0,1}First (S ) = {0,1}First (L ) = {0,1}First (B ) = {0,1}Follow(S' ) = {#}Follow(S ) = {#}Follow(L ) = {.,0,1,#}Follow(B ) = {.,0,1,#}G′的LR(0)项目集族及识别活前缀的DFA 如下图所示:在I2 中:B →.0 和 B →.1 为移进项目,S →L.为归约项目,存在移进-归约冲突,因此所给文法不是LR(0)文法。
FORTRAN90复习资料(2)

FORTRAN90 程序设计复习资料(2)一、选择题1.FORTRAN 90规定,变量类型声明的优先顺序是。
A.隐含约定(I-N规则)、IMPLICIT声明、类型声明B.类型声明、隐含约定(I-N规则)、IMPLICIT声明C.类型声明、IMPLICIT声明、隐含约定(I-N规则)D.IMPLICIT声明、类型声明、隐含约定(I-N规则)2.表达式15/4/2.0的值是。
A.整数2 B.实数1.5 C.实数2.25 D.实数1. 33.数组声明语句为:INTEGER,DIMENSION(-5:-1,-3:3,11:15) ::num ,数组共有个元素。
A.175 B.150 C.120 D.174.下列语句函数声明中,正确的是。
A.F1(I,I)=5*I-10*I**2 B. F2(MAT(5),A)=5*A+MAT(5)C. F3(X,Y,5.0)=X**2+Y**2+5.0**2D.F4(X,Y)=SQRT(X**2+Y**2+5.0**2)5.下列关于子程序的有关说法中,不正确的是。
A.对于无参子例行程序,调用时子例行程序名后的括号可取消B.对于无参函数子程序,调用时函数名后括号可取消C.对于有参子程序,形式参数可以是子程序名对于有参子程序,形式参数可以是星号“*”6.以下不是算法的特征。
(A) 灵活性(B)确定性(C)可行性(D)有穷性7.以下是FORTRAN 90源程序的扩展名。
(A)MDP (B)MAK (C)OBJ (D)F908.下列是正确的变量名。
(A)3SI (B)SI—3 (C)SI 3 (D)SI#39.若S为整型变量,且有S=1.25+11/4,则S的值为。
(A)3(B)3.25 (C)4 (D)4..2510.表达式MOD(5,6)+9/2**3/2的值为。
(A)37 (B)1 (C)5 (D)3211.已知a=3.0,b=9.0,c=5.0,d=7.0,逻辑表达式a+b/=c. and .a>=d的值为。
2010_Fortran90_06 Zym

2
计数器的
增值为1
7
计数器的
增值为2
8
9
F77普遍使用
10
u Do 的语法结构
Ü③Do 循环的多层嵌套:
11
注:
内层先循环,外层后循环。
12
u Do 循环的编程技巧:
Ø①计数器的增值:可以是正整数(计数器的终止值>初值),也可以是负整数(计数器的终止值<初值)。
Ø②计数器的初值、终
止值和增值:可用已知变量指定。
Ø③计数器的变量i :在循环中,禁止改变其值
u固定执行次数的循环:do循环比do while循
环更简洁
14
u执行次数不确定的循环:
do while 循环能较好解决;
do循环用if和exit(goto)解决。
在大型数值计算模型
中,因循环众多,该
用法极少使用。
16
循环中执行cycle后,直接跳过4。
18
改写
20
ex0608.f90
21
24
【实例1】:ex0610.f90
ex0611.f90数值计算常用方法:计算完成后,变
量值更新,进行下一次循环。
解密
加密
取得字符串
实际长度
27
【实例4】
ex0614.f90
28。
FORTRAN_90_复习

FORTRAN 90 基础知识第三章基本知识,如:字符集、名称、关键字、程序单元、书写格式、数据类型。
名称:①名称只能由英文字母、数字、下划线符“_”和美元符号“$”组成。
②名称第一个字符必须是英文字母。
③名称不能超过31个字符。
合法名称: Number,Max, PrOgRaM, FIND_IT, read, x, a3b7, china, total, x$y$z 。
非法名称:X-Y-Z, 8q, a.5, _wrong,U.S.A., DR.WANG,$abcd,r a t e 。
书写格式:自由格式,固定格式3个通用标志符:注释标志符“!”、语句分隔标志符“;”和续行标志符“&”。
数据类型第四章 内部数据类型常量和变量:语法描述; 精度(kind 值)和取值范围 整型常量:整数(10进制)。
实型常量:实数。
复型常量:复数。
字符型常量:字符串。
逻辑型常量:逻辑值,布尔值。
.true. .false.变量的申明。
表达式算术表达式:算术运算符的优先级和结合规则;操作数的类型转换FORTRAN 90 数据类型内部数据类型派生类型(记录类型)数组类型指针类型 公用区类型类型整数类型 实数类型 复数类型字符类型 逻辑类型运算符 含义 结合顺序 优先级 运算速度 说明 ( ) 最高 ** 乘方 左←右 高 慢 两个**之间不能出现空格 * / 乘 除 左→右 ↑ ↑ 数学符号× ÷为非法字符,用*和/代替 + - 加(二元加) 减(二元减) 左→右 ↓ ↓ + - 正(一元加) 负(一元减) 低 快不同优先级运算符,“先高后低”结合先乘方、后乘除、再加减,括号最优先相同优先级运算符,“从左向右”结合,如9-4+12/3*2**3 = ?乘方算符,“从右向左”结合,如2**3**2 = ?尽量多地使用( ),以使意义明确,避免出现歧义和产生错误转换规则“由低级向高级转换”①数据类型和KIND相同的两个算术操作数,计算时不转换,运算结果的类型和KIND与原数据相同。
fortran考试题及答案分开

fortran考试题及答案分开1. 以下哪个选项是Fortran语言中正确的整型变量声明?A. INTEGER xB. REAL xC. COMPLEX xD. LOGICAL x答案:A2. Fortran程序中,哪个关键字用于定义数组?A. ARRAYB. LISTC. VECTORD. DIMENSION答案:D3. 在Fortran中,以下哪个选项是正确的条件语句?A. IF (x > 0) THENPRINT *, 'x is positive'B. IF x > 0 THENPRINT *, 'x is positive'C. IF (x > 0)PRINT *, 'x is positive'D. IF x > 0PRINT *, 'x is positive'答案:A4. Fortran中用于循环结构的关键字是什么?A. LOOPB. ITERATEC. DOD. FOR答案:C5. 如何在Fortran程序中包含另一个文件?A. 使用INCLUDE语句B. 使用IMPORT语句C. 使用INCLUDE关键字D. 使用IMPORT关键字答案:A6. Fortran中,哪个函数用于计算数组元素的总和?A. SUMB. TOTALC. AGGREGATED. ACCUMULATE答案:A7. 在Fortran中,如何声明一个具有默认值的变量?A. INTEGER :: x = 0B. INTEGER x = 0C. INTEGER x DEFAULT 0D. INTEGER x = DEFAULT 0答案:A8. Fortran程序中的主程序必须以哪个关键字开始?A. PROGRAMB. MAINC. PROCEDURED. FUNCTION答案:A9. 在Fortran中,如何声明一个二维数组?A. INTEGER :: matrix(10, 10)B. INTEGER :: matrix[10][10]C. INTEGER :: matrix(10)(10)D. INTEGER :: matrix(10,10)答案:A10. Fortran中用于计算数组元素平均值的函数是什么?A. AVGB. MEANC. AVERAGED. SUM答案:C。
Fortran90试题

Fortran90试题Fortran 复习题⽬类型:1、选择题2、填空题3、简答题4、编程题样题⼀、选择题1.下列名称中,符合FORTRAN 90命名规则的是。
A. a-b-cB. $123C. length_1D. date.year 2.关于FORTRAN 90程序单元,以下四种说法中正确的是。
A.⼀个FORTRAN 90程序由多个程序单元组成,其中有⼀个且只能有⼀个主程序单元B. ⼀个FORTRAN 90程序由多个程序单元组成,其中有⼀个且只能有⼀个模块单元C. ⼀个FORTRAN 90程序允许有多个程序单元,但每类程序单元只能有⼀个D. ⼀个FORTRAN 90程序允许有多个程序单元,但主程序单元和模块单元只能有⼀个3.关于FORTRAN 90的CASE结构,以下说法中正确的是。
A. CASE结构内必须取DEFAULT作为情况选择器的最终值B. CASE结构的情况表达式不能是字符类型C. CASE结构的情况表达式和情况选择器的取值类型必须相同D. CASE结构的不同情况选择器取值可以重复4.已知数组说明REAL A(20:22,0:9,-3:-1),数组A的数组元素个数是。
A.164 B.360 C.450 D.90 5.⼦程序的形式参数(虚拟变元或哑元)可以是。
A.变量名、数组名、过程名B.变量名、数组名、过程名和符号常量名C.变量名、数组名、数组⽚段、过程名D.任意符号名6. 语句OPEN(3,FILE=’ABC’,ACCESS=’DIRECT’,RECL=40)打开的是⽂件。
A.有格式顺序存取B.⽆格式顺序存取C.有格式直接存取D.⽆格式直接存取7、下列关于"SUBROUTINE MAP(X,Y)"语句⾏的叙述中,不正确的是( )A) 这是⼦程序的第⼀个语句 B) 字符串"MAP"是⼦程序名C) 变量X是⼦程序的形参D)⼦程序执⾏后,MAP将返回整型数据8、 FORTRAN表达式"2/4+0.5"的值是( )A) 0.5 B) 1 C) 1.0 D) 09、阅读下列FORTRAN程序:PI=3.14159265WRITE(*,'(F7.4) ')PIEND程序运⾏后输出结果是( )A) 3.142 B) 3.1415 C) 0.31416 D) 3.141610、圆的直径存放在整型变量K之中,下列计算圆⾯积的表达式中正确的是( )A) 3.1415926*K*K/4 B) 3.1415926*(K*K/4)C) 3.1415926*(K/2)**2 D) 3.1415926*(K/2)*(K/2)⼆、填空题1、下列FORTRAN函数⼦程序的功能是⽤以下公式计算⼀组数据Z1,Z2,…,Zn的标准差σ:σ2=(Z12 +Z22+…+Zn2)/n-[(Z1+Z2+…+Zn)/n]2请在程序中的下划线处填⼊合适的内容。
第7章习题解答参考

P
1. 现有一个未规范化的表(表7-14):项目部件表,包含了项目、部件和部件向项目已提
供的数量信息。
(1)写出项目部件表中的函数依赖F ,该表达到了第几范式? (2)请采用规范化方法,将该表分解到3NF 要求,并说明理由。
表7-14 项目部件表
函数依赖F :
部件号 → 部件名;部件号 → 现有数量;项目代号 → 项目内容; 项目代号 → 项目负责人;(部件号,项目负责人) → 已提供数量 码:(部件号,项目负责人)
因有部件号 → 部件名,即(部件号,项目负责人) 部件名 所以该关系属于1NF
分解:部件表(部件号,部件名,现有数量),码:部件号 项目表(项目代号,项目内容,项目负责人),码:项目代号 部件项目表(部件号,项目代号,已提供数量),码:(部件号,项目代号) 不存在非主属性对码的部分依赖和传递依赖,所以都属于3NF 。
2. 考虑如表7-15所示的关系模式定义和样本数据:
Project (PID ,Ename ,Salary ),其中PID 是项目名称,Ename 是参加项目的雇员名,Salary 是雇员的薪水。
(1)写出该关系的函数依赖集。
(2)该关系的码是什么?
(3)该关系属于第几范式?为什么?
函数依赖集:
Ename → Salary
码:(PID,Ename)
该关系属于1NF,因存在非主属性Salary部分依赖于码(PID,Ename)分解:P-E(PID,Ename),码:(PID,Ename)
E(Ename,Salary),码:Ename。
大学计算机基础课后习题详细答案

第一章课后习题参考答案一、填空题1.处理、处理2.黑盒、程序3.输入设备、运算器、存储器、控制器、输出设备4.运算器、控制器、中央处理器5.存储器、数据6.计算机硬件、软件7.电子管、晶体管、集成电路、超大规模集成电路8.处理器、存储器、输入/输出9.输入、输出、键盘、显示器10.更有效、更高速、更可靠11.过程、对象12.以图形用户接口技术13.程序、操作系统14.硬件、软件、数据/信息、过程(处理)、通信15.因特网、开放性16.Web、万维网、超文本置标17.音频、动画、图片18.资源19.抽象、自动化20.计算思维第二章课后习题参考答案一、填空题1.进位、进制2.十、八进制、十六进制3.补码、浮点数、小、整4.组合规则、ASCII、Unicode、特征5.位图、矢量图6.采样、量化7.逻辑非、逻辑与或,逻辑异或、门电路8.逻辑与、逻辑或、逻辑异或9.逻辑函数、二值函数(布尔函数)10.1、011.逻辑函数、逻辑变量12.低位、半加器13.触发器其中选择题6,7,8题中的数以8位长表示选择题10的结果是‘A’ –‘a’的值三.综合题(部分)4) 110110010001111010000000000 0.01111.00110.1017) 10 55 157 0.625 0.3125 0.8125 2.25 10.1259) (233.154)8 (1252.144)8 (9B.36)16 (2AA.32)1610) 111101.110001010 11001001010.11000011111112)设以一个字节来存储,最高位为符号位01100100 01100100 0110010011100100 10011011 1001110001111100 01111100 0111110011111100 10000011 1000010015)用十进制表示范围:-(1-2-8)*263至(1-2-8)*263第三章课后习题参考答案一、填空题1、输入/输出;总线2、处理器;端口3、CPU4、运算器;控制器;运算器;控制电路;数据5、运算器;与;或;非6、数据总线;地址总线;控制总线7、主频;字长;内部高速缓存器/协处理器8、复杂指令集计算机;精简指令集计算机9、存储单元;存储器地址10、存储单元;3276811、随机(访问)存储器;只读存储器;DRAM; EPROM; EEPROM12、电缆导线;扇区;SATA13、CD-R; CD-RW; DVD14、固态15、数据;外存;主存/内存;数据;外存16、高速缓存/Cache;虚拟内存17、键盘接口;鼠标接口;并行接口;串行接口;USB接口;音频接口;18、CRT; LCD; 分辨率;显卡;点密度/每英寸点数;激光打印机;针式打印机;RGB; CMYK19、笔记本电脑;通用串行总线;127第四章课后习题参考答案一、填空题1.接口硬件资源2.实时系统单用户单任务多用户多任务3.多多个4.iOS Windows Mobile Symbian OS Android5.内核 Shell6.进程管理器存储管理器设备管理器文件管理器7.程序作业进程8.外存内存9.块设备驱动10.硬件时钟软件时钟11.注册表应用程序 regedit 注册表编辑器12..exe 文本视频13.文件分配表 NTFS第五章课后习题参考答案第9题:Start:set p = 1;set i = n;while i<=m doif(i÷3的余数=0) p=p×i;i = i+1 ;end whileoutput p;End第18题:Startset i=1set sum=0while i<=n dosum=sum+1.0/ii=i+1end whileoutput sumEnd第六章课后习题参考答案一、填空题1.操作使用2.算法算法3.指令4.数据传输算术逻辑5.操作类型地址下一条指令的地址6.机器语言程序7.汇编语言源程序8.过程对象过程9. C语言 Pascal /Fortran C++ Java10.封装继承多态性11.属性行为12. HTML XML13.源程序目标程序14.逐句一次性整体15.算法错误16.运算对象变量常量17.整型实型字符型18.符号常量19.构造数据类型数组元素20.赋值语句复合语句返回语句21.算术运算22.一个变23.函数24. switch25. while for for26.do…while27.设计方案编码运行维护28.黑盒白盒29.瀑布螺旋30.使用第七章课后习题参考答案:第八章课后习题参考答案:第九章课后习题参考答案:第十章课后习题参考答案:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.输入整数,判断能否被3或5整除,如能整除,则打印,否则不打印。
编写程序实现之。
解答:
!判断可以被3或5整除的整数
PROGRAM exam61
INTEGER :: n
PRINT*, '请输入一个整数:'
READ*, n
IF(mod(n,15)==0) THEN
WRITE(*, "(1X,I5,'是一个可以被3和5整除的整数')") n
ELSE IF(mod(n,3)==0) THEN
WRITE(*, "(1X,I5,'是一个可以被3整除的整数')") n
ELSE IF(mod(n,5)==0) THEN
WRITE(*, "(1X,I5,'是一个可以被5整除的整数')") n
ENDIF
END
2.计算职工工资,工人每周工作40小时,超过40小时的部分应该按加班工资计算(为正常工资的2倍。
输入工作时间和单位报酬,计算出该职工应得的工资,并打印输出。
编写程序实现之。
解答:
!计算职工工资
PROGRAM exam62
INTEGER t,p,pt
PRINT*, '请输入工人工作的时间t和单位报酬pt'
READ*, t,pt
IF(t>40)then
p=40*pt+(t-40)*2*pt
ELSE
p=t*pt
ENDIF
PRINT*, '该工人本周的应得工资为:',p,'元'
END
1.已知:x=0︒、10︒、20︒、…、180︒,输出x、sin(x)、cos(x)、tg(x)的值。
编写程序实现之。
解答:
! 输出x、xin(x)、cos(x)、tan(x)的值
PROGRAM exam71
PARAMETER(pi=3.1415926)
INTEGER i
REAL :: x,sinx,cosx,tanx
PRINT *,' x sin(x) cos(x) tg(x)'
DO i=0,180,10
x=i/180.0*pi
sinx=sin(x)
cosx=cos(x)
tanx=tan(x)
PRINT '(I3,3(2X,F10.7))',i,sinx,cosx,tanx
END DO
END
2.已知:x=1.0、1.1、1.2、…、2.9,输出x、x2、ex、ln(x)的值。
编写程序实现之。
解答:
! 计算x、x平方、e的x次方、ln(x)的值
PROGRAM exam72
INTEGER i
REAL :: x,x2,ex,lnx
PRINT*,' x x**2 exp(x) ln(x) '
DO i=10,29
x=i/10.0
x2=x*x
expx=exp(x)
lnx=log(x)
PRINT '(F3.1,2X,F4.2,2X,F10.5,2X,F10.5)',x,x2,expx,lnx
END DO
END
3.输入10个整数,计算它们的和、积、平方和、和的平方。
编写程序实现之。
解答:
! 计算和,积,平方和,和的平方
PROGRAM exam73
INTEGER i
REAL :: s1=0.0,s2=1.0,s3=0.0,s4=0.0
PRINT*,'请输入十个实数(每行一个)'
DO i=1,10
READ*,a
s1=s1+a
s2=s2*a
s3=s3+a**2
END DO
s4=s1**2
PRINT*,'10个数之和',s1
PRINT*,'10个数之积',s2
PRINT*,'10个数平方和',s3
PRINT*,'10个数和的平方',s4
END
4.输入20个数,统计其中正数、零、负数的个数。
编写程序实现之。
解答:
!统计其中正数、负数和零的个数
PROGRAM exam74
INTEGER :: i,s1=0,s2=0,s3=0
REAL a
PRINT*,'请输入二十个数(每行一个):'
DO i=1,20
READ*,a
IF (a>0) s1=s1+1
IF (a==0) s2=s2+1
IF (a<0) s3=s3+1
END DO
PRINT*,'正数个数',s1
PRINT*,'0的个数',s2
PRINT*,'负数个数',s3
END。