1、C语言基本语法归纳及实例介绍,计算机教学中心 李雪飞,提 纲,C语言概况 C程序的结构 数据类型、运算符与表达式 最简单的C程序设计顺序程序设计 选择结构程序设计 循环控制 数组 函数 指针,C语言概况,C的优点 1)、高效 2)、可移植 3)、灵活 C的缺点 可读性差,学习应用较难。,C语言概况-简单的C程序,例1.1 main( ) printf(This is a C program.n); 该程序的作用:在屏幕上输出一行信息: This is a C program.,1、main( ) 表示“主函数”,每一个C程序都必须有且只有一个主函数。 2、main函数体由大括号 括起来。 3、。
2、语句后面有一个分号。. 4、printf( )是C语言的输出函数。双引号内的字符 被原样输出。 5、“n”是换行符,即在输出This is a C program之后换行。,例1.2求两数之和。 main( ) int a, b, sum; /*定义三个整型变量。(int = integer)。*/ a = 123;b = 456; /*把常数123赋给变量a,把常数456赋给变量b*/ sum = a + b; /*计算a、b之和,并把和值赋变量给sum*/ printf(“Sum is %dn”, sum);/*输出sum的值*/ 程序的输出信息为: sum is 579 /* */中间的。
3、内容表示“注释”。注释是程序员对程序某部分的功能和作用所做的说明,是给人看的,对编译和运行不起作用。 %d表示输出的数据类型是十进制整数类型。在输出时,该位置用对应变量sum的值代替。,例1.3输入两个整数,输出其中的最大值。,int max(int x,int y) /*求两数最大值函数max*/ int z;if(xy) z=x; else z=y;return (z); /*将z的值返回给主函数main*/ /*返回值通过函数名max带回main函数调用处*/ main ( ) /*主函数*/ int a,b,c;scanf(“%d,%d”, /*输出最大值*/,C程序的结构,、C 程序。
4、是由函数构成的。一个C源程序至少包括一个函数(main函数:它代表程序开始执行的起始位置),也可以包括一个main函数和若干其它函数。因此,函数是C程序的基本单位。,C程序中有三种类型的函数: 1).main():主函数,每一个C程序必须且只有一个main()函数。 2).开发系统提供的特殊函数,如printf( )、scanf( )等。 Turbo C开发系统提供三百多个函数。 3).程序员自己设计的函数,如例1.3中的函数max()。 C的函数相当于其它语言中的子程序。用函数来实现特定的功能。可以说C是函数式的语言。程序全部工作都是由函数来完成的。C的这种特性很容易实现模块化。,C程序的结。
5、构,C程序的结构,、一个函数由两部分组成: ()函数的说明部分。包括函数名、函数类型、函数属性、函数参数(形参)名、形式参数类型。 如int max (int x, int y) 函数类型 函数名 函数参数类型 函数参数名 函数参数类型 函数参数名 ()函数体。即函数说明部分下面的大括弧.内的部分。如果一个函数内有多个大括弧,则最外层的一对 为函数体的范围。,函数体一般包括: 变量定义。如例1.3中main函数中的“int a,b,c;” 执行部分。由若干个语句组成。 当然,在某些情况下也可以没有变量定义部分(例如 例1.1)。甚至可以既无变量定义也无执行部分,如:dump() 它是一个空函数。
6、,什么也不干,但这是合法的。,C程序的结构,、一个C程序总是从main函数开始执行的,而不论main函数在整个程序中的位置如何(main函数可以放在程序最前头,也可以放在程序最后,或在一些函数之前在另一些函数之后)。 、 C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。C程序没有行号,也不象fortran或cobol那样严格规定书写格式(语句必须从某一列开始书写)。,C程序的结构,、每个语句和数据定义的最后必须有一个分号。分号是C语句的必要组成部分。例如:c=a+b; 分号不可少。即使是程序中最后一个语句也应包含分号(这是和pascal语言不同的)。 、C语言本身没有输入输。
7、出语句。输入和输出的操作是由库函数scanf和printf等函数来完成的。C对输入输出实行“函数化”。 、可以用/*/对C程序中的任何部分作注释。可以增加程序的可读性。,C程序的结构,程序开发过程,数据类型、运算符与表达式,3.1 信息在计算机中的存储与表示,计算机的基本功能是进行数据的计算和加工处理,程序和数据在计算机的存储是用二进制形式表示的。 数与字符是自然信息与计算机二进制信息的中转环节。 数制:就是用一组固定的数字和一套统一的规则来表示数据的方法。 日常使用的十进制(逢十进一) 机器内部的二进制(逢二进一) 其它常用的数制:八进制,十六进制,不同数制之间的对应表示,10,A,B,C,。
8、D,E,F,20,10,11,12,13,14,15,16,17,数制间的转换,1.二、八、十六进制转换为十进制 按权展开法。 例: (101.11)2=122+021+120+12-1+12-2 =(5.75) 10 (127.4)8=182+281+780+42-1 =(87.5) 10,数制间的转换,2.十进制转换为二、八、十六进制 整数部分:除R取余法(先余为低,后余为高) 小数部分:乘R取整法(先整为高,后整为低) 转换精度问题 例: (4.6875)10=(?) 2 结果: (100.1011) 2 (87.5)10=(?) 8 结果: (127.47) 8,数制间的转换,3.二进。
9、制与八、十六进制之间的转换 八、十六进制转换为二进制 一分为三、一分为四 例: (23.54)8=(010011.101100) 2 =(10011.1011) 2 (13.B)16=(00010011.1011) 2 =(10011.1011) 2 二进制转换为八、十六进制 合三为一、合四为一,3.2 C的数据类型,数据结构指的是数据的组织形式。 不同的计算机语言所允许定义和使用的数据结构是不同的。 处理同一类问题,如果数据结构不同,算法也会不同。 所以,我们应当综合考虑算法和数据结构,选择最佳的数据结构和算法。 数据结构+算法=程序 对程序当中所用到的所有数据都必须指定其数据类型。 C语言。
10、的数据结构是以数据类型形式出现的。,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 符号常量的使用。,#define PRICE 30 main() int num,total; num=10; total=num*P。
11、RICE; printf(“total=%d”,total); 程序中用#define 命令行定义PRICE代表常量30,此后凡在本文件中出现的PRICE都代表30,可以和常量一样进行运算。 程序运行结果为:total=300,符号常量,用一个标识符代表一个常量的,称为符号常量,即标识符形式的常量。 注意:符号常量不同于变量。符号常量的值在其作用域(例3.1中即为main()函数)内不能被改变,也不能被再次赋值。如:在主函数main中再次用“PRICE=40”语句对PRICE赋值是错误的。 为了方便区分符号常量与变量,习惯上符号常量名大写,变量名小写。,使用符号常量的好处,(1)含义清楚。 定。
12、义符号常量名时应考虑“见名知意”,在一个规范的程序中不提倡使用很多的常数,如:sum=15*30*23.5*43.在检查程序时搞不清各个常数究竟代表什么。应尽量使用“见名知意”的变量名和符号常量。 (2)在需要改变一个常量时能够做到“一改全改”。例如,在程序中多处用到某物品的价格,如果价格用常数表示,则在价格进行调整时,需要在程序中作多处修改;若使用符号常量PRICE代表价格,则只需在定义该符号常量处作一次修改即可。如:#define PRICE=35,3.2.2 变量,其值可以改变的量称为变量。一个变量应该有一个名字,在内存中占据一定的存储单元。在该存储单元中存放该变量的值。 注意:变量名与。
13、变量值的区别。,3,a,变量名(一个符号地址,在对程序编译时系统分配给它一个内存地址),变量值(在程序中对变量取值,实际上是通过变量名找到相应内存地址,从其存储单元中读取数据),存储单元,变量的使用是程序设计的中心环节之一,应掌握: (1) 变量的定义:某一时刻值是确定的,不同时刻可能取不同的值,其改变是不连续的。 (2) 变量的两个要素 变量名:它是一个标识符,代表一定的内存存储单元,存储单元有一个地址。C语言以“(指定变量a,b为整型)unsigned short c,d; (指定变量c,d为无符号短整型)long e,f (指定变量e,f为长整型) 对变量的定义,一般是放在一个函数的开头。
14、部分的声明部分,变量的作用域是整个函数;也可以放在函数中的某一分程序内,但变量的作用域只限于该分程序内(这将在第8章介绍)。,例3.2 整型变量的定义与使用,main() int a,b,c,d; /*指定a,b,c,d为整型变量*/ unsigned u; /*指定u为无符号整型变量*/ a=12;b=-24;u=10; c=a+u;d=b+u; printf(“a+u=%d,b+u=%dn”,c,d); 运行结果为:a+u=22,b+u=-14 可以看到:不同种类的整型数据可以进行算术运算。在本例中是int型数据与unsigned int型数据进行加减运算。,3.4 实型数据,3.4.1 。
15、实型常量的表示方法 3.4.2 实型变量 3.4.3 实型常量的类型,3.4.1 实型常量的表示方法,实数在C语句中又称为浮点数。实数有两种表示形式: (1)十进制数形式。它由数字和小数点组成(注意必须有小数点)。0.123, .123, 123.0, 123., 0.0都是十进制数形式。 (2)指数形式。如123e3或123E3都代表123103 。但注意字母e(或E)之前必须有数字,且e后面指数必须为整数,如e3, 2.1e3.5, .e3, e等都不是合法的指数形式。,3.4.2 实型变量,1. 实型数据在内存中的存放形式 2. 实型变量的分类 3. 实型数据的舍入误差,3.4.2 实型。
16、变量,1. 实型数据在内存中的存放形式 2. 实型变量的分类 3. 实型数据的舍入误差,3.5 字符型数据,3.5.1 字符常量 3.5.2 字符变量 3.5.3 字符数据在内存中的存储形式 3.5.4 字符串常量,3.5.1 字符常量,C的字符常量是用单引号括起来的一个字符。如a, D, ?等都是字符常量。注意,a和A是不同的字符的常量。 除了以上形式的字符常量外,C还允许用一种特殊的字符常,就是以一个“”开关的字符序列。例如,前面已经遇到过的,在printf函数中的n,它代表一个“换行”符,这种非显示字符难以用一般形式的字符表示,故规定用这种特殊形式表示。 这类特殊的字符称为“转义字符”。,转义字符,a. 控制字符: t 水平制表(跳到下一个tab位置); r 回车; n 换行; b. 疑难字符: 单引号字符 反斜杠字符c. 指定ASCII码对应的字符:格式1: xh。
《C语言基本语法归纳-》由会员左****笑分享,可在线阅读,更多相关《C语言基本语法归纳-》请在金锄头文库上搜索。