数据类型与简单输入输出_第1页
数据类型与简单输入输出_第2页
数据类型与简单输入输出_第3页
数据类型与简单输入输出_第4页
数据类型与简单输入输出_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

数据类型与简单输入输出1第1页,共32页,2023年,2月20日,星期六教学内容:C语言基本数据类型常量与变量数据的输出与输入2第2页,共32页,2023年,2月20日,星期六沃思(N.Wirth)公式:

数据结构+算法=程序数据是程序处理的对象,程序的主要任务就是对数据进行加工、处理,而计算机中的数据包括数值型数据和非数值型数据,如我们知道在数学中的整数、实数就是数值型的数据,计算机能够处理的文字、声音、图像等就是非数值型数据。数据类型是按照被说明量的性质、表示形式和占据存储空间的多少以及构造特点来划分的,包括基本数据类型、构造数据类型、指针类型和空类型四大数据类型。3第3页,共32页,2023年,2月20日,星期六数据类型决定:1.数据占内存字节数2.其上可进行的操作3.其数据的取值范围不同C数据类型基本类型构造类型指针类型(*)空类型(void)字符类型(char)枚举类型(enum)整型实型单精度型(float)双精度型(double)数组类型([])结构体(struct)共用体(union)短整型(short)长整型(long)整型(int)数值类型2.1 C语言基本数据类型2.1.1数据类型概述4第4页,共32页,2023年,2月20日,星期六2.1.2整数类型

整型数据可分为一般整型、短整型和长整型三种,其中:(1)一般整型:用int表示;占2字节(2)短整型:用shortint或short表示;占2字节(3)长整型:用longint或long表示;占4字节整型又可分为有符号类型和无符号类型,无符号类型只在类型符号前面加上unsigned即可,如:用unsignedint表示无符号整型,用unsignedshort表示无符号短整型,用unsignedlong表示无符号长整型。对于无符号型数据,存储单元中没有符号位,所有二进制位用来存放数据本身。5第5页,共32页,2023年,2月20日,星期六6第6页,共32页,2023年,2月20日,星期六2.1.3实数类型实数类型的数据简称实型数据,有时又称为浮点型数据,实型可分为单精度型和双精度型两种,其中:(1)单精度型:用float表示;(2)双精度型:用double表示。在一般系统中,TurboC所支持float型数据在内存中占4个字节(32位),double型数据占8个字节(64位)。其中:float型实数能接收7位有效数字(即精确到小数点后第7位),double型实数能接收15位有效数字(即精确到小数点后第15位)。7第7页,共32页,2023年,2月20日,星期六2.1.4字符类型其类型标识符为char,在内存中占一个字节,字符型数据在内存中以ASCII码存储,其ASCII码值为0~127,如字符‘a’的ASCII码值为97,用01100001表示。8第8页,共32页,2023年,2月20日,星期六符号关键字数的表示范围所占位数整型有无(signed)int(signed)short(int)(signed)long(int)unsignedintunsignedshortunsignedlong实型字符型有有有无floatdoublecharUnsignedchar161632161632326488-32768~327670~65535-32768~32767-2147483648~21474836470~655350~4294967295约3.4E-38~3.4E38约1.7E-308~1.7E308-128~1270~255说明:数据类型所占字节数随机器硬件不同而不同,上表以IBMPC机为例:9第9页,共32页,2023年,2月20日,星期六2.2.1常量常量指在程序运行的整个过程中其值不能改变的量,可以有不同的类型,又可分为直接常量和符号常量。2.2常量与变量10第10页,共32页,2023年,2月20日,星期六1.整型常量

十进制整型常量:与数学上的整数表示相同,由数字0~9和正负号表示,如123,-456,0,而024,25o错误。

