2022年对C语言的认识 .pdf

上传人:Che****ry 文档编号:35750432 上传时间:2022-08-23 格式:PDF 页数:8 大小:268.24KB
返回 下载 相关 举报
2022年对C语言的认识 .pdf_第1页
第1页 / 共8页
2022年对C语言的认识 .pdf_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《2022年对C语言的认识 .pdf》由会员分享,可在线阅读,更多相关《2022年对C语言的认识 .pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、班级:电子 0831 姓名:李娇学号: 0819013109 对 C 语言的认识目录:C 语言的发展史, C 语言的特点, C 语言的循环结构, C 语言的运算符,C 语言的 32个关键字, C 语言的变量,学习C语言应从哪几方面着手C 语言的发展史C 语言是在70 年代初问世的, 一九七八年由美国电话电报公司(AT&T) 贝尔实验室正式发表了 C 语言。 同时由 B.W.Kernighan 和 D.M.Ritchit 合著了著名的一书 ,通常简称为 K&R ,也有人称之为K&R 标准。但是,在K&R 中并没有定义一个完整的标准C 语言,后来由美国国家标准学会在此基础上制定了一个C 语言标准,

2、于一九八三年发表,通常称之为ANSI C 。当代最优秀的程序设计语,早期的C 语言主要是用于UNIX 系统。由于C 语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代, C 开始进入其它操作系统,并很快在各类大、 中、小和微型计算机上得到了广泛的使用,成为当代最优秀的程序设计语言之一。 C 语言是一种结构化语言,一般不具备逻辑关系。它层次清晰,便于按模块化方式组织程序, 易于调试和维护。C 语言的表现能力和处理能力极强,它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构;而且它还可以直接访问内存的物理地址,进行位 (bit)一级的操作。由于C 语言实现了对硬件的编程操作,因此C

3、 语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外,C 语言还具有效率高, 可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C 语言。C 语言的特点C 语言发展如此迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多著名的系统软件 , 如 DBASE PLUS、DBASE 都是由 C 语言编写的。 用 C 语言加上一些汇编语言子程序, 就更能显示C 语言的优势了, 象 PC- DOS 、WORDSTAR 等就是用这种方法编写的。归纳起来C 语言具有下列特点: 1. C 是中级语言它把高级语言的基本结构和语句与低

4、级语言的实用性结合起来。C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。2. C 是结构式语言结构式语言的显著特点是代码及数据的分隔化, 即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。 C 语言是以函数形式提供给用户的, 这些函数可方便的调用, 并具有多种循环、条件语句控制程序流向, 从而使程序完全结构化。3. C 语言功能齐全C 语言具有各种各样的数据类型, 并引入了指针概念, 可使程序效率更高。另名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -

5、- - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - 外 C 语言也具有强大的图形功能, 支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大, 可以实现决策目的。4. C 语言适用范围大C 语言还有一个突出的优点就是适合于多种操作系统, 如 DOS、UNIX, 也适用于多种机型。语言中的循环结构顺序、选择、循环是结构化程序设计的三种基本结构,循环结构是这三者中最复杂的一种,几乎所有的程序都离不开循环,因此,熟练掌握循环结构是程序设计的最基本的要求。但是,对于初学者来说,循环结构与人类日常的思维习惯不同,较难掌握。在 C语

6、言中,循环结构主要是由for和 while 、do-while语句实现的,其中for 语句的应用更为普遍一些。for语句的用法对于有程序设计经验的学生来说轻而易举,但是对于那些没有经验的初学者来说难度却不小。本文从初学者的角度,阐述了 C语言中循环结构几种典型应用的实现方法。一、用循环结构实现几何图形输出简单的几何图形,是循环结构的典型应用之一。对于这一类型的题目,初学者往往直接采用一条或若干条输出语句printf完成,这样虽然可以完成题目要求, 但是很显然缺乏灵活性,不符合程序设计的思想。按照正常的程序设计思想,应该先分析图形的构成,找出其中的规律:名师资料总结 - - -精品资料欢迎下载

