c语言数据类型及输入输出_第1页
c语言数据类型及输入输出_第2页
c语言数据类型及输入输出_第3页
c语言数据类型及输入输出_第4页
c语言数据类型及输入输出_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言的数据型及数据的输入输出课前复习 判断: C程序由若干个函数构成,每个c程序有且仅有一个主函数(main),并且主函数可以调用非主函数。 C源程序的基本单位是语句,语句结束标志为分号 C程序的执行总是从程序的第一条语句开始,到最后一条语句结束。主函数位置任意。判断下列符号是不是用户标识符 abc, a?b, aA, a-b, f(x),A D,a.txt,D$,s_2, 数据类型 5本章内容 变量类型 常量表示 转义字符 stdio.h中提供的输入输出函数6变量类型(P26)7预备知识 1B= 8bit 1KB= 1024B 1MB= 1024KB= _B 1GB=1024MB=_KB=

2、_B 210=1024 请回顾补码的表述规则;字符型、整型变量的声明 char(1B), short int(2B) ,long int (4B),int(4B) 根据字节数计算表达范围 signed 范围 unsigned 范围 注意在不同系统中长度可能不同,可用sizeof查看(举例),int 类型在VC中是4B,而在TurboC中为2B9 声明一个变量,类型名 后跟变量名 如 char a; 声明多个变量时,变量之间用逗号隔开 如:int a,b,c; 用signed修饰符说明有符号数,signed可以省略 如: signed char a; int b;/a,b均为有符号数 用unsi

3、gned修饰符说明无符号变量 如: unsigned long int c; 当用short long unsigned修饰int时,int 可以省略 如:unsigned long c;等价于unsigned long int c;短整型长整型的修饰unsignedsignedcharintshortlonglong long字符的存储 C语言中的字符存储的是其ASCII char a=A,b=65;/a,b保存的内容相同 示例: #include stdio.h void main() char a=A,b=65; printf(%c,%cn,a,b); printf(%hd,%hdn,s

4、hort(a),short(b); 12char 类型表达范围 unsigned :0000 0000 1111 1111 (0255)singned :char 类型表达范围 unsigned :0000 0000 1111 1111 (0255)singned :-128整数的存储C语言中的有符号整数采用补码表示如:char a=-1;unsigned char b=255;/a,b编码完全相同,都是1111 1111举例:#include stdio.hvoid main() short c=-1; unsigned short d=65535; printf(%hd,%hdn,c,d)

5、; /hd为有符号的短整型 printf(%hu,%hun,c,d); /hu是无符号的短整型 short e=32767,f; f=e+1; printf(%hd,%hdn,e,f);15不同长度整型数据的取值范围 实数类型及声明 float(4B) 表达范围-3.4E10383.4E38之间 6位精度 double(8B) 表达范围-1.7E103081.7E308之间 16位精度 声明举例: float a,b; double c;17实数表示及误差来源 实数是把存储位划分成一定格式,然后分别把表示成0.bbbbbb*2bbbb 格式的数值正负号、尾数、阶码正负号、阶码部分保存到格式相应

6、位置中 如在下图所示的格式中,-27变为指数形式为,0.11011*2101的存储二进制为1001011101100000误差来源:尾数是有限的,有些十进制数变成二进制存储时,长度超过容纳范围丢失产生误差在运算中,对阶移位而使部分尾数移出容纳范围而产生误差18整型常量的表示十进制表示和数学中相同,如35,-36八进制数用零零做前缀,如023,-012, -079(错)十六进制数用零零加x做前缀表示,如0 x2a,-0 x1f用L做后缀表示长整数常量,U后缀表示无符号数常量,如123456789ul示例: #include stdio.h void main() int a,b,c; a=23;

7、b=023;c=0 x23; printf(%d,%d,%dn,a,b,c); 19实数常量 浮点数常量普通表示法,实数后加f,如3.4f,-36.f(.不可省略)科学记数法1.3e-5f,表示1.3X10-5 双精度常量表示与浮点数表示相同,只需要去掉后面f20 字符型常量用单引号做定界符表示 ,如a,3,% 注意字符型常量有且只能有一个字符,如:ab, (空)都是错的 字符串常量用双引号做定界符表示,如:”a”, ”sdhjfdshjfhjsd”,“”(空串),“ ”(由一个空格组成的字符串)实数输出举例 #include stdio.h void main() float a=34.56

