您好,欢迎访问三七文档
C语言基本语法归纳及实例介绍计算机教学中心李雪飞提纲C语言概况C程序的结构数据类型、运算符与表达式最简单的C程序设计—顺序程序设计选择结构程序设计循环控制数组函数指针C语言概况C的优点1)、高效2)、可移植3)、灵活C的缺点可读性差,学习应用较难。C语言概况--简单的C程序[例1.1]main(){printf(ThisisaCprogram.\n);}该程序的作用:在屏幕上输出一行信息:ThisisaCprogram.1、main()表示“主函数”,每一个C程序都必须有且只有一个主函数。2、main函数体由大括号{}括起来。3、语句后面有一个分号。.4、printf()是C语言的输出函数。双引号内的字符被原样输出。5、“\n”是换行符,即在输出ThisisaCprogram之后换行。[例1.2]求两数之和。main(){inta,b,sum;/*定义三个整型变量。(int=integer)。*/a=123;b=456;/*把常数123赋给变量a,把常数456赋给变量b*/sum=a+b;/*计算a、b之和,并把和值赋变量给sum*/printf(“Sumis%d\n”,sum);/*输出sum的值*/}程序的输出信息为:sumis579/**/中间的内容表示“注释”。注释是程序员对程序某部分的功能和作用所做的说明,是给人看的,对编译和运行不起作用。%d表示输出的数据类型是十进制整数类型。在输出时,该位置用对应变量sum的值代替。[例1.3]输入两个整数,输出其中的最大值。intmax(intx,inty)/*求两数最大值函数max*/{intz;if(xy)z=x;elsez=y;return(z);/*将z的值返回给主函数main*/}/*返回值通过函数名max带回main函数调用处*/main()/*主函数*/{inta,b,c;scanf(“%d,%d”,&a,&b);/*输入a,b的值*/c=max(a,b);/*调用max函数,将实参a,b的值给形参x,y*/printf(“max=%d”,c);/*输出最大值*/}C程序的结构1、C程序是由函数构成的。一个C源程序至少包括一个函数(main函数:它代表程序开始执行的起始位置),也可以包括一个main函数和若干其它函数。因此,函数是C程序的基本单位。C程序中有三种类型的函数:1).main():主函数,每一个C程序必须且只有一个main()函数。2).开发系统提供的特殊函数,如printf()、scanf()等。TurboC开发系统提供三百多个函数。3).程序员自己设计的函数,如例1.3中的函数max()。C的函数相当于其它语言中的子程序。用函数来实现特定的功能。可以说C是函数式的语言。程序全部工作都是由函数来完成的。C的这种特性很容易实现模块化。C程序的结构C程序的结构2、一个函数由两部分组成:(1)函数的说明部分。包括函数名、函数类型、函数属性、函数参数(形参)名、形式参数类型。如intmax(intx,inty)函数类型函数名函数参数类型函数参数名函数参数类型函数参数名(2)函数体。即函数说明部分下面的大括弧{...}内的部分。如果一个函数内有多个大括弧,则最外层的一对{}为函数体的范围。函数体一般包括:①变量定义。如[例1.3]中main函数中的“inta,b,c;”②执行部分。由若干个语句组成。当然,在某些情况下也可以没有变量定义部分(例如[例1.1])。甚至可以既无变量定义也无执行部分,如:dump(){}它是一个空函数,什么也不干,但这是合法的。C程序的结构3、一个C程序总是从main函数开始执行的,而不论main函数在整个程序中的位置如何(main函数可以放在程序最前头,也可以放在程序最后,或在一些函数之前在另一些函数之后)。4、C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。C程序没有行号,也不象fortran或cobol那样严格规定书写格式(语句必须从某一列开始书写)。C程序的结构5、每个语句和数据定义的最后必须有一个分号。分号是C语句的必要组成部分。例如:c=a+b;分号不可少。即使是程序中最后一个语句也应包含分号(这是和pascal语言不同的)。6、C语言本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成的。C对输入输出实行“函数化”。7、可以用/*……*/对C程序中的任何部分作注释。可以增加程序的可读性。C程序的结构程序开发过程……C源代码编译程序目标代码链接程序可执行代码库C源代码编译程序目标代码数据类型、运算符与表达式§3.1信息在计算机中的存储与表示计算机的基本功能是进行数据的计算和加工处理,程序和数据在计算机的存储是用二进制形式表示的。数与字符是自然信息与计算机二进制信息的中转环节。数制:就是用一组固定的数字和一套统一的规则来表示数据的方法。日常使用的十进制(逢十进一)机器内部的二进制(逢二进一)其它常用的数制:八进制,十六进制不同数制之间的对应表示十进制decimal二进制binary八进制octal十六进制hexdecimal000011112102231133410044510155611066711177十进制decimal二进制binary八进制octal十六进制hexdecimal810008910019101010111011121100131101141110151111161000010ABCDEF201011121314151617数制间的转换1.二、八、十六进制转换为十进制按权展开法。例:(101.11)2=1×22+0×21+1×20+1×2-1+1×2-2=(5.75)10(127.4)8=1×82+2×81+7×80+4×2-1=(87.5)10数制间的转换2.十进制转换为二、八、十六进制整数部分:除R取余法(先余为低,后余为高)小数部分:乘R取整法(先整为高,后整为低)转换精度问题例:(4.6875)10=(?)2结果:(100.1011)2(87.5)10=(?)8结果:(127.47)8数制间的转换3.二进制与八、十六进制之间的转换八、十六进制转换为二进制一分为三、一分为四例:(23.54)8=(010011.101100)2=(10011.1011)2(13.B)16=(00010011.1011)2=(10011.1011)2二进制转换为八、十六进制合三为一、合四为一§3.2C的数据类型数据结构指的是数据的组织形式。不同的计算机语言所允许定义和使用的数据结构是不同的。处理同一类问题,如果数据结构不同,算法也会不同。所以,我们应当综合考虑算法和数据结构,选择最佳的数据结构和算法。数据结构+算法=程序对程序当中所用到的所有数据都必须指定其数据类型。C语言的数据结构是以数据类型形式出现的。C的数据类型如下:§3.2常量与变量3.2.1常量和符号常量3.2.2变量3.2.1常量和符号常量在程序运行过程中,其值不能被改变的量称为常量。常量分为:(1)整型常量;如12,0,-3等;(2)实型常量;如4.6,-1.23等;(3)字符常量;如‘a’,‘d’等;(将在后面的小节中详细讲解)常量一般从其字面形式即可判别,这种常量称为字面常量或直接常量。也可以用一个标识符代表一个常量。如例3.1例3.1符号常量的使用。#definePRICE30main(){intnum,total;num=10;total=num*PRICE;printf(“total=%d”,total);}程序中用#define命令行定义PRICE代表常量30,此后凡在本文件中出现的PRICE都代表30,可以和常量一样进行运算。程序运行结果为:total=300符号常量用一个标识符代表一个常量的,称为符号常量,即标识符形式的常量。注意:符号常量不同于变量。符号常量的值在其作用域(例3.1中即为main()函数)内不能被改变,也不能被再次赋值。如:在主函数main中再次用“PRICE=40”语句对PRICE赋值是错误的。为了方便区分符号常量与变量,习惯上符号常量名大写,变量名小写。使用符号常量的好处(1)含义清楚。定义符号常量名时应考虑“见名知意”,在一个规范的程序中不提倡使用很多的常数,如:sum=15*30*23.5*43.在检查程序时搞不清各个常数究竟代表什么。应尽量使用“见名知意”的变量名和符号常量。(2)在需要改变一个常量时能够做到“一改全改”。例如,在程序中多处用到某物品的价格,如果价格用常数表示,则在价格进行调整时,需要在程序中作多处修改;若使用符号常量PRICE代表价格,则只需在定义该符号常量处作一次修改即可。如:#definePRICE=353.2.2变量其值可以改变的量称为变量。一个变量应该有一个名字,在内存中占据一定的存储单元。在该存储单元中存放该变量的值。注意:变量名与变量值的区别。3a变量名(一个符号地址,在对程序编译时系统分配给它一个内存地址)变量值(在程序中对变量取值,实际上是通过变量名找到相应内存地址,从其存储单元中读取数据)存储单元变量的使用是程序设计的中心环节之一,应掌握:(1)变量的定义:某一时刻值是确定的,不同时刻可能取不同的值,其改变是不连续的。(2)变量的两个要素变量名:它是一个标识符,代表一定的内存存储单元,存储单元有一个地址。C语言以“&变量名”表示变量的地址。变量值:它存放在相应的存储单元中,C语言在使用变量名时,实际上是在使用存储单元中存放的变量的值。变量的命名规则变量的命名符合一般标识符(名字)的命名规则。(1)“字母数字串”;以字母开头,后边跟以字母或者数字,下划线等同于字母。(汉字看作字母,但编程时尽量避免使用汉字,因为汉字的兼容性不好)(2)建议长度不超过8个字符(可移植性要求);(3)区分大小写(一般使用小写字母);(4)尽量做到“见名知意”,避免使用代数符号(如a,b);(5)不能有空格,不能有小数点。变量的强制定义在C语言中,要求对所有用到的变量作强制定义,就是“先定义,后使用”。这样做的目的是:(1)凡是没有被事先定义的,不作为变量名,这就能保证程序中变量名使用的正确;(2)每一个变量被指定为一确定类型,在编译时就能为其分配相应的存储单元;(3)制定每一变量属于一个类型,这就便于在编译时,据此检查该变量所进行的运算是否合法。§3.3整型数据3.3.1整型常量的表示方法3.3.2整型变量3.3.3整型常量的类型3.3.1整型常量的表示方法整形常量即整常数。C整常数可用以下三种形式表示:(1)十进制整数。如123、-456、0(2)八进制整数。以0开头的数是八进制数。如0123表示八进制数123,即(123)8,等于十进制数83(1×82+2×81+3×80=83)。-011表示八进制数-11,即十进制数-9。(3)十六进制整数。以0x开头的数是16进制数。如0x123,代表16进制数123。3.3.2整型变量1.整型数据在内存中的存放形式2.整型变量的分类3.整型变量的定义4.整型数据的溢出整型变量的分类(1)基本型,以int表示。(2)短整型,以shortint表示,或以short表示。(3)长整型,以longint表示,或以long表示。(4)无符号型,以存储单元中全部二进位(bit)存放数本身,而不必空出最高位作为符号位。无符号型中又分为无符号整型、无符号短整型和无符号长整型,分别以unsignedint,unsignedshort,unsignedlong表示。如果整量在内存中占2个字节(16位),则int型变量数的范围为-32768~32767。而unsignedint型变量数的范围为0~65535.各类数据所占内存字节数C标准没有具体规定以上各类数据所占内存的字节数,只要求long型数据长度不短于int型,short型不长于int型。具体如何实现,有各计算机系
本文标题:C语言基本语法归纳
链接地址:https://www.777doc.com/doc-7028174 .html