7、- - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - 如图 1 中的实心三角形,每一行由若干个空格、星号和一个回车换行符构成,将行号、空格数和星号数分别设为i 、m和 n,则可形成表1:由表 1 可以得出,行号i 与空格数m 、星号数n 有如下的数学关系:m=5-i , n=2 i-1 则实心三角形的构成规律可以描述为:第i 行由( 5-i )个空格和(2i-1 )个星号和一个回车符构成。把行号i 作为 for语句的循环变量,则此程序中的循环部分如下:for (i=1 ;i

8、=5;i+ ) /* 输出( 5-i )个空格; */ for (m=1 ;m =5-i ; m+ )printf( “” ) ;/* 输出( 2*i-1 )个星号; */ for (n=1;n=2*i-1 ;n+)printf( “*” ) ;/* 输出回车符; */ printf( “ n” ) ; 采用上面的方法,可以使学生很容易编写出类似的程序,其中关键在于让学生找出图形中行号与每一行的空格数及星号数的关系。二、循环结构在数组中的应用在 C语言中, for 语句经常与数组相结合,用于实现数组元素的赋值、输入和输出。对于初学者来说,更习惯于用顺序结构的语句来实现(如图2 左) 。我们将图

9、2 左的几条语句作比较, 可以看出在这5 条语句中, 不同的只有数组下标,那么就可以将这5 条语句合并成一条 for 语句,将数组下标换成for语句的循环变量i ,而 i 的值从 0 增加到 4。按照 for语句的基本语法规则可以很容易写出图2 右的 for 语句。同样, 对于下面这个输出二维数组元素的例子,也可以用上述方法实现,不过转换过程比上例要复杂一些:经过对比图3 左侧方框中顺序结构的12 条语句,可以发现也是只有数组下标在变化, 但是由于是二维数组,行下标和列下标同时都在变化,很显然不能直接用一条简单的for语句来实现。但是我们可以把这12 条语句细分一下,3 条语句为一组,而在同一

10、组中的语句只有列下标在变化,这时可以采用上例中的方法,将列下标都用循环变量j来代替,得到图3 右上的形式。 再次对比图3 右上的 4 条 for语句,不同的是行下标,同样用新的循环变量i 来代替,合并后得到图3 右下最终二重for 循环的语句。三、循环结构中的效率问题程序设计的初学者往往以完成题目要求的功能为目的,程序的执行效率是最容易忽略的一个问题。 在循环结构中, 具体表现为循环体的执行次数。例如, 一个经典的素数判定问题。在数学中素数的定义为:素数即指那些大于1,且除了 1 和它本身外,不能被其它任何数整除的数。根据这一定义,初学者很容易编写出如下所示的程序段:int isprime(i

11、nt n) int i;for (i=2 ;i n;i+ )if (n%i=0) return 0;return 1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - 上面的程序, 完全可以实现题目要求的功能,初学者往往满足于此。但是当对 for循环的执行次数进行分析时,我们发现:当n 不是素数时,没有任何问题;而当n 是素数时,循环体就要执行(n-2 )次,而实际上是不需要这么多次的。根据数学的知识,可以将次数降为 n/2 或

12、 n 的算术平方根,这样可以大大减少循环体的执行次数,提高程序的效率。程序的执行效率是编程中时刻需要考虑的问题,也是程序设计中的基本要求。这需要许多算法方面的知识,对于初学者来说,要求可能过高, 但是我们在讲授过程中要注意向学生灌输这种思想, 从学习之初就要打下良好的基础,尤其是类似上面例子中这样显而易见的情况,可以提醒学生在编制完一道程序以后,检验一下,是否还有可优化的地方,这对以后进一步学习高级编程都是必要的。C 语言的运算符运算符的种类语言的运算符可分为以下几类:1.算术运算符用于各类数值运算。包括加(+)、减 (-) 、乘 (*) 、除 (/)、求余 (或称模运算, %)、自增 (+)

13、、自减 ( )共七种。2.关系运算符用于比较运算。包括大于()、小于 (=)、小于等于(=)和不等于 (!=) 六种。3.逻辑运算符用于逻辑运算。包括与(&) 、或 (|)、非 (!)三种。4.位操作运算符参与运算的量,按二进制位进行运算。包括位与(&) 、位或 (|)、位非 ()、位异或 ()、左移 ()六种。5.赋值运算符用于赋值运算,分为简单赋值(=)、复合算术赋值 (+=,-=,*=,/=,%=) 和复合位运算赋值 (&=,|=,=,=,=) 三类共十一种。6.条件运算符这是一个三目运算符,用于条件求值(?:)。7.逗号运算符用于把若干表达式组合成一个表达式(,)。8.指针运算符用于取