八进制整型常量:以0为前缀,后跟数字0~7表示,如0123,011。十六进制整型常量:由0x或0X开头,后跟0~9,a~f,A~F表示.如0x123,0Xff。注意:在程序中是根据前缀来区分各种进制数的,一定要前缀正确;八进制与十六进制一般只表示正数;整型常数根据其值所在范围确定其数据类型;而整型常数范围有限,超出范围时可用长整型数来表示,方法是加后缀”L”或”l”;11第11页,共32页,2023年,2月20日,星期六无符号数也可用后缀”U”或”u”来表示;常量的前后缀可同时使用以表示各种类型的数;如:98L,78u,017lu,0xaau,0X1fL例30000为int型65536为longint型12与12L?12第12页,共32页,2023年,2月20日,星期六2.实型常量C中实型常量只能用十进制形式表示,且有一般形式和指数形式两种表示方式:一般形式:由0~9的数字、正负号和小数点组成如2.1,.1,-1.45

指数形式:由十进制数加上阶码标志”e”或”E”以及阶码组成,可表示为aEn,其中a为十进制数,n为十进制整数且可以带符号,其所表示的值为a*10n注意:小数点不能单独出现如:.指数形式表示中”e”或”E”两边必须有数且后面必须为整数标准C浮点数默认为double型,并允许使用后缀”f”或”F”来表明为浮点数,如32f和32.0是等值的13第13页,共32页,2023年,2月20日,星期六定义:用单引号括起来的单个普通字符或转义字符.字符常量的值:该字符的ASCII码值如‘\101’-----------‘A’‘\012’-----------’\n’‘\376’-----------’’‘\x61’-----------’a’‘\60’-----------’0’‘\483’----------()例:‘A’-------’\101’-------’\x41’--------65如‘A’——65,‘a’——97,

‘0’——48,‘\n’——10如‘a’‘A’‘?’‘\n’‘\101’转义字符:反斜线后面跟一个字符或一个代码值表示例转义字符举例(ch2_001.c,ch2_004.c)main(){printf("\101\x42C\n");printf("Isay:\"Howareyou?\"\n");printf("\\CProgram\\\n");printf("Turbo\'C\'");}运行结果:(屏幕显示)ABCIsay:”Howareyou?”\CProgram\Turbo‘C’例main(){printf(“Y\b=\n”);}运行结果:屏幕显示:=打印机输出:¥3.字符常量<转义字符及其含义:转义字符含义\n\v\r\a\‘\ddd\t\b\f\\\“\xhh转义字符含义换行垂直制表回车响铃单引号3位8进制数代表的字符水平制表退格换页反斜线双引号2位16进制数代表的字符注意:C语言字符集中任何一个字符均可用转义字符来表示14第14页,共32页,2023年,2月20日,星期六可把一个字符常量赋值给一个字符变量,但不能把一个字符串常量赋值给一个字符变量。例如:charm;m=“A”;4.字符串常量字符串常量是由一对双撇号括起来的字符序列,如“hello”,“a”,“19”,“”,“”,“0&$”。字符串常量的长度:字符串中的字符个数,如“”长度为0。每个字符串串尾自动加一个‘\0’作为字符串结束标志。如“hello”在内存中为而空串“”在内存中为hello\0\0注意:一个字符常量占1个字节的内存空间,而字符串常量所占内存字节数等于其长度加1。aa\0例‘a’“a”15第15页,共32页,2023年,2月20日,星期六5.符号常量符号常量指用标识符定义一个直接常量,它的值在程序中不能更改。声明形式:#define标识符直接常量如:#definePI3.14159其中:#define是一条宏定义预处理命令,不是C语句;符号常量一般用大写字母;符号常量在使用之前必须先声明,定义后程序中遇到该常量处都用其定义的直接常量值代替。#defineRATE8.54voidmain(void){floatresult;result=1000.0*RATE;printf(“resultis%f\n”,result);}16第16页,共32页,2023年,2月20日,星期六1.变量的概念:程序执行过程中其值可以改变的量变量名、变量值、变量地址2.变量的声明:

数据类型变量1[,变量2,…,变量n];3.变量的初始化:声明时赋初值例:

