您好,欢迎访问三七文档
1说在前面的话:《大学》节选经大学之道,在明明德,在亲民,在止于至善。知止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得。物有本末,事有终始。知所先后,则近道矣。古之欲明明德于天下者,先治其国;欲治其国者,先齐其家;欲齐其家者,先修其身;欲修其身者,先正其心;欲正其心者,先诚其意;欲诚其意者,先致其知。致知在格物。物格而后知至,知至而后意诚,意诚而后心正,心正而后身修,身修而后家齐,家齐而后国治,国治而后天下平。80后在校大学生完成电子设计全过程(TINA7opa4131opa228TL082)2第一章C语言概述§1.1C语言出现的历史背景§1.1.1计算机基本原理§1.1.2计算机语言*计算机语言种类极多,每天都有增加,可以适当分类,如:通用(FORTRAN、COBOL、C、BASIC),专用(Ada、FOXPRO、LISP),高级(Basic、Pascal、Fortran、C),低级(汇编MASM、PL/M)。依据不同问题的要求,选用不同的语言,甚至组合使用。*编译语言和解释语言*代码效率:衡量语言效率,包括空间效率、时间效率§1.2C语言的特点§1.2.1C语言的历史*C语言最早是由美国Bell实验室设计的,主要用作UNIX系统的工作语言,后来发展成为一种通用语言。C与UNIX有密切的关系,C最早是在PDP机器上用UNIX操作系统上开发的,后来又用C语言重写了UNIX系统。*C目前已经在大型机、中型机乃至微机上得到实现,并且有各种不同版本。其本身也处在不断的发展之中。目前主要版本包括:MSC、TurboC、QuickC、BorlandC++、VisualC++,目前在网络上广泛使用的Java也同C语言十分类似。§1.2.2C语言的特点*C语言简洁,结构清晰。i=i+1i++if(ab)max=a;max=(ab)?a:b;elsemax=b;fori=1ton::for(i=1;i=n;i++){.sanqingcha.faxingge.com.}next同时,C语言以函数作为语言的基本结构,结构清晰,达到模块化、结构化的要求*C语言表达能力强。(运算符丰富、数据结构丰富、允许进行低级操作)有些语言对公式表达能力强,有些语言对数据库表达能力强,C语言通用性好,对硬件及各种资源都有良好的控制。*C语言是一种高效率编译语言,目标代码质量高,用作操作系统语言。UNIX中13000行系统编码,除最底层有800行左右是用汇编语言写的,其余都是用C写的。事实上,有些汇编语言本身可以用C实现交叉汇编,如C-51,C-96。*通用性好,可移植性强。由于C功能十分强大,不再需要针对特定3机器用汇编语言进行扩充,加上C语言的标准化工作很好,所以在不同机器上,不同的操作系统上,几乎不需要改变,在源代码一级是通用、兼容的。*C语言的发展C、C++、VisualC、Java..Tips:,世界上最难懂的C编码大赛Horton.c§1.3简单的C程序介绍*例C1_1:main(){printf(“Hello,world\n”);}*例C1_2:#includestdio.h#includestdlib.h#includeconio.h#defineTRUE1#defineFALSE0inti=0;voidput_msg(void);main(){intanswer;clrscr();printf(Doyouwanttoseethemessage?\n);printf(Enter0forNo,1forYes==);scanf(%d,&answer);if(answer==TRUE)put_msg();elseputs(Goodbyefornow.);}voidput_msg(void){clrscr();for(i=0;i=10;i++)printf(Teststring#%d.\n,i);}4*从上例中可以看出,C程序主要结构如下:预处理指令includedefine全程变量说明函数变量main()主函数体用户自定义函数体*C语言主要由函数组成,结构化特性好,便于代码共享。*函数由函数说明、函数体构成*C语言总是从main()函数开始执行,而不管main()位于程序的什么地方。*C语言书写格式自由,如main(){printf(“Hello,world.\n”);}但应培养良好的编程习惯。*C语句后面有;*注解/*..*/§1.4C程序上机步骤§1.4.1C语言版本*不同操作系统版本(MAC、OS/2、UNIX、DOS、WINDOWS..*同操作系统下不同公司版本TC、BC++、MSC、WatcomC§1.4.2TurboC特色*集成环境。提供一个综合开发环境,包括编辑、编译、链接、调试。*强大的联机帮助功能*强大的图形功能*目标代码质量高20%~30%*能直接嵌入汇编语言*能直接调用系统功能§1.4.3TurboC使用第二章数据类型、运算符与表达式§2.1C的数据类型§2.1.1数据类型*数据是程序的主要处理对象,语言的特征主要反映在数据类型上,如COBOL主要处理表型数据,人工智能语言主要处理逻辑型数据。C语言的数据类型非常丰富,可以处理各种类型的数据。*区分数据类型的意义:*节约内存*小内存数据运行速度快§2.1.2C语言的主要数据类型*基本类型*整型*字符型5*浮点型*枚举型*构造类型*数组*结构体*公用体*指针类型*空类型TypeLengthRangeunsignedchar8bits0to255char8bits-128to127enum16bits-32,768to32,767unsignedint16bits0to65,535shortint16bits-32,768to32,767int16bits-32,768to32,767unsignedlong32bits0to4,294,967,295long32bits-2,147,483,648to2,147,483,647float32bits3.4*(10**-38)to3.4*(10**+38)double64bits1.7*(10**-308)to1.7*(10**+308)longdouble80bits3.4*(10**-4932)to1.1*(10**+4932)§2.2常量与变量§2.2.1常量和符号常量*程序执行过程中不改变的量称为常量,如3.14159,16,’:’..*常量的作用主要是便于理解,便于修改和移植,如#definePI3.14159#defineEOF0#defineTRUE1*常量也可以用标识符进行命名,如上例中的PI、TRUE等,但符号常量不能被赋值。如下例是错误的:#defineDOT‘.’DOT=’:’;*常量可以是各种类型,如:整型(180)、字符型(‘a’)、浮点型(3.1415926)..*常量可以是各种数制*十进制122*八进制0122*十六进制0x12a、0X12A§2.2.2变量*变量属性*变量类型*变量名(地址)*变量值*变量名用标识符来表示,用来表示变量名、文件名等名字的有效字6符序列称为标识符。*有效字符集:0~9、a~z、A~Z、_、($)*第一个字符不能是数字*一般情况下,前32个字符有效(可扩展)*大小写代表不同标识符,如MAX!=max,习惯上用大写表示常量,小写表示变量。*不能用关键词(保留词)作标识符,如:while、else、typedef、include..*尽量使标识符有意义,如depth、length、color、location等,少用如:a、x、a1*每个变量在使用前都必须进行强制定义,“先定义,后使用”。如:intnum;floatdepth;chargender;这点与BASIC中有默认定义不同。变量定义的意义在于:*合理分配内存*防止非法运算,如floata,b,c;c=a%b;*防止误写变量名*例C2_1#includestdio.hvoidmain(){intlower,upper,step;floatfahr,celsius;lower=0;upper=300;step=20;fahr=lower;while(fahr=upper){celsius=(5.0/9.0)*(fahr-32.0);printf(%4.0f%6.1f\n,fahr,celsius);fahr=fahr+step;}}该例子可简化为例C2_2:#includestdio.hvoidmain(){floatfahr,celsius;for(fahr=0;fahr=300;fahr+=20){celsius=(5.0/9.0)*(fahr-32.0);7printf(%4.0f%6.1f\n,fahr,celsius);}}还可简化为例C2_3:#includestdio.hvoidmain(){floatfahr;for(fahr=0;fahr=300;fahr+=20)printf(%4.0f%6.1f\n,fahr,(5.0/9.0)*(fahr-32.0));}§2.3整型数据§2.3.1整型常量*十进制整数ddd*八进制整数0ddd*十六进制整数0xddd*可以加长整数后缀L或l§2.3.2整型变量*基本型int*短整型shortint、short*长整型longint、long*无符号型unsigned*例C2_4#includestdio.hmain(){inti;i=37000;printf(i=%d\n,i);}结果将显示-28536§2.4浮点型数据§2.4.1浮点型常数*十进制3.0、3.14159*指数式2e15、2.0E15、3e-8*指数不能小数,尾数不能没有。如3e2.4、E-5。§2.4.2浮点型变量*float、double、longdouble*长度分别为4、8、10字节*float精度为7位有效数字,double精度为15~16位*不能写成doublefloat或longdoublefloat§2.5字符型数据§2.5.1字符常量*可见ASCII字符,’d’,’s’,’$’*不可见字符用转义字符表示。如\n、\a、\b。见p16表2.3*注意显示结果和打印结果可能不一致,如:8printf(“abcd\refgh\n”);将显示efghprintf(“a\bb\n”);将显示b§2.5.2字符变量*定义格式:char标识符*char类型与int类型关系charc1;c1=’a’;c1=c1+2;printf(“nowc1is%c.\n”,c1);将显示nowc1isc各种输入输出中,经常用到EOF符号,下面用程序检测EOF定义:#includestdio.hvoidmain(){charc1;c1=EOF;printf(“EOF=%d.\n”,c1);}将显示EOF=-1#includestdio.hmain(){charc1='a',c2='d',c3='h';printf('d'-'a'+'h'=’%c’.\n,c2-c1+c3);}将显示’d’-‘a’+’h’=’k’*注意,C中没有字符串变量类型。§2.5.3字符串常量*例:“Iamprogrammer”、“Iama\tprogrammer”*‘x’和“x”不同*字符串可以用字符型数组来存放。§2.6变量赋初值*例:inti;i=20;*例:inta;intb;intc;-inta,b,c;*例:inti=20;*变量不初始化,则其值不确定。§2.7各种数据类型的混合运算**int-unsigned-long-double||char,shortfloat例:#includestdio.hmain(){inta,b;floatratio;printf(Entertwonumber:);scanf(%d%d,&
本文标题:C语言基本知识点
链接地址:https://www.777doc.com/doc-2908155 .html