14、内容(*) 和取地址 (&) 二种运算。9.求字节数运算符用于计算数据类型所占的字节数(sizeof)。10.特殊运算符有括号(),下标 ,成员 ( ,.)等几种。C 语言的 32 个关键字一、数据类型关键字(12 个) :1、char t? ::声明字符型变量或函数(1)主要内容字符:容纳单字符的一种基本数据类型;(2)n.炭;女清洁工vt.烧焦;(3) 字符类型:字符型 (Char) c、 字符串型 (String) s 、 二进制型 (Binary) bn 、 布尔型 (Boolean) b 、日期时间型(DateTime) d 、数组型 (Array) a 、象型 (Object) o

15、 、循环控制变量通常使用单一的字符;2、double ? d?b?l :声明双精度变量或函数(1)n. 两倍; ( 2)a. 两倍的 ,双重的;(3)v. 加倍的 ,快步走 ,加倍努力3、enum :声明枚举类型(1)枚举:枚举是一个被命名的整型常数的;(2)枚举类型; ( 3)列举型;(4)列举 enumerate i? nju:m ?reit 4、float fl ?ut :声明浮点型变量或函数(1)浮点数、(2)浮点型、(3)漂浮、(4)浮动5、intint : 声明整型变量或函数(1)符号整数、 ( 2)取整、(3)Int 是 integer intid ? 的简写6、long l ?

16、 :声明长整型变量或函数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 8 页 - - - - - - - - - (1)长整型(2)a./ ad.长(期)的(地 )(3) n.长时间(4)vi.渴望7、short ?:t :声明短整型变量或函数(1)a. 短的 ,矮的、(2)n. 短裤、 (3)adv. 短暂地;突然地,急地8、signed:声明有符号类型变量或函数(1)有符号的、 ( 2)带正负号、 ( 3)sign sain n.标记,符号;招牌;迹象v.签(署)

17、9、struct:声明结构体变量或函数(1)n.结构( 2)结构体( 4)创建构架数组(3)structural ? str ?kt?r?la.结构的10、 union ? ju:ni?n:声明共用体(联合)数据类型(1)联合、(2)n.工会,联盟、(3)合并、(4)团结11、 unsigned ?nsaind:声明无符号类型变量或函数(1)无符号的12、 void v ?id :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)(1)a.无效的、(2)没有的、(3)vt.使无效、(4)n.空虚感二、控制语句关键字(12 个) :A 循环语句1、for f ?, f?::一种循环语

18、句(可意会不可言传)2、do du, du: :循环语句的循环体3、while wail :循环语句的循环条件(1)conj.当 的时; (2)而; (3)虽然n.一会儿vt.消磨4、break breik :跳出当前循环(1)中断、(2)断开、(3)n.休息vt.打破5、 continuek ?n? tinju::结束当前循环,开始下一轮循环(1)v.继续,延续,延伸B 条件语句1、if if: 条件语句(1)条件函数、 ( 2)conj.如果,假如、 (3)是否、(4)即使、(5)无论何时2、else els :条件语句否定分支(与if 连用)(1)a. 别的( 2)ad. 其他 ,另外3

19、、goto:无条件跳转语句(1)跳转、(2)转向(3)跳转到C 开关语句1、switch swit ?:用于开关语句(1)n. 开关 ,转换 ,接通或切断 电流 ,转动、(2)v. 转变 ,切换 ,摆动2、case keis :开关语句分支(1)n.事例、 (2)情况、(3)手提箱( 4)盒( 5)案例3、default di ? f ?:lt :开关语句中的“ 其他 ” 分支(1)预设、 (2)n. 假设值 ,默认 (值),不履行责任 ,缺席(3)v. 默认 ,不履行义务 ,缺席 ,拖欠(4)计算机 缺省D 返回语句1、return ri ? t ?:n :子程序返回语句(可以带参数,也看不

20、带参数)(1)v.返回、 (2)恢复、(3)归还、(4)盈利三、存储类型关键字(4 个)1、auto ? ?:t?u :声明自动变量(一般不使用)(1)自动的、(2)汽车 automobile ? ?:t?m?ubi:l 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 8 页 - - - - - - - - - 2、extern:声明变量是在其他文件正声明(也可以看做是引用变量)(1)外部(的) 、 (2)external ik ? st ?:n?la.外部的,外面的,外

21、表的3、register ? red ?ist?:声明积存器变量(1)寄存器、(2)注册(表)(3)登记(表)4、static?st?tik :声明静态变量(1)a. 静态的 ,静电的、(2)n. 静电 ,静电干扰四、其它关键字(4个) :1、const :声明只读变量(1)常量、(2)常数、(3)编译时常量2、sizeof:计算数据类型长度(1)n. 的大小、(2)占的字节数(3)size saizn.大小,尺寸vt.按大小排列 (或分类 ) 3、typedef:用以给数据类型取别名(当然还有其他作用)(1)n. 类型定义、( 2)数据类型说明 (3)type taipn. 类型, 种类,

