版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
简单程序设计③专用符号:
+-*/%=<>!?:、,&^~|;#④空白符和空字符空白符:空格符、水平制表符(Tab)、换行符('\n')空字符:‘\0’就是字符串结束符⑤只能以字符常量或串常量形式出现得字符:如$`等2、单词为了按照一定得语法规则构成C语言得各种成分(如常量、变量等),C语言规定了基本词法单位(即单词)。六种:保留字、标识符、常量、运算符、分隔符、注释符3、保留字和标识符(一)保留字(也称关键字)保留字就是具有特定含义得,专门用来说明C语言得特定成分得一类单词。例:for——用于定义循环语句
int——用来说明整型变量下面就是C语言中得关键字(32个):autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstruct switchtypedefunionunsignedvoidvolatilewhile(1)用于对变量得类型和属性说明得保留字有:charintfloatdoublevoid(基本类型名)longshortsignedunsigned(类型修饰符)enumstructunion(用于描述构造类型)staticautoexternregisterconstvolatile(属性说明符)typedef(用于类型定义)(2)用于描述语句得保留字有:ifelseswitchcasedefaultgoto(用于分支和转移语句)forwhiledobreakcontinue(用于循环语句)return(函数返回语句)(3)用于计算指定对象所占存储单元数(字节数)运算符:sizeof注意:1)保留字都用小写字母书写,不能用大写字母表示。2)保留字有特定得用途,不能用于其她场合。(二)标识符(1)定义:标识符就就是一个名字,就是用户为程序中得符号常量、变量名、函数名、数组名、类型和文件等所起得名字。(2)命名规则:字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。下面就是一些合法得标识符。
Programtoto_a_b_c_sum。下面就是不合法得标识符。
yes?M、D、John2fromyes/no$123#123yesnoa>b(3)注意1)C语言中大、小写敏感,即大、小写字母就是两个不同得字符。例:sum和SUM表示两个不同得标识符。2)标识符得长度(有效字符个数)视系统而定。TurboC则规定前32个字符有效,超过部分忽略。3)“见名知义”
areacounttotalsearch数据类型、运算符和表达式(一)C得数据类型一、数据得定义:计算机加工处理得对象。单值、多值(结构化得)二、数据类型:指明数据得结构形式。在程序中,任何数据都必须指定其数据类型。三、C语言中得数据类型大家有疑问的,可以询问和交流可以互相讨论下,但要小声点数据类型整数类型字符类型枚举类型实数类型单精度型双精度型数组类型结构类型共同体类型基本类型构造类型指针类型空类型(二)常量和变量在C程序中参加运算得数据,可以就是常量,也可以就是变量。一、常量1、定义:又称常数,就是指在程序运行过程中其值不能被改变得量。如10,3、14等都就是常量。2、特点:常量直接以值得形式出现。3、符号常量1)定义:用标识符命名得常量。例:用标识符PI代替3、14159,PI就就是符号常量。
2)目得:可使常量得含义明确,易读性强,也便于编写通用程序。
3)定义方式:宏定义
#definePI3、14159
通常,符号常量用大写字母表示,变量用小写字母表示,以示区别。二、变量1)定义:变量就是指在程序运行过程中其值可以被改变得量。例如,计算圆面积得C语句
s=3、14159*r*r;其中得s和r都就是变量。r可以取不同得数值,s得值将随r得值得不同而不同。2)、变量得基本特征名字(变量名):实际上就是一个符号地址。存储单元:用于存放变量得值变量得值可以在程序运行中随时被改变。类型例如,整型变量、实型变量、字符型变量等。3)注意(1)“先定义,后使用”便于查错。对源程序编译时,编译程序一旦发现未定义得变量名(或变量名写错),就会指出其未被定义,从而可以很快地发现错误。每一个变量被指定为某一确定类型,在编译时就能为其分配相应得存储单元。每一变量属于一种类型,便于在编译时检查对该变量所进行得运算就是否合法。例如,求余运算符“%”要求两边操作数类型必须为整型,若为实型编译程序会给出错误信息。(2)首次使用前赋初值随机值、有得系统中置零(3)可以在程序中修改变量得值手段:赋值语句、定义时赋值
scanf、参数传递
(三)整型数据一、整型常量:三种书写形式1、十进制:可带正负号得数字串
100-1802、八进制:以0开头,可带正负号得数字串
0123相当于十进制得83(182+281+380=83)-011当于十进制得-9注意,八进制数中得每个数字位必须就是0到7。3、十六进制整数:以0x(或0X)开头,就就是用十六进制表示得整数。每个数字位可以就是0到9、a到f(或A到F)。
0x123表示十进制得291-0X12表示十进制得-18二、整型变量
1、基本整型得标识符定义(整型名)
int2、整型变量得定义格式类型名变量名或类型名变量名1,变量名2,…变量名n例:
inti1,i2;/*定义整型变量i1和i2*/intI=10;/*定义整型变量I,并赋初值*/3、整型数据在内存中得存放形式inti;i=10;i000000000000101010取值范围:-32768~32767符号位4、整型修饰符1)longlongint或long(长整型)
取值范围:-231~(231-1)例:longi;2)shortshortint或short(短整型)
取值范围:-215~(215-1)例:shorti;3)unsignedunsignedintx;
或unsignedx;(无符号整型)取值范围:0~(216-1)
unsignedshortx;取值范围:0~(216-1)
unsignedlongx;取值范围:0~(232-1)4)signed(缺省得,符号整型)int就就是signedint5、测试一个变量(或某种类型得量)在内存中所占得字节数
sizeof(类型名)
或sizeof表达式或sizeof(表达式)其结果就是该类型(或表达式值类型)得量所占字节数。例:sizeof(float)得值为4若x就是一整型变量,则sizeof(x)得值为2。(四)实型数据带有小数点得数称为实数(也称浮点数)。一、实型常量1、十进制数形式书写格式:由数字和小数点组成(注意必须有一个小数点)例:3、14,0、123(或、123),123、0(或123、),0、0-3、14,-0、123(负数前面要加负号)2、指数形式又称科学记数法。就是为了便于表示绝对值特别大(或特别小)得实数而设计得。书写格式:必有e(或E),e前(即尾数部分)必须有数字,且e后面得指数部分必须就是整数。例:180000000、0,可表示为1、8e08
其中1、8就是尾数,e08就是指数(代表108)
0、000000123,可表示为1、23e-7
(或1、23E-7)不合法得:e-3,9、8e2、1,、e3,e二、实型变量1、实数类型得标识符:按精度要求分为单精度型和双精度型两种。
float-------单精度型
double-------双精度型2、定义实型变量得方式:
floatx,y;/*定义x,y为单精度实数变量*/doublez;floatf1,f2=3、14;3、实型数据在内存中得存放形式+、3141591数符小数部分指数部分(带阶符)4、注意:1)在一般系统中,一个float型数据在内存中占4个字节,一个double型数据占8个字节。单精度实数提供7位有效数字,双精度实数提供15至16位有效数字,可表示得数值得范围,不同得系统略有不同。进行数值计算时,若单精度实型所提供得精度不能满足要求,可使用双精度实型。2)实型常量无单双精度之分,一个实型常量可以赋给float型变量,也可赋给double型变量,根据变量得类型来截取相应得有效位数。例:floata=123456、789;(五)字符型数据一、字符常量1、书写格式:用一对单引号将字符括起来。
'A'
,'a','*'
,'k'
,'6'
注意:1)'A'与'a'不同
2)只能就是一个字符2、取值范围:ASCII3、转义字符1)、定义:以反斜杠“\”开头得字符序列。2)、含义:将反斜杠后面得字符转变成另外得意义。
'\n'中得'n'不代表字母n而作为“换行符”。常用得转义字符及含义3)例:‘\101’(八进制)------‘A’(65)‘\x41’(十六进制)------‘A’(65)‘\0’或‘\x0’--------ASCII码为0得控制字符4)区别:‘0’与‘\0’二、字符变量字符变量用来存放单个字符1、字符类型标识符
char2、字符变量定义方式
charc1,c2;/*c1、c2被定义为字符变量*/charch=‘a’;3、一个字符变量在内存中占一个字节即:每个字节存放一个字符例:’a’---------ASCII码为9701100001三、字符串常量1、定义:用一对双引号括起来得字符序列。例:”CHINA”、”Howdoyoudo、””1234”、”a”2、特点:每一个字符串得结尾加一个“字符串结束标志”(’\0’,她就是一个ASCII码值为0得字符),以此为标记判定字符串就是否结束。3、字符常量和字符串常量得主要区别就是:①字符常量用单引号,而字符串常量用双引号。②字符常量得引号里只能括一个字符,而字符串引号里可以括任意多个字符(包括0个,1个,2个……)。③在内存中得存储不同区别‘a’与“a”“a”得存储结构:‘a’得存储结构:注意:字符串中得‘\0’就是系统自动加上得。‘a’‘\0’
‘a’小结常量得书写格式变量得定义方式先定义,后使用;使用前赋初值变量值可被修改;定值得手段例:(变量定义时赋初值)
inta,b,c=5;inta=5,b=5,c=5;inta=b=c=5;(错误得)运算符和表达式(一)、C运算符简介
c语言得运算符范围很宽,把除了控制语句和输入输出以外得几乎所有得基本操作都作为运算符处理,例如将赋值符“=”作为赋值运算符,方括号作为下标运算符等。C得运算符有以下几类。
1、算术运算符(见2、8、2节)
2、关系运算符(><==>=<=!=)
3、逻辑运算符(!&&||)
4、位运算符(<<>>~|^&)
5、赋值运算符(=及其扩展赋值运算符)
6、条件运算符(?:)
7、逗号运算符(,)
8、指针运算符(*和&)
9、求字节数运算符(sizeof)
10、强制类型转换运算符(类型)
11、分量运算符(、→)
12、下标运算符([])
13、其她(如函数调用运算符())
运算符和表达式(二)、表达式:由运算符号和括号将运算对象(常量、变量、函数等)按一定得规则连接起来得有意义得式子。算术表达式 C表达式
2AB 2*A*B
(1+X)/(A*B)
sqrt(x*y) <math、h>注意:一个常量,一个变量,或一个函数式就是表达式得最简单形式,例如:a//变量a就是一个表达式1、5//常量就是一个实型表达式'x'//这就是一个字符型表达式sin(x)//这也就是一个表达式,而且带有函数运算符sin()C语言得表达式算术表达式(算术运算符)赋值表达式 (赋值运算符)逗号表达式 (逗号运算符)关系表达式 (关系运算符)逻辑表达式 (逻辑运算符)一、算术表达式1、算术运算符:
+(加)、-(减)、*(乘)、/(除)、%(求余)例:5+2 结果为75、0+2结果为7、05/2结果为25%2结果为15、0/2、0结果为2、5注意:“-”除了用作减法运算外,还可作负值运算符,如:-3,-b等。对“/”运算符(除运算)来说,若参加运算得两个操作数都就是整数,则结果也就是整数,如7/4得结果值为1(只取结果值得整数部分);只要其中有一操作数为实型,则计算结果为实型。求余运算符“%”要求两边得操作数都就是整数,如7%4得结果值为3(取7除以4后所得得余数部分)。(t+3)%7例:今天就是星期三,t天之后就是星期几? (设星期日——0、 星期一——1、
……
星期六——6)
(t+2)%7+1推广:若(设 星期一——1、
……
星期六——6、星期日——7、)
2、运算符得优先级与结合性例:假设
inti;
floatf;
doubled;
longl; 计算:-10+‘a’+i*f-d/l二目运算中得左右操作数得优先级规则算术运算符得优先级分为三级,从高到低排列次序如下。一级:负号(-)
二级:*/%
三级:+-当然,通过加圆括号可以改变这种优先关系,因为圆括号得优先级最高。C语言规定了各种运算符得结合方向(结合性)负值运算符就是自右至左(即先与右边得运算对象结合)其她基本算术运算符就是自左至右当相同优先级得运算符同时出现在表达式中,系统将按照运算符得结合性规定其运算规则。例:假设
inti;
floatf;
doubled;
longl; 计算:-10+‘a’+i*f-d/l3、数据类型得转换注意:横向朝左得箭头表示必定得转换,以提高运算精度纵向箭头方向只表示向高类型转换,不要理解为int型先转换成unsigned型,再转换成long,再转换成double型。
通俗地讲,在进行混合运算时,char、short必定自动转换成int,float必定自动转换成double,其她得类型转换根据具体情况而定。4、类型转换(1)分类 自动类型转换(隐式转换) 强制类型转换(显式转换)(2)强制类型转换 格式:(类型名)表达式例如:
(int)(a+b)//将a+b得值转换成整型
(int)a+b//只将a转换成整型,然后与b相加
(float)5/35、自增自减运算符两个单目运算符:
++:使变量得值增1
--:使变量得值减1++和--既可以出现在运算对象得前面(称为前缀运算符),如++i,--i。也可以出现在运算对象得后面(称为后缀运算符),如i++,i--。例:++i
若i=5结果为6
若i=5、4结果为6、4i++
若i=5结果为6
若i=5、4结果为6、4例:--i
若i=5结果为4
若i=5、4结果为4、4i--
若i=5结果为4
若i=5、4结果为4、4前缀运算符得作用:使用变量之前,先将变量得值加1(对++)或减1(对--)。例如:inti=5;则执行赋值语句
j=++i;//j=6,i=6后缀运算符得作用:先使用变量得值,再将变量值加(对++)1或减1(对--)。例如:inti=5;则执行赋值语句
j=i++;//j=5,i=6注意:(1)自增、自减运算符只能用于变量,不能用于常量或表达式。如:++(x+y)、5++等都就是非法得。(2)++和--得结合方向就是“自右至左”。(3)在表达式中使用自增、自减运算符时要慎重。 例:printf(“%d,%d”,j,j++);二、赋值表达式1、赋值运算符
=(亦称赋值号)例:intx=5,y=7,z=8; floata,b=3、5,c;
2、赋值表达式定义:由赋值运算符将一个变量和一个表 达式连接起来得式子。格式:变量名=表达式作用:将赋值运算符右边表达式得值赋给左边得变量。例:x=a+b;(赋值语句;语句结束符)注意(1)赋值运算符“=”左侧必须就是变量名(2)如果“=”两侧得类型不一致,但都就是数值型或字符型时,赋值时系统自动将表达式类型转换成赋值号左侧变量得类型,然后再赋值。 例:intx=3、54; //x得值为3(结果为整型,取整数部分)(3)赋值运算符与数学上得等号就是一样得,但含义却不同。例:x=x+1;//若x=100,则x值变为10(4)赋值表达式中得表达式可以就是另一赋值表达式,即赋值运算可以连续进行(从右向左结合)。例:a=(b=8)亦可写成a=b=8a=b=c=d=8等价于a=(b=(c=(d=8)))3、复合赋值运算符在赋值符“=”之前加上其她运算符。(两个运算符之间不能加空格)例如:
+=-=*=/=%=
(算术运算与赋值运算结合)其余:&=^=|=<<=>>=目得简化程序书写,提高运算效率。例:
a+=b等价于a=a+ba*=b+c等价于a=a*(b+c)a%=b+c等价于a=a%(b+c)三、逗号运算符1、逗号运算符,2、逗号表达式定义:用逗号将两个(或多个)表达式连接起来得式子。格式:表达式1,表达式2
含义:先计算表达式1得值,再计算表达式2得值,而整个逗号表达式得值就是表达式2得值例:
a=8,a*10//a=80逗号运算符就是所有运算符中级别最低得。例:
x=(a=3,6*3)(赋值表达式)结果:将一个逗号表达式得值18赋给x。
x=a=3,6*a(逗号表达式)结果:x和a得值为3,整个表达式得值为18。关系运算符和关系表达式
1、关系运算符(六种)
<小于<=小于等于
>大于>=大于等于
==等于!=不等于用以表示两个运算对象之间得大小关系。2、关系表达式(1)定义:关系运算符将两个表达式连接起来得式子。例如:
x>ya+b<=9、83、关系表达式得值逻辑值,即“真”和“假”。在C语言中,1表示“真”,0表示“假”。例如,当x>y为“真”时,该表达式得值为1;否则,表达式得值为0。可以将关系表达式得运算结果赋给一个整型变量或字符型变量例:intx=10,y=5;z=x>y;
则z得值为1例:用表达式描述下列叙述(1)单位圆内得点坐标(x,y)。(x*x+y*y)<1(2)x就是一个偶数
x%2==0(3)x就是5得倍数
x%5==0(4)x就是一个正数
x>04、关系运算符得优先级算术运算符高(左到右)关系运算符(左到右)赋值运算符低(右到左)(<,<=,>,>=)高(==,!=)低例:ch=getchar()!=‘Q’(错)
(ch=getchar())!=‘Q’(对)逻辑运算符和逻辑表达式1、逻辑运算符(三个)
!(非)&&(与)||(或)“!”就是单目运算符,只有一个运算对象,如:!a“&&”就是双目运算符,有两个运算对象,如:a&&b“||”就是双目运算符,有两个运算对象,如:a||b。逻辑运算得真值表
注意:C语言中,判断一个量得“真假”时,以非零为“真”,零为“假”。但逻辑表达式得值为1或0。2、逻辑表达式(1)定义:用逻辑运算符将表达式连接起来得式子。(2)作用:把若干个关系表达式组合起来进行复杂得判断。(3)逻辑表达式得值:逻辑值(0或1)
(注意:C语言没有逻辑类型)例如:
3&&4结果为10&&8、1&&0结果都就是00||0结果为00||8、1||0、3||4结果都就是1e=(a<b)&&(c>d)
可将其赋给整型变量或字符型变量。3、逻辑运算符得优先级
!(右到左)高算术运算符关系运算符
&&(左到右)
||(左到右)赋值运算符低例:用表达式描述下列叙述(1)判断字符变量ch得内容就是否就是数字字符。
c>=’0’&&c<=’9’(2)a就是整百得正整数。
(a>0)&&(a%100==0)(3)在a,b,c三个数中,a不就是最大得,也不就是最小得。
(b<a)&&(a<c)||(c<a)&&(a<b)格式输出函数printf()1、一般格式:
printf(格式控制,输出表列);2、格式控制格式控制就是用双引号括起来得字符串。她包括两种信息:格式说明普通字符(1)格式说明由“%”和格式字符组成。作用:将输出得数据转换为指定得格式后再输出。printf("%d%d",a,b);格式说明总就是由“%”开始。(2)普通字符即需要原样输出得字符。printf("a=%db=%d\n",a,b);格式字符(小写字母):%d十进制带符号得整数(对正数不输出符号)%o八进制无符号得整数(不输出前导符0)%x(X)十六进制无符号得整数(不输出前导符0x)%u 十进制无符号得整数%c 输出一个字符%s 输出一个字符串%f 小数形式输出单、双精度实数%e(E) 指数形式输出单、双精度实数3、输出表列(1)printf()函数中得“输出表列”部分就是由表达式组成得。(2)这些表达式应当与“格式控制”字符串中得格式说明符得类型一一对应(3)各表达式之间用逗号分隔。例:
printf("%d",x+y);printf("x=%d,y=%f,ch=%c",x,y,ch);例:#include"stdio、h"main(){intx=10;floaty=123、14;charch;printf("inputch=");ch=getchar(); printf("x=%d,y=%f,ch=%c",x,y,ch);}运行结果显示:(VC)inputch=ax=10,y=123、139999,ch=a4、附加格式字符在“%”与格式字符之间可以插入附加字符(1)l(小写字母)用于长整型数,可加在格式符d,o,x,u得前面若longx=12345678;
则printf("x=%ld",x);
结果:x=12345678(2)m(一个具体正整数)数据输出宽度(总列数)例:
printf(“%4d,%4d”,a,b); 若a=123,b=12345
则123,12345
(表示一个空位)(3)m、n(m,n一个具体正整数) 对实数而言,m为数据输出宽度(总列数),n表示输出几位小数。 例:若floata=123、456printf(“%8、2f,%f”,a,a);
则
123、45,123、456000(默认6位) 对字符串而言,m为数据输出宽度(总列数),n表示截取得字符个数。 例:
printf("%3s,%7、2s","HELLO","HELLO");
结果:
HELLO,HE(4)-(负号)输出得数据在域内向左对齐 例:
printf("%-10s\n","HELLO");
结果:
HELLO
例:#include"stdio、h"main(){inta=123,b=12345,c=-1;floatf=123、456;printf("%4d,%4d,%d,%o,%x\n",a,b,c,c,c);printf("%f,%10f,%10、2f,%、2f,%-10、2f\n",f,f,f,f,f);printf("%3s,%7、2s\n","HELLO","HELLO");printf("%-10s\n","HELLO");}运行结果:(VC环境下,代表空位)
123,12345,-1,37777777777,ffffffff
123、456001,123、456001,123、46,123、46,123、46
HELLO,HE
HELLO
printf()小结(1)格式说明符应当与所对应得表达式类型相一致。比如,输出整型数据时,可以使用格式字符d,o,x,u等。(2)m为指定得数据输出宽度。如果数据得实际宽度大于m,则突破m得限制,按数据得实际宽度输出;如果数据得实际宽度小于m,则按m指示得宽度输出,输出时向右对齐,左端补空格。(3)负号“-”表示如果数据得输出宽度小于m,则输出时数据向左对齐,右端补空格。printf()小结(续)(4)“%m、nf”表示输出得浮点型数据共占m列(含小数点),其中小数点后有n位数字。(5)“%m、ns”表示输出得字符串共占m列,但只取字符串左端得n个字符。这n个字符输出在m列得右侧,左边补空格。(6)对于o或x格式符,输出得数值不带符号位,而就是将符号位也看作数值得一部分。因此,不能直接输出负得八进制或十六进制数。(7)如果想输出字符“%”,则应该在“格式控制”字符串中连续写两个“%”,即两个“%”号表示一个“%”字符。格式输入函数scanf()
1、格式:
scanf(格式控制,地址表列); “格式控制”:同printf“地址表列”:由若干个地址组成得表列,可以就是变量得地址,也可以就是字符串得首地址。例:
main(){inta,b,c;scanf("%d%d%d",&a,&b,&c);printf("%d,%d,%d\n",a,b,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026无 面试题及答案
- 《趣味学慈善|让课堂告别枯燥 爱上学习》
- 草场抵顶协议书
- 机械拖车出售合同范本
- 小学主题班会课件:开展
- 企业品牌管理与市场调研指导书
- 年产4万吨高纯湿电子化学品升级改造项目可行性研究报告模板-申批备案
- 2026年新余市渝水区社区工作者招聘考试模拟试题及答案详解
- 服务质量提升计划启动函(3篇范文)
- 项目管理流程团队管理手册
- 安防综合平台运维服务方案
- 江苏省苏州市事业单位考试真题库(典优)
- 四川烟草招聘考试试题真题及答案
- 未来课堂模式讲解
- 加油站防雷安全生产责任制度
- 肺康复科进修汇报
- DB3401∕T 311-2023 城市道路地下管线综合设计及检查井设置技术规范
- 中核宣传管理制度
- 白皮三管轮实习记录簿
- T/CECS 10262-2022绿色建材评价二次供水设备
- 《测绘生产成本费用定额》(2025版)
评论
0/150
提交评论