inta,b,c;floatdata;决定分配字节数和数的表示范围合法标识符例:

inta=2,b,c=4;floatdata=3.67;charch=‘A’;intx=1,y=1,z=1;

intx=y=z=1;变量的使用:先声明,后使用例1

intstudent;stadent=19;//Undefinedsymbol‘stadent’infunctionmain

例2floata,b,c;c=a%b;//Illegaluseoffloatingpointinfunctionmain

变量声明位置:一般放在函数开头main(){inta,b=2;floatdata;a=1;data=(a+b)*1.2;printf(“data=%f\n”,data);}变量定义可执行语句main(){inta,b=2;a=1;floatdata;data=(a+b)*1.2;printf(“data=%f\n”,data);}2.2.2变量编译程序根据变量定义为其分配指定字节的内存单元…...地址inta=1,b=-3,c;abc2字节2字节2字节地址地址…...内存1-3随机数17第17页,共32页,2023年,2月20日,星期六例2.2:

main()

{charch1,ch2;

ch1=‘a’;ch2=‘b’;

ch1=ch1-32;ch2=ch2-32;

printf(“ch1=%c,ch2=%c\n”,ch1,ch2);}注意:1、字符型数据和整形数据是通用的。但字符数据只能存放0~255范围内的整数。

2、字符数据与整数可以直接进行算术运算。

3、字符数据与整型数据可以相互赋值。

4、TurboC将字符数据处理成带符号的整数,如果不想按有符号处理,可将字符变量定义为unsignedchar类型。4.变量的赋值可以用赋值运算符“=”将一个表达式的值赋给一个变量。18第18页,共32页,2023年,2月20日,星期六2.3数据的输出与输入2.3.1数据的输出1.字符输出函数格式:putchar(c)参数:c为字符常量、变量或表达式;功能:把字符c输出到标准输出设备上(一般指显示器);返回值:正常时返回所输出字符的ASCII值;出错,则返回-1。19第19页,共32页,2023年,2月20日,星期六例2.3:#include<stdio.h>main(){intc;chara;c=65;a='B';putchar(c);putchar('\n');putchar(a);}运行结果:AB20第20页,共32页,2023年,2月20日,星期六2.格式输出函数格式:printf(“格式控制字符串”,输出项列表);功能:按指定格式向输出设备(一般为显示器)输出数据;返回值:正常,返回实际输出的字符数;出错,则返回-1。输出项列表可以有零个或多个输出项,每个输出项之间用逗号分割,输出的数据可以是整数、实数、字符和字符串;格式控制字符串必须用英文的双引号括起来,它的作用是控制输出项的格式和输出一些提示信息。21第21页,共32页,2023年,2月20日,星期六格式控制字符串包含两种信息格式说明:%[修饰符]格式字符普通字符或转义字符:普通字符原样输出,转义字符表示特定的含义,如'\n'表示换行,'\t'表示水平制作等式字符⑴格式字符格式字符输出形式格式字符输出形式d或i十进制整数o八进制整数x或X十六进制整数u无符号十进制整数c输出一个字符s输出字符串f小数形式的浮点数e或E指数形式的浮点数g或Ge和f中较短的一种%输出百分号说明:格式字符要用小写格式字符与输出项个数应相同,按先后顺序一一对应输出转换:格式字符与输出项类型不一致,自动按指定的格式输出22第22页,共32页,2023年,2月20日,星期六⑵修饰符也就是附加格式说明符,这些修饰符可以联合使用,其一般形式为:%[flag][m][.n][h|l]type修饰符功能m输出数据域宽,数据长度<m,左补空格,否则按实际输出.n对实数,制定小数点后位数,多则舍入对字符串,指定实际输出位数-输出数据在域内左对齐,缺省为右对齐+指定在有符号数的正数前显示正号“+”0输出数值时指定左面不使用的空位置自动添0#在八进制和十六进制数前显示前导0或者0xl在d、o、x、u前,指定输出精度为long型在e、f、g前,指定输出精度为double型h输出短整型数据的值23第23页,共32页,2023年,2月20日,星期六例inta=1234;floatf=123.456;printf(“%08d\n”,a);printf(“%010.2f\n”,f);printf(“%+08d\n”,a);printf(“%+010.2f\n”,f);

