已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章基本的程序语句,2.1C的数据类型及取值范围2.2标识符、常量与变量2.3整型数据2.4实型数据2.5字符型数据2.6变量赋初值,2.7各类数值型数据间的混合运算2.8算术运算符和算术表达式2.9赋值运算符和赋值表达式2.10逗号运算符和逗号表达式2.11.关系运算符和关系表达式2.12C语句结构2.13数据的输入/输出,2.1C的数据类型及取值范围1一个C程序包括的内容程序=算法+数据结构+程序设计方法+语言工具和环境2C的数据类型,数据类型,基本类型,构造类型,指针类型(),空类型(void),字符型(char),数值类型,枚举类型(enum),数组类型(),结构体类型(struct),共用体类型(union),整型(short,int,long,unsigned),实型,单精度型(float),双精度型(double),基本数据类型的长度及取值范围见p15,p16表2_3,表2_5ANSIC标准中的数据类型和长度见p16表2_6整型类型的简写形式见p17表2_7,标识符就是一个名字,用于标志某个事物,由字母、数字、下划线组成,由字母或下划线开头的字符串。,标识符可用来命名变量及作为常量名、函数名、类型名、标号和其他各种用户定义的对象命名。,一个程序内不得有重复名,不允许使用与C语言系统关键字(保留字)相同的标识符。,如:_sum,sum,stu_name,price30等为合法的标识符。,标识符,2.2标识符、常量与变量,下面的标识符是不合法的:,Number-of-moves(含有非法字符-)pieceflag(含有非法字符空格)5_6_7(数字开头),在定义标识符时应注意以下几点:,1.为了增加可读性,应尽量见名知意。如:sum,area,day,name等等,2.对标识符的命名应常用取简、专用取繁。,3.应尽量避免使用容易混淆的字符。例如:O(大写字母)o(小写字母)0(数字)I(大写字母)l(小写字母)1(数字)Z(大写字母)z(小写字母)2(数字),不要使用C语言关键字作为标识符C语言关键字列表,autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile,1常量和符号常量在程序运行过程中其值不能被改变的量称为常量。例2.1定义符号常量。#definePRICE30main()intnum,total;num=10;total=numPRICE;printf(“total=%d”,total);用define命令定义PRICE代表常量30,则在整个程序中出现的PRICE都代表30,可以和常量一样进行运算。,1C语言区分大小写,如:Price和price,系统会认为是两个不同的标识符。,2标识符的长度一般不超过8个字符,具体情况视不同系统而定。,设允许8个字符。,则:student_name,student_number,为同一名字。,在程序运行过程中其值可以被改变的量称为变量。变量名的命名符合标识命名规则:由字母开头,由字母、数字和下划线三种字符组成,长度不限制。如:sum,aver,class,day为合法变量名;$123,#33,3ds均为非法变量名;sum、Sum与SUM是三个不同的变量名。在C中,习惯用大写字母标识符号常量,用小写字母标识变量。变量必须先定义后使用。变量一经定义,就确定了类型。,2变量,1整型常量整型常量即整常数。整常数有三种表示形式:十进制数如:123,-456八进制数以数字0开头。如:0123,-011十六进制数以0 x开头。如:0 x123,-0 x122整型常量的类型其值在-32768+32767时为int型。其值在-2147483648+214748647时为longint型。常量中无unsigned型。但非负值的整型量可以赋值给unsigned型整变量,只要不产生溢出。在整型常量后面跟一个字母l或L,则认为是longint型常量。,2.3整型数据,1)整型变量的分类基本型以int表示。-3276832767(-215215-1)短整型以shortint或short表示。长整型以longint或long表示。-21474836482147483647(-231231-1)无符号型用全部二进制位(bit)存放数据,不能存放负数。unsignedint与unsignedshort:065535(0216-1)unsignedlong:04294967295(0232-1)2)整型变量的定义inta,b;unsignedshortc,d;longe,f;,3整型变量,1实型常量十进制数形式:0.123、.123、123、123.0、。指数形式:123e3或123E3都代表123103。2实型变量单精度float:占用4Bytes,7位有效数字,10381038。双精度double:占用8Bytes,15/16位有效数字,1030810308。如:floatx,y;/只能接收7位有效数字/doublez;,2.4实型数据,1字符常量字符常量是用单引号括起的1个字符。如:a、A、。以“”开头的字符序列在printf函数中控制输出格式(转义字符常量。见书p22表2-12)。n换行t横向跳格(下一个输出区)v竖向跳格b退格r回车f走纸换页反斜杠字符单引号ddd1到3位8进制数所代表的字符。如:101=A。xhh1到2位16进制数所代表的字符。,2.5字符型数据,P23:例2-6例2.2输出格式控制。main()printf(“abctderftgn”);printf(“htibbjk”);在打印机上输出:fabcgdehjik在屏幕上输出:fgdehjk,2字符变量字符变量只能存放1个字符。charc1,c2;c1=a;c2=b;,3字符数据在内存中的存储形式及使用方法例2.3,在C中,字符型数据与整型数据可以相互赋值和运算。,字符串常量是用双引号括起来的字符序列。如:“Howdoyoudo.”,“CHINA”,“a”,“$123.45”。注意:a是字符常量,而“a”是字符串常量。不能将一个字符串赋给一个字符变量。字符串其内部有结束标志0。C中没有字符串变量,需要用字符数组存放字符串。,4字符串常量,inta=3;floatf=3.56;charc=a;inta,b,c=5;/只给c赋初值/inta=3,b=3,c=3;/不能写成inta=b=c=3/,2.6变量赋初值,整型、单精度型、双精度型数据可以混合运算。不同类型的数据要先转换成同一类型,然后进行运算。转换规则如下:,2.7各类数值型数据间的混合运算,C规定,可以在定义变量的同时给变量赋初值。如:,注:箭头只表示转换方向,并不是依次转换。转换过程是自动完成的。例:10+a+if-d/e运算过程为:a转换成整数97与10相加,结果为107;i和f转换成double型,运算结果为double型;将107转换成double型与i和f的积相加,结果为double型;将e转换成double型,d/e的结果为double型;10+a+if的结果与d/e的商相减,结果为double型。,1C运算符简介在C中,除了控制语句和输入输出以外的基本操作都作为运算符处理。C的运算符有如下几类:算术运算符+、-、/、%关系运算符、=、,、inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);运行结果:x=3.600000,i=3,3.强制类型转换,自增、自减运算符的作用是使变量的值增加1或减少1。+i,-ii的值先增加(减少)1,然后再使用i。i+,i-先使用i的值,然后i再增加(减少)1。注意:+和-只能用于变量,不能用于常量和表达式。+和-的结合方向“自左至右”。如:-i+相当于-(i+)。i+j按“自左向右”的原则解释为(i+)+j,而不是i+(+j)。printf(“%d,%d”,i,i+),若“自左至右”,则为“3,3”;若“自右至左”,则为“4,3”。标准C(VC,DEVC)遵循“自右至左”原则(包括函数调用时参数表中变量的求值顺序也是如此)。,4.自增、自减运算符,若i=3;j=i+;则j是值为3,i的值为4。若i=3;k=(i+)+(i+)+(i+);则k的值为9,i的值为6。可以将解释为:i=3;k=i+i+i;i+;i+;i+;若i=3;k=(+i)+(+i)+(+i);则k为18,i为6(turboc,标准C不允许)。可以将解释为:i=3;+i;+i;+i;k=i+i+i;,若i=3;j=+i;则j的值为4,i的值为4。,1“=”的作用是将一个数据或一个表达式赋给其左边的变量。2若“=”两边的类型不一致,当同为数值型或字符型时,在赋值时要进行类型转换。1)将实型数据赋给整型变量时,舍弃实数的小数部分。2)将整型数据赋给实型变量时,其数值不变,但以浮点数形式存储。3)将字符型数据赋给整型变量时,由于字符只占1个字节,而整型变量占2个字节,因此,将字符数据放到整型变量的低8位中。将字符处理为unsignedchar时,高8位补0。如将变量c(字符376)赋给整型变量i。将字符处理为带符号的量时,高8位全补1,称为“符号扩展”。,2.9赋值运算符和赋值表达式,5)将unsignedint型数据赋给longint型变量时,不存在符号扩展问题。6)将非unsigned型数据赋给unsigned型变量时,原样照赋。3.复合的赋值运算复合赋值等价于a+=3a=a+3x=y+8x=x(y+8),4)将带符号的int型数据赋给longint型变量时,进行符号扩展。即将数据送到低16位中,高16位补0或补1。,不得写成:x=xy+8,x%=3x=x%3,在C中可以使用的复合赋值运算符有:+=、-=、=、/=、%=,=、m=+i;n=j+;printf(“%d,%d,%d,%dn”,i,j,m,n);,2.10逗号运算符和逗号表达式,运行结果:6,7,6,6,例2.6#include“stdio.h”main()inti=1;printf(“%d,%d,%d,%dn”,i,i+,i+,i+);,运行结果:4,3,2,1,函数调用时,函数参数的求值顺序从右至左,2.11.关系运算符和关系表达式1)关系运算符及其优先顺序C有6种关系运算符:,优先级相同(低),优先级相同(高),=,=!=,关系表达式是用关系运算符将两个以上算术、关系、逻辑、赋值或字符表达式连接起来的式子。关系表达式的值是一个逻辑值,“真”(非0)或“假”(0)。例如:ca+b等效于c(a+b)ab!=c(ab)!=ca=bca=(bc),2)关系表达式,1)逻辑运算符及其优先顺序C的三种逻辑运算符c=max(a,b);表达式语句任何表达式的末尾加上分号“;”就构成语句。空语句;复合语句用括起来的一组语句称为复合语句。,C本身不提供输入输出语句,输入和输出操作是由函数实现的。1putchar函数(字符输出函数)putchar函数的作用是向终端输出1个字符。putchar(c);/输出字符变量或整型变量c的值。/使用标准I/O库函数时,必须在程序开头加上#include“stdio.h”命令。,2.13数据的输入/输出,例2.7#include“stdio.h”main()chara,b;a=o;b=k;putchar(a);putchar(b);putchar(n);putchar(a);putchar(n);putchar(b);putchar(n);,运行结果:okok,1)printf函数的一般格式printf(格式控制,输出项表)其中:“格式控制”为双引号括起来的“转换控制字符串”。“输出项表”为需要输出的一项或多项数据(变量/表达式)。例:若a=3,b=4,则:printf(“%d%dn”,a,b);printf(“a=%d,b=%dn”,a,b);输出结果:34a=3,b=4,2printf函数(格式输出函数),%d以十进制输出整数。%o以八进制输出整数。%x以十六进制输出整数。%u以十进制输出unsigned数据。%c用来输出1个字符。%s用来输出一个字符串。%ms按m宽度输出字符串。若串长m,则照字符串原样输出;若串长m,则左边补空格。%-ms类似%ms,若串长m,则字符串向左靠,右边补空格。%m.ns靠右输出字符串左边的n个字符,左补空格。(nm)%-m.ns靠左输出字符串左边的n个字符,右补空格。(nm)%f以小
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年航空职业技能鉴定考试-民用航空气象人员考试历年参考题库含答案解析
- 2026年社会人文社会文化知识竞赛-全运会知识竞赛历年参考题库含答案解析
- 2026年石油石化技能考试-成品油物流优化管理考试历年参考题库含答案解析
- 2026年生化化工药品技能考试-环氧乙烷-乙二醇装置操作工历年参考题库含答案解析
- 2026年煤炭矿山职业技能鉴定考试-皮带维护工历年参考题库含答案解析
- 2026年火电电力职业技能鉴定考试-集控巡视员历年参考题库含答案解析
- 2026年火电电力职业技能鉴定考试-煤矿电工(机电系统)历年参考题库含答案解析
- 2026年海南住院医师-海南省住院医师口腔颌面外科历年参考题库含答案解析
- 2026年法律知识法治建设知识竞赛-中医药法知识历年参考题库含答案解析
- 2026年江苏住院医师-江苏住院医师超声医学科历年参考题库含答案解析
- 2026-2027学年五年级数学上册第一次月考综合测评卷人教版
- 2026年江西省中考英语试题卷参考答案
- 2026年重庆市高考物理试卷(含答案)
- 这是我们班课件2025-2026学年统编版二年级上册道德与法治
- 亚硝酸盐检测方法培训
- 【昭通】2025年云南昭通市市直事业单位公开选调工作人员42人笔试历年典型考题及考点剖析附带答案详解
- 2025年河南大学研究生笔试及答案
- 活动礼品提供协议合同
- Unit 2 Helping at home 大单元教学任务单-2025外研版(三起)四年级英语上册
- 《中小学跨学科课程开发规范》
- 金融支持实体经济的效率与路径研究
评论
0/150
提交评论