C语言程序基本数据类实型 字符型和数据类型的转换_第1页
C语言程序基本数据类实型 字符型和数据类型的转换_第2页
C语言程序基本数据类实型 字符型和数据类型的转换_第3页
C语言程序基本数据类实型 字符型和数据类型的转换_第4页
C语言程序基本数据类实型 字符型和数据类型的转换_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序基本数据类型C语言课程基础部分的任务1.上节课内容回顾2.任务四C语言程序基本数据类实型字符型和数据类型的转换任务单1、实型数据C语言课程基础部分的任务2、字符型数据3、字符串常量6、作业4、赋值语句5、变量的数据类型的转换C语言程序数据类型程序=算法+数据结构+程序设计方法+语言工具和环境C语言的数据类型数据类型基本类型构造类型指针类型(

)空类型(void)字符型(char)数值类型枚举类型(enum)数组类型([])结构体类型(struct)共用体类型(union)整型(short,int,long,unsigbed)实型单精度型(float)双精度型(double)C语言程序基本数据类型C语言提供的基本数据类型包括

int(整)型

float(单精度实)型double(双精度实)型char(字符)型。并且还可以通过使用short(短)、long(长)、signed(有符号)和unsigned(无符号)修饰char和int,用long修饰double,形成更多的类型。C语言程序基本数据类型-整型

注意:括号表示其中的内容是可选的。共六种有符号基本整型有符号短整型有符号长整型无符号基本整型无符号短整型无符号长整型(signed)int(signed)short(int)(signed)long(int)unsignedintunsignedshort(int)unsignedlong(int)整型变量的分类C语言程序基本数据类型-整型整数变量类型的有关数据:整型数据类型所占位数所占字节数

数的表示范围[signed]int162(一个字节占8位)-32768~32767,即-215~215-1[signed]short[int]162-32768~32767,即-215~215-1[signed]long[int]324-2147483648~214748367,即-231~231-1unsigned[int]1620~65535,即0~216-1unsignedshort[int]1620~65535,即0~216-1unsignedlong[int]3240~4294967295,即0~232-1整型数据的溢出(修改)

#include<stdio.h>

main()

{

shortinta,b;

a=32767;

b=a+1;

printf(“%d,%d\n”,a,b);

}

C语言程序基本数据类型-整型说明:数值是以补码表示的。一个整型变量只能容纳-32768~32767范围内的数,无法表示大于32767或小于-32768的数。遇此情况就发生“溢出”。数据输入输出时,%d代表的是输入输出整数运行结果:32767,-32768整型数据的溢出

C语言程序基本数据类型-整型32767:0111111111111111-327681000000000000000说明:数值是以补码表示的。一个整型变量只能容纳-32768~32767范围内的数,无法表示大于32767或小于-32768的数。遇此情况就发生“溢出”。例题#include<stdio.h>main(){longx,y;inta,b,c,d;x=50000;y=60000;a=7;b=8;c=x+a;d=y+b;printf("c=x+a=%d,d=y+b=%d\n",c,d);}C语言程序基本数据类型-整型数据输入输出时,%d代表的是输入输出的是整数从程序中可以看到:x,y是长整型变量,a,b是基本整型变量。它们之间允许进行运算,运算结果为长整型。但c,d被定义为基本整型,因此最后结果为基本整型。本例说明,不同类型的量可以参与运算并相互赋值。其中的类型转换是由编译系统自动完成的。有关类型转换的规则将在以后介绍。c=x+a=50007,d=y+b=60008C语言程序基本数据类型-整型实型数据实型常量实型常量的表示方法实型也称为浮点型。实型常量也称为实数或者浮点数。在C语言中,实数只采用十进制。它有二种形式:十进制小数形式,指数形式。C语言程序基本数据类型-实型浮点型数据浮点型常量的表示方法两种表示形式小数指数0.1233e-3注意:字母e(或E)之前必须有数字,且e后面的指数必须为整数:1e3、1.8e-3、-123e-6、-.1e-3e3、2.1e3.5、.e3、e

