版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章 C程序设计的初步知识,C语言既具有高级语言的一切功能; 又具有低级语言的一些功能; 既可用来编写系统软件,也可编写应用软件。,2.1简单C语言程序构成和格式,例2.1 输入矩形的两条边长,求矩形面积 #include “stdio.h” main( ) float a , b , area ; a = 1.2; b = 3.6; area = a * b; printf(“a = %f , b = %f , area = %f n”, a , b , area ); ,例2. main ( ) /*求两个数之和*/ int a, b, sum; /*这是定义变量*/ a=123; b=
2、456; sum=a+b; printf(sum is %dn, sum); ,例3.main( ) /* 主函数*/ int a, b, c; /*定义变量*/ scanf(%d, %d, ) /*输出c的值*/ ,int max (x, y) int x, y; /*对形参x、y作类型定义*/ int z; /*max函用到的变量z,也要加以定义*/ if (xy) z=x; else z=y; return (z); /*将z的值返回,通过max带回调用处*/ ,例2.5 已知半径,求圆面积 /* s=PI*r*r */ #include #define PI 3.1416 void m
3、ain() float r,s; r=5; s=PI*r*r; printf(“ns=%f”,s); ,s=PI*r*r r,或半径值由键盘输入,由函数 area 计算面积: #include #define PI 3.1416 void main() float r,s; float area(float); scanf(“%f”, ,float area(float r) float y; y=PI*r*r; return y; ,通过分析,初步看到: 1、main是主函数名,每个程序中必须有且只能有一个主函数。后面括号不可以省略。一个C程序总是从主函数开始执行。 2、左花括号“”和右花括
4、号“”之间是函数体部分。内通常有定义(说明)部分和执行部分,可执行语句必须放在定义部分之后,语句数量不限。 3、语句以分号结束,分号是语句的标志,是语句的一部分。 4、注释部分以“/*”开始,以“*/”结束,必须成对出现,“、”和“*”之间不能有空格,注释不能嵌套。 5、有些程序包含这样的命令行:#include “stdio.h”,命令行必须用“#”开头,行尾不能加分号。,C程序的书写规则 函数在程序中的位置没有限制,但程序运行总是从主函数开始直到主函数结束。 每条语句以分号(;)结束,一行内可写一条或多条语句,一条语句也可以写在一行或多行。 注释可以出现在任何地方。 大小写敏感。 建议每行
5、一条语句,不同层次的语句按缩进格式书写。,Turbo C+集成开发环境简介,C程序开发的一般步骤: 1.编辑源程序 2.编译源程序 3.连接 4.执行 Turbo C 2.0 的基本操作: TC 2.0 在 DOS/WIN32 分区中,要从这个分区启动才能进入。,启动TC 2.0 运行 c:tctc.exe 程序 建议安装到D盘(机房中C盘写保护),即: D:c:tctc ,设置环境: Options/Directories 设置TC工作目录,才能正确编译和连接。最好设置输出目录Output Directory,否则将生成的.obj和.exe文件都存于TC目录下,不利于文件管理。 ESC返回上
6、一级,Save Options保存设置。 各级菜单及其控制: F10键:击活主菜单 F6键:编辑窗口/信息窗口切换 方向键:进行菜单选择( Alt 键+菜单项首字母 ) Enter: 确认菜单项 子菜单:逐级选择 ESC:返回上一级,编辑源程序: 建立新文件 File/New 自动建立名为NONAME.C的文件 File/Load (F3键),输入一个程序文件名 调入已存在的文件 File/Pick (Alt-F3键),选择一个程序文件名 保存文件 File/Save (F2键), 保存文件(按原名) File/Write to 更名或复制 注意: 输入或选择文件后,转入编辑状态,最基本的编辑
7、操作: 输入内容:键入所需内容即可。 光标移动:上下左右箭头可移动光标。Home 键移至行首, End 键移至行尾。Pg_Up, Pg_Dn 向上,向下翻页。 增删内容:键入一般字符,即在光标处插入键入字符。按Ins 键可以转换插入/代换方式。退格键删光标左边字符,Del 键删光标处字符。Ctrl-Y 删光标所在行。 还有许多编辑操作,如块操作,寻找,代换等。可按F1键,进入帮助系统查看。,程序的编译和连接: 编译:Compile/ Compile to OBJ ,把源文件编译成为目标文件(扩展名为 .obj ,主文件名不变)。 连接:Compile/ link EXE File,把目标文件连
8、接为可执行文件(扩展名为 .exe ,主文件名不变)。 执行: File / OS Shell , dir ,存在同名 .obj 和 .exe 文件。键入主文件名(.exe 可以省略)后回车,即可运行该 .exe 文件。完毕后,用 exit 命令返回 tc 综合环境。,编译和连接最常用方法: F9键(Compile/Make EXE File 或 Build all) 注意: Project中的 Project name 项应为空!) Run/ Run (或Ctrl_F9键)直接编译,连接和运行 注意:用 Alt_F5 (User Screen)看结果 看结果 Alt-F5看运行结果 退出TC
9、 File/Quit(Alt-x),2.2 常量、变量和标识符,2.2.1 标识符 可用作变量名、符号名、函数名、数组名、文件名以及一些具有专门含义的名字,但一个程序内不能有重名。 组成:由字母、数字、下划线组成,且第一个字符必须为字母或下划线(不能以数字开头)。 tc 中,名字长度最大 32 个有效,不同的编译系统所规定的标识符的长度不同。 例:合法的名字: sum, number_1, _add 等 非法的名字: $56, 3a , a-5等。 注意:C程序中,标识符中大小写敏感。如:sum和Sum 是两个不同的变量。,C语言的标识符分为三类:,关键字:规定了一批标识符,在程序中有固定含义
10、,不能作它用。如if 、int等。(见附录1) 预定义标识符:如库函数(printf)和编译预处理命令(define等)。 用户标识符:由用户根据需要定义的标识符。如变量、函数、数组名等。,2.2.2 常量,在程序运行过程中,其值始终保持不变的量称为常量,常量可分: 整型常量 如 3,123,0 实型常量 如 4.6, 12.768, -3.0 ( 或-3.) 字符常量 如a, b , d ,3 字符串常量 如 “NCRE”,”beijing” 常量的类型在字面形式上是可区分的。,2.2.3 符号常量 为了减少具体常量的重复出现,以避免写错和使程序易读,常将一个常用的常量用一个名字代替-符号常
11、量。 一般用 #define命令来定义符号常量,且往往置于程序的开头。 代表常量的标识符习惯上用大写字母组成的名来表示。 符号常量不能再赋值。 好处:避免写错, 程序易读,易于修改。,已知半径,求圆面积 #include #define PI 3.1416 void main( ) float r,s; r=5; s=PI*r*r; printf(“ns=%f”,s); ,2.2.4 变量,其值可以改变的量称为变量。 (1)大小写敏感。 (2)不能与保留字重名。 (3)使用前,必须先定义,指明为何种类型,然后才能在程序中使用它。,#include int k=1,n=0; /定义整型变量k、n
12、 void main( ) float x, y; /定义浮点型变量x、y x=3.5; . ,变量包括变量名和变量值。 变量名 用标识符命名,对应一定数量的内存存贮单元,其单元数视变量类型而定。 变量值 相应存储单元所存储的内容。 C是一种强类型的语言。,即: 变量须先定义,后使用 如: int student ; student=30; 则若写成student=30, 则未定义, 编译时指出其错。, 一旦变量被定义,即可在编译时为其分配相应数量的单元。,一旦变量被定义, 其类型便确定。则可检查其运算的合法性。,如: a % b 表示a整除以b的余,则a,b必须为整型量。,变量也有类型的区分
13、 整形变量 实型变量 字符型变量等系统在编译时就根据其类型分配相应的存储单元。,2.3 整型数据,不带小数的数据称为整型数据, 分整型常量与整型变量. 2.3.1 整型常量 在C程序中,整数可用三种形式表示: 1. 十进制整常量 如:0,123,-456, . 2. 八进制整常量 以0作为开头,以示和十进制数区别 如: 0123,0457,. 3. 十六进制数 以0X或0 x作为开头,以示和八进制数区别,十六进制数中的字母a,b,c,d,e,f既可以用小写也可以用大写。 如:0X123,0 x49d 注意:只有十进制数可以是负数,而八进制和十六进制数只能是正整数,2.3.2 整型变量 及 2.
14、3.3整形数据的分类,一、分类: 分为四种:基本型、短整型、长整型、无符号型,2.短整型: 用short int或 short定义,3.长整型: 用long 或 long int 定义,1.基本型: 用int定义,4.无符号型: 不存放符号,即不带符号数.,又分无符号整型,无符号短整型, 无符号长整型。,上述各种类型所占内存单元数及取值范围视不同机器而不同。如表,表中:215值为32768; 231值为2147483648 216值为65536; 232值为4294967296,二、定义方法 整型变量分别以下列方式定义,2. 短整型 short int 或 short a, b, c;,3.
15、长整型 long int 或 long a, b, c; 无论是短整型还是长整型数,都被识别为有符号整数。,1. 基本整型: int a, b, c; 也可在定义变量的同时给变量赋初值,称变量的初始化 int i=1,j=0,k=2;,4. 无符号型 unsigned a, b, c; unsigned short a, b, c; unsigned long a, b, c;,例: 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
16、; printf(a+u=%d, b+u=%dn,c,d); ,由此看到: 不同类型的整型数据可进行算术运算。有一定规则. 注:无符号整数在数的末尾应该加上字母后缀u或U,无符号常量不能表示成小于0的负数。,运行结果为 a+u=22, b+u= 14,2.3.3 整数在内存中的存储形式,内存的最小存储单位为“位(bite)” 8个二进制位组成一个“字节(byte)” 若干个字节组成一个“字(word)”,用一个字来存放一条机器指令或一个数据,一个字含有多少个字节随机器的不同而不同,称为计算机的“字长”。 通常把一个字节中的最右边一位称为最低位,最左边一位称为最高位。对于有符号整数,其中最高位用
17、来存放整数的符号,称为符号位,正数放0,负数放1。,正整数:按“源码形式”存放,例如:整数5在内存中的二进制码为: 00000000 00000101,负整数:以“补码”的形式存放,负整数补码=负整数反码+1 例如:整数-5的补码的求法 原码:10000000 00000101 反码:11111111 11111010 补码:11111111 11111011,无符号整数,用两个字节存放一个整数时,若说明为无符号整数,其中最高位不再用来存放整数的符号。,例如: int a; a=32769; ,例如: long a; a=32769; ,对整型变量赋值必须严格按照其允许值的范围进行,2.4 实
18、型数据,带小数的数据均称为实型数据,实型数据又分为常量与变量。,2.4.1 实型常量,在C程序中,实型常量可用两种形式表示: 1. 小数形式 如:0.256, 123.0, 0.0, . . . . . . 注意:小数形式表示的实型常量必须要有小数点。 2. 指数形式 如: 1.23e3 或1.23E+3,代表1.23*103, 注意:e或E前必须有数字,其后必须为整数。且在e或E的前后以及数字之间不能插入空格。 如 e3, 3e2.5, -E4 都是错的。,2.4.2 实型变量,实型变量又分为单精度(float) 和双精度(double) 两种。 1. 单精度(float)型 用float
19、说明,占四个字节。 2. 双精度(double)型 用double 说明,占8个字节。,例 #include void main( ) int a=5, b=10; / 定义 int 变量 a、b float x; /定义 float 变量x double y, w=1.234E-2; /定义double 变量y、w x=a*3.5/2.7; y=b*x+w; a=a+b; printf(“n a=%d, b=%d, x=%f”, a,b,x) printf(“n y=%10.3e, w=%12.3e”,y,w); ,2.5 算术表达式,运算符: 运算的符号表示。 C语言有丰富的运算功能,先简
20、述之,2.5.1. 基本的算术运算符,算术运算符 +、 、 、 /、 % 分别为加、减、乘、除、求余运算符。 这些运算符需要两个运算对象,称为双目运算符,+ 加法 正值 3+6, +3, 减法 负值 6 4, 5, 乘法 38,/ 除法 8 / 5,% 求余 7 % 4 的值为3,双目运算符的两个操作数要类型一致。 若类型不一致系统会根据一定的规则进行转换。转换规律见附录二。,“+”和“-”也可作为单目运算符。,求余运算符的对象只能是整型,注意: 1. 如果双目运算符两边运算数的类型一致,则所得结果的类型与运算数和类型一致。否则系统将自动进行类型转换,使运算符两边的类型达到一致后,再进行运算。
21、如两整数相除,商为整数,如5/3=1,若至少有一个为实数,则商为实数,如 5/10.0=0.5 2. 取余运算时,%两端的数必须是整型数据(即int,long 或 char 型数据) 。 3. 在C语言中,所有实型数的运算均以双精度方式进行。,2.5.2运算符的优先级、结合性和算术表达式,一、算术运算符的优先级 优先级: ( ) +、- (单目)、/、 % +、(双目) 二、算术运算符和圆括号的结合性 单目“+”和“-”结合性从右到左,其余从左到右。,考虑语句中运算符的操作次序: x=7*12%5+(a-b)/2.5,三、算术表达式: 用算术运算符和括号把运算对象连起来的,符合C语言语法规则的
22、式子。,C语言的任何表达式都有它的值,即经过算术运算得到的值。 例如, 设int a, b; float x, y; a=2, b=8, x=3.5, y=1.0;,2.5.3强制类型转换表达式,形式: (类型名) (表达式),例如: (double) a 将a转换为double,(int) (x+y) 将x+y转换为int,(float) (5%3) 将5%3转换为float,可利用强制类型转换运算符将一个算术表达式转换为所需类型,注: 1. 括号不能省略。 如: intx 会理解为变量intx.,2. 转换后的类型数据由系统分配一个中间变量存放,而原变量类型不变。 float x;,又如:
23、 (int) (x+y) 若省略: (int)x+y会变成将x转成整型.,(int)x; 则x本身仍为实型,而(int)x由一个中间变量(整)存放x的整数部分。,例: main ( ) float x; int i; x=3.6; i= (int) x; printf (x=%f,i=%d, x, i); ,则: x=3.600000, i=3,main() printf(“x4Fx4Bx21n”);/* 等价于printf(“OK!n”); */ printf(“x15 xABn”); 程序运行结果如下: ! 程序演示 2.6.2 字符变量 字符变量的类型关键字为char,一般占用1字节内存
24、单元。 1.变量值的存储 字符变量用来存储字符常量。将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号整数)存储到内存单元中。 例如, char ch1, ch2; /*定义两个字符变量:ch1,ch2*/ ch1=a; ch2=b; /*给字符变量赋值*/,总结以上类型转换,有二种: 1. 强制,另: 强制类型转换运算优先于算术运算符.,2. 系统自动,如: 若x为float, 则x%3不合法。 但可用(int)x%3来解决。(附录III介绍了优先级),2.6 赋值表达式,符号“ = ”为赋值运算符。由赋值运算符组成的表达式称为赋值表达式。形式如下:,变量名=表达式
25、 在程序中若多次给同一个变量赋值,则给变量取最后一次所赋的值。,2.6.1赋值运算和赋值表达式,几点说明: (1)优先级只高于逗号运算符。 (2)不能和“等于号”等同。 (3)x=y的作用是,将变量y的值赋给x。 (4)x=x 等号两边的运算对象意义不同。 (5)赋值运算符的左侧只能是变量,不能是表达式 (6)等号右边的表达式也可以是一个赋值表达式。 (6)赋值表达式的值。,2.6.2 复合的赋值表达式,C语言规定:凡是二目运算符均可构成复合运算符。 例:已有变量a,其值为9,计算表达式a+=a-=a+a的值。,例: a+=3; 相当于 a=a+3 x=y+8; 相当于 x=x (y+8) x
26、%=3; 相当于x=x%,在“ ”号之前加一个其它运算符可以构成复合赋值运算符。,2.6.3 赋值运算中的类型转换,在赋值运算中,只有赋值号两边的类型一致时,赋值操作才可以进行。若类型不一致,则系统进行自动转换,但这种转换仅限于数值之间,称为“赋值兼容”。,1. 将实型数据(无论单,双精度)赋给整型变量时,舍弃小数.,2. 整型数据赋给实型变量,数值不变,但按实数形式存放.,3. 字符型数据赋给整型变量时:,(1)字符无符号整型变量,则存入低8位,高8位补零。,(2)字符带符号整型变量,则字符高位扩展。,4. 将intlong int, 进行符号扩展。 即: 符号扩展, 低16位long 的低
27、16位。,5. long int int 则高16位截断。,6. 将unsigned int 型long int高位补0。,而位数相同部分赋值 unsigned int int unsigned long long unsigned short short,原值传送,但数据大小不能超值。 如: unsigned int a=65535; int b; b=a;则越界,7. 非unsigned 型长度相同的unsigned型数据,原样传送(包括符号位),2.7 自加、自减运算符和逗号运算符,2.7.1自加运算符(+)和自减运算符(-),+ + 自增1, 自减1,设有int i = 3;,则: + +i, i+都会使i变为4,但有区别:,+i: 先使i值+1,再使用i值;,i+: 先使用i值,再使i值+1.,j= +i; j=4, i=4. (i=i+1; j=i;),j=i+; j=3, i=4. (j=i; i=i+1),同理: i, i ,均使i值1,但:,又如: printf (i=%dn, i+); 结果: i=3,若: printf (i=%dn, +
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房地产个人自荐信模板5篇
- 房地产项目销售工作总结范文5篇
- 理解与尊重演讲稿简短(稿件7篇)
- 肉牛养殖有限公司废弃物及污水无害化处理可行性实施报告
- 机械厂项目可行性研究报告
- 临床诊疗指南及药物临床应用指南
- 轻涂白面牛卡纸、渣浆瓦楞原纸生产线技改项目可行性研究报告
- 关于未来的土地由谁种的调查问卷
- 融资租赁合同余额 2022
- 山东宅基地转让协议书模板
- 2024年企业数据存储与安全服务合同
- 2022年北京市公务员录用考试《行测》真题及答案解析
- 江苏省泰兴市2024-2025学年高三上学期期中考试语文试题(含答案)
- 家长会教学课件
- 律师事务所律师事务所风险管理手册
- 静脉曲张的护理查房课件
- 广东省邮政公司招聘2024年应届高校毕业生(152人)高频难、易错点500题模拟试题附带答案详解
- 四川省绵阳市高中2022级第一次诊断性考试数学试题(解析版)
- 2024年消防宣传月知识竞赛考试题库500题(含答案)
- 2024年典型事故案例警示教育手册15例
- 高一历史(中外历史纲要上册)期中测试卷及答案
评论
0/150
提交评论