当前位置:文档之家› 第二章 Fortran程序设计基础

第二章 Fortran程序设计基础

第二章  Fortran程序设计基础
第二章  Fortran程序设计基础

第二章 Fortran程序设计基础

2.1.1字符集

“字符集”是指编写Fortran程序时,所能使用的所有字符及符号。Fortran所能使用

Fortran标准中规定,编译器只需要认得大写的英文字母,而如果程序代码中使用小写英文字母,则会把它们视为大写字母。简单说,Fortran是不区分大小写的语言。

特殊符号除了用来做数学计算符号外,还有其他用法,后面用到时会介绍它们。

2.1.2书面格式

Fortran程序代码的编写格式有两种,Free Format(自由格式)及 Fixed format(固定格式)。Fixed format(固定格式)属于旧式写法,它在编写版面上有很多限制。Free Format (自由格式)是Fortran90之后的新写法,取消了很多旧的限制。这里,我们要求用Free Format格式来编写程序。以*.F90为扩展名的文件,就是用Free Format来编写的程序。

Free Fortran格式基本上允许非常自由的格式,它没有规定每一行的第几个字符有什么作用。需要注意以下几点:

(1)叹号“!”后面的文本都是注释,Fortran90编译程序对源程序进行编译时,对注释区内的内容不予处理。

(2)每行可以编写132个字符。

(3)行号放在每行程序的最前面。

(4)要求以一个“&”作为一个续行标志;一行中可以写多条语句,用“;”隔开。

下面是一个用Free Format格式的编写实例:

1.! Free Format

2. program main

3. write(*.*) “hellow” !这也是注释

4. write(*.*) &

5. “hellow”

6. end

这里,读者可发现第一、三行中都有注释,第一行整行都是注释,第三行只有叹号后面的部分是注释。第四行的最后是连接符号&,所以第五行会连接在它后面。

2.1.3 Fortran的数据类型

1.整数(INTEGER)

整数的类型又分为两种,长整型与短整型。在个人计算机中长整型占32 bit(4 bytes)的空间,常整型可保存的数值范围在-2147483648+2147483647之间,(也就是-231+1231之间),而短整型占16 bit(2 bytes)的空间,短整型可保存的数值范围在-32768+32767之间,(就是-215+1215之间)。

2.浮点数(REAL)

浮点数也有两种类型,单精度及双精度。单精度浮点数在个人计算机中占用32 bit(4 bytes)的空间,有效位数为6—7位。可记录的最大数值为±3.4*1038,最小数值为±1.18*10-38。双精度浮点数会占用64 bit(8 bytes)的空间,有效位数为15—16位。可记录的最大数值为±1.79*10308,最小数值为±2.23*10-308。

3.复数(COMPLEX)

就是以a+bi 的形式来表示的数值。复数中的a 、b 值其实是由两个浮点数来做记录,所以复数同样也有两种类型,单精度复数和双精度复数。

4.字符(CHARACTER )

计算机除了存储数字之外,也可以在内存中记录一段文本。字符类型可以记录的东西非常广,从键盘输入的任何东西,不论是数字、文本或任何特殊符号,它都可记录。只记录一个字母、符号时的数据类型称为“字符”,记录一连串的字符时,就称为“字符串”。

5.逻辑判断(LOGICAL )

逻辑判断只能保存两种逻辑结果,分别为“是”(TURE )和“否”(FLASH )。

2.1.4 Fortran 的数学表达式

用Fortran 来编写数学表达式的规则和方法都很直观,和纸上做四则运算只有一点点的差别。Fortran 所使用的数学运算符号,根据运算优先级顺序排列如下:

+ 加法 - 减法

* 乘法 / 除法

** 乘幂(两个星号要连续)

( ) 扩号(表示括起来的部分优先计算)

越是下面的符号,运算优先级越高,所以算式中会先计算乘除,后计算加减。需要注意的是:

(1)FORTRAN 表达式只能在行上从左到右书写,因此,在把数学上的分式写成FORTRAN 表达式时要适当加上括号。例如: 将数学表达式

d