C语言程序基本数据类型-实型十进制数形式:由数码0~9和小数点组成。例如:0.0、25.0、5.789、0.13、5.0、300.、-267.8230等均为合法的实数。注意,必须有小数点。C语言程序基本数据类型-实型指数形式:由十进制数,加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。其一般形式为:aEn(a为十进制数,n为十进制整数)其值为a*10n。如:2.1E5(等于2.1*105)3.7E-2(等于3.7*10-2)0.5E7(等于0.5*107)-2.8E-2(等于-2.8*10-2)以下不是合法的实数:345(无小数点)E7(阶码标志E之前无数字)-5(无阶码标志)53.-E3(负号位置不对)2.7E(无阶码)标准C允许浮点数使用后缀。后缀为“f”或“F”即表示该数为浮点数。如356f和356.是等价的。C语言程序基本数据类型-实型例题1\2#include<stdio.h>main(){printf("%f\n",356.);printf("%f\n",356);}C语言程序基本数据类型-实型数据输入输出时,%f代表的是输入输出的是浮点数,

%d代表的是输入输出的是整数#include<stdio.h>main(){printf("%f\n",356.);printf("%d\n",356);}规范化的指数形式

在字母e(或E)之前的小数部分中,小数点左边应有一位(且只能有一位)非零的数字。

例如:123.456可以表示为:

123.456e0,12.3456e1,1.23456e2,0.123456e3,0.0123456e4,0.00123456e5

其中的1.23456e3称为“规范化的指数形式”。C语言程序基本数据类型-实型

实型数据浮点型变量(1)浮点型数据在内存中的存放形式

一个浮点型数据一般在内存中占4个字节(32位)。与整型数据的存储方式不同,浮点型数据是按照指数形式存储的。系统把一个浮点型数据分成小数部分和指数部分,分别存放。指数部分采用规范化的指数形式。C语言程序基本数据类型-实型类型位数数的范围有效数字float32

10-37~10386~7位double型64

10-307~1030815~16位longdouble12810-4931~10493218~19位(2)浮点型变量的分类浮点型变量分为单精度(float型)、双精度(double型)和长双精度型(longdouble)三类形式。C语言程序基本数据类型-实型例题

#include<stdio.h>main(){floata;doubleb;a=33333.33333;b=33333.33333333333333;printf("%f\n%f\n",a,b);}从本例可以看出由于a是单精度浮点型,有效位数只有七位。而整数已占五位,故小数二位后之后均为无效数字。b是双精度型,有效位为十六位。但C++规定小数后最多保留六位,其余部分四舍五入。C语言程序基本数据类型-实型浮点型数据的舍入误差#include<stdio.h>main(){floata,b;a=1.234567e10;b=a+20;printf(“%e\n”,b);}

C语言程序基本数据类型-实型运行结果:1.234567e10说明:一个浮点型变量只能保证的有效数字是7位有效数字,后面的数字是无意义的,并不准确地表示该数。应当避免将一个很大的数和一个很小的数直接相加或相减,否则就会“丢失”小的数浮点型数据浮点型常量的类型

C编译系统将浮点型常量作为双精度来处理。

例如:f=2.45678*4523.65

系统先把2.45678和4523.65作为双精度数,然后进行相乘的运算,得到的乘也是一个双精度数。最后取其前7位赋给浮点型变量f。如是在数的后面加字母f或F(如1.65f,654.87F),这样编译系统就会把它们按单精度(32位)处理。C语言程序基本数据类型-实型字符型数据用一对单引号括起来的单个字符,称为字符常量字符可以是字符集中任意字符。但数字作为字符型参与数值运算时数字的值就不是它的本身的值。C语言还允许使用一种特殊形式的字符常量,就是以反斜杠“\”开头的转义字符。

字符变量的类型关键字为char,一般占用1字节内存单元。字符变量用来存储字符常量。将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号整数)存储到内存单元中。可作为整数和字符两种形式输出,可对字符进行整数运算(ASCII码值)。C语言程序基本数据类型-字符型字符常量(1)用单引号包含的一个字符是字符型常量(2)只能包含一个字符C语言程序基本数据类型-字符型例‘a’,’A’,‘1’‘abc’、“a”

