第一章预习作业

1、C语言的发展历史
• C语言的第一次发展在 1969年到1973年之间。C之所以被称为C是因为C语言的很多特性是由一种更早的被称为B语言的编程语言中发展而来的,而B语言的前身是BCPL。
• BCPL语言由Martin Richards开发;B语言是Ken Thompson为第一个UNIX系统而于1970年在DEC PDP-7计算机上开发的。
• BCPL和B语言都是“无类型”的语言,而C语言提供了很多的数据类型。
• 到了 1973年,C语言已经可以用来编写Unix操作系统的内核。这是第一次用C语言来编写操作系统的内核。丹尼斯·里奇(Dennis M.Ritchie 和Brian Kernighan在1978年出版了《C程序设计语言》(The C Programming Language,经常简称为“白皮书”或“K&R”)。
• 最初,C语言运行于AT&的多用户、多任务的UNIX操作系统上。后来,丹尼斯·里奇用C语言改写了UNIX C的编译程序,UNIX操作系统的开发者肯·汤普逊又用C语言成功地改写了UNIX,从此开创了编程史上的新篇章。UNIX成为第一个不是用汇编语言编写的主流操作系统。

• 1980年以后,贝尔实验室使得C变得更为广泛的流行,使得C一度成为了操作系统和应用程序编程的首选。甚至到今天,它仍被广泛用于编写操作系统以及作为广泛的计算机教育的语言。但目前Java程序员的数量已经超过了C程序员和C++程序员的总和。2005年4月,C++之父称C++用户超过300万。

•1983年,美国国家标准委员会(ANSI)对C语言进行了标准化,于1983年颁布了第一个C语言草案(83ANSI C),后来于1987年又颁布了另一个C语言标准草案(87ANSI C),最新的C语言标准C99于1999年颁布,并在2000年3月被ANSI采用。但是由于未得到主流编译器厂家的支持,C99并未得到广泛使用。
•尽管C语言是在大型商业机构和学术界的研究实验室中研发的,但是当开发者们为第一台个人计算机提供C编译系统之后,C语言就得以广泛传播,并为大多数程序员所接受。对MS-DOS操作系统来说,系统软件和实用程序都是用C语言编写的。Windows操作系统大部分也是用C语言编写的。
•C语言是一种面向过程的语言,同时具有高级语言和汇编语言的优点。C语言可以广泛应用于不同的操作系统,如UNIX、MS-DOS、Microsoft Windows及Linux等。

2、C语言与C++语言的语法区别
1、取模运算
C++不能够对float和double类型的数值进行取模运算,但是C#可以支持,C#上的取模运算支持所有类型,并且结果不一定为整数。
2、全局方法
C#不支持全局方法,所有的方法必须放在类的内部。
3、声明布尔变量
C#中提供了bool数据类型,取值只有true和false。而C++中则是分为0和非0,0为假,非0为真。
4、switch语句
C#中switch不允许直通,即每个case语句必须要有break以阻塞直通。
5、类的控制可访问性
C++中使用public、private等控制多个字段和方法,而C#需要对每个字段和方法重复public或private等关键字且public或private等关键字后不要加上冒号。
6、数组的定义
C++中数组定义:int test[10];
C#中数组定义:int[] test=new int[10]; 且数组是引用类型。
7、struct
在C语言中,试用定义的struct类型的变量方式:struct [定义的变量] [生成的变量];在C++语言中,试用定义的struct类型的变量方式:struct [定义的变量] [生成的变量]或者[定义的变量] [生成的变量]。
在C语言中struct定义的变量中不能有函数,而在C++中可以有函数。
8、函数的参数以及返回值(以test()为例)
C语言中,表示参数可有可无,返回值为int;C++中表示无参函数,由于无返回值导致语法错误,但是当无返回值的函数为构造函数的时候例外。
9、malloc
malloc函数的返回值为void*,在C语言中可以赋值给任意类型的指针,在C++中必须进行强制类型装换,否则报错。
10、malloc、free和new、delete
malloc、free在C和C++中均可使用,但是在C++中更多的是使用 new、delete。malloc、free是函数,而new、delete是操作符,两组堆内存的操作不能混用。
11、struct和class
class是对struct的扩展,struct默认的访问权限是public,而class默认的访问权限是private。

posted @ 2020-10-26 20:32  曾大少  阅读(107)  评论(0编辑  收藏  举报