c b a ++写成FORTRAN 表达式时,应写成)/()(

d c b a ++,而不能写成d c b a ++/,因为后者所对应的数学表达式为d c b a ++。 (2)在FORTRAN 表达式中的乘号*不能省略,例如:

要将数学表达式)sin(3x 写成FORTRAN 表达式时,应写成3*sin (x ),而不能写成3 sin (x ),当然更不能写成3*sinx 或3sinx 。

(3)FORTRAN 表达式中只允许使用圆括号,而不能使用其它括号,例如:

要计算数学表达式{[(a+b)2+(a-b)2]3+c}+6时,应写成(((a+b)**2+(a-b)**2)**3+c)+6

在FORTRAN 表达式中括号层次比较多时,一定要注意括号配对,小心漏写一侧的括号或将括号写错。

(4)在连续使用乘幂运算符时,为了避免出错,最好根据需要的运算顺序加上必要的括号,例如:

(a b )c 应写成(a**b)**c ;)(c b a 应写成a**(b**c)。

FORTRAN 规定,如果不加括号,a**b**c 的运算顺序相当于a**(b**c),即连续多次作乘幂运算时,如果没有括号,则按先右后左的原则进行运算。

(5)FORTRAN 算术表达式的求值顺序为:

括号内→函数→**→*与/→+与-

(6)FORTRAN 算术表达式中允许不同数值类型的量进行混合运算。当一个实型量与一个整型量进行算术运算时,系统将自动把整型量转换成实型量后再进行运算。但必须注意,在FORTRAN 中,两个整型量相除,其结果为整型量,小数部分将自动舍去。例如:

算术表达式(2/3)*SIN (X ),不管X 的值为多少,运算结果将总是0,这是因为2/3的值为0。在这个表达式中,如果希望作实型运算,则在作除法的两个量中至少有一个应该

写成实型,如2.0/3或2/3.0或2.0/3.0。

(7)在进行实型运算时,要注意运算误差的问题。由于受实型数的有效数字位数的限制,在FORTRAN中实型运算的结果通常都是近似值,总会有一定的误差。例如:算术表达式(1.0/3.0)*3.0的计算结果不是1.0,而是0.9999999,这是因为1.0/3.0的结果只能是0.333333333。

另外,在进行实型运算时,要尽量避免两个绝对值相差很大的量直接相加或相减,以防止大数吃掉小数。

在FORTRAN中,标准函数也可以作为表达式中的运算对象,FORTRAN中常用的算术型标准函数如下表所示。

我们先开始编写一个简单fortran程序,这个程序会在屏幕上面输出hello。

1.program ex0201

2.write(*,*) "hello"

3.stop

4.end

这个程序的功能非常简单,执行后会显示一行文本: hello

fortran程序通常以program描述来开头,program后面还要接一个自定义的程序名称。

笔者在这里取名为ex0201,代表这是第2章第1个程序。

Fortran程序的主要结构可以用下图来表示:

程序开始————→program main ←————main 是自定义的名称

……

主程序代码————→write(*,*) "hello"

……

程序结束————→stop ←————这一行可以省略

主程序代码结束————→end

program这个描述可以省略,但笔者并不建议这么做。因为省略program在编写大程序时可能会发生混乱,阅读程序代码时可能会找不到主程序。

下面我们介绍编写fortran程序所用的一些命令

2.2.1声明

所谓的声明是指:“在程序代码中,程序员向编译器要求预留一些存储数据的内存空间。”这句话看不懂没关系,先看一个程序。

1.program ex0202

2.integer a !声明一块保存整数的内存空间,以a来表示

3.a=3 !把a设置为3

4.write(*,*) "a=",a!显示a的内容

5.stop

6. end

执行结果:

a= 3

第2行出现了新的描述。前面提到过fortran有5种基本数据类型,分别是整数(integer)、浮点数(real)、复数(complex)、字符(character)、逻辑变量(logical)等。这个程序声明一个可以存放整数类型的空间,并以a来代替这块内存。接着在这块内存中放入数字3,再把它的内容写到屏幕上。

声明一个整数类型存储空间的方法描述如下:

integer a ←————a是自己取的名字,在程序代码中就以这个名字来表示这

一块存放整数的空间,它习惯上称为“变量”。

声明要使用整数型态数据

声明一个整数类型存储空间的方法也可以写成 integer::a

声明一个浮点数(实数)类型存储空间的方法和上面类似,具体为:

real a (或real::a)

至于其它数据类型的声明,这里不再赘述。

2.2.2输入(read)输出(write)命令

输出命令write在例ex0201中已出现过。write这个命令最简单的用法,就是在括号中挂两个星号,再把所要输出的字符串用两个双引号引起来放在后面。其中,第一个星号代表输出的位置使用默认值,也就是屏幕;第二个星号则代表不特别设置输出格式。例如:Write(*,*)"就这么简单"

上面的命令执行后会在屏幕显示:“就这么简单”这几个字。关于write的详细输出格式,将在后面介绍。

输入命令read的最简单用法和write类似,也是在括号中挂两个星号,第一个星号代表输入的来源使用默认的设备,也就是键盘;第二个星号则代表不指定输入格式。例如:

1.program ex0203

2.integer::a !也可以写成integer a

3.read(*,*)a !由键盘读入一个整数

4.write(*,*)a !显示读进变量a的内容

5.end

程序执行时会出现光标来等待用户利用键盘输入数据,在此处等待输入的是一个整数,程序执行后会在屏幕显示该整数。再看下面的例子:

1.program ex0204

2.real::a,b,c

3.read(*,*)a,b,c !在一行中输入3个变量内容

4.write(*,*) a+b+c

5.end

执行时会出现一个光标,用户可以输入3个实数:例如“1.1,2.6,3.0”或是“1.1 2.6 3.0”,逗号或空格可以用来区分数据,程序执行后会在屏幕输出这3个实数相加起来的结果。

2.2.3格式化输出(format)

format命令可以用来设置输出格式,format这个单词在英文中也正是格式的意思。先看下面一个实例:

1.program ex0205

2.integer::a

3.a=50

4.write(*,100) !使用行代码100,也就是第5行的格式来输入变量a

5.100 format(I4) !最前面的100是行代码,把这一行程序代码给一个编号

6.end

从输出结果看,这个程序会使用4个字符宽来输出整数50,屏幕显示:

_ _50←——符号“_”表示空格

如果把第4行的write(*,100)改为write(*,*)并去掉第5行,则屏幕会显示:

50←——前面没有空格

注意:上例中的第4行和第5行可用一个语句来代替,即可合并为:

Write(*,"I4")

这种形式在编写程序时用的比较多。

Format命令中可以使用很多的格式控制描述,下面是列出所有格式命令的表格,括号([])中的东西可以省略。

我们看几个具体例子:

write(*,"(F9.3)") 123.45

输出3个位数

显示: _ _123.450

,不足9个字符部分会添上空白,小数不足3位

部分会补0

write(*,"E(15.7)")

15个字符宽来输出指数类型的浮点数,小数

部分占7位

显示:_ _0.1234500E+03

15个字符的部分补上空白,小数部分不足7

位的部分补上0

write(*,"(5X,I3)")100

5个空白,再用3个字符输出整数100

显示:_ _ _ _ _100

5个空白是从格式5X中得到的

2.2.4implicit命令

FORTRAN规定,在程序中的变量名,凡是以I,J,K,L,M,N这六个字母开头的变量名,如果没有专门的类型声明,则认为它们是整型变量;而以这六个字母以外的其它字母开头的变量名,如果没有专门的类型说明,则认为它们是实型(浮点数)变量。这个规则也称为I-N规则。

必须注意,I-N规则只适用于整型变量和实型变量,而对于其它类型的变量是不适用的。

例如:

对于下列变量名:I,J,K,M12,MAB,N02,LAS,如果没有专门的类型说明语句对它们进行说明,则认为它们是整型变量;

而对于下列变量名:AB,X1,SAB,P23,AMAX,B123,TXY,COUNT,如果没有专门的类型说明语句对它们进行说明,则认为它们是实型变量。

I-N规则在编程时容易引发错误,为解决这一问题,引入implicit命令。Implicit 命令的功能是用来设置“默认类型”,例如:

implicit integer(a,b,c) !a、b、c开头的变量都视为整数型变量

implicit none !关闭默认类型功能,所有变量都要事先声明

2.2.5 常数的声明方法(parameter)

常数的声明方法很简单,例如:

real,parameter::pi=3.1415926 !将变量pi设置为实常数3.1415926

integer,parameter::a=50 ! 将变量a设置为整数50

需要注意的是:1.被设置为常数的变量前面的::不能省略,

2.常数pi或a在程序中的值不能人为的改变。

2.2.6 设置变量的初值

Fortran90中要设置变量初值时,直接把数值写在声明的变量后面就行了。使用这个方法设置初值时,不能省略声明中间的那两个冒号。例如:

1.program ex0206

2. integer::a=1

3. real::b=2.0

4. write(*,*)a,b

5. end

程序中第2行将整数变量a的初值设置为1,第3行将实变量b的初值设置为2.0。显示: 1

2.0

2.2.7END、STOP、 GOTO语句

1. END语句

FORTRAN中END语句有三个功能:

(1)标志一个程序单位的结束;

(2)在主程序中的END语句还表示停止程序运行;

(3)在子程序中的END语句还可以表示需要返回调用程序。

在一个程序单位中,必须有并且只能有一个END语句,而且END语句只能在程序单位的最后一行。

如果在主程序中的其它位置上需要停止程序运行时,可以使用STOP语句。

如果在子程序中的其它位置处需要返回调用程序时,可以使用RETURN语句。

2. STOP语句

FORTRAN中STOP语句的作用是停止程序的运行。

在一个程序单位中可以有多个STOP语句,当执行到任何一个STOP语句处时,程序立即停止运行。在子程序中如果有STOP语句,它将使整个程序停止运行,而不是使控制返回

到调用程序。

STOP语句是使程序停止运行,即结束程序的运行。在FORTRAN中还提供了一个暂停语句PAUSE,这个语句用于暂停程序的运行,但不结束程序的运行,当需要从暂停处恢复运行时,一般只需按一个回车键即可。

3. GOTO语句

GOTO语句称为无条件转移语句。GOTO语句的一般形式为GOTO 语句标号

它的作用是将程序的流程无条件转去执行指定语句标号的那个语句。例如GOTO 100 表示转去执行标号为100的语句。

由于GOTO语句破坏了程序中语句顺序执行的正常情况,不符合结构化原则,因此,一般不提倡使用GOTO语句。但有时适当的使用GOTO语句可以实现循环处理,例如以后要介绍的利用IF语句和GOTO语句来实现循环结构。

FORTRAN程序设计复习题及答案

FORTRAN程序设计复习题 一、选择题 B (1)下列各FORTRAN表达式中合法的是 A) S+T*2P >= B) .NOT. (A*B+C) C) A2+B2/(C+D) <= D) (A+B).NOT.A*B.GT.(.NOT.只跟一个表达式) C (2)数学式(3/5)ex+y的FORTRAN表达式是 A) 3*EXP(X+Y)/5 B) 3*E* *(X+Y)/ C) (3/5)*EXP(X+Y)D) EXP(X+Y) D (3)下列FORTRAN77表达式中不合法的是 A) A.GT.B.EQV.C.GT.D B) A.AND.B.AND.C.AND.D C) .NOT.(X.LE.D) A.LT.B.LT.C.LT.D D(4)下列叙述中不正确的是 A) FORTRAN子程序可以单独编译 B) 对一个FORTRAN源程序进行编译和连接无误后可生成可执行文件 C) 即使编译和连接都正确无误,FORTRAN程序运行时仍可能出错 D) FORTRAN连接的主要任务是把函数库中的函数翻译成机器指令(正确描述:主要任务为连接目标文件) B (5)在下列FORTRAN77运算符中,优先级最高的是 A) .AND. B) .NOT. C) .OR. D) .EQ. B (6)FORTRAN表达式"6/5+9/2**3/2"的值为 A) 33 B) 1 C) 5 D) 3 A (7)下列FORTRAN77表达式中,合法的是: A) .AND.. B) 10.0 C) D) 提示:A)相当于 .AND.(.NOT.()) D (8)关于编译一个FORTRAN源程序文件,下列说法中错误的是 A) 允许编译只有一个主程序而没有子程序的源文件 B) 允许编译有多个子程序的源文件 C) 允许编译只有一个子程序而没有主程序的源文件 D) 允许编译有多个主程序的源文件 C (9)在FORTRAN77源程序中,续行标志符必须放在 A) 第1列 B) 第1-6列C) 第6列D) 第5列 D (10)下列关于"SUBROUTIN E MAP(X,Y)"语句行的叙述中,不正确的是 A) 这是子程序的第一个语句 B) 字符串"MAP"是子程序名 C) 变量X是子程序的形参D) 子程序执行后,MAP将返回整型数据 提示:子程序无返回值,自定义函数才有) A (11)FORTRAN表达式"2/4+"的值是 A) B) 1 C) D) 0 提示:2/4默认等于整型,=》 D (12)FORTRAN表达式"MOD,"的值是 A) B)0.0 C) D) A (13下列FORTRAN运算符中,优先级最低的是 A)逻辑运算符.AND. B)算术运算符*