22、品种; 铅字v.打(字) 4、volatile ? v?l?tail :说明变量在程序执行中可被隐含地改变(1)a.动荡不定的、 (2)反复无常的、 ( 3)易挥发的C 语言的变量从本质上讲, 变量是程序中用来存放信息的一块空间。“这块空间” 一词, 还要加两个定语。一是所存放的内容是可以(通过代码来)改变的;二是它的地址是可以访问的(否则就无法用代码来访问它)。这就引出一连串与变量有关的许多问题。变量有两个属性。一是它的数据类型,就是这个空间能用来存放哪种类型的数据;二是它的时空属性。本文只涉及及后者。时就是变量的生命期,空就是变量的作用域。在 C 中有两类变量:在任何函数外面定义的外部变量

23、和在某函数内定义的自动变量。尽管在大多数C 书里大谈特谈全局变量,但是,事实上,在C 标准里,从没定义过全局变量。 C 的创建者这么安排,是有用意的。这体现了C 创建者的一个重要思想:尽一切可能限制变量的作用域。他们想限制的还有变量的生命期。这一思想贯穿了整个C 标准,也成为后来才出现的结构化程序设计思想的重要内容之一。外部变量是源文件级变量。就是说, 它的作用域仅限于定义它的那个源文件。在源文件A 里定义的一个外部变量,你要在源文件B 里访问它, 必须在文件B 的开头用关键字extern声明它。注意定义和声明两个词,在经典的C 书里,是很小心地区别开的。定义的实质是创建, 本质上就是要申请一

24、块存储空间。而声明不引发存储分配。这里的声明,只是使源文件 A 里的某变量的作用域延伸到源文件B 里。在一个工程里, 外部变量必须在一个源文件里定义,在其它也需访问它的每个源文件里要 extern 声明它。在工程里, 如果你在某源文件里定义一个变量,并在其它所有源文件里声明它,这个变量就成了全局变量。因此,在C 里,全局变量是靠你自己做出来的。在小组开发中, 如果你不希望你定义的外部变量被其他人访问,可以在定义时加上修饰词 static。这样 ,这个外部变量的作用域就仅限于定义它的那个源文件了。如果在其它源文件里用 extern 声明它,编译时就会报错。一个外部静态变量就是一个真正的文件级变量

25、。外部变量的生命期是工程的整个运行期间(这里仅仅指静态分配的变量,动态分配的不一样。)。有些书里称之为“永久”。自动变量分两级。在函数头部定义的是函数级,作用域是整个函数;在代码块头部定义的是代码块级, 作用域仅限这个代码块。自动变量在机器执行到定义它的那个函数(或代码块)时被创建,离开函数(或代码块)时自动消失。再次进入该函数(或代码块)时,被再名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 8 页 - - - - - - - - - 次创建。这就是“自动”的意义。因此

26、,自动变量的生命期仅限该函数(或代码块)的一次运行过程。如果在定义时加修饰词static,就成了自动静态变量。自动静态变量的作用域不变,生命期变成永久(整个工程运行期)。自动静态变量必须有一个初值,作为该函数(或代码块)在第一次运行时变量的初值。以后的运行,每一次的初值都是上一次的终值。不同作用域的变量允许同名。如果两个同名变量的作用域互不相交(譬如分处两个源文件的的两个外部静态变量),那当然互不搭界。如果一个作用域包含另一个作用域,则在程序运行时, 会发生屏蔽现象。当进入内层时,外层的变量被内层的同名变量屏蔽。即这时实际访问的是内层变量。当内层终止时,外层变量便又显露出来。在 C+里,不再限

27、定变量只能在代码块的首部定义。这有什么意义呢?假如,在一个代码块里需要定义一个变量,但是那个变量只是在代码段快终结处才被使用。如果在变量将使用时才定义它, 就可以最大限度地限制它的作用域。另外的好处是代码可读性更好。因为如果代码块很大,定义和引用贴在一起,有利于程序的理解。新的C 标准也扩充了这一点。学习 C语言应从哪几方面着手C语言属于高级程序语言的一种, 1987 年美国标准化协会制定了C语言的国际标准,简称“ANSI C”,从此以后它便成为一种广泛使用的程序语言。C语言的优点很多,主要的有如下三点:1兼备高级语言与低级语言的优点,属于一种中间语言。2它是一种结构化程序设计语言,非常适合结