例:0、+例inta=123;printf(“%o,%#o,%X,%#X\n”,a,a,a,a);

例:#例longa=65536;printf(“%d,%8ld\n”,a,a);

例:l00000000000000010000000000000000

//00001234

//0000123.46//+0001234

//+000123.46//173,0173,7B,0X7B//0,6553624第24页,共32页,2023年,2月20日,星期六2.3.2数据的输入1.字符输入函数格式:getchar()功能:从输入设备(一般为键盘)上输入一个字符;返回值:正常时是该字符的ASCII编码值,出错则返回-1。#include<stdio.h>main(){charch;printf("Enteracharacter:");ch=getchar();printf(“%c,%c”,ch,ch+2);}运行结果:Enteracharacter:输入:A输出:A,C25第25页,共32页,2023年,2月20日,星期六注意:(1)执行getchar()输入字符时,键入字符后需要敲回车键,回车后,程序才会响应输入,继续执行后续语句;(2)getchar()也将回车键作为一个回车符读入。因此,在用getchar()连续输入两个字符时要注意回车符;(3)getchar()只能接受单个字符,输入数字也按字符处理,输入多于一个字符时,只接收第一个字符;(4)使用本函数前必须包含文件“stdio.h”;(5)在程序运行过程中遇到时getchar()时,将进入黑屏状态,等待用户输入,输入完毕返回TC界面,程序继续向下运行。26第26页,共32页,2023年,2月20日,星期六2、格式输入函数格式:scanf(“格式控制字符串”,地址列表)功能:按指定格式从键盘读入数据,存入地址列表指定的存储单元中,并按回车键结束。返回值:正常时返回输入数据的个数,遇文件结束返回EOF,出错则返回0。地址列表:由若干变量的地址组成,各地址间以逗号间隔,其中常用取地址运算符&。格式控制字符串:由格式控制字符和普通字符构成;其中格式控制字符的作用与printf函数相似,只不过变成了输入,其一般形式为:%[*][m][h|l]type27第27页,共32页,2023年,2月20日,星期六l修饰符功能hm*用于d,o,x前,指定输入为short型整数用于d,o,x前,指定输入为long型整数用于e,f前,指定输入为double型实数指定输入数据宽度,遇空格或不可转换字符则结束抑制符,指定输入项读入后不赋给变量例scanf(“%4d%2d%2d”,&yy,&mm,&dd);输入19991015

则1999yy,10mm,15dd附加格式说明符(修饰符)功能:28第28页,共32页,2023年,2月20日,星期六一般以空格、TAB或回车键作为分隔符其它字符做分隔符:格式串中两个格式字符间的字符例scanf(“%d%o%x”,&a,&b,&c);printf(“a=%d,b=%d,c=%d\n”,a,b,c);输入123123123

输出a=123,b=83,c=291例scanf(“%d:%d:%d”,&h,&m,&s);输入12:30:45

则12h,30m,45s例scanf(“%d,%d”,&a,&b)输入3,4

则3a,4b输入分隔符的指定:例scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);输入a=12,b=24,c=36

29第29页,共32页,2023年,2月20日,星期六说明:用“%c”格式符时,空格和转义字符作为有效字符输入。如scanf(“%c%c%c”,&c1,&c2,&c3);若输入abc

则‘a’c1,‘’c2,‘b’c3输入数据时,遇以下情况认为该数据结束:遇空格、TAB、或回车。遇宽度结束。如“%3d”,只取3列。遇非法输入。如scanf(“%d%c%f”,&a,&b,&c);若输入1234a123o.26则1234a,‘a’b,123c输入函数留下的“垃圾”:例

温馨提示

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

评论

0/150

提交评论