《Java语言程序设计:基础篇》课后复习题答案-第二章

Chapter2Elementary Programming 1.Valid identifiers:applet,Applet,$4,apps,x,y, radius Invalid identifiers:a++,--a,4#R,#44,class,public, int Keywords: class,public,int 2.double miles=100; final double KILOMETERS_PER_MILE= 1.609; double kilometers=KILOMETERS_PER_MILE*miles; System.out.println(kilometers); The value of kilometers is160.9. 3.There are three benefits of using constants:(1) you don’t have to repeatedly type the same value;(2) the value can be changed in a single location,if necessary;(3)the program is easy to read. final int SIZE=20; 4. a=46/9;=>a=5 a=46%9+4*4-2;=>a=1+16–2=15 a=45+43%5*(23*3%2);=>a=45+3*(1)=48 a%=3/a+3;=>a%=3+3;a%=6=>a=a%6=1; d=4+d*d+4;=>4+ 1.0+4=9.0 d+= 1.5*3+(++a);=>d+= 4.5+2;d+= 6.5;=>d=7.5 d-= 1.5*3+a++;=>d-= 4.5+1;=>d=1– 5.5=-4.5 5. 2 2 -4 -4 1 6.(2+100)%7= 4.So it is Thursday.

C++程序设计基础课后答案 第二章