8、78;printf(%f,%dn,a,a); 输出结果:34.567799,-1610612736 说明前面存储时产生误差,后者格式错误输出完全错误22转义字符一些在编辑或通信过程中起控制作用的字符,ASCII码值小于32,不属于可打印字符,不方便用键盘输入或无法输入,直接记忆ASCII又比较困难,因此C语言中定义“”转义字符,用”加一个单词的首字母,表示一个控制字符,下面是”后可以跟的字符及其含义23转义字符举例 #include stdio.h void main() printf(a0123456789ak0123456789n); printf(b0123456789bk0123456

9、789 n); printf(0123456789 k0123456789 n); printf(An101012x41x0a n); 24变量的初始化 变量在声明的同时赋一个初始值,称为变量初始化,尽管初始化有时和=运算符起相同的作用,但是其执行原理是不同的,赋值的格式在很多形式下也是不同的,在学复杂数据类型时要特别注意 举例: int a=20,b,c=30; char e=r,f=6725输入输出(一) stdio.h中提供的输入输出函数26getchar()与putchar()函数 C语言为保证自身的可移植性,没有输入输出指令,输入输出功能是通过函数实现的 stdio.h文件中提供的单

10、字符输入输出函数 int getchar(void ) 举例 char c; c=getchar();将从键盘读入一个字符存于c中 int putchar(int c) 举例 char b=A;putchar(b);将在屏幕上输出字母A27getchar()与putchar()函数举例 #include stdio.h void main()char c;c=getchar();/输入 ac=c-32;putchar(c);putchar(n); 28stdio.h中提供的输出函数printf() 格式: int printf(“格式控制字符串”,表达式1,表达式2) 举例:printf(“n

11、ame is%s,age is %d”, “Tom”,30+2) 格式控制串中的控制字符,按照次序控制后面变量列表中字符的输出,像上面例子中,%s控制”Tom”的输出格式,%d控制30+2的输出,注意如果是逗号表达式,一定用括号括起来,否则会视为两个表达式29printf()函数中%后的类型符号 c : 以字符形式输出 d,i:以有符号十进制整数形式输出 o:以无符号八进制整数形式输出 x或X:以无符号十六进制整数形式输出 u:以无符号十进制整数形式输出 f:以带小数点形式输出浮点数 e或E:以科学记数法形式输出浮点数 g或G:由系统选择使用小数点形式或科学记数法形式输出浮点数 s:以字符串形

12、式输出 p:以十六进制内存地址方式输出 %:输出%30控制输出时读取内存的长度 在输出时在类型符号前加L输出长整形或双精度数据,加h输出短整形数据 举例: #include stdio.h void main() long a=0 x11112222L,b=0 x33334444L; printf(%hx,%x,a,b); 31控制输出数据的长度 在使用%d,%c,%f,%e 可以使用数字说明输出的宽度,当指定宽度的整数部分,大于实际需要时填充空格,不能正确输出时,按实际情况输出 #include stdio.h void main() printf(%4d,n%04d,n%-4d,n%+4d

13、,n%x,n%#xn,1,2,3,4,5,5);printf(n%7.2f,n%7.2en,123.456,123.456); -左对齐,+显示正负号,0填充零,#在八进制十六进制前显示前缀32stdio.h中输入函数SCANF() 格式 int scanf(“格式控制字符串”,变量地址列表) 注意事项: 格式字符串,中除了格式控制符外其他字符要求原样输入,否则无法正确输入,所以一般情况下,scanf()的格式串中只包含格式控制符,没有多余字符 scanf()函数中需要的是地址列表,不是变量,如果程序错误,会在程序执行时,出现系统错误33长度限制影响举例/输入时输入时f与与lf有区别有区别,输出时没有区别输出时没有区别#include stdio.hvoid main()float a=12.345f;double b=12.345;scanf(%lf%lf,&a,&b);printf(error input a:%f,%lfn,a,b);scanf(%f%f,

温馨提示

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

评论

0/150

提交评论