您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 编程语言基础-语言--第2章-基本数据类型与简单程序设计
第2章基本数据类型与简单程序设计2.1C语言的基本数据类型2.1.1常用标准数据类型类型标识符名称字节数范围char字符型1-27~+27-1(-128~+127)short短整型2-215~+215-1(-32768~32767)int或long长整型4-231~+231-1(-2147483648~2147483647)float浮点型(实型)410-37~10+38(绝对值)double双精度浮点型810-307~10+308(绝对值)说明:在Dev-C++或visualc中,int同long,在winTC中,int等同short。2.1.2无符号类型如果在short或char类型标识符前面加上关键字unsigned,则表示无符号类型,其值为非负整数类型标识符名称字节数范围unsignedchar无符号字符型10~255unsignedshort无符号短整型20~65535unsignedint或unsignedlong无符号长整型40~42949672952.2常量和变量2.2.1常量和符号常量在程序的运行过程中,其值保持不变的量称为常量。#definePI3.1415926此后,凡在文件中出现的PI均可用3.1415926来代替。2.2.2整型常量除了我们比较熟悉的整型常量如:100、0、-256之外,C语言中还有其他形式的整型常量。例子说明-1234十进制整型常量(包含数字0~9)01234八进制整型常量(以0开头,包含数字0~7)0x1234十六进制整型常量(以0x或0X开头,包含数字0~9、字母A~F或a~f)0Llong型十进制整型常量(以l或L结尾)例如:0235等于十进制数157,即2×82+3×81+5×80=157。-0X23等于十进制数-35。任何类型的数据在计算机中都是以二进制补码形式存储的。正数的补码等于其原码,而负数的补码等于其原码的反码+1。例如:0000000001010011表示831111111110101101表示-8300000000000000000000000001010011表示83L11111111111111111111111110101101表示-83L2.2.3浮点型常量C语言中的浮点类型主要分为单精度和双精度浮点型两种。以下是合法的十进制浮点数表示:1234.56、-1.2、0.0、.5、6.、1000000000.0。浮点数还可采用科学表示法,以下是合法的科学浮点数表示:1.23456e2、0.345E-3、-765e12、-.5E-8、6.e-7、1.0e10。出现在字母e(或E)之前的小数点,其左边和右边应有一位数字在字母e(或E)之后必须是整数。1.34E1.2、.e2均是非法的浮点数。2.2.4字符型数据C的字符常量是用单引号(即撇号)括起来的一个字符。如'*'、'a'、'A'、'&'、'!'等都是字符常量。注意,'a'和'A'是不同的字符常量。字符数据存放在内存时,并不是字符本身,而是字符的代码,称之为ASCII码。部分字符对应的ASCII码字符回车空格*+0123……9ASCII码1332424348495051……57字符ABC……Zabc……zASCII码656667……90979899……122常用的转义字符有:‘\n’换行符(将当前位置移到下一行开头)‘\t’水平制表符(跳到下一个tab位置)‘\b’退格‘\r’回车(将当前位置移到本行开头)‘\f’走纸‘\\’反斜杠’\’‘\’’单引号’‘\”’双引号转义字符看起来是两个字符,实际上只能算一个字符。也可以使用\加上一个1~3位的8进制数或\x加上一个1~2位的16进制数表示的ASCII码值来表示转义字符,例如:‘\0’表示空字符'\33'或'\033'表示ESC(27)'\07'表示响铃'\x0A'表示换行(10)。2.2.5变量在程序的运行过程中,值可以改变的量称为变量。每个变量都有一个名字,称为变量名。每个变量均必须进行变量说明,指明变量的类型如:intk=50;变量名和符号常量名的命名方法相同,都是用标识符表示。标识符就是一个名字,其命名必须按照一定的规则进行,只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线,不允许使用数字。如下面是合法的标识符。Class_1,_abc1,id,a1b2,sum,total下面是不合法的标识符:ab/*标识符不能含空格符*/1a/*标识符不能以数字打头*/#abc/*标识符不能使用#*/xyz-1/*标识符不要把减号“-”和下划线“_”混淆*/注意:大写字符和小写字符被认为是两个不同的字符。如:a1和A1是两个不同的变量。变量和符号常量的不同之处在于:变量的值可以改变,而符号常量则不行。例2-1inti,j,k;charc1,c2;上面两行语句定义了3个int型变量i,j,k和2个字符型变量c1、c2例2-2floatx1,x2;/*定义2个单精度浮点型变量*/doublez1,z2;/*定义2个双精度变量*/floatx;doubley;x=123456.789;/*给变量赋初值*/y=1.23456789E5;2.3赋值语句所谓赋值,就是将一个数据存入一个连续的具有若干存储单元的存储空间中,该存储空间有一个名字,就是前面介绍的变量名。对一个变量进行定义后,这个变量如果没有进行赋值,它的值是不确定的。2.3.1赋值语句的格式与功能一般形式:变量=表达式;功能:首先计算赋值号“=”右边表达式的值,然后将结果值送给赋值号“=”左边的变量。例如:g=9.8;g=10+20-9;“=”不是等号,而是赋值号。例2-1charc1,c2;c1='a';c2='b';上面定义了2个字符型变量c1,c2,一个字符型变量可存放一个字符。将一个字符常量存放到一个字符变量中,实际上并不是把该字符本身放到内存中,而是将该字符的相应的ASCII码存放内存单元中。C语言字符型数据与整型数据之间可以通用。例2-2#includestdio.hmain(){charc1='a',c2;intk;k=c1;/*将字符型变量c1赋给整型变量k*/c2=97;/*将整数97赋给字符型变量c2*/printf(%c,%c,%d,c1,c2,c1);/*字符变量既可按字符形式输出,亦可按整型输出*/printf(\n%d,%c,k,k);/*整型变量既可按整型形式输出,亦可按字符型输出*/getch();}运行结果:a,a,9797,a例2-3将小写字母转换成大写字母。#includestdio.hmain(){charc1,c2;inti,j;c1='a';c2=c1-32;/*c2='A'*/printf(%c,%c,c1,c2);getch();}运行结果:a,A2.3.2赋值语句中的类型转换“=”左边变量与右边表达式的数据类型不一致时,C编译系统会自动实现数据类型的转换。转换的原则是,将赋值号右边的表达式值的类型转换成与左边变量相同的类型后再赋值。例如:inta;longb;charc;a=b;/*long型变量b的值变换成int型后再赋给a*/b=a;/*int型变量a的值变换成long型后再赋给b*/b=a+c;/*int型a+c的值变换成long型后再赋给b*/当右边表达式值的类型比左边变量的类型要长时,会对右边的数据进行截取,仅取出与左边变量类型相同的长度,这意味着,会丢失高位字节或高位字。例2-4main(){inta=350,b;charc;c=a;b=c;printf(%d,%d,%d,a,c,b);getch();}运行结果为:350,94,942.4数据的输出2.4.1字符输出函数putchar()函数putchar()的功能是把一字节的代码值所代表的字符输出到显示器上。常用格式如下:putchar(c);其中参数C可以是字符常量、变量或字符表达式。例2-5字符输出函数putchar()的功能#includestdio.hmain(){charc='A';putchar(c);/*输出字符A*/putchar('\n');/*输出换行符*/putchar('#');/*输出字符#*/getch();}2.4.2格式化输出函数printf()格式化输出函数是按指定的格式完成输出过程。一般使用形式如下:printf(输出格式串,表达式表);其中,输出格式串包含“格式符”或非格式符。“格式符”以%开头后面跟一个字母。格式符见表2-4。格式符功能说明%c按字符形式输出%d按十进制整数形式输出%o按八进制整数形式输出%x按十六进制整数形式输出%f按浮点形式输出,默认6位小数%m.nf按浮点形式输出,显示宽度不小于m,n位小数printf()函数的功能是凡遇格式符,就将对应的表达式的值按指定格式输出到显示器上,凡遇非格式符,则原样输出。输出格式串中的转换说明符与表达式的个数必须相同,它们按各自的先后顺序—一对应,如图2-2所示。例如:a=100;b=200;printf(%d+%d=%d\n,a,b,a+b);输出结果为:100+200=300(换行)例2-8#includestdio.hmain(){floatx1=123.5678,x2=-4567.789;printf(x1=%f,x2=%f\n,x1,x2);printf(x1=%8.2f\tx2=%8.2f\n,x1,x2);getch();/*按任意键*/printf(%c%3c\n,'*','*');printf(%d%3d\n,11,22);}运行结果为x1=123.567802,x2=-4567.789062x1=123.57x2=-4567.79(按任意键后显示)**11222.5数据的输入数据的输入,一般是以键盘为处理对象的,从键盘接受字符和数据。字符输入函数getchar()和输出函数putchar(),是以一个字节的字符代码为单位来完成输入输出过程的。在程序中使用这两个函数时,要求在程序开头包含头文件stdio.h。即#includestdio.h2.5.1字符输入函数getchar()功能是接收从键盘上输入的字符。在程序中使用这个函数输入字符时,可以用另一个变量接收读取的字符,例如:c=getchar();例2-9字符输入函数getchar()的功能#includestdio.hmain(){charch;ch=getchar();printf(ch=%c,ch=%d\n,ch,ch);getch();}当执行到语句:ch=getchar();时,计算机就会等待用户击键(等待输入)。2.5.2格式化输入函数scanf()scanf()函数的功能是按指定的格式从键盘接受输入信息。一般使用格式如下:scanf(“格式串”,地址表);“格式串”中既可以含格式符,也可以含非格式符。输入时,凡遇非格式符,要求原样输入,凡遇格式符,按指定格式输入数据。输入格式符表格式符功能说明%c接收一个字符型数据%d接收一个整数型数据,直到遇到空格、tab或回车符%f接收一个浮点型数据例2-10从键盘上输入直径d的值,然后计算圆的面积area和周长len。#definePI3.1415926main(){floatd,area,len,r;printf(请输入直径的值:);scanf(%f,&d);r=d/2;area=PI*r*r;len=2*PI*r;printf(半径r=%f,面积S=%f,周长L=%f\n,r,area,len);}2.6运算符和表达式将运算符和运算对象按一定规则连接起来就成为表达式.2.6.1算术运算符运算符运算优先级例子()圆括号15/(1–3)*乘法37*3=21/除法37/3.0=2.3333337/3=2%模除37%3=1+加法47+3=10-减法47-3=4说明:1.模除运算是两个整数相除后取余数;要求%两边必须是整型数据。2.若算术运算符两边均为整数,
本文标题:编程语言基础-语言--第2章-基本数据类型与简单程序设计
链接地址:https://www.777doc.com/doc-4059454 .html