2.1 阅读下列程序,写出执行结果 1. #include void main() { int a,b,c,d,x; a = c = 0; b = 1; d = 20; if( a ) d = d-10; else if( !b ) if( !c ) x = 15; else x = 25; cout << d << endl; } 2.#include void main() { int a = 0, b = 1; switch( a ) { case 0: switch( b ) { case 0 : cout << "a=" << a << " b=" << b << endl; break; case 1 : cout << "a=" << a << " b=" << b << endl; break; } case 1: a++; b++; cout << "a=" << a << " b=" << b << endl; }

} 3. #include void main() { int i = 1; while( i<=10 ) if( ++i % 3 != 1 ) continue; else cout << i << endl; } 4. #include void main() { int i = 0 , j = 5; do { i++; j--; if ( i>3 ) break; } while ( j>0 ); cout << "i=" << i << '\t '<< "j=" << j << endl; } 5.#include void main()

第二章 程序设计基础

1.结构化程序包括的基本控制结构只有三种,即顺序结构、选择结构与循环结构。 对象之间进行通信的构造叫做消息,A正确。多态性是指同一个操作可以是不同对象的行为,D 错误。对象不一定必须有继承性,C错误。封装性是指从外面看只能看到对象的外部特征,而不知道也无须知道数据的具体结构以及实现操作,B错误。 2.对象之间进行通信的构造叫做消息。多态性是指同一个操作可以是不同对象的行为。对象不一定必须有继承性。封装性是指从外面看只能看到对象的外部特征,而不知道也无须知道数据的具体结构以及实现操作。 继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。广义的说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。 3.整数类实例包括: 十进制常量用0~9表示,不能以0开头; 八进制常量用0~7表示,必须用0开头; 十六进制常量用0~9和A~F(a~f)表示,必须以0x或0X开头。0x518。 0.518是浮点数实例,518E-2为科学计数法表示的浮点数实例。 "-518"是字符串实例, 字符实例的一般形式是用一对单引号括起来的一个字符。另外ASCII码中还有一些控制字符,C 语言中用转义字符的形式来书写这些常,转义字符一反斜杠(\)开始,后面跟1个字符或字符序列。'518'单引号中有三个字符,错误。"5"双引号为字符串,错误。'nm'单引号中有两个字符,错误。'\n'为换行符,属于字符类实例,正确。 4.数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素有:加工(转换)、数据流、存储文件(数据源)等。

Fortran95程序设计课后习题答案(word版方便)

第四章 1.program main implicit none write(*,*) "Have a good time." write(*,*) "That's not bad." write(*,*) '"Mary" isn''t my name.' end program 2.program main real, parameter :: PI=3 implicit none.14159 real radius write(*,*) "请输入半径长" read(*,*) radius write(*,"(' 面积='f8. 3)") radius*radius*PI end program 3.program main implicit none real grades write(*,*) "请输入成绩" read(*,*) grades write(*,"(' 调整后成绩为'f8.3)") SQRT(grades)*10.0 end program 4.integer a,b real ra,rb a=2 b=3 ra=2.0 rb=3.0 write(*,*) b/a ! 输出1, 因为使用整数计算, 小数部分会无条件舍去write(*,*) rb/ra ! 输出1.5 5.p rogram main implicit none type distance real meter, inch, cm end type type(distance) :: d write(*,*) "请输入长度:" read(*,*) d%meter d%cm = d%meter*100 d%inch = d%cm/2.54 write(*,"(f8.3'米='f8.3'厘米='f8.3'英寸')") d%meter, d%cm, d%inch end program 第五章 1.program main implicit none integer money real tax write(*,*) "请输入月收入" read(*,*) money if ( money<1000 ) then tax = 0.03 else if ( money<5000) then tax = 0.1 else tax = 0.15 end if write(*,"(' 税金为'I8)") nint(money*tax) end program 2.program main implicit none integer day character(len=20) :: tv write(*,*) "请输入星期几" read(*,*) day select case(day) case(1,4) tv = "新闻" case(2,5) tv = "电视剧" case(3,6) tv = "卡通" case(7) tv = "电影" case default write(*,*) "错误的输入" stop end select write(*,*) tv end program 3.program main implicit none integer age, money real tax write(*,*) "请输入年龄" read(*,*) age write(*,*) "请输入月收入" read(*,*) money if ( age<50 ) then if ( money<1000 ) then tax = 0.03 else if ( money<5000 )then tax = 0.10 else tax = 0.15 end if else if ( money<1000 ) then tax = 0.5 else if ( money<5000 )then tax = 0.7 else tax = 0.10 end if end if write(*,"(' 税金为'I8)") nint(money*tax) end program 4.program main implicit none integer year, days logical mod_4, mod_100, mod_400 write(*,*) "请输入年份" read(*,*) year mod_4 = ( MOD(year,4) == 0 ) mod_100 = ( MOD(year,100) == 0 ) mod_400 = ( MOD(year,400) == 0 ) if ( (mod_4 .NEQV. mod_100) .or. mod_400 ) then days = 366 else days = 365 end if write(*,"('这一年有'I3'天')") days stop end program 第六章 1.program main implicit none integer i do i=1,5 write(*,*) "Fortran" end do stop end program 2.program main implicit none integer i,sum sum = 0 do i=1,99,2 sum = sum+i end do write(*,*) sum stop end program 3.program main implicit none integer, parameter :: answer = 45 integer, parameter :: max = 5 integer weight, i do i=1,max write(*,*) "请输入体重" read(*,*) weight if ( weight==answer ) exit end do if ( i<=max ) then write(*,*) "猜对了" else write(*,*) "猜错了" end if stop end program 4.program main implicit none integer, parameter :: max=10 integer i real item real ans ans = 1.0 item = 1.0 do i=2,max item = item/real(i) ans = ans+item

