




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、称为数据类型。称为数据类型。 变量变量 在程序运行过程中,其值可以被改变的量在程序运行过程中,其值可以被改变的量称为变量。称为变量。一般会建立一个常量令它的值等于我们希一般会建立一个常量令它的值等于我们希望的这个数值,来降低代码出错可能。另望的这个数值,来降低代码出错可能。另外,当我们期望改变这个特殊值的时候,外,当我们期望改变这个特殊值的时候,只要改变这个常量的值就可以了,而不必只要改变这个常量的值就可以了,而不必改变所有引用这个值的地方。改变所有引用这个值的地方。方式中,都有一个特点,那就是对于方式中,都有一个特点,那就是对于N进制进制而言,它每一位上的数值必定不能大于而言,它每一位上的数
2、值必定不能大于N-1,如十进制每一位最大为如十进制每一位最大为9,二进制最大为,二进制最大为1,八进制最大为八进制最大为7,十六进制最大为,十六进制最大为15。 20 20 20 10 5 2 2 20 2 10 2 5 2 2 20 10 4 2 00101 8 20 1624 16 20 16 14所说的字节就表示所说的字节就表示8个二进制位,可以表示个二进制位,可以表示0, 255的数值范围。的数值范围。 13: 1 0 1 10 1 0 0 1 0 1 0000110111110010011100101 注:在注:在C语言中,语言中,3.4f表示这个数值是表示这个数值是float型单精
3、度浮点数;而型单精度浮点数;而3.4表示这个数值是表示这个数值是double型双精度浮点数值。型双精度浮点数值。#等等,但是对于汉字来说,因为每个汉等等,但是对于汉字来说,因为每个汉字由两个字符构成的,所以不能用这种方字由两个字符构成的,所以不能用这种方法来表示;法来表示; C语言中的数据有两种基本形式:常量和变量。常量的值是固定的,变量是可以改变的 变量的定义 类型标识符 变量名; 变量在定义时要注意以下几个问题: 变量的命名要符合C语言规定的标识符的命名规则,即只能由字母、数字和下划线组成,首字母必须为字母或下划线。此外C语言中规定的有特殊用途的关键字,例如int、float、if等,不能
4、作为变量名称。 a b2 stu1 x1_1 sum _name1 正确 2ac stu-1 len#1 else int float 不正确 C语言中大小写是敏感的。但是习惯上,C中的变量一般用小写字母表示。 关键字关键字 C语言的关键字共有语言的关键字共有32个,根据关键字的作用,可分其个,根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。和其它关键字四类。 (1数据类型关键字数据类型关键字12个):个):char, int, long, short, float, double, signed, un
5、signed, void, struct, union, enum (2控制语句关键字控制语句关键字12个):个): if, else, switch, case, break, default, continue, do , while, for, goto, return (3存储类型关键字存储类型关键字4个):个):auto, extern, register, static (4其它关键字其它关键字4个):个):const, sizeof, typedef, volatile 变量的数据类型决定了它的存储类型,即该变量占用的存储空间。所以定义变量类型,就是为了给该变量分配存储空间,以便
6、存放数据。基本的变量类型及其存储空间见表2.1: 类型称号存储空间取值范围实例int整型4个字节介于-231231-1的整数int i,j;float单精度浮点型4个字节实数,有效位数67位float x;double双精度浮点型8个字节实数,有效位数1516位double y;char字符型1个字节ASCII码字符,或-128127的整数char c;short短整型2个字节介于-215215-1的整数short s;变量需要预置一个值,即赋值。赋值操作通过赋值符号“=”把右边的值赋给左边的变量: 变量名 = 表达式; 例如 x=3; a=a+1; f=3*4+2; 其中需要注意的是: 如果
7、赋值时两侧类型不一致时,系统将会作如下处理: 将实数赋给一个整型变量时,系统自动舍弃小数部分。 将整数赋给一个浮点型变量时,系统将保持数值不变并且以浮点小数形式存储到变量中。 当字符型数据赋给一个整型变量时,系统将整型变量的高字节置0、低字节存放该字符的ASCII值/*- 程序L2_1.C功能:赋值时类型自动的转换示例。-*/ #include main() int a,x; float f; a=3.9; f=12; x=A; printf(a=%d,f=%f,x=%dn,a,f,x);运行结果:a=3,f=12.000000,x=65/*-程序L2_2.C功能:将字符A 赋值给字符变量的四
8、种方法。 -*/ #include main() char c1,c2,c3,c4; c1=A; c2=65; c3=101; c4=x41; printf(c1=%c,c2=%c,c3=%c,c4=%cn,c1,c2,c3,c4); printf(c1=%d,c2=%d,c3=%d,c4=%dn,c1,c2,c3,c4); 思索:c1,c2,c3,c4加上32输出结果是什么? 加上256呢? 基本类型可以带修饰性前缀,即类型修饰符,扩大C语言基本数据类型的使用范围。C语言共有4种类型修饰符: long 长型 short 短型 signed 有符号型 unsigned 无符号型 long in
9、t简写为long型的存储长度为4个字节,用于存储整数超过int型取值范围的情况。long double 型存储长度12个字节,约20位有效数字,取值范围超过double型。除此以外,long还可以修饰的有long自己,long long代表64为整型。其它的都不能用long来修饰。 有符号型signed和无符号型unsigned适用于char型、int型和long型三种类型,区别在于它们的最高位是否作为符号位。unsigned char型取值范围0255,unsigned int简写为unsigned型取值范围0232-1,unsigned long型取值范围0232-1。/*- 程序L2_3
10、.C功能:类型修饰符long和 unsigned的使用。 -*/ #include main() char a1,b1; unsigned char a2,b2; short x1,y1; long x2,y2; a1=127; b1=129; a2=127; b2=129; x1=32767; y1=32769; x2=32767; y2=32769; printf(a1=%d, a2=%u, b1=%d, b2=%un,a1,a2,b1,b2); printf(x1=%d, x2=%ld, y1=%d, y2=%ldn,x1,x2,y1,y2); 自动类型转换 C语言规定,不同类型的数据在
11、参加运算前会自动转换成相同类型,再进行运算。转换的规则是: 如果运算的数据有float型或double型,自动转换成double型再运算,结果为double型。如果运算的数据中无float型或double型,但是有long型,数据自动转换成long 型再运算,结果为long型。其余情况为int型。 doublefloatlongunsignedintchar,short高高低低/*- 程序L2_4.C功能:自动类型转换示例。 -*/ #include main() float x,y; long m,n; x=3/2+8/3; y=3.0/2+8/3.0; m=1*2*3*4*5*6*7*8*
12、9; n=1L*2*3*4*5*6*7*8*9; printf(x=%f, y=%f,m=%ld,n=%ld n,x,y,m,n); 结果:X=3.000000,y=4.166667,m=-30336,n=362880 强制类型转换 在C语言中也可以使用强制类型转换符,强迫表达式的值转换为某一特定类型。强制类型转换形式为: (类型) 表达式 强制类型转换最主要的的用途一是满足一些运算对类型的特殊要求,例如求余运算符“%”,要求运算符两侧的数据为整型,(int)2.5%3二是防止丢失整数除法中的小数部分。 计算机最主要的功能是处理数据,如数值、文字、图形、图像等。而这些数据必须被转换为相应的数字
13、编码,才能进行存储和处理。 二进制、八进制、十六进制 进制之间的转换 二进制数在内存中的表示 字符编码/*- 程序L2_5.C : 十进制、八进制、十六进制数据及其输出 -*/ #include main( ) int a,b,c,m,n; a=11; b=011; c=0 x11; m=65; n=97; printf(十进制11等于%d, 八进制11等于%d, 十六进制11等于%d,n,a,b,c); printf(十进制 八进制 十六进制 字符n); printf( 65 %o %x %c,n,m,m,m); printf( 97 %o %x %c,n,n,n,n); /*- 程序L2_
14、6.C : 从键盘输入一个大写字母,输出其对应的小写字母。 -*/ #include main( ) char c; printf(请输入大写字母n); scanf(%c,&c); c=c+32; /*大写字母的ASCII码加上32为其对应的小写字母*/ printf(其小写字母为%cn,c); /*- 程序L2_7.C:已知x=3.2,y=7,z=2,计算y/3*3.2-2的值。 -*/ #include main( ) float x=3.2 , s; int y=7,z=2;char c; s=y/3*3.2-2; printf(result is %fn,s); /*- 程序L
15、2_8.C : 编写一个程序,用于输入一个学生的姓名、学号、英语、 数学、计算机成绩,输出学生姓名、学号和平均成绩。 -*/ #include main( ) char name31; /*数组name31最多可以放30个字符或15个汉字*/ long num; /*其值超过32767的号码,需要用长整型*/ int eng,math,comp; float aver; printf(Please input the students name:); scanf(%s,name); /*字符串用格式符%s,并且数组名name前不需要取址符&*/ printf(Please input the students ID:); scanf(%ld,&num); /*long型变量的格式符用%ld*/ printf(Please input scores (English math computer):); scanf(%d%d%d,&eng,&math,&comp); aver=(eng+math+comp)/3.0; printf(the students named is %s , his ID is %ld ,his average score is %
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商场店面转让合同范本
- 公司劝退员工合同范本
- 共同管理合同范本
- 商贸公司策划合同范本
- 水费收取维护合同范本
- 吉林省吉林市蛟河市2023-2024学年八年级上学期期末考试数学试卷(含解析)
- 中国传统节日-端午节73
- 2025年生猪交易合同标准范本
- 2025版租赁合同样书
- 语文课程标准与教材研究知到课后答案智慧树章节测试答案2025年春内江师范学院
- 半导体行业对国家国防战略的支撑与应用
- 智能点滴自动监控方法设计
- 提升员工的团队协作与沟通能力
- 办学许可证续期申请书
- Cpk及Ppk计算电子表格模板
- 框架结构房屋的流水施工
- 第三章 装配式混凝土预制构件生产工艺
- XX项目阳光分包试点工作方案参考方案
- (完整版)数字电子技术基础教案
- 附九江学院第四届教工男子乒乓球单打赛程表
- 积极心理学-完整版教学课件
评论
0/150
提交评论