图5.7两层函数嵌套调用示意图函数的嵌套调用即一个函数在被调用的过程中又调用了另外的一个函数。函数fac和powers的返回值类型均被设计为double型,其主要目的是为了避免n!x:0.5//0.5从键盘输入的数据0.50 powers of e=1.648721//程序执行结果......
2023-11-20
第一代计算机语言,即机器语言。计算机语言是人和计算机交流的工具,是人用来控制计算机的手段。1946年,计算机语言随着计算机的诞生而诞生。在早期的计算机语言中,通过电路中反映的两种物理状态(脉冲有无、电位高低或磁性正负)正好可以表示“0”和“1”(如用低电平表示“0”和用高电平表示“1”),这就形成了第一代计算机所使用的语言,即机器语言。机器语言由0和1两个字符组成,称为二进制数。
要使计算机执行某项任务,人们就得写一串由0和1组成的指令序列交给计算机执行。指令是计算机语言的最小组成单元,机器语言就是机器指令的集合。这种只有0和1组成的语言对绝大多数人来说都像天书一般难以理解。
第二代计算机语言,即汇编语言。对人而言,机器语言的可读性实在太低,人们便在机器语言的基础上作了一定的改进,采用一些简洁的字母、符号串来替代一个特定的指令的二进制串,比如LOCK代表总线封锁指令、ADD代表加法指令等。以这种符号形式呈现的语言称为汇编语言。由于计算机只能识别0和1两个字符,因此,汇编语言需要被汇编程序进行汇编之后,才能交由计算机执行。虽然汇编语言用起来容易出错,可移植性也差,但为计算机语言向更高级语言发展奠定了基础。
第三代计算机语言,即高级语言。对人而言,不管是机器语言还是汇编语言,可读性都差,一般的人也难以理解,不利于计算机语言的推广普及。与此同时,人们对程序的可移植 性需求也在不断增强,因此高级语言应运而生。高级语言基本是按人们的语言习惯和逻辑思维,且计算机也能接受的语意进行设计。高级语言采用英文单词、数字和一些特殊符号等编写,可读性、通用性、可移植性强。
高级语言的发展从最初的结构化语言,发展成为面向过程设计语言和面向对象设计语言。面向过程设计语言的代表有C,Fortran,Cobol,Pascal等;面向对象设计语言的代表则为VB,Java,C++,C#等。(www.chuimin.cn)
当然,计算机不能直接识别用高级语言编写的源程序,需要通过编译器将其翻译成机器语言产生目标程序,才能被计算机执行。任何一种高级语言设计程序都有一个与之对应的编译器来完成对源程序的翻译。
编译器通常有两种方式:一种叫“编译程序”,一种叫“解释程序”。编译程序:是指事先编好一个称为编译程序的机器语言程序,作为系统软件存放在计算机内,当用户用高级语言编写的源程序输入计算机后,编译程序便把源程序整个地翻译成用机器语言表示的与之等价的目标程序,然后再交由计算机执行该目标程序。解释程序是当源程序进入计算机时,解释程序采用边扫描边解释,逐句输入逐句翻译的方式,计算机一句句执行,但是并不产生目标程序。
注意:编译程序能产生目标程序(即机器语言),能被计算机执行。解释程序不产生目标程序,不能被计算机执行。
有关C语言程序设计 第2版的文章
图5.7两层函数嵌套调用示意图函数的嵌套调用即一个函数在被调用的过程中又调用了另外的一个函数。函数fac和powers的返回值类型均被设计为double型,其主要目的是为了避免n!x:0.5//0.5从键盘输入的数据0.50 powers of e=1.648721//程序执行结果......
2023-11-20
C语言把括号、赋值、强制类型转换等都作为运算符处理,灵活使用各种运算符可以实现在其他高级语言中难以实现的运算,功能强大。另外,C语言还把括号、下标、强制类型转换、取地址等都作为运算符处理,并通过与算数运算符的组合达到不同的目的,从而使程序更加简洁明了。C语言具有超强的可移植性。总之,C语言在运算符方面是比较容易让人混淆的。......
2023-11-18
C语言的最大特点是:功能强、使用方便灵活。由于这个“灵活”给程序的调试带来了许多不便,尤其对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误。在C语言中大写字母和小写字母是两个不同的字符。C语言规定以’\0’作字符串结束标志,它是由系统自动加上的。当一个语句中使用多层括弧时常出现这类错误。main()C语言中对数组的定义或引用数组元素时必须用方括弧。......
2023-11-18
针对不同的实际应用,数据排序方法有很多种。本节介绍两种常用排序方法的基本思想和实现方法,帮助读者初步理解排序方法的计算机解决思路。②不考虑已排好序的数据,将剩下的数据作为待排序列。编写程序实现冒泡排序算法,对随机生成的10个3位整数按升序进行排序并输出。......
2023-11-20
一个函数直接或间接地调用自己,称为函数的递归调用。所以函数递归调用的实现必须依靠系统提供一个特殊部件(堆栈)存放未完成的操作,以保证当递归调用结束回溯时不会丢失任何应该执行而没有执行的操作。为了理解函数递归调用的特性,参照例5.9的程序讨论函数递归调用的执行过程,为了讨论方便为程序加上行号。函数递归调用示例。......
2023-11-20
例如,有如下所示的C语句序列:则结构体指针变量p1指向结构体数组元素a[2],其关系如图10.2所示。此时应该注意到被指针变量p1指向的结构体数组元素本身是不能作为整体操作的,所以*p1也不能作为整体操作。......
2023-11-20
表1.4scanf()附加说明字符注意:“*”符:用以表示该输入项读入后不赋予相应的变量,即跳过该输入值。例1.4输入输出数据类型控制。现将改动程序如下:则运行结果为:input a long integer12345678901234567890当输入数据改为长整型后,输入输出数据相同。......
2023-11-18
for循环控制结构的执行过程如图4.3所示。②C语言的for循环控制结构不仅提供在其控制部分的exp3中修改循环控制变量的值,而且还允许在for循环的循环体中存在能改变循环控制条件的语句,使用时需特别注意。图4.3for控制结构的执行过程③无论exp1和exp3的取值如何,只要exp2是一个非0值常量表达式,则构成了死循环。......
2023-11-20
相关推荐