《VC++程序设计基础》习题1

《Visual C++ 程序设计基础》练习题第一部分面向过程程序设计

第一章 VC++语言的基础知识和简单的语句 1.C++语言程序由〖C〗组成。 A)子程序 B)过程 C)函数 D)主程序和子程序 2.以下各标识符中,合法的用户标识符组为〖D〗。 A)PAd,P#d,b-b,abc,_0123,ssiped B)cin,a10,CPP,float,del_word,signed C)void,max,hiy,,list,*jer D)a,temp,_isw,INT,keep,wind 3.在VC++中,char类型数据占〖A〗个字节,int类型数据占〖C〗个字节,short 类型数据占〖B〗个字节,long类型数据占〖C〗个字节,float类型数据占〖C〗个字节,double类型数据占〖D〗个字节。 A)1 B)2 C)4 D)8 4.以下语句〖B〗。 int a=-2L; cout << a << endl; A)赋值不合法 B)输出值为-2 C)输出为不确定值 D)输出值为2 5.在VC++中,以下语句的输出为〖D〗。 short int k=-1; cout << k << ',' << (unsigned short)k <代表回车换行,_代表空格)。 cin >> a >> b; A)1020 B)10_20 C)10,20 D)20_10 8.以下语句的输出为〖D〗。 int k=017,g=111; cout << ++k << ',' << hex << g++ <

程序设计基础知识点)

第三部分程序设计基础 3.1 程序、程序设计、程序设计语言的定义 ⑴程序:计算机程序,是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。 ⑵程序设计:程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段。 ⑶程序设计语言:程序设计语言用于书写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就是程序。程序设计语言有3个方面的因素,即语法、语义和语用。 3.2 高级语言和低级语言的概念及区别 ⑴高级语言:高级语言(High-level programming language)是高度封装了的编程语言,与低级语言相对。

它是以人类的日常语言为基础的一种编程语言,使用一般人易于接受的文字来表示(例如汉字、不规则英文或其他外语),从而使程序编写员编写更容易,亦有较高的可读性,以方便对电脑认知较浅的人亦可以大概明白其内容。 ⑵低级语言:低级语言分机器语言(二进制语言)和汇编语言(符号语言),这两种语言都是面向机器的语言,和具体机器的指令系统密切相关。机器语言用指令代码编写程序,而符号语言用指令助记符来编写程序。 ⑶区别: 高级语言:实现效率高,执行效率低,对硬件的可控性弱,目标代码大,可维护性好,可移植性好低级语言:实现效率低,执行效率高,对硬件的可控性强,目标代码小,可维护性差,可移植性差 了解知识:CPU运行的是二进制指令,所有的语言编写的程序最终都要翻译成二进制代码。越低级的语言,形式上越接近机器指令,汇编语言就是与机器指令一一对应的。而越高级的语言,一条语句对应的指令数越多,其中原因就是高级语言对底层操作进行了抽象和封装,

计算机程序设计语言(FORTRAN语言)

计算机程序设计语言(FORTRAN语言) (总分:36.00,做题时间:90分钟) 一、 (总题数:36,分数:36.00) 1.编译程序能将高级语言编写的源程序转换成( )。 A.解释程序 B.汇编程序 C.映象程序 D.目标程序 (分数:1.00) A. B. C. D. √ 解析: 2.一个完整的FORTRAN源程序( )。 A.至少包括一个主程序 B.至少包括一个主程序和一个子程序 C.由一个主程序与一个以上的子程序组成 D.由一个主程序与一个子程序组成 (分数:1.00) A. √ B. C. D. 解析: 3.语句函数定义语句在程序内合法的位置是( )。 A.在程序块开头语句之后,END语句之前 B.在程序块开头语句之后,可执行语句之前 C.在说明语句之后,END语句之前 D.在说明语句之后,可执行语句之前 (分数:1.00) A. B. C. D. √ 解析: 4.下列关于函数子程序虚实参数的错误说法是( )。 A.可以没有形参数 B.虚实结合的数组长度可以不同 C.实参表与虚参表类型可以不同 D.函数名可以作为虚参

(分数:1.00) A. B. C. √ D. 解析: 5.下列叙述中正确的是( )。 A.FORTRAN程序块中,无名公用语句只能有一个B.FORTRAN子程序中,至少应有一个RETURN语句C.FORTRAN程序块中,最后一行必须是END语句D.FORTRAN程序块中,必须有变量说明语句 (分数:1.00) A. B. C. √ D. 解析: 6.运行下面的程序时得不到所需的结果,其主要原因是( )。INTEGER X(11) DATA X/9,8,7,6,5,4,3,2,1,0,-1/ DO 10 1=1,X(1) ,-1 WRITE(*,*)1.0/SQRT(25.0-REAL(X(1) )* * 2) 10 CONTINUE END A.没有给X(11) 赋初值 B.发生除以零的情况 C.发生负数开平方的情况 D.循环参数设置错误 (分数:1.00) A. B. C. D. √ 解析: 7.下列数据中,不符合FORTRAN常量表示法的是( )。 A.-25.6 B.2.758D3 C.'FOOT"=' D.TRUE (分数:1.00) A. B. C. D. √ 解析:

java语言程序设计基础篇第十版课后答案第二章答案

package cn.Testcx; import java.util.Scanner; public class lesson2 { public static void main(String[] args){ @SuppressWarnings("resource") Scanner input =new Scanner(System.in); System.out.print("请输入一个摄氏温度:"); double Celsius =input.nextDouble(); double Fahrenheit =(9.0/5)*Celsius+32; System.out.println("摄氏温度:"+Celsius+"度"+"转换成华氏温度为:"+Fahrenheit+"度"); System.out.print("请输入圆柱的半径和高:"); double radius =input.nextDouble(); int higth = input.nextInt(); double areas =radius*radius*Math.PI; double volume =areas*higth; System.out.println("圆柱体的面积为:"+areas); System.out.println("圆柱体的体积为:"+volume); System.out.print("输入英尺数:"); double feet =input.nextDouble(); double meters =feet*0.305; System.out.println(feet+"英尺转换成米:"+meters); System.out.print("输入一个磅数:"); double pounds =input.nextDouble(); double kilograms =pounds*0.454; System.out.println(pounds+"磅转换成千克为:"+kilograms); System.out.println("输入分钟数:"); long minutes =input.nextInt(); long years =minutes/(24*60*365); long days = (minutes%(24*60*365))/(24*60); System.out.println(minutes+"分钟"+"有"+years+"年和"+days+"天"); long totalCurrentTimeMillis =System.currentTimeMillis(); long totalSeconds =totalCurrentTimeMillis/1000; long currentSeconds =totalSeconds%60; long totalMinutes =totalSeconds/60; long currentMinutes =(totalSeconds%(60*60))/60; long currenthours =(totalMinutes/60)%24; System.out.print("输入时区偏移量:"); byte zoneOffset = input.nextByte(); long currentHour =(currenthours+(zoneOffset*1))%24; System.out.println("当期时区的时间为:"+currentHour+"时"+currentMinutes+"分"+currentSeconds+"秒");

第二章[SAS编程基础]

第二章 SAS 编程基础 第一节常量、变量与观测值 2.1.1 观测值 描述单一整体,如个别人、一个实验动物、一年、一个地区某些特性的一系列数据值称为观测值,又称观察。 2.1.2 变量 给定特性的数据值的集合组成了变量。在SAS数据集中,每一个观测值是由各个变量的数据值组成。在数据集中每一列数据是一个变量。 1.命名 SAS变量名和其他名称如数据集名等的命名规则都相同,它可以多至8个字符长,第一个字符必须是字母(A,B,C,….,Z),或者是下划线(_),后面的字符可以是数字或下划线。空格不能出现在SAS名中,特殊字符(如$,@,#)也不允许在SAS名中使用。SAS 系统保留了一定的名称作为特殊的变量名,这些名称以下划线开始和结尾。如_N_和_ERROR_等。 2.变量特性 SAS变量有两种类型,数值型和字符型。字符型变量在名后用一“$”号来表示。除了他们的类型外,S A S变量还有下列特性:长度、输入格式、输出格式和标记。 变量的长度特性,是指在SAS数据集中用以存储它的每一个值的字节数。缺省长度是8(为了存储长度与缺省值不同的变量,需使用LENGTH语句)。 变量的特性,或者明确地说明,或者在它们首次出现时的上下文中给出定义。例如: DATA A; C='BAD'; PUT C; C='GOOD'; PUT C; RUN; C在第一次出现时已被定义成字符型变量,长度为3,因此第二次再向c中赋值GOOD时,由于c已被定义成长度为3,故c中只存有‘GOO’。 PUT语句的作用是把变量的值输出到LOG窗口。 变量的其他特性将在后面逐渐介绍。 3.变量清单的简化表示 在SAS程序中定义了完整的变量清单后,就可以在后面许多语

第二章 程序设计基础

第二章程序设计基础 2.1结构化程序设计 结构化程序设计的风格及原则 结构化程序设计风格:清晰第一。效率第二 程序注释:分为序言性注释和功能性注释 结构化程序设计方法的四个主要原则。 自顶向下、逐步求精、模块化和限制使用goto语句。 结构化程序设计主要强调的是:程序的易读性 2.2面向对象的程序设计 面向对象方法涵盖对象及对象属性与方法、类、继承、多态性几个基本要素。 (1)对象 通常把对对象的操作也称为方法或服务。 属性即对象所包含的信息,它在设计对象时确定,一般只能通过执行对象的操作来改 属性值应该指的是纯粹的数据值,而不能指对象。 操作描述了对象执行的功能,若通过信息的传递,还可以为其他对象使用。 对象具有如下特征:标识惟一性、分类性、多态性、封装性、模块独立性。 (2)类和实例 类是具有共同属性、共同方法的对象的集合。它描述了属于该对象类型的所有对象的性质,而一个对象则是其对应类的一个实例。 类是关于对象性质的描述,它同对象一样,包括一组数据属性和在数据上的一组合法操作。 (3)消息 消息是实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。 一个消息由三部分组成:接收消息的对象的名称、消息标识符(消息名)和零个或多个参数。 (4)继承 广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。 继承分为单继承与多重继承。单继承是指,一个类只允许有一个父类,即类等级为树形结构。多重继承是指,一个类允许有多个父类。 (5)多态性 对象根据所接收的消息而做出动作,同样的消息被不同的对象接收时可导致完全不同的行动,该现象称为多态性。 2.3 例题详解

java语言程序设计基础篇第二章程序练习题答案

java语言程序设计基础篇第二章程序练习题答案

2.1(将摄氏温度转化为华氏温度) import java.util.*; public class test { public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); System.out.print("Enter a degree in celsius: "); double Celsius = input.nextDouble(); double Fahrenheit; Fahrenheit = (9.0/5) * Celsius + 32; System.out.println(Celsius + " Celsius is" + Fahrenheit + " Fahrenheit"); } } 2.2(计算圆柱体的体积) import java.util.*; public class test {

public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); System.out.print("Enter the radius and length of a cylinder: "); double radius = input.nextDouble(); double length =input.nextDouble(); double area = radius * radius * Math.PI; double volume = area * length; System.out.println("The area is " + area); System.out.println("The volume is " + volume); } } 2.3(将英尺转换为米) import java.util.Scanner; public class test { public static void main(String[] args) {

第二章 程序设计基础

第二章程序设计基础 一、选择题 1.下列叙述中正确的是 A)程序设计就是编制程序 B)程序的测试必须由程序员自己去完成 C)程序经调试改错后还应进行再测试 D)程序经调试改错后不必进行再测试 【答案】C 【解析】软件测试仍然是保证软件可靠性的主要手段,测试的目的是要尽量发现程序中的错误,调试主要是推断错误的原因,从而进一步改正错误。测试和调试是软件测试阶段的两个密切相关的过程,通常是交替进行的。选项C正确。 2. 下列叙述中,不符合良好程序设计风格的是( ) A)程序的效率第一,清晰第二 B)程序的可读性好 C)程序中有必要的注释 D)输入数据前要有提示信息 【答案】A 【解析】本题考查软件工程的程序设计风格。软件在编码阶段,力求程序语句简单、直接,不能只为了追求效率而使语句复杂化。除非对效率有特殊的要求,程序编写要做到清晰第一、效率第二。 人们在软件生存期要经常阅读程序,特别是在软件测试和维护阶段,编写程序的人和参与测试、维护的人都要阅读程序,因此要求程序的可读性要好。 正确的注释能够帮助读者理解程序,可为后续阶段进行测试和维护提供明确的指导。所以注释不是可有可无的,而是必须的,它对于理解程序具有重要的作用。 I/O信息是与用户的使用直接相关的,因此它的格式应当尽可能方便用户的使用。在以交互式进行输入/输出时,要在屏幕上使用提示符明确提示输入的请求,指明可使用选项的种类和取值范围。 经过上述分析可知,选项A是不符合良好程序设计风格要求的。 3.对建立良好的程序设计风格,下面描述正确的是 A)程序应简单、清晰、可读性好 B)符号名的命名只要符合语法 C)充分考虑程序的执行效率 D)程序的注释可有可无 【答案】A 【解析】程序设计应该简单易懂,语句构造应该简单直接,不应该为提高效率而把语句复杂化。故本题答案应该为选项A)。 4.下列选项中不符合良好程序设计风格的是 A)源程序要文档化 B)数据说明的次序要规范化 C)避免滥用goto 语 D)模块设计要保证高耦合、高内聚 【答案】D 【解析】编程风格是在不影响性能的前提下,有效地编排和组织程序,以提高可读性和可维护性。更直接的说,风格就是意味着要按照规则进行编程。这些规则包括:(1)程序文档化。就是程序文档包含恰当的标识符.适当的注解和程序的视觉组织等。(2)数据说明。出于阅读理解和维护的需要,最好使模块前的说明语句次序规范化。此外,为方便查找,在每个说明语句的说明符后,数据名应按照字典顺序排列。(3)功能模块化。即把源程序代码按照功能划分为低耦合、高内聚的模块。(4)注意goto语句的使用。合理使用goto语句可以提高代码的运行效率.但goto语句的使用会破坏程序的结构特性。因此,除非确实需要,否则最好不使用goto语,因此,本题的正确答案是D。 5.在设计程序时,应采纳的原则之一是 A)不限制goto语句的使用 B)减少或取消注解行 C)程序越短越好 D)程序结构应有助于读者理解 【答案】D 【解析】滥用goto 语句将使程序流程无规律,可读性差,因此A)不选;注解行有利于对程序的理解,不应减少或取消,B)也不选;程序的长短要依照实际情况而论,而不是越短越好,C)也不选。故本题答案应该为选项D)。 6.下面不属于软件设计原则的是A)抽象B)模块化C)自底向上D)信息隐藏 【答案】C

