计数值达到设置值时计数停止,计数器的触点变为“ON”。计数器属于加法式软元件。在“END”处理过程中,不对当前值进行更新,触点也不变为“ON”,如图4-17所示。图4-18 计数器时序图计数器的复位即使“OUT C”指令变为“OFF”时,也不能对当前计数器值进行清除。......
2025-09-29
1.C 语言的发展
在C 语言诞生以前,系统软件主要是用汇编语言编写的。由于汇编语言程序依赖于计算机硬件,其可读性和可移植性都很差;但一般的高级语言又难以实现对计算机硬件的直接操作,于是人们盼望有一种兼有汇编语言和高级语言特性的新语言——C 语言。
C 语言是在B 语言的基础上发展起来的,它的根源可以追溯到1960 年出现的ALGOL 60。ALGOL 60 是一种面向问题的高级语言,但离硬件比较远,不宜用来编写系统软件。1963 年英国剑桥大学推出了CPL 语言,它是在ALGOL 60 的基础上发展起来的,更接近硬件,但规模较大,难以实现。1967 年,英国剑桥大学的Martin Richards 对CPL 做了简化,推出了BCPL语言。1970 年,美国贝尔实验室的Ken Thompson 以BCPL 为基础,设计出了简单而且很接近硬件的B 语言,并用B 语言编写了第一个UNIX 操作系统,在PDP-7 上实现。1971 年在PDP-11/20 上实现了B 语言,并编写了UNIX 操作系统。但B 语言过于简单,功能有限。1972—1973 年,贝尔实验室的D.M.Ritchie 在B 语言基础上设计出了C 语言。C 语言既保持了BCPL 和B 语言的优点,又克服了它们的缺点。1973 年,Ken Thompson 和
D.M.Ritchie合作把UNIX 的90%以上用C 语言改写,即UNIX 第5 版。
虽然对C 语言进行了多次改进,但主要还是在贝尔实验室内部使用。直到1975 年UNIX第6 版公布后,C 语言的突出优点才引起人们的注意。1977 年出现了不依赖于机器的C 语言编译文本“可移植C 语言编译程序”,使C 语言移植到其他机器时所需做的工作大大简化,这也推动了UNIX 操作系统迅速在各种机器上的实现。可以说,C 语言与UNIX 是一对孪生兄弟,在发展中相辅相成。1978 年以后,C 语言已先后移植到大、中、小、微型机上,已独立于UNIX和PDP 了。
1983 年,美国国家标准化协会(ANSI)根据C 语言问世以来各种版本对C 语言的发展和扩充,制定了新的标准,称为ANSI C。1987 年ANSI 又公布了C 语言新标准——87ANSI C。1990 年,国际标准化组织ISO 接受了87 ANSI C 为C 语言的国际标准。目前流行的C 编译系统都是以ANSI C 为基础的。
目前流行的C 语言的编译器有Microsoft C/C++、Borland C/C++、Visual C++2010、 Win-TC、Turbo C/C++for Windows 集成实验与学习环境等,各种版本基本部分是相同的,但略有差异,因此应了解所用计算机系统配置的C 编译系统的特点和规定。
2.C 语言的特点
C 语言之所以能存在和发展,并具有生命力,在于它有不同于其他语言的特点。C 语言的主要特点如下:(https://www.chuimin.cn)
(1)简洁、紧凑。C 语言一共只有32 个关键字、9 种控制语句。
(2)运算符丰富。C 语言共有44 种运算符。它把括号、赋值、强制类型转换等都作为运算符处理,从而使C 语言的运算类型极其丰富,表达式多样化。
(3)具有丰富的数据类型。C 语言具有整型、实型、字符型、数组类型、指针类型、结构体类型、共同体类型等,能方便地构造更加复杂的数据结构(如链表、树、栈等)。
(4)是一种结构化的程序设计语言。C 语言具有结构化的控制语句(如if、switch、for、while、do…while)。用函数作为程序的模块单位,便于实现程序的模块化。
(5)语法限制不严格,程序设计灵活。例如,C 语言不检查数组下标越界,C 语言不限制对各种数据转化(编译系统可能对不合适的转化进行警告,但不限制),不限制指针的使用,程序正确性由程序员保证。灵活和安全是矛盾的,对语法限制的不严格可能也是C 语言的一个缺点,黑客可能使用越界的数组攻击用户的计算机系统。
(6)能进行位操作,可以直接对部分硬件进行操作。例如,C 语言可以直接操作计算机硬件,如寄存器、各种外设I/O 端口等;C 语言的指针可以直接访问内存物理地址;C 语言类似汇编语言的位操作可以方便地检查系统硬件的状态。
(7)可移植性好。用C 语言编写的程序基本上不需要修改或只需要少量修改就可移植到其他的计算机系统或操作系统中。
(8)C 语言编译后生成的目标代码小,质量高,程序的执行效率高。有资料显示其效率只比汇编语言代码的效率低15%左右。
相关文章
计数值达到设置值时计数停止,计数器的触点变为“ON”。计数器属于加法式软元件。在“END”处理过程中,不对当前值进行更新,触点也不变为“ON”,如图4-17所示。图4-18 计数器时序图计数器的复位即使“OUT C”指令变为“OFF”时,也不能对当前计数器值进行清除。......
2025-09-29
指针是C语言区别于其他同时代高级语言的主要特征之一。4)字符串C语言的字符串其实就是char型数组,所以使用字符串并不需要引用库。表达式3为循环控制变量修改表达式,它使for循环趋向结束。for循环语句是C语言中功能最为强大的语句,甚至在一定程度上可以代替其他的循环语句。......
2025-09-29
C语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。C语言是以函数形式提供给用户的,这些函数可方便地调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。C语言功能齐全:具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。C语言对编写需要硬件进行操作的场合优于其他高级语言,有一些大型应用软件也是用C语言编写的。......
2025-09-29
A.与参数x的类型相同B.无法确定C.void类型D.int类型3.为了避免嵌套的条件语句if-else的二义性,C语言规定()。A.else与缩排位置相同的if配对B.else与同一行上的if配对C.else与其之后最近的if配对D.else与其之前最近的尚未配对的if配对4.设x、y、z和k都是int型变量,则执行表达式:x=后,x的值为()。A.7 B.6 C.5 D.47.在C语言程序中,用关键字()定义无符号型变量。else语句实现两个分支。......
2025-09-30
因为进程是并行的,而有些资源不允许同时使用,所以在访问这些资源的进程之间要求同步。表7-2全局变量读写(r/w)情况表其中bill_trans和bill_rot被两个进程所修改,需要同步处理。程序中是用bmpr划分它们在两个进程中被写的时间范围。C语言的同步处理比较很简单,系统没有提供专用的进程同步方法,前面的方法还不能做到严格意义上的同步。只要按照基本同步方法编制多进程程序,完全能够保证机器人的运行可靠。......
2025-09-29
模块一C语言程序结构一、考点分析1.掌握自定义标识符的命名规则标识符是程序中各组成元素的名称,正确自定义标识符是程序员的基本功。C语言源程序的组成单位是()。......
2025-09-30
在LonWorks技术中,Neuron芯片的程序设计语言是Neuron C。Neuron C基于标准C并在标准C的基础上进行了自然扩展。Neuron C严格遵守ANSI C语言规则,但不是对ANSI C的全部复制性实现。6)Neuron C的网络变量不能为指针类型。7)Neuron C不支持指向定时器、消息标签和I/O对象的指针。10)Neuron C的网络变量名和报文标签被限定在16个字符以内。......
2025-09-30
A.程序中第一条可执行语言B.程序中第一个函数C.程序中的main函数D.包含文件中的函数6.C语言中运算对象必须是整型的运算符是()。A.9 B.-2 C.-1 D.89.若x和y都是int型变量,x=100,y=200,则下面程序片段:printf;的输出结果是()。()四、程序填空下面程序用于计算n!......
2025-09-30
相关推荐