




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C程序设计 二、数据类型,二、数据类型 2.1 数据类型 基本类型 整型 短整型short 整型 int 长整型 long 实型 单精度型 float 双精度型 double 字符型 char 枚举类型 enum 构造类型 数组 结构体 struct 共用体 union 指针类型 空类型 void,二、数据类型 2.1 数据类型 2.2各种类型数据的存储空间,下面这个C程序可以测试各种数据类型的存储空间 main() printf(“short:%d n“,sizeof(short); printf(“int:%d n“,sizeof(int); printf(“long:%d n“,sizeof(long); printf(“float:%d n“,sizeof(float); printf(“double:%d n“,sizeof(double); printf(“char:%dn“,sizeof(char); ,short:1 int:2 long:4 float:4 double:8 char:1,二、数据类型 2.1 数据类型 2.2各种类型数据的存储空间 short:2 int:2 long:4 float:4 double:8 char:1 数的范围:按10位二进制1000近似估算。 int的范围:065535 -3276832767,说明下面的语句是否正确: int a=80000; int b=-32700;,二、数据类型 2.1 数据类型 2.2各种类型数据的存储空间 short:2 int:2 long:4 float:4 double:8 char:1 数的范围:按10位二进制1000近似估算。 int的范围:065535 -3276832767,长整型的范围比整型的范围大16倍吗? double与float相比区别是什么?,大2的16次方,精度高很多,二、数据类型 2.1 数据类型 2.2各种类型数据的存储空间 2.3常量 1)各种类型的常量表示 整型常量: 十进制,如2545,-98 八进制,以数字0开头,如025 十六进制,以0x或0X开头,如0xf9A,以下哪个数最大? 89 073 0x5a,0x5a,二、数据类型 2.1 数据类型 2.2各种类型数据的存储空间 2.3常量 1)各种类型的常量表示 整型常量: 十进制,如2545,-98 八进制,以数字0开头,如025 十六进制,以0x或0X开头,如0xf9A 长整型常量:后加l或L,如-12l, -0xaeL,065645545L,注意12和12L的区别: 12: 00000000 00001100 12L: 00000000000000000000000000001100,二、数据类型 2.1 数据类型 2.2各种类型数据的存储空间 2.3常量 1)各种类型的常量表示 整型常量: 十进制,如2545,-98 八进制,以数字0开头,如025 十六进制,以0x或0X开头,如0xf9A 长整型常量:整型常量后加l或L,如-12l,-0xaeL,065645545L 实型常量:不分单双精度,全部是双精度,不能用八进制和十六进制表示。 如 34.5,.345,345., 1e2,1.5e-6,以下常量错在什么地方? 095 0a 92b 3.56L 3.4e1.2 5.e,八进制不会有9 八进制不会有a 十进制不会有b 实型常量不带L E后面必须是整数 E后面必须有数,二、数据类型 2.1 数据类型 2.2各种类型数据的存储空间 2.3常量 1)各种类型的常量表示 2)有符号整数与无符号整数 有符号数 signed int a; 等同于 int a;,有符号整数最高位(最左边一位)表示数的符号,0为正,1为负。 有符号整型的范围是-215215-1 一个有符号长整型的范围是 -231231-1,二、数据类型 2.1 数据类型 2.2各种类型数据的存储空间 2.3常量 1)各种类型的常量表示 2)有符号整数与无符号整数 有符号整数 signed int a; 无符号整数 unsigned int a;,无符号整数则不留符号位,所有的位都表示大小, 因此一个无符号整型的范围是 0216-1 一个无符号长整型的范围是 0232-1,二、数据类型 2.1 数据类型 2.2各种类型数据的存储空间 2.3常量 1)各种类型的常量表示 2)有符号整数与无符号整数 3)字符常量 字符常量:字符用单引号, 如e,9 字符在计算机中以ASCII码表示,如A存储为01000001,即65,r存储为01110010,即114 因此字符就相当于整数。,已知字符u的ASCII码值为117,以下程序输出什么? main() char x=u; int y; y=x-5; printf(“%d,%c“,y,y); ,输出 112,p,二、数据类型 2.1 数据类型 2.2各种类型数据的存储空间 2.3常量 1)各种类型的常量表示 2)有符号整数与无符号整数 3)字符常量 字符常量:字符用单引号, 如e,9 字符在计算机中以ASCII码表示,如A存储为01000001,即65,r存储为01110010,即114 因此字符就相当于整数。,是不是整数65与字符A就没有区别呢?,有: A存储为01000001, 65存储为0000000001000001,二、数据类型 2.1 数据类型 2.2各种类型数据的存储空间 2.3常量 1)各种类型的常量表示 2)有符号整数与无符号整数 3)字符常量 转义字符:遇到时不是直接作为字符,而是要跟后面的字符连起来一起作为一个字符。 对于大多数字符,如a与a一样。但有些字符不一样,如n与n,几个需要记住的特殊字符: 换行:n 横行跳格:t 回车:r : :,二、数据类型 2.1 数据类型 2.2各种类型数据的存储空间 2.3常量 1)各种类型的常量表示 2)有符号整数与无符号整数 3)字符常量 任意一个字符还可以表示如下: ddd ddd是一个13位的8进制数 xhh hh是一个12位的十六进制数 空字符:ASCII码值为0的字符,记为0,如 U , U, 125 , x55 完全等效。,下面哪些是合法的字符常量,哪些是不合法的字符常量? /u px g 35 693 xa,二、数据类型 2.1 数据类型 2.2各种类型数据的存储空间 2.3常量 1)各种类型的常量表示 2)有符号整数与无符号整数 3)字符常量 4)字符串常数 用双引号括起来的0至多个字符序列 字符串存储时系统自动在末尾加空字符0 字符串的长度:字符串中的字符个数,不包括空字符。,字符串的存储 “: 0 “w“: w 0 “i am“: i a m 0 字符串“i am“的长度为4,二、数据类型 2.1 数据类型 2.2各种类型数据的存储空间 2.3常量 1)各种类型的常量表示 2)有符号整数与无符号整数 3)字符常量 4)字符串常数 用双引号括起来的0至多个字符序列 字符串存储时系统自动在末尾加空字符0 字符串的长度:字符串中的字符个数,不包括空字符。,求字符串 “nyu76r“的长度,长度为6,二、数据类型 2.1 数据类型 2.2各种类型数据的存储空间 2.3常量 1)各种类型的常量表示 2)有符号整数与无符号整数 3)字符常量 4)字符串常数 用双引号括起来的0至多个字符序列 字符串存储时系统自动在末尾加空字符0 字符串的长度:字符串中的字符个数,不包括空字符。,以下语句输出什么? printf(“%d“,sizeof(“nk“);,输出 3,二、数据类型 2.1 数据类型 2.2各种类型数据的存储空间 2.3常量 1)各种类型的常量表示 2)有符号整数与无符号整数 3)字符常量 4)字符串常数 用双引号括起来的0至多个字符序列 字符串存储时系统自动在末尾加空字符0 字符串的长度:字符串中的字符个数,不包括空字符。,例:找出下列常量哪些是错误的 kp 0 “kp“ “p“ “ “kon“,kp “kon“,二、数据类型 2.1 数据类型 2.2各种类型数据的存储空间 2.3常量 1)各种类型的常量表示 2)有符号整数与无符号整数 3)字符常量 4)字符串常数 5)符号常量 以下是用一个符号来代表常量的两种形式: const int abc=-62; #define yu 12.632 这里abc,yu都是常量,不是变量,以下程序段有什么问题? const int x=7; x+; printf(“%d“,x);,x是常量,不能自加,二、数据类型 2.4 数据类型转换 1)数据类型按以下顺序级别提升:char,short,int,long,float,double 2)int转为long时,高位加0,值保持不变。long转为int时,截去高位。 3)实数转为整数时,舍去小数部分。整数转为实型数时,小数为0。double转为float时,四舍五入。,例:以下运算数据如何进行转换? char型+int型 double型+ long型 long型+float型 double型+short型 char型+short型,int double float double short,二、数据类型 2.4 数据类型转换 1)数据类型按以下顺序级别提升:char,short,long,float,double 2)int转为long时,高位加0,值保持不变。long转为int时,截去高位。 3)实数转为整数时,舍去小数部分。整数转为实型数时,小数为0。double转为float时,四舍五入。,例:进行如下语句后,各变量的值是多少? int a,b; long x,y; float u,v; double s,t; a=0x12345678L; x=0x78; u=6.123456789; s=6.123; b=-6.698; v=8;,0x5678 0x78 6.123457 6.123 -6 8.0,二、数据类型 2.4 数据类型转换 4)运算符两端数据类型不一时,低级别转为高级别,然后运算。 5)实型数运算时全部转为double型 6)如果赋值时类型不符,右边表达式的值算出以后,要转化为左边变量的类型,再赋值给左边的变量。 7)输出时如果类型不符,要将表达式的值按输出格式转换。(不可靠),例:以下各表达式的值是多少? 2.3-3/2 2.3-3./2 2-3/2 2-3./2,1.3 0.8 1 0.5,二、数据类型 2.4 数据类型转换 4)运算符两端数据类型不一时,低级别转为高级别,然后运算。 5)实型数运算时全部转为double型 6)如果赋值时类型不符,右边表达式的值算出以后,要转化为左边变量的类型,再赋值给左边的变量。 7)输出时如果类型不符,要将表达式的值按输出格式转换。 (不可靠),例:程序输出什么? main() int a;float b; a=5.6; b=a/2; a=a/b+b/3; b=(a+b)/2; printf(“a=%d,b=%f“,a,b); ,5 2.0 3 2.5,二、数据类型 2.4 数据类型转换 4)运算符两端数据类型不一时,低级别转为高级别,然后运算。 5)实型数运算时全部转为double型 6)如果赋值时类型不符,右边表达式的值算出以后,要转化为左边变量的类型,再赋值给左边的变量。 7)输出时如果类型不符,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民生银行宿迁市泗阳县2025秋招笔试创新题型专练及答案
- 浦发银行楚雄彝族自治州楚雄市2025秋招笔试EPI能力测试题专练及答案
- 光大银行成都市成华区2025秋招笔试创新题型专练及答案
- 2024朝阳师范高等专科学校单招《语文》真题附答案详解【基础题】
- 中信银行石家庄市桥西区2025秋招笔试综合模拟题库及答案
- 2025年南通如东县融媒体中心招聘紧缺型专业人才笔试备考题库及参考答案详解一套
- 2025年丽水缙云县机关事业单位选调22人笔试高频难、易错点备考题库附答案详解
- 2024-2025学年度公务员(国考)考前冲刺练习试题含答案详解【研优卷】
- 华夏银行重庆市渝北区2025秋招金融科技岗笔试题及答案
- 广发银行清远市清城区2025秋招笔试综合模拟题库及答案
- 【语文】第二单元《阅读综合实践》课件-2024-2025学年七年级语文上册(统编版2024)
- 《计算机应用基础项目教程》(赵国龙)764-1资源包-课件-项目一-计算机基础知识
- 堤溪沱江大桥特别重大坍塌事故工程伦理案例分析
- 【尿素生产中的热量衡算2400字】
- 小孩办身份证的委托书范本
- DL∕T 1684-2017 油浸式变压器(电抗器)状态检修导则
- 译林版初中单词表
- 新概念英语第二册第34课随堂练习
- 广东省广州市越秀区2025届高三数学上学期10月阶段测试试题
- NB-T10324-2019光伏发电站高电压穿越检测技术规程
- 广州初中7-9单词表
评论
0/150
提交评论