java语言程序设计(基础篇)第二章程序练习题答案

2.1(将摄氏温度转化为华氏温度) import java.util.*; public class test { public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); System.out.print("Enter a degree in celsius: "); double Celsius = input.nextDouble(); double Fahrenheit; Fahrenheit = (9.0/5) * Celsius + 32; System.out.println(Celsius+ " Celsius is"+ Fahrenheit + " Fahrenheit"); } } 2.2(计算圆柱体的体积) import java.util.*; public class test {

public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); System.out.print("Enter the radius and length of a cylinder: "); double radius = input.nextDouble(); double length =input.nextDouble(); double area = radius * radius * Math.PI; double volume = area * length; System.out.println("The area is " + area); System.out.println("The volume is " + volume); } } 2.3(将英尺转换为米) import java.util.Scanner; public class test { public static void main(String[] args) { // TODO Auto-generated method stub

Visual Basic 程序设计基础教程-课后习题答案-范荣强

第一章程序与编程环境 一、填空题 1. 工程,Form_Load 2. 事件(触发) 3. 窗体,Name 4. CurrentX, CurrentY 5. maxButton, BorderStyle = 1 or 3 or 4 or 5 6. Alignment, 空缺,AutoSize 7. Style, LoadPicture 8. Line, Shape 9. 重画10. FillStyle ll. MultiLine, maxLength, Locked 12. Font 13. sub, 对象名,事件名14. 方法,Object.Method, text1.setfocus() 15. Name, minButtom, CurrentX(Y), Caption 16. Interval, Enable 17. timer, Interval, ms(毫秒) 18. Mouse Down, Click, LoastFocus 19. .Frm, .Frx, .bas. cls. Vbp 20. 注释, “Rem 语句”或者“’语句” 第二章数据的类型、表示以及运算 一、请指出下列哪些是VB的合法常量,并说明原因 (1)√(2)X 常量不能加类型说明符号改成123.4 (3)X与上题类似,如果是常量,则类型说明符放在后面(4)√等价于2E3 (5) √(6)√等于十进制的4113 (7)X 如果是16进制要写&符号(8)X 指数不能为小数(9)X 月份超过12,日超过31 (10)√(11)√(12)√等价于上一题(13)X 8进制数每一位不能超过8 (14)√(15)X 变量,常量要为基本数据类型的值(16)√ 二、找出合法变量 (1)√(2)√如果与控件Label1同在一个应用程序里面,该变量会屏蔽掉控件Label1 (3) X 保留字(4)√(5)X 变量不能以数字开头(6)变量不能有小数点 (7)√(8)√数组变量(9)X保留字(10)√可以,但rnd()不可以,rnd()是函数 (11) √(12)√(13)√(14)X ’符号表示注释(15)X 这是表达式,不是变量(16)X 同上,是表达式 三、指出下列数据x,y,z的声明是否正确,如果正确请指明其类型 (1)√ x--long, y—variant, z—integer (2) √ x—long, y—long, z—integer (3) √ x—double, y—double, z—integer (4) X 变量x &中间不能有空格 (5)√自动转换成字符串 (6)X 变量声明不能直接赋值 (7)√ (8)√自动转换成字符串 (9)X 常量不能把函数写上去 (10)√ 四、写出下列表达式的结果 (1)1 (2) 1 (3)false (4) ab12 (5)123 (6)出错,加法表达式中如果有一个是数值类型,则“+”表示加号,而不是字符的链接符号(7)False (8)true (9) true (10) false 默认转换成相同类型(数值),建议这里把2改成D试试 (P.S. 布尔类型TRUE = -1, FALSE = 0; 优先顺序:^(乘方)→-(求负)→*、/→\(整除)→MOD→+、-) 五、写出下列函数的结果

Fortran95程序设计习题答案第十章3

module linklist type student integer :: num integer :: Chinese, English, Math, Science, Social end type type datalink type(student) :: item type(datalink), pointer :: next end type contains function SearchList(num, head) implicit none integer :: num type(datalink), pointer :: head, p type(datalink), pointer :: SearchList p=>head nullify(SearchList) do while( associated(p) ) if ( p%item%num==num ) then SearchList => p return end if p=>p%next end do return end function end module linklist program ex1016 use linklist implicit none character(len=20) :: filename character(len=80) :: tempstr type(datalink), pointer :: head type(datalink), pointer :: p type(student), allocatable :: s(:) integer i,error,size write(*,*) "filename:"

大学FORTRAN考试试题精修订

大学F O R T R A N考试试 题 标准化管理部编码-[99968T-6889628-J68568-1689N]

《高级语言程序设计(FORTRAN)》考试样题 一、选择题(每小题2分,共40分) 1. 下列标识符中不能作为FORTRAN的合法变量名的是_____D_____。 A) A_1 B) A1 C) A1A D) A+1 2. 在FORTRAN的变量类型说明语句中没有 B A) REAL语句B)CHAR语句C)INTEGER语句 D)LOGICAL语句 3.FORTRAN90 源程序的扩展名是 C 。 A. TXT B. F C. F90 D. FOR 4.下列关于符号常量的说法正确的是___C____。 A.符号常量的定义应该放在所有语句之前 B.符号常量不可以是字符型常量 C.在一个程序单位中定义一个符号常量后,不能再改变它的值 D.符号常量定义语句与赋值语句一样,是可执行语句 5、在下列写法中,__D______不是FORTRAN常量。 A. .TRUE. C. , ,000,000 6.表达式15/4/的值是 B 。 A.整数2 B.实数1.5 C.实数2.25 D.实数1. 3 7. 下列不是FORTRAN赋值语句的是 _____D______。 A) X=.TRUE. B) X=X*X C) X=X**2**2 D) X=X++ 8. 梯形的上底为A,下底为B,高为H,计算其面积的FORTRAN表达式中错误的是____A____。 A)1/2*(AB)*H B)(A+B)*H/2 C)(A+B)/2*H D)*(A+B)*H 9. 要选拔身高T>米且体重W<公斤的人,FORTRAN的逻辑表达式是__C_____。 A) B) C) D) 90规定,变量类型声明的优先顺序是 C 。 A.隐含约定(I-N规则)、IMPLICIT声明、类型声明 B.类型声明、隐含约定(I-N规则)、IMPLICIT声明 C.类型声明、IMPLICIT声明、隐含约定(I-N规则) 声明、类型声明、隐含约定(I-N规则) 11、假设CH是一个字符型变量,并且具有足够的长度,则对于CH(3:7),下面说法正确的是___D________。 A.它是一个数组片段 B.它是一个数组定义形式 C.它是CH的一个子串,并且长度是4 D.它是CH的一个子串,并且长度是5 12.数组声明语句为: INTEGER,DIMENSION(-5:-1,-3:3,11:15) ::A 数组共有 A 个元素。 A.175 B.150 C.120 D.17 13. 下列DATA语句中正确的是______C____。 A) DATA /A,B/, B) DATA A, B/2*/ C) DATA A, B/2* D) DATA A/, B/ 14. 下列有关FORTRAN数组的说法正确的是______D_____。 A) 数组定义语句只能定义一维或二维数组 B) 数组元素下标不能出现负值 C) 在赋值语句中出现的A(3)肯定是数组元素 D) 程序中使用的数组必须进行说明

相关主题
文本预览
相关文档 最新文档