版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、鼻 第3章 基本数据类型与 数据的输入输出 31 C语言的基本数据类型简介 3.2标识符、常量、变量 33基本数据类型 34数据的输入与输出 3.1 C语言的基本数据类型简介 J 整型(int) 厂基本类型 字符型(畑) 单精度型(float) I 实型(浮点型)双(J 度型(double) 数组类型 数据类型构造类型 J 结构体类型(struct) I 共用体类型(union) J 菠傘契型(enum) 指针类型 I 无值型(void) 32标识符、常量、变量 3.2.1 标识符 1 标识符 标识符:用来标识变量名、函数名、数组名、类 型名和文件名的有效字符序列。 用户定义标识符时要注意以下
2、规则: (1) 标识符由字母.数字、下划线组成 (2) 数字不能打头 (3) 标识符区分大小写 如 SUIVI 与 sum 代表不同的标识符。 (4)不能用 C 语言的关键字 如 charjnt 等关键字,已被 C 系统使用,不能用 作变量名。 正确 不正确 smart Ssniart 第一个字符不是字母或下划线 decision bomb? key_board FLOAT key.board float 含有非法字符? 含有非法字符. 不能用 Turbo C 保留字 PI a+b 含有非法字符“+片 下面举出几个正确和不正确的标识符: 2标识符的种类 在 Turbo C 中标识符有以下三种:
3、 (1)关键字:所谓关键字就是已被 Turbo C2.0 本 身使用,不能作其它用途使用的字。 (2)编译预处理的命令单词:如:#inchide、 #define 等。 (3)用户标识符:用户自己定义的变量名、常量 名、函数名等。 由ANSI标准定义的Turbo C2.0关键字 有以下共32个: auto double int long switch case char extern return short unsigned continue default goto sizeof while static struct break else enum register typedef un
4、ion const float for signed void volatile do if 3.2.2常量 常量是指程序运行过程中不能变化的量,分为两 种:数值常量和字符常量。 1 数值常量 数值常量有两种:整型常量和实型常量,分别表 示整数和实数 (1)整型常量:如:207, 30, 181。 有十进制、八进制、十六进制等。 2)八进制整数:如 012=(10) , 017= (15)10 3)十六进制整数:如 Oxl2=(18)lo 0 xlf=) 整型常量的三种形式: 1)十进制整数:如:12.()、3 十六进制数码:( (M9,b, 符号常量:用标识符代表一常量。 #define 常
5、量名 整常数值 #define M 30 表示定义了一个符号常量 M,它的值为 30 例:#define PI 3.1416 main() float s, r=2; s= Pl * r * r; print area = %f H,s); (2)实型常量 带小数点的数。 实数的两种形式: 小数形式: 例如:2.14 指数形式: 例如:2.31el0 表示 2.31X1010 实数的两种类型: 单精度(67 位有效位数) 双精度(1516 位有效位数) (1)用单引号括起来的一个字符:如处,、F、IT等。 其实际值足字符的ASCII码值. 转义字符:(见表31)是以开头的特殊字符。 表示控制字
6、符。如 换行 t跳格 b回退一格r回车 表示特殊符号。如、”、等。 例:printf(nI say:M HeIlo!V nM); 结果显示:Isay: M Hello!M ddd(ddd表示逾八建制数表示的ASCII码),表示任何字 符。 xhh(hh表示2位十六进制表示的ASCII码)表示任何字符。 2字符常量 如*x6r= *141*= *3*, *012f = Xn* printf(nabtcdefgbhijknM); printf(MABCDefgrEFGH012n); printf(Hc:examtest ); EFGHefg c:examtest 其值可以改变的量称为变量。每个变量
7、有名字, 在内存中占一定的存储空间,用来存放数据。 1 变量定义 类型名变量名列表; 变量名列表 例如: 运行结果: ab cdethijk 例转义字符的使用 main() 3.2.3变量 int i,j, k; long c; 3.3基本数据类型 整型(int)、实数类型(float 或 double).字符型 (char)o 3.3.1 整型(int) 1 整型变量定义 整数类型变量名; Turbo C有几种整型(int)数据,见表32所示 类型 简写 字长 说明 数的范围 signed short int short 或 int. 2 字节 有符号短整型数 -32768-32767 si
8、gned long int long 4 字节 有符号长整型数 -2I4748364S -2147483647 unsigned short int unsigned int 2 字节 无符号短整型数 0-65535 unsigned long int unsigned long 4 字节 无符号长整型数 0-4294967295 例如:定义几个不同的变量。 匚 int a. b. c; unsigned int d. e;按有无符号分有符号 无符号 按数据长短 长整数 短整数 abc取值范围: 32768 +32767。 d疋两个变量定义为无符号整数,数值范围: 0 65535之间。 2整型
9、数的存储形式 数据在内存中以二进制形式存放。 一个 inf 型数据占 2 字节,即 16 位二进制数位。 一个 lonj? int 型数据占 4 字节. 例:10(int 型)的占位情况:0000 0000 0000 1010 有符号数:负数将以补码形式存放。 例: 10 的补码 1 (MM) 0000 ()000 1010 1 111 1111 1111 0110 补码=原码取反+1 符号位 3整型变量赋值及其说明 (1)变量的初始化。 int a=3, b=100; unsigned long c=65535 ; (2)八进制数、十六进制数. int f = 022; /*f 的值是八进制
10、数 22,即十进制的 18 */ (3)在整型常数后添加一个或”字母表示该数 为长整型数如 22L, 773L。 例如:long a=22L ; 如果表示为 0773L 表示该数为八进制的长整型数 3.3.2 实数类型(float和double) 有 float、double 类型。 1 实数类型变量定义 v 实数类型变量列表; 三种:单精度实数、双精度实数和长双精度实数。 单精度实数(float) 4 字节 67 位有效数字 博精度实数叭皿)停 Z 位有效 可以用下列语句定义实数类型变量: float aj; double b; float a=12.5, f=0.12346; 2实数类型的
11、存储形式 实数类型在内存中以指数形式存储。 例:float是单精度实数类型,占4字节,内存形式为:以 高24位表示小数部分,最高位表示符号位;低8位代表指 数部分。实数类型数3.1415926的存储形式如 双精度实数(double) 8 字节 1516 位有效数字 3 实数类型变量赋初值及其说明 例如:float a=29.56, f= -6.8e-18; 说明: (1)实数类型常数只有十进制。 (2)所有实数类型常数都被默认为 double 型。 (3)绝对值小于 1 的实型数, 其小数点前面的零 可以省略。 如:022 可写为.22, -0.0015E3 可写为-.0015E-3o 1 字
12、符型变量的定义及存储 字符型变量定义形式如下: 字符类型数据可分为有符号和无符号有两种类型。 字符类型 变量 列表; 3.3.3 字符型(char) 例如: char a; unsigned char c; 字符型数据的存储 字符在计算机中以其 ASCII 码方式表示,其长度 占 1 个字节的存储单元 9 有符号字符型数取值范围为-128-127, 无符号字符型数取值范围是 0255 在 Turbo C 语言中,字符型数据在操作时将按整 型数处理,如果某个变量定义成 char,则表明该 变量是有符号的,即它将转换成有符号的整型 数(int)。 字符型数据的存储 例 char c ; char
13、dLd2; 将字符赋给变量,就是将字符的ASCII码 存放到变量所占的内存单元中。为变量赋值:dl= ; d2 01100010 dl 01100001 例:将小写字母转换为大写形式。 main() char cl,c2; cl-a;c2-b;相当于 cl=97 ; c2=98; cl=cl-32; 相当于 cl =97-32=65 ; c2=c2-32; 相当于 c2=98-32=66 ; printf(n%c %c M ,cl ,c2); 运行结果: AB 在字符型数的取值范围内字符型数据与整型数 据之间可以通用。 实际是对 ASCII 码值进行运算。 例 main() char cl,c
14、2; cl=97;c2=98; printf(n%c ,%cM,cl,c2); printf(M%d,%dH,cl,c2); 运行结果: a, b 97, 98 2 字符变量的赋值及字符常数表示 如也可用该字符的 ASCII 码值表示。 char a=fAf; char a=65; char c = fnf; 一些不能用符号表示的控制符,只能用 ASCII 码值 八进制数 033 表示 Esc 字符串常量 字符串常量是一对双引号括起来的字符序列。如: ftcomputcrft ftChinaM naw 规定:字符串的结尾有一个字符箭,作为字符串 的结束标志(的 ASCII 码值为 0)。 5”
15、实际存放形式是:*a* W,占两个字节。 char c; c=naM;是错误的。 C 语言中没有字符串变量,存放字符串只能存放 在字符数组中。 3.4数据的输入与输出 输入:指从外部输入设备(如键盘)向计算机输 入数据。 输出:指计算机向外部输出设备(如显示器、打印 机)输出数据。 C 语言中用库函数实现数据的输入输出。C 标准 函数库中提供了一些标准输入输出函数。如 printf N scanf putchar getchar、puts、gets o 使用库函数时,要用预编译命令 门# include 在头文件中包含了与所调用函数有关的信息。 如:putchar() getchar() 3.
16、4.1字符输出函数 函数的格式: putchar( ch ); 将变量 ch 中的内容以一个字符形式输出到屏幕上。 其中 ch 可以是字符型变量,也可以是整型变量, 还可以是字符型常量或整型常量。 【例32】putchar()函数的使用 char x = ,y = B; int i=97; putchar(x); putchar(y); putchar(C*); putchar(i); putchar(98); putcharC!*); /*输出字符常量*/ /* C03_02.C */ include main() 程序的输出结果如下: ABCab! putchar()也可以输出转义控制字符
17、。 如 putchar(rn );表示输出换行符,即控制输出位 置换到下一行的开头。 #include main() char x= A 爲 y 二 *8*; putchar(x); putchar(*f); putchar(y); putchar(*n); putchar(C); putcharf*!*); c = getchar(); 鍔霹谿霍緞翼廳胸入个字符并将 例 33】捡入_个大写超;|將酋芒誓嵯世|占 #inclu(le printf(11 Please input a c=getchar(); /* 输入一个字符 */ c=c+32; 3.4.2字符输入函数 程序的输出结果如下:
18、 A B C! putchar(c); 使用getchar()函数应注意以下两点: (1) getchar()函数可以作为 putchar()函数的参 数,putchar(getchar(); (2)使用 getchar()函数时, 回车键也会作为输入 字符的一部分。尤其在连续使用getchar()函数时 要注意回车键将会作为换行符被下一 getcharO 所接受。 【例 3.4】连续使用 getcharO 时应注意的问题。 /* C03_04.C / #includc main() char x; x=getchar(); y=gctchar(); putchar(x); putchar(y
19、); 要想为x输入字符A,为y输入字符B,则 输入应采用如下形式: AB J 运行结果如下: A J A 输出结果显示: AB 1 343格式输出函数 printf(M格式控制”,输出项列表); 按某种格式,向输出设备输出若干个指定类型的 数据。 printf ()函数的参数包括:格式控制和输出项列 表两部分。 格式控制部分要用一对双撇号括起来,用于说明 输出项所采用的格式; 输出项列表是所要输出的内容,可以是变量、表 达式、或常量。 (1) )普通字符(包括转义控制字符),将原样输出。 例:printf(HChinaM); 该例输出普通字符串 China 例:printf(nt China
20、nM ); t输出位置跳到下一个输出区(一个输出区为8个西文字 符位置),然后输出字符串,最后输出控制字符 5, 控制换行。 输出结果如下: China格式控制部分又可分为:普通字符和格式说明两部分。 (2)格式说明部分,以开头,以格式说明符结 尾。用于控制输巴数据的类型号形式。 例:printf(a $ b= b): 岸通?焙 U 式说話 列表 若设 a 变量中的值是 10, b 变量的值是呃, 则输出结果是: a= 10 b= E 格式控制中的各格式说明符与输出项在个数、次序、类 型方面必须一一对应 格式说明的一般格式如下: % -m.nl格式说明符 I定输出项的类熨 附加说明符 格式说明
21、符:用单一字母表示,用来指定对应输出项的输 出格式,其含义如下。 d 按十进制有符号整型输出 以八进制无符号整数输出 x 以十六进制无符号整数输出 匚 11 按十进制无符号整型输出 c 以字符格式输出,只输出一个字符. s 输出字符串. 仁以小数形式输出单、双精度数输出 6 位小数. c 以标准指数形式输出单、双精度数. 如:%d一按十进制有符号整型数输出 % f 以小数形式输出单、双精度数. _ 附加说明符的含义如下。 I :用于输出long型数据,如% I d, % I u m.n: 指定输出域宽及精度,m和n都是正整数 左对齐输出数据。 2整型格式说明符 (1)十进制形式输出 %md:控
22、制输出项按十进制有符号整数形式输出。 m是一个整数,用于指定输出数据的最小占位宽度,若所 输出数据的位数少于左端(高位)将以空格占位;若 输出数据的位数大于in,则按数据的实际宽度输岀;若省 略m则按所要输出数据的实际长度输出如: int a=123, b=12345; printf (Ma=%4d , b=%4d nM,a , h); printf C,sum=%8d, a+b); 输出结果为: a= 123, b=12345 Sum Ru 12468 %mld:格式中的“厂符号用于输出 long型数据。 long 型数 不能用d 格式输出。如: long a= 123456; printf
23、(M%ldM,a); 输出结果如下: 123456 printf(H%81dM, a); 的输出结果为: M23456 % -nidsK% -mid: 表示输出数据左对齐。 int a=123 ; long b= 12345; printf(H%4dn %-4dnfa ,a); printf(H%8ldn %81diT,b,b); 输出结果为: J23 123- J 这是左对齐输出的结果 223456 123456-2 J 这是左对齐输出的结果 %imi 或%mlu:控制输出项按十进制无符号整型 数输出。其中 m 和啲含义同前。 (2)八进制形式 %mo:控制输出项按八进制整数形式输出。 %mlo: 按八进制长整数形式输出。 (3)十六进制形式 %mx:按十六进制整数形式输出。 %mlx:按十六进制长整数形式输出。 #include niain()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年版短期工派遣合同
- 《财务学投资性支出》课件
- 套利定价理论教学课件
- 《旅游与发展》课件
- 2024年校园门禁安装协议
- 2024年度泥浆外运项目施工安全监督管理合同3篇
- 《停靠站设置》课件
- 出口合同范本(2篇)
- 劳务派遣合同协议书(2篇)
- 北京出租屋租赁合同 简单版(2篇)
- (高清版)TDT 1037-2013 土地整治重大项目可行性研究报告编制规程
- 基金估值核算系统的设计与实现的综述报告
- 2024年执业医师考试-医师定期考核(人文医学)笔试历年真题荟萃含答案
- 常用头孢类抗菌药物间的比较通用课件
- 吞咽障碍患者护理质量敏感指标的构建和应用评价
- 七年级英语期末试卷汇编:情景交际(含答案)
- 1.2 抗美援朝课件 2023-2024学年八年级历史下册
- 我眼中的中国
- 股东之间利益冲突的识别、审查和管理机制
- 合肥城建公司招聘笔试题目
- 2023-2024学年苏州市八年级语文上学期期末考试卷附答案解析
评论
0/150
提交评论