28、构化程序设计。3有较丰富的数据类型、运算符以及函数供以选用。其实高级程序语言分为两大语系。一路是以C 为主的程序语言,例如:JAVAs cript,JAVA等,这类语言在函数的调用,程序语句的书写,循环的控制都极为相似。另一路是以BASIC为首的程序语言,例如:FOXPRO, VBs cript等,此类语言同样具有相似的函数调用,程序语句书写以及循环控制,但与C语系是不同的。学习 C语言必须从以下四点入手,一输入输出C语言的输入输出是非常严格的,或许在其他程序语言中我们可以不关心这个问题,但在C语言中,我们必须要彻底了解它。1二维浮点数数组的输入二维浮点数数组的输入(即: 通过键盘给二维浮点数

29、数组赋值)在很多专业书中都没有详细讲过这个问题。 在给二维浮点数数组赋值时一定要先声明一个变量,接着把数值赋予这个变量,最后把变量数值赋予二维浮点数数组赋值。2注意输出格式中“”后的字符C语言的输出说复杂不复杂,因为常用的都很简单。可说不复杂也未必,记得曾在一次等级考前辅导我们C语言的教授讲道:“如果 C语言要考得很难的话,根本不用考什么指针,只要专考输出格式,我想百分之九十九的学生都不及格。”当时我们无不认同。从这则事例中可以看出C 语言的输出格式之复杂程度。因此大家在学习它时千万要学会辨别输出格式中“”后的字符,每个字符都有其意义,也都有其作用。二优先级说道优先级, 有很多朋友都不是很了解

30、或说很模糊。什么叫优先级?比方说,我们在公交车终点站排座队时总会遇到70 岁以上的老人不需要排队就能上车的情景,这就是优先级的涵义。C程序在运行时也象排队坐车一样,首先照顾那些优先级高的运算符,若是优先级相同,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 8 页 - - - - - - - - - 那么就象遇到两位(或两位以上)70 岁以上的老人那样,让他们依次上车。但是C 语言中的优先级的运算并不是千篇一律的,只能说是在大多数情况下,有些运算符的优先级有其自己的特点,

31、因此这点大家要注意。例如条件表达式:条件?结果1:结果 2,这种表达式很多朋友都知道,它的作用与IF,ELSE, 条件判断语句很雷同,它运算时的优先级就不是按照 C语言的规则来完成的。 所以说对于优先级各位编程爱好者一定灵活掌握,不要死记硬背。三指针就个人认为, C语言中的指针是最有特色的,当然也是最难学的。指针说穿了,其实是变量的一种表现形式, 只不过这种变量记载的不是数值而是地址。就象一个人可以用姓名来表示自己,也可以用身份证号码来表示自己一样。例如:直接寻址,间接寻址等,只有了解了这些内容以后, 你再学指针就比较容易理会,毕竟 C语言是一门介于机器语言与高级语言中间的语言, 没有一些硬件

32、工作知识是很难领悟它的真谛的。然而事事并非绝对,如果你没有这些知识也不要紧,只要清楚知道以下笔者总结的二点再加上多练习便可:1指针是地址变量:它的值有两种:其一是地址,其二是内容。不同的表达方式可以取不同的值, 这有点象一个家庭地址在不同的场合标识的人物也不同。例如: 父母亲在他们的单位所登记的家庭地址就代表他们自己,而你在学校中登记的同样的家庭地址就代表你自己。2指针是可以运算的,它的运算法则与变量是一致的。另外,在编写一个程序时,除非万不得已, 一般不要使用指针变量。因为指针是比较复杂的,用不好就“当机”。所以笔者建议各位对于指针只要能看懂就行,当然如果你是准备参加考试的就另当别论了。四函

33、数如果你能完全掌握C语言的函数,那么学习C就不成问题了(C是一门建立在C 语言上, 但又不同于C语言的高级程序语言,它增添了很多函数。 ) 。学习函数的方法是比较简单的,只有两个字“牢记”,即:牢记函数的功能,牢记函数的用途以及如何输入输出。有些朋友认为, 程序语言中的函数没有多大用处,其实这并不正确,函数从本质上讲是一段通用程序, 用它可以帮助我们节约很多编程的时间,一个聪明的编程者在编写程序前往往总是先找自己所编写的程序中有多少是可以用函数来代替的,可想而知函数是多么实用呀!名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 8 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