《C语言的基本知识》PPT课件.ppt_第1页
《C语言的基本知识》PPT课件.ppt_第2页
《C语言的基本知识》PPT课件.ppt_第3页
《C语言的基本知识》PPT课件.ppt_第4页
《C语言的基本知识》PPT课件.ppt_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

第2章C语言的基本知识 2 1字符集和标识符2 1 1字符集字符集是高级语言的编译系统所能识别的字母 数字和特殊符号 C语言的字符集包括 1 大小写英文字母 2 数字 3 运算符 6 特殊符号 7 空白符 空格符 换行符 制表符 2 1 2标识符 标识符 由字母 数字 下划线组成且由字母或下划线开头的字符串 C语言的标识符有 关键字 保留字 C编译程序预先登录的标识符 表示固定含义 特定字 具有特殊含义的标识符 如 include define等用户自定义字 用户按语法规则定义的标识符 用户自定义标识符使用时应注意 1 可用来命名变量及作为常量名 函数名 类型名 文件名等 一个程序内不得有重复名 如 sum sum student name price等 2 大小写代表不同的意义 3 需注意标识符长度 视不同系统而定 设允许8个字符 则 student name student number为同一名字 4 避免使用易混淆的字符 如1和l 0和o等 5 标识符最好 见名知义 变量 程序执行过程中其值可以改变的量变量有两个要素 变量名与变量值变量名 用标识符命名 大小写敏感 不能使用关键字命名原则 见名知意 name xm 姓名 salary gz 工资 不宜混淆如l与I o与0 例 判断下列标识符号合法性sumSumM D JohndayDate3daysstudent name 33lotus 1 2 3chara b above 123 M D John 3days 33 char 123 a b 2 2常量与变量 2 2 1变量 其实定义一个变量就是请求分配一片存储区域 如同一个容器 并给这片存储区起一个名字 变量名 然后可以在这片存储区中存放数据 变量的值 定义变量时必须指明其类型 类型不同则分配得到的存储区的大小不同 即占用的字节数不同 学习要点 记住表示不同数据类型的关键字和它所分配得到的字节数 C语言中 变量须先定义 后使用如 intstudentstudent 30 则若写成student 30 则未定义 编译时指出其错 一旦变量被定义 即可在编译时为其分配相应数量的单元 一旦变量被定义 其类型便确定 则可检查其运算的合法性 如 a b表示a整除以b的余 则a b必须为整型量 2 2 2常量和符号常量 常量 程序运行过程中不能被改变的量 一般的数据显式写法均表示常量 如程序中 20 整型常量15 8 实型常量 a 字符常量 例2 1 definePRICE30main intnum total num 10 total num PRICE printf total d total 还可用一个符号表示一个常量 符号常量定义格式 define标识符常量 符号常量 一般用大写 以区分变量 再如 3 1415629 definePAI3 1415629优点 一改全改 definePRICE30 2 3C语言数据类型 2 3 1数据类型 著名计算机科学家沃思提出 程序 数据结构 算法 所以 存放数据的方式直接反映了一种语言的数据表达能力 数据的存储方式又称之为 数据类型 举一个例子 以考生各科成绩及总分排队问题为列 成绩的存放 以数组形式 排队方法 算法 前面已述 C数据类型丰富 分为 基本类型 构造类型 指针类型 空类型 整型 字符型 实型 单精度 双精度 数组 结构体 共用体 数据有常量 变量之分 均为其中一种类型 本章先学习前三种基本类型 枚举 数据类型决定 1 数据占内存字节数2 数据取值范围 2 4整型数据 2 4 1整型常量 整型常量 整型常数 C语言提供了三种形式 十进制如 256 308 120等 八进制以数字0开头表示的整数例 0235 0146 012等 0235 2 82 3 8 5 157100146 1 82 4 8 6 10210 012 1 8 2 1010 十六进制以 0 x 开头的整型数如 0 x16 0 x28 2 4 2整型变量 一 分类 分为四种 基本型 短整型 长整型 无符号型 2 短整型 用 shortint 或 short 定义 3 长整型 用 long 或 longint 定义 1 基本型 用 int 定义 4 无符号型 不存放符号 则不带符号数 上述各种类型所占内存单元数及取值范围视不同机器而不同 1 无符号基本型 用unsignedint或unsigned定义 2 无符号短整型 用unsignedshort定义 3 无符号长整型 用unsignedlong定义 表2 1带限定词后不同类型整数的长度和范围 带方括号部分可以省略 注意 不同版本的C 类型长度不一定完全相同 二 定义方法整型变量分别以下列方式定义 2 短整型shortint或shorta b c 3 长整型longint或longa b c 1 基本整型 inta b c 4 无符号型unsigneda b c unsignedshorta b c unsignedlonga b c 例2 2 main inta b c d 指定a b c d为整型变量 unsignedu 指定u为无符号整型变量 a 12 b 24 u 10 c a u d b u printf a u d b u d n c d 由此看到 不同类型的整型数据可进行算术运算 运行结果为a u 22 b u 14 三 关于整型常量程序中出现的整型常数 系统按以下规则分配变量 内存单元 或赋值给相应变量 2 若超越 而在 2147483648 2147483647之间 则可赋给longint变量 1 当常数 量 在 32768 32767之间 则可赋给int longint变量 4 一个非负整数 32768则可赋给unsignedint 5 一个常数后加 l 或 L 表示长整数 如123l 主要用于函数调用时形 实参数传递 3 若int shortint长度相同 则二者皆可赋值 四数据的溢出 在c中一个int型变量的最大允许值为32767 如果再加1 会出现什么情况 例2 3 整型数据的溢出 main inta b a 32767 b a 1 printf d d a b 运行结果为32767 32768 printf函数的功能是按照指定的格式显示数据 为给要显示的数据指定格式需要用转换说明符 和转换字符 根据需要转换字符有不同 显示整型数据的转换字符有 d o x u等 分别表示 d 表示把数据按十进制整数输出 o 表示把数据按八进制整数输出 x 表示把数据按十六进制整数输出 u 表示把数据按无符号整数输出 如下例 2 4 3用printf显示整型数据 函数回顾 例2 4 将整型变量按不同进制输出 include stdio h voidmain intx y z x 129 y 0127 z 0 x128 printf d d d n x y z printf o o o n x y z printf x x x n x y z 2 4 3用printf显示整型数据 续 运行结果 129 87 296201 127 45081 57 128 1 d格式符 有以下几种用法 d 按整型数据的实际长度输出 md m为指定的输出字段的宽度 若数据位数小于m 则左端补空格 若数据位数大于m 则按实际位数输出 ld 输出长整型数据 也可指定宽度 2 4 3用printf显示整型数据 续 例2 5 d格式符的不同使用方法 include stdio h voidmain inta 123 b 12345 printf 4d 4d n a b longc 135870 printf ld c printf 8ld c 2 4 3用printf显示整型数据 续 运行结果 2 o格式符 以八进制形式输出整数 不带符号 即将符号位也一起作为八进制数的一部分输出 3 x格式符 以十六进制形式输出整数 也不带符号位 4 u格式符 用来输出unsigned型数据 以十进制形式输出 也可用来输出有符号的int型 5 在 后面加符号 数据显示左对齐 否则右对齐 2 4 3用printf显示整型数据 续 例2 6 o x u格式符的使用 include stdio h voidmain inta 1 printf x o d n a a a unsignedintb 65535 intc 2 printf d o x u n b b b b printf d o x u n c c c c printf d 8 sizeof int 2 4 3用printf显示整型数据 续 运行结果 scanf函数 格式输入函数 scanf 格式说明 地址表列 10 15 例2 7 scanf输入整数main inta b c scanf d d 输入 10 15输出 a 10 b 15 a b 地址表列是用地址运算符 取变量的地址 2 4 4用scanf输入整型数据 使用scanf函数 要注意 一个输入域就是一个连续的非空白字符的数字串 格式信息中除了 开始的转换说明符 还可以有普通字符 只是这些字符不是显示在屏幕上 而是要求用户在输入数据时 要在相应的位置输入相同的字符 除空格 tab或换行符 2 4 4用scanf输入整型数据 续 如 inta b c scanf d d d 输入形式 10 11 12 scanf a 3db 3oc x 输入形式 a 123b 456c 10 2 5实型数据 2 5 1实型常量 有二种表示形式1 十进制形式如 0 126 523 64等 2 指数形式对于较大或较小的数 可用指数形式0 00001261 26E 512600001 26E 6或1 26E6 E e 均可 注 e或E之前必须有数字 且后指数必须为整数 例如 3 5E 52e3错误 E23 6e3 5 e6e 分为单精度型与双精度型 分别为floatx y z 单精度 doublea b c 双精度 有的版本还支持 longdouble 一般地 单精度占4字节内存单元 双精度占8字节内存单元 2 5 2实型变量 注意 不同机器对实型变量的有效数字长度的限制如 pc机 单精度一般为7位 双精度15位 单精度数值 10 38 1038双精度数值 10 308 10308 于是 floata a 123456 789则实际赋值a 123456 7 1 f 不指定字段宽度 由系统自动指定 使整数部分全部如数输出 并输出6位小数 注意float型和double型数据的有效位数 如 floatx 123456 123 printf f x 输出结果 123456 125000 lf 输出双精度类型如 doubley 12345678 98765432printf lf y 输出结果 12345678 987654 2 5 3用 f格式符以小数形式输出实数 main doublex y x 1111111111111 111111111 y 1111111111111 111111111 printf f x y 2222222222222 222170 2 m nf 指定输出的数据共占m列 其中有n位小数 若数据长度小于m 则左端补空格 3 m nf 与 m nf基本相同 只是使输出的数值向左端靠 右端补空格 1 e 如 printf e 123 456 输出结果 1 234560e 002 6位 3位 一般共占13列宽度 2 m ne和 m ne m n和 字符含义与前相同 此处n指数据的数字部分 又称尾数 的小数位数 2 5 3用 e格式符以指数形式输出实数 g格式符 用来输出实数 它根据数值的大小 自动选f格式或e格式 选择输出时占宽度较小的一种 且不输出无意义的零 字符常量 用单引号括起来的一个字符 a b 字符常量在内存中以该字符的ASCII码值存储 转义字符 非图形字符 如退格 换行等 用反斜线后面跟一个字符或一个代码值表示 如 a A n 101 如 A 65 a 97 0 48 n 10 如 101 A 012 n 376 x61 a 60 0 483 例 A 101 x41 65 例转义字符举例main printf Howareyou n printf CProgram n printf Turbo C 运行结果 屏幕显示 Howareyou CProgram Turbo C 2 6字符型数据 2 6 1字符常量 其定义方式为 charc1 c2 c1 a c2 b 字符变量只占一个字节单元 其对应单元存放的是其ASCII码 即ASCII码的二进制形式 2 6 2字符变量 用来存放一个字符的变量 由此 字符变量中的数据是一整型数据 输出时既可输出字符 亦可输出整数 且字符变量可作整数运算 例1 main charc1 c2 c1 97 c2 98 printf c c c1 c2 运行结果ab 看如下几个例子 用转换说明符 c可以输出单个字符 例2 main charc1 c2 c1 a c2 b c1 c1 32 c2 c2 32 printf c c c1 c2 运行结果AB 例3 main inti charc i a c 97 printf c d n c c printf c d n i i 运行结果 a 97a 97 说明 一个整数 只要它的值在0 255范围内 也可以用字符形式输出 在输出前 将该整数转换成相应的ASCII字符 反之 一个字符数据也可以用整数形式输出 使用 c作转换说明符输入字符时 scanf不会跳过空格 tab或换行 而是直接把下一个字符输入给参数 不论它是什么 例 scanf d c i m 若从键盘输入29w 则m的结果不是字符w 而是空格 2 6 3用scanf输入字符 空格 解决方法是 scanf d c i m 空格 格式 getchar 没有参数 必须有预编译命令 include 功能 从终端输入一个字符 1 getchar函数 2 6 4用getchar输入字符和用putchar输出字符 2 putchar函数功能 在屏幕上输出一个字符 例 includevoidmain chara b c a

温馨提示

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

评论

0/150

提交评论