C语言基本知识点

  • 格式:doc
  • 大小:433.86 KB
  • 文档页数:82

1 说在前面的话: 《大学》节选 经  大学之道,在明明德,在亲民,在止于至善。  知止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得。  物有本末,事有终始。知所先后,则近道矣。  古之欲明明德于天下者,先治其国;欲治其国者,先齐其家;欲齐其家者,先修其身;欲修其身者,先正其心;欲正其心者,先诚其意;欲诚其意者,先致其知。致知在格物。  物格而后知至,知至而后意诚,意诚而后心正,心正而后身修,身修而后家齐,家齐而后国治,国治而后天下平。

80后在校大学生完成电子设计全过程(TINA7opa4131 opa228 TL082) 2

第一章C语言概述 §1.1 C语言出现的历史背景 §1.1.1 计算机基本原理 §1.1.2 计算机语言 * 计算机语言种类极多,每天都有增加,可以适当分类,如:通用(FORTRAN、COBOL、C、BASIC),专用(Ada、FOXPRO、LISP),高级(Basic、Pascal、Fortran、C),低级(汇编MASM、PL/M)。依据不同问题的要求,选用不同的语言,甚至组合使用。 * 编译语言和解释语言 * 代码效率:衡量语言效率,包括空间效率、时间效率

§1.2 C语言的特点 §1.2.1 C语言的历史 * C语言最早是由美国Bell实验室设计的,主要用作UNIX系统的工作语言,后来发展成为一种通用语言。C与UNIX有密切的关系,C最早是在PDP机器上用UNIX操作系统上开发的,后来又用C语言重写了UNIX系统。 * C目前已经在大型机、中型机乃至微机上得到实现,并且有各种不同版本。其本身也处在不断的发展之中。目前主要版本包括:MS C、Turbo C、Quick C、Borland C++、Visual C++,目前在网络上广泛使用的Java也同C语言十分类似。 §1.2.2 C语言的特点 * C语言简洁,结构清晰。 i=i+1 i++ if (a>b) max=a; max=(a>b)?a:b; else max=b;

for i=1 to n : : 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++、Visual C、Java .. Tips: http://www.ioccc.org/ The International Obfuscated C Code Contest,世界上最难懂的C编码大赛 Horton.c §1.3 简单的C程序介绍 * 例C1_1: main() { printf(“Hello,world\n”); } * 例C1_2: #include #include #include

#define TRUE 1 #define FALSE 0

int i=0; void put_msg(void);

main() { int answer; clrscr(); printf("Do you want to see the message ?\n"); printf("Enter 0 for No, 1 for Yes==>"); scanf("%d",&answer); if (answer==TRUE) put_msg(); else puts("Goodbye for now."); }

void put_msg(void) { clrscr(); for(i=0;i<=10;i++) printf("Test string #%d.\n",i); } 4

* 从上例中可以看出,C程序主要结构如下: 预处理指令 include define 全程变量说明 函数 变量 main()主函数体 用户自定义函数体 * C语言主要由函数组成,结构化特性好,便于代码共享。 * 函数由函数说明、函数体构成 * C语言总是从main()函数开始执行,而不管main()位于程序的什么地方。 * C语言书写格式自由,如main(){printf(“Hello,world.\n”);}但应培养良好的编程习惯。 * C语句后面有; * 注解/*..*/

§1.4 C程序上机步骤 §1.4.1 C语言版本 * 不同操作系统版本(MAC、OS/2、UNIX、DOS、WINDOWS.. * 同操作系统下不同公司版本TC、BC++、MS C、Watcom C §1.4.2 Turbo C特色 * 集成环境。提供一个综合开发环境,包括编辑、编译、链接、调试。 * 强大的联机帮助功能 * 强大的图形功能 * 目标代码质量高20%~30% * 能直接嵌入汇编语言 * 能直接调用系统功能 §1.4.3 Turbo C使用

第二章 数据类型、运算符与表达式 §2.1 C的数据类型 §2.1.1数据类型 * 数据是程序的主要处理对象,语言的特征主要反映在数据类型上,如COBOL主要处理表型数据,人工智能语言主要处理逻辑型数据。C语言的数据类型非常丰富,可以处理各种类型的数据。 * 区分数据类型的意义: * 节约内存 * 小内存数据运行速度快 §2.1.2 C语言的主要数据类型 * 基本类型 * 整型 * 字符型 5

* 浮点型 * 枚举型 * 构造类型 * 数组 * 结构体 * 公用体 * 指针类型 * 空类型 Type Length Range unsigned char 8 bits 0 to 255 char 8 bits -128 to 127 enum 16 bits -32,768 to 32,767 unsigned int 16 bits 0 to 65,535 short int 16 bits -32,768 to 32,767 int 16 bits -32,768 to 32,767 unsigned long 32 bits 0 to 4,294,967,295 long 32 bits -2,147,483,648 to 2,147,483,647 float 32 bits 3.4 * (10**-38) to 3.4 * (10**+38) double 64 bits 1.7 * (10**-308) to 1.7 * (10**+308) long double 80 bits 3.4 * (10**-4932) to 1.1 * (10**+4932)

§2.2 常量与变量 §2.2.1常量和符号常量 * 程序执行过程中不改变的量称为常量,如3.14159,16,‟:‟.. * 常量的作用主要是便于理解,便于修改和移植,如 #define PI 3.14159 #define EOF 0 #define TRUE 1 * 常量也可以用标识符进行命名,如上例中的PI、TRUE等,但符号常量不能被赋值。如下例是错误的: #define DOT „.‟ 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 * 每个变量在使用前都必须进行强制定义,“先定义,后使用”。如: int num; float depth; char gender; 这点与BASIC中有默认定义不同。变量定义的意义在于: * 合理分配内存 * 防止非法运算,如float a,b,c;c=a%b; * 防止误写变量名 * 例C2_1 #include void main() { int lower,upper,step; float fahr,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: #include void main() { float fahr,celsius; for(fahr=0;fahr<=300;fahr+=20) { celsius=(5.0/9.0)*(fahr-32.0);