C语言基础学习笔记.doc
《C语言基础学习笔记.doc》由会员分享,可在线阅读,更多相关《C语言基础学习笔记.doc(55页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateC语言基础学习笔记C语言基础学习笔记一:程序设计与算法对于理工科的大学生而言,掌握一门高级语言及其基本的编程技能是必需的。大学学习,除了掌握本专业系统的基础知识外,科学精神的培养、思维方法的锻炼、严谨踏实的科研作风养成,以及分析问题、解决问题的能力的训练,都是日后工作的基础。学习计算机语言,正是一种十分有益的训练方式,而语言本身又是与计算机进行交互的有力的工具。C语言
2、之所以被称为中级语言,是因为它把高级语言的成分同汇编语言的功能结合起来了。11结构C语言是块结构( b l o c k - s t r u c t u r e d)语言,但是它还是常被称为结构化语言。这是因为它在结构上类似于A L G O L、P a s c a l和M o d u l a - 2(从技术上讲,块结构语言允许在过程和函数中定义过程或函数。用这种方法,全局和局部的概念可以通过“作用域”规则加以扩展,“作用域”管理变量和过程的“可见性”。因为C语言不允许在函数中定义函数,所以不能称之为通常意义上的块结构语言)。结构化语言的显著特征是代码和数据的分离。这种语言能够把执行某个特殊任务的
3、指令和数据从程序的其余部分分离出去、隐藏起来。C语言的主要结构成分是函数C的独立子程序。在C语言中,函数是一种构件(程序块),是完成程序功能的基本构件。函数允许一个程序的诸任务被分别定义和编码,使程序模块化。函数的基本形式是:函数类型函数名(形式参数)形式参数说明;数据说明部分;语句部分;其中:函数头 包括函数说明、函数名和圆括号中的形式参数(如int volume(a,b,c)),如果函数调用无参数传递,圆括号中形式参数为空(如void proc()函数)。形式参数指定函数调用传递参数的数据类型(如例1 . 3中语句int a,b,c;)。函数体 包括函数体内使用的数据说明和执行函数功能的语
4、句,花括号和表示函数体的开始和结束。开发一个C程序,包括以下四步:1) 程序设计程序设计亦称程序编辑。程序员用任一编辑软件(编辑器)将编写好的C程序输入计算机,并以文本文件的形式保存在计算机的磁盘上。编辑的结果是建立C源程序文件。C程序习惯上使用小写英文字母,常量和其他用途的符号可用大写字母。C语言对大、小写字母是有区别的。关键字必须小写。2) 程序编译编译是指将编辑好的源文件翻译成二进制目标代码的过程。编译过程是使用C语言提供的编译程序(编译器)完成的。不同操作系统下的各种编译器的使用命令不完全相同,使用时应注意计算机环境。编译时,编译器首先要对源程序中的每一个语句检查语法错误,当发现错误时
5、,就在屏幕上显示错误的位置和错误类型的信息。此时,要再次调用编辑器进行查错修改。然后,再进行编译,直至排除所有语法和语义错误。正确的源程序文件经过编译后在磁盘上生成目标文件。3 ) 链接程序编译后产生的目标文件是可重定位的程序模块,不能直接运行。链接就是把目标文件和其他分别进行编译生成的目标程序模块(如果有的话)及系统提供的标准库函数链接在一起,生成可以运行的可执行文件的过程。链接过程使用C语言提供的链接程序(链接器)完成,生成的可执行文件存在磁盘中。4) 程序运行生成可执行文件后,就可以在操作系统控制下运行。若执行程序后达到预期目的,则C程序的开发工作到此完成。否则,要进一步检查修改源程序,
6、重复编辑编译链接运行的过程,直到取得预期结果为止。大部分C语言都提供一个独立的开发集成环境,它可将上述四步连贯在一个程序之中。12算法:什么是程序?程序= 数据结构+ 算法。程序设计的关键之一,是解题的方法与步骤,是算法。学习高级语言的重点,就是掌握分析问题、解决问题的方法,就是锻炼分析、分解,最终归纳整理出算法的能力。与之相对应,具体语言,如C语言的语法是工具,是算法的一个具体实现。所以在高级语言的学习中,一方面应熟练掌握该语言的语法,因为它是算法实现的基础,另一方面必须认识到算法的重要性,加强思维训练,以写出高质量的程序。二:数据类型、运算符和表达式21数据类型C语言有五种基本数据类型:字
7、符、整型、单精度实型、双精度实型和空类型。C语言还提供了几种聚合类型(aggregate types),包括数组、指针、结构、共用体(联合)、位域和枚举。为了使用方便,C编译程序允许使用整型的简写形式: short int 简写为short。 long int 简写为long。 unsigned short int 简写为unsigned short。 unsigned int 简写为unsigned。 unsigned long int 简写为unsigned long。即int可缺省。22变量在C语言中,标识符是对变量、函数标号和其它各种用户定义对象的命名。标识符的长度可以是一个或多个字符
8、。绝大多数情况下,标识符的第一个字符必须是字母或下划线,随后的字符必须是字母、数字或下划线(某些C语言编译器可能不允许下划线作为标识符的起始字符)。字符常量是指用一对单引号括起来的一个字符。如 a,9,!。字符常量中的单引号只起定界作用并不表示字符本身。单引号中的字符不能是单引号()和反斜杠(),它们特有的表示法在转义字符中介绍。在C语言中,字符是按其所对应的ASCII码值来存储的,一个字符占一个字节。由于C语言中字符常量是按整数(short型)存储的,所以字符常量可以像整数一样在程序中参与相关的运算。C语言中,字符串常量在内存中存储时,系统自动在字符串的末尾加一个“串结束标志”,即ASCII
9、码值为0的字符N U L L,常用 0表示。因此在程序中,长度为n个字符的字符串常量,在内存中占有n + 1个字节的存储空间。其值可以改变的量称为变量。一个变量应该有一个名字(标识符),在内存中占据一定的存储单元,在该存储单元中存放变量的值。请注意区分变量名和变量值这两个不同的概念。实型常量又称浮点常量,是一个十进制表示的符号实数。符号实数的值包括整数部分、尾数部分和指数部分。实型常量的形式如下:digits.digitsE|e+|-digits在此digits是一位或多位十进制数字(从09)。E(也可用e)是指数符号。小数点之前是整数部分,小数点之后是尾数部分,它们是可省略的。小数点在没有尾
10、数时可省略。C语言允许将程序中的常量定义为一个标识符,称为符号常量。符号常量一般使用大写英文字母表示,以区别于一般用小写字母表示的变量。符号常量在使用前必须先定义,定义的形式是:#define ; ;#define是C语言的预处理命令,它表示经定义的符号常量在程序运行前将由其对应的常量替换。字符变量用来存放字符常量,注意只能存放一个字符,不要以为在一个字符变量中可以放字符串。23运算符C语言有三大运算符:算术、关系与逻辑、位操作。移位操作可对外部设备(如D / A转换器)的输入和状态信息进行译码,移位操作还可用于整数的快速乘除运算。如表2 - 9所示(假定移位时补0),左移一位等效于乘2,而右
11、移一位等效于除以2。反码操作符为。的作用是将特定变量的各位状态取反,即将所有的1位置成0,所有的0位置成1。位操作符经常用在加密程序中。 C语言提供了一个可以代替某些i f - t h e n - e l s e语句的简便易用的操作符?。该操作符是三元的,其一般形式为:EXP1?EXP2:EXP3EXP1,EXP2和EXP3是表达式,注意冒号的用法和位置。操作符“?”作用是这样的,在计算EXP1之后,如果数值为True,则计算EXP2,并将结果作为整个表达式的数值;如果EXP1的值为Flase,则计算EXP3,并以它的结果作为整个表达式的值。逗号操作符和标准英语的and是同义词。24表达式混合
12、于同一表达式中的不同类型常量及变量,应均变换为同一类型的量。C语言的编译程序将所有操作数变换为与最大类型操作数同类型。变换以一次一操作的方式进行。具体规则如下:1 ) 所有c h a r及short int 型量转为i n t型,所有f l o a t转换为d o u b l e。2) 如操作数对中一个为long double ,另一个转换为long double。 要不然,一个为d o u b l e,另一个转为d o u b l e。 要不然,一个为l o n g,另一个转为l o n g。 要不然,一个为u n s i g n e d,另一个转为u n s i g n e d。一旦运用以
13、上规则。每一对操作数均变为同类型。注意,规则2 )有几种必须依次应用的条件。可以通过称为c a s t的构成符强迫一表达式变为特定类型。其一般形式为:(type)expression(type)是标准C语言中的一个数据类型。为了增加可读性,可以随意在表达式中插入tab和空格符。冗余的括号并不导致错误或减慢表达式的执行速度。冗余的括号并不导致错误或减慢表达式的执行速度。三:程序控制语句3.1 程序的三种基本结构C语言中,有一组相关的控制语句,用以实现选择结构与循环结构:选择控制语句; if;switch、case循环控制语句: for、while、dowhile转移控制语句: break、con
14、tinue、goto3.2 数据的输入与输出最常用的输入输出函数有scanf()、printf()、getchar()和putchar()% ; ;d 输入一个十进制整数o 输入一个八进制整数x 输入一个十六进制整数f 输入一个小数形式的浮点数e 输入一个指数形式的浮点数c 输入一个字符s 输入一个字符串putchar() 与getchar()是对单个字符进行输入输出的函数;getchar()的功能是返回键盘输入的一个字符,它不带任何参数;putchar()的作用是向屏幕上输出一个字符,它的功能与printf函数中的%c相当。3.3 循环控制语句在循环语句中, break语句的作用是在循环体中
15、测试到应立即结束循环时,使控制立即跳出循环结构,转而执行循环语句后的语句。continue语句只能用于循环结构中,一旦执行了continue语句,程序就跳过循环体中位于该语句后的所有语句,提前结束本次循环周期并开始新一轮循环。四:函数程序员在设计一个复杂的应用程序时,往往也是把整个程序划分为若干功能较为单一的程序模块,然后分别予以实现,最后再把所有的程序模块像搭积木一样装配起来,这种在程序设计中分而治之的策略,被称为模块化程序设计方法。4.1 函数说明与返回值当一个函数没有明确说明类型时, C语言的编译程序自动将整型( i n t)作为这个函数的缺省类型,缺省类型适用于很大一部分函数。当有必要
16、返回其它类型数据时,需要分两步处理:首先,必须给函数以明确的类型说明符;其次,函数类型的说明必须处于对它的首次调用之前。当被说明为整型的函数返回字符时,这个字符值被转换为整数。因为C语言以不加说明的方式进行字符型与整型之间的数据转换,因而多数情况下,返回字符值的函数并不是说明为返回字符值,而是由函数的这种字符型向整型的缺省类型转换隐含实现的。返回语句r e t u r n有两个重要用途。第一,它使得内含它的那个函数立即退出,也就是使程序返回到调用语句处继续进行。第二,它可以用来回送一个数值。所有非空值的函数都会返回一个值。大部分函数属于三种类型。第一种类型是简单计算型函数设计成对变量进行运算,
17、并且返回计算值。第二类函数处理信息,并且返回一个值,仅以此表示处理的成功或失败。例如write( ),用于向磁盘文件写信息。如果写操作成功了, write( )返回写入的字节数,当函数返回- 1时,标志写操作失败。最后一类函数没有明确的返回值。实际上这类函数是严格的过程型函数,不产生值。4.2 函数的作用域规则C语言中所有的函数都处于同一作用域级别上。这就是说,把一个函数定义于另一个函数内部是不可能的。全局变量和某一函数的局部变量同名时,该函数对该名的所有访问仅针对局部变量,对全局变量无影响.动态存储变量可以是函数的形式参数、局部变量、函数调用时的现场保护和返回地址。这些动态存储变量在函数调用
18、时分配存储空间,函数结束时释放存储空间。在编译时分配存储空间的变量称为静态存储变量,其定义形式为在变量定义的前面加上关键字“static”。4.3 函数的调用与参数 函数定义时填入的参数我们称之为形式参数,简称形参,它们同函数内部的局部变量作用相同。形参的定义是在函数名之后和函数开始的花括号之前。调用时填入的参数,我们称之为实际参数,简称实参。一般说来,有两种方法可以把参数传递给函数。第一种叫做“赋值调用”(call by value),这种方法是把参数的值复制到函数的形式参数中。第二种方法是“引用调用”(call by reference)。这种方法是把参数的地址复制给形式参数,在函数中,这
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 基础 学习 笔记
限制150内