字符变量字符变量用来存储字符常量,即单个字符。字符变量的类型说明符是char。字符变量类型定义的格式和书写规则都与整型变量相同。例如:

chara,b;字符数据在内存中的存储形式及使用方法:每个字符变量被分配一个字节的内存空间,因此只能存放一个字符。字符值是以ASCII码的形式存放在变量的内存单元之中的。C语言程序基本数据类型-字符型如X的十进制ASCII码是120,y的十进制ASCII码是121。对字符变量a,b赋予'x'和'y'值:a='x';b='y';实际上是在a,b两个单元内存放120和121的二进制代码:a:01111000b:01111001所以也可以把它们看成是整型量。C语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输出时,允许把字符变量按整型量输出,也允许把整型量按字符量输出。

C语言程序基本数据类型-字符型向字符变量赋以整数。main(){chara,b;a=120;b=121;

printf("%c,%c\n",a,b);

printf("%d,%d\n",a,b);

}C语言程序基本数据类型-字符型x,y120,121Pressanykeytocontinue数据输入输出时,%c代表的是输入输出的是字符数据本程序中定义a,b为字符型,但在赋值语句中赋以整型值。从结果看,a,b值的输出形式取决于printf函数格式串中的格式符,数据输入输出时,%c代表的是输入输出的是字符常量,当格式符为"c"时,对应输出的变量值为字符,当格式符为"d"时,对应输出的变量值为整数。C语言程序基本数据类型-字符型向字符变量赋以整数

#include<stdio.h>

main()

{

charc1,c2;

c1=97;

c2=98;

printf("%c%c\n",c1,c2);

printf("%d%d\n",c1,c2);

}C语言程序基本数据类型-字符型运行结果:ab

9798说明:在第3和第4行中,将整数97和98分别赋给c1和c2,它的作用相当于以下两个赋值语句:

c1=′a′;c2=′b′;因为’a’和’b’的ASCII码为97和98向字符变量赋以整数main(){chara,b;a=10000;b=121;printf("%d,%d\n",a,b);}整型量的内存最少为二字节量,字符量为单字节量,当整型量按字符型量处理时,只有低八位字节参与处理。

C语言程序基本数据类型-字符型程序运算结果16,121分析10000的内存存放形式16位应该是0010011100010000当整型量按字符型量处理时,只有低八位字节参与处理。低八位的二进制数值为00010000换算为10进制是16所以程序运算结果16,121C语言程序基本数据类型-字符型结论

整型量的内存最少为二字节量,字符量为单字节量,当整型量按字符型量处理时,只有低八位字节参与处理。低八位运算的最大取值范围是0—11111111,换算到10进制就是0——255。C语言程序基本数据类型-字符型大小写字母的转换#include<stdio.h>

main()

{

charc1,c2;

c1='a';

c2='b';

c1=c1-32;

c2=c2-32;

printf("%c%c\n",c1,c2);

}C语言程序基本数据类型-字符型运行结果:AB

说明:程序的作用是将两个小写字母a和b转换成大写字母A和B。从ASCII代码表中可以看到每一个小写字母比它相应的大写字母的ASCII码大32。C语言允许字符数据与整数直接进行算术运算。a和b的大小写转换#include<stdio.h>

main(){chara,b;a='a';b='b';a=a-32;b=b-32;printf("%c,%c\n%d,%d\n",a,b,a,b);}C语言程序基本数据类型-字符型A,B65,66PressanykeytocontinueC语言程序基本数据类型-字符型转义字符字符形式\n\t\v\b\r\f\\\'\ddd\xxh功能换行横向跳格(即跳到下一个输出区)竖向跳格退格回车走纸换页反斜杠字符“\”单引号(撇号)字符1到3位8进制数所代表的字符1到2位16进制数所代表的字符说明:

广义地讲,C语言字符集中的任何一个字符均可用转义字符来表示。表中的\ddd和\xhh正是为此而提出的。ddd和hh分别为八进制和十六进制的ASCII代码。如\101表示字母"A",\102表示字母"B",\134表示反斜线,\XOA表示换行等。

C语言程序基本数据类型-字符型字符串常量字符串常量是用一对双引号括起来的若干字符序列。例如:“CHINA”,“Cprogram”,“$12.5”等都是合法的字符串常量。C语言规定:在存储字符串常量时,由系统在字符串的末尾自动加一个‘\0’作为字符串的结束标志。‘a’是字符常量,而“a”是字符串常量。不能将一个字符串赋给一个字符变量。C语言程序基本数据类型-字符串常量例如:字符串"Cprogram"在内存中所占的字节为:Cprogram\0字符常量'a'和字符串常量"a"虽然都只有一个字符,但在内存中的情况是不同的。'a'在内存中占一个字节,可表示为:a"a"在内存中占二个字节,可表示为:a\0C语言程序基本数据类型-字符串常量字符串常量和字符常量是不同的量。它们之间主要有以下区别:

字符常量由单引号括起来,字符串常量由双引号括起来。字符常量只能是单个字符,字符串常量则可以含一个或多个字符。可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。在C语言中没有相应的字符串变量。这是与BASIC语言不同的。但是可以用一个字符数组来存放一个字符串常量。在数组一章内予以介绍。字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字节数加1。增加的一个字节中存放字符"\0"(ASCII码为0)。这是字符串结束的标志。C语言程序基本数据类型-字符串常量变量赋初值变量赋初值在程序中常常需要对变量赋初值,以便使用变量。语言程序中可有多种方法为变量提供初值。先介绍在作变量定义的同时给变量赋以初值的方法。这种方法称为初始化。在变量定义中赋初值的一般形式为:类型说明符变量1=值1,变量2=值2,……;C语言程序基本数据类型-赋值语句变量赋初值

(1)C语言允许在定义变量的同时使变量初始化。如:inta=3;

指定a为整型变量,初值为3

floatf=3.56;

指定f为浮点型变量,初值为3.56

charc=‘a’;

指定c为字符变量,初值为‘a’变量赋初值可以使被定义的变量的一部分赋初值。如:

inta,b,c=5;表示指定a、b、c为整型变量,但只对c初始化,c的初值为5如果对几个变量赋以同一个初值,应写成:inta=3,b=3,c=3;

表示a、b、c的初值都是3。不能写成∶

inta=b=c3;

注意:初始化不是在编译阶段完成的而是在程序运行时执行本函数时赋初值的,相当于有一个赋值语句。

C语言程序基本数据类型-赋值语句例如inta=3;intb,c=5;floatx=3.2,y=3.0,z=0.75;charch1='K',ch2='P';应注意,在定义中不允许连续赋值,如a=b=c=5是不合法的。C语言程序基本数据类型-赋值语句【一部分变量赋初值】

#include<stdio.h>main(){inta=3,b,c=5;b=a+c;printf("a=%d,b=%d,c=%d\n",a,b,c);}a=3,b=8,c=5C语言程序基本数据类型-赋值语句变量的数据类型的转换

变量的数据类型是可以转换的。转换的方法有两种:1)一种是自动转换,2)一种是强制转换。C语言程序基本数据类型-变量的数据类型的转换变量的数据类型的自动转换

自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成。C语言程序基本数据类型-变量的数据类型的转换

自动转换遵循以下规则:

1)若参与运算量的类型不同,则先转换成同一类型,然后进行运算。2)转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。3)所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。4)char型和short型参与运算时,必须先转换成int型。5)在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。C语言程序基本数据类型-变量的数据类型的转换变量的数据类型的自动转换整型、单精度型、双精度型数据可以混合运算。不同类型的数据要先转换成同一类型,然后进行运算。转换规则如图:箭头只表示转换方向,并不是依次转换。转换过程是自动完成的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论