C语言第2讲-C语言基本概念.ppt_第1页
C语言第2讲-C语言基本概念.ppt_第2页
C语言第2讲-C语言基本概念.ppt_第3页
C语言第2讲-C语言基本概念.ppt_第4页
C语言第2讲-C语言基本概念.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

数据类型 构造类型 指针型 空类型 基本类型 整型 字符型 实型 浮点型 枚举类型 数组类型 结构体类型 共同体类型 单精度型 双精度型 数据类型 常量 变量 在程序运行过程中 其值不能被改变的量 在程序运行过程中 其值能够被改变的量 数据 常量和变量都分别具有以上的数据类型 常量的类型 整型常量 一般从字面形式 书写形式 来判别 定义 整常数 整数 十进制 八进制 十六进制 一般写法 不以 为首的 n 如 100等 以 为首 数码 的 n 如 010 8 10 010 8 10 以 x为首 数码 如 0 x1a 26 10或0 x1A 0 x1A 26 10 实数 实型常量 实型常数 又称之为浮点数 2 指数表示形式 如 2E2或2e2 2 341E 4等等 注意 e E 之前必须有数字 e之后必须是整数 1 小数表示法 用十进制小数形式表示实数 如 12 34 2 0 0 234等 字符型常量 用一对单引号 单撇 括起来的一个字符 如 a A 这种方式表示可显示的字符 转义字符 用一反斜杠 将后面的字符转变为另一些特殊字符 非显示 打印字符 一个字符常量放到一个字符变量中时 是将该字符的相应ASCII代码放到存储单元中 如字符 a 的ASCII代码为97 在内存中以97的二进制形式存放的 n 换行 r 回车 t Tab符 横向跳格 8格 即跳到下一个输出区 v 竖向跳格 当前位置下移一行 b 退格 回退一格 f 走纸换页 单引号字符 双引号字符 反斜杠字符 本身 ddd ddd为 到 位 进制所表示ASCII码值对应的字符 xhh hh为 到 位16进制所表示ASCII码值对应的字符 符 转 义 字 符 转 义 字 下列字符串代表的真正含义 32bc t 123 Xy rab 20na 32bc S abna 数据类型 标识符 用来标识 识别 变量 符号常量名 函数名 类型名 文件名的有效字符序列 有效标识符 由字母 数字和下划线三种字符组成且以字母或下划线为首字符的序列 长度 字符个数 一般是 31 数据类型 符号常量 符号常量 用一个标识符代表一个常量 定义格式 define符号常量名常量 definePRICE30main intnum total num 10 total num PRICE printf total d total 需放在所有函数的前面 且最后不能加 即它不是C语言的语句 通常用大写字母定义 先定义后使用 后定义者可引用先定义者 如 definePI3 14 definePP 2 不可变原则 如在程序中插入PRICE 40 编译将报错 类型名有 int 整型 short 短整型 unsigned int short long无符号整型 无符号短整型 无符号长整型 long 长整型 float 实型 double 双精度实型 char 字符型 等等 数据类型 变量的定义 变量的定义包含有四种含义 先定义 后使用 原则 为变量取名 说明该变量的数据类型 明确它们存储类别 定义变量的格式 类型名变量名序列 变量名序列可以是一个变量名 也可以是两个以上变量名 若有两个以上的变量名 则变量名与变量名必须用逗号 分隔 要求 1 符合标识名的定义 2 C约定的类型名不可用 3 C语句的关键字不可用 例如 floatx y doublez charc1 c1 inta b c 数据类型 4 变量赋初值 变量赋初值也称作是对变量初始化 C规定 变量赋初值 一是通过赋值语句 二是在定义变量时同时对变量初值 例如 main inti j floatx charc1 c2 i 4 c1 A main inti 4 j floatx charc1 A c2 例如 main intj j 5 main intj 5 a b j a b j 5 数据类型的要点 1 所有的变量需用 先定义 后使用 2 每个量 变量 被定义了类型后 在编辑时就能为其分配相应的存储单元 3 每个量在一个源程序中 只能定义一种类型 整型变量 占2个字节字符变量 占1个字节单精度变量 占4个字节双精度变量 占8个字节 变量所占内存空间一览表 算术运算符 算术表达式 算术运算符 求余 C语言表达式的合法表示 1 所有的乘号 不能省略 2 描述为整体时 须加括号 且只能用圆括号 3 若分式中的分母有多项相乘 乘可转化为除 算术运算符 算术表达式 数学表达式 合法的C语言表达式为 Sqrt x x y y x y 或sqrt x x y y x y 常用的函数有三角函数 根号函数 sqrt 绝对值函数 fabs 求ex的函数 exp x 求xy的函数 pow x y 等 函数名用小写 算术运算符 算术表达式 表达式求值 优先级 结合性 优先级 满足四则运算的规律且括号最优先 结合性 左结合 约定 1 整数除整数 必取整数 小数位截去 2 作求 运算时 两边的操作数必为整型 求表达式混合运算时 须进行类型转换 double float 横向long 竖向unsigned int char short 强制类型转换 例 double a将a的值转换为double以便后继运算 但a本身值不变 注意 类型标识符的圆括号不能省略 算术表达式中约定 求余时两边必为整 算术运算符 算术表达式 printf格式输出函数 一般格式 printf 格式控制 输出表列 说明 格式控制 用双引号括起来的字符串 该字符串可以包含两种 一种是普通字符 另一种是以 开头的表示输出表列中变量的类型描述字符序列 输出表列 待输出的项目 常量 变量 表达式 要求 格式控制中的字符序列与输出表列中的项目间一一对应 且类型相同 数据输出 printf格式输出函数 数据输出 printf 函数的特点 按指定格式 一次可输出多个值 main inta 3 floatx 2 charc A Printf d f f c d a x a 2 x A 4 c a a printf格式输出函数 整型格式描述符 d o x u md m为任意整数 其作用指明输出的宽度 若实际位数大于m则以实际位数输出 若实际位数小于m 当m为正左边补空格以补足m位 反之右左边补空格以补足m位 如 main inta 123 printf d 2d 5d 6d n a a a a d 按输出项值的实际位数输出 有几位输出几位 123 123 123 123 printf格式输出函数 ld及 mld 类似于上述两个 用于longint类型的数据 o x u 用法与d类似 不同 输出不同进制 无符号数 例 inta a 91 printf o x d n a a a 133 5b 91 printf格式输出函数 数据输出 实型格式描述 f 小数形式 e 指数形式 g 自适应形式 m nf m 总域宽 n 小数位数 不包括小数点 与整型相同 后为正号或省略 左补空格 为负号则右补空格 f 以系统默认宽度和精度输出 小数位为6位 float有7位有效 double有16位有效 g 自动选取 f和 e的最适合的 不输出无意义的零 用空格代替 e 以指数形式输出 指数占5位 e xxx 小数6位 数值按标准化形式对非0数 小数点之前当且仅当有一位非0数字 例 main floatf f 123 456 printf f e g f f f 123 456000 1 234560e 002 123 456 printf格式输出函数 数据输出 例如 main inti chara a A printf c d n a a 字符格式描述符 c c 以字符形式输出输出项 另外 mc mc在左边 或右边 补m 1个空格 例 main printf s 4s 4 2s 4 2s 2s n 123 45 4567 4567 123 s 以字符串的形式输出 m ns n 无符号整数 指明截取输出串左端的位数 123 45 45 45 123 实际串长不包括双引号及内存中的串尾结束标志 0 printf格式输出函数 数据输出 在printf函数中格式控制中若有普通字符 即除格式描述字符以外的字符 普通字符原样输出 例 main printf n s1 15chinabeijing printf n s2 f 5s 23 5 654 chi main inty 123 floatx charc1 a x y c1 printf 4dx 2f d c n y x c1 c1 数据输入 scanf格式输入函数 一般格式 scanf 格式控制 地址表列 说明 格式控制 与printf中的含义相同 地址表列 必须是变量的地址 即 输入项为 变量 注意 格式控制中格式描述符应与地址表列中的项一一对应 scanf语句执行时 将等待用户从键盘是依次输入 其中若有普通字符 普通字符应该原样输入 数据输入 scanf格式输入函数 main inta b floatx y z scanf a db d f f 普通字符 例 要求 从键盘输入 A 12b 23123 34543 注意事项 指定宽度时 键入就不要分隔符 按个数读 键入数据可用一个或多个空格 Tab 回车键分隔 当含有其它普通字符时 则键入时必须一一对应完全相同 scanf d d d 算法 按照执行的动作和动作执行的顺序解决问题的过程 累加和累乘利用循环结构可以在程序中实现累加和累乘 累加和累乘是程序设计最常用的基本问题 统计人数 统计总分 求平均分等 其基本思想是 利用变量赋值语句 不断改变变量中的值 累加 k k 1 sum sum k 累乘 k 1 mult 1 mult mult k k k 1 循环 算法 程序控制 指定语句在计算机程序中的执行顺序 顺序执行 程序中的语句是以所编写的顺序一句一句地执行 控制结构 例如 从键盘输入两个数 并输出这两个数的和 main inta b sum scanf d d 控制转移 程序中的语句是指定不按编写顺序执行下一条执行语句 C程序中的控制结构 顺序结构 选择结构和循环结构 控制结构 选择结构 if选择结构在条件为真时执行某个动作 条件为假时跳过这个动作 if else选择结构在条件为真时执行某个动作 条件为假时执行一个不同的动作 Switch根据表达式的值执行众多不同动作中的某个动作 循环结构 有三种循环结构 while循环结构 do while循环结构 for循环结构 1 顺序结构先执行A操作 再执行B操作 两者是顺序执行的关系 框图N S图 A B A B 控制结构 2 选择结构当条件成立时执行A 否则执行B 只能执行A或B中的一种 框图N S图 控制结构 3 循环结构当型循环结构 当条件P成立 反复执行A操作 直到P条件不成立 直到型循环结构 先执行A操作 再判断P是否成立 再执行A 如此反复 直到P为真为止 控制结构 多分支选择结构 根据K的值的不同而决定执行A1 A2 An 控制结构 算法1 定数循环用计数器控制循环 用计数器来控制一组语句应该执行的次数 求具体数目的个体的某个特性 制定算法 要有一个变量存储输入的数 一个变量计数 一个变量存放和 例1 从键盘输入十个整数 求这十个整数的和 includemain intcount 0 num total 0 while count 10 count 计数器 printf EntertheNo d count scanf d 用计数器控制的循环求全班 10 平均成绩的算法 includemain intcounter grate total average 初始化阶段 total 0 counter 1 处理阶段 while counter 10 printf entergrate canf d 制定算法 1 输入10个整数 求其中正数的个数及平均值 精确到小数点后两位 需将10个整数也打印出来 2 从键盘上输入10个整数 求其中的最大值和最小值 需将10个整数也打印出来 制定算法 算法2 不定数循环用标记来控制循环 使用一个专门的值来控制循环的结束 求不确定数目的个体的某个特性 制定算法 main unsignedintnumber printf Inputthenumber scanf d 例2 输入一个正整数 要求以相反的顺序输出该数 用标记控制的循环求全班平均成绩的伪码算法 includemain intcounter 1 grate total 0 floataverage printf entergrate 1toend scanf d if counter 0 average float total counter printf Classaverageis 2f n average elseprintf Nograteswereentered n 例3 分析考试结果 includemain 在声明语句中初始化变量 intpasses 0 failures 0 student 1 result 用计数控制的循环处理10个学生的考试成绩 while student8 printf Raisetuition n 制定算法 赋值运算符 双目运算符 赋值号 优先级 仅高于逗号运算符 结合性 右结合 赋值表达式 v e规定 左边v是一个变量右边e是一个表达式 常量 变量 表达式 下列表达式是合法的 a b c 3 a a 1 b c b 23 56 b a b b a 5 c 6 赋值运算符 赋值表达式 赋值表达式的作用 将赋值号右边表达式的值求出 然后赋给 放入 左边变量 即v e 赋值原则 若v与e值的类型相同时 或类型所占字节数相等时 原样赋值 若v与e值的类型不相同时 需将e值的类型转成与v相同才赋值 赋值运算符 赋值表达式 复合的赋值运算符 赋值号与其它运算符组合 格式 v e 代表其它任意运算符如 作用 等价于v v e 例如 a 3等价于a a 3x y 3等价于x x y 3 注意 所构成的仍然是表达式 称之为赋值表达式 简单赋值及复合赋值运算符都是右结合 赋值运算符 赋值表达式 自增 自减运算符 和 单目运算符 优先级 高于所有二目运算符 结合性 右结合 表达式的含义 i i 表达式的值加 减 1 且变量i的值增 减 2 i i 表达式的值为原变量i的值 变量i的值增 减 自增自减运算符 表达式 运算符 表述式以及表达式的计算 自增自减运算符 表达式 main inti j i 4 j i printf d d i j main inti j i 4 j i printf d d i j 逗号运算符 逗号表达式 逗号表达式的一般形式为 e1 e2 e1 e2分别为表达式1 表达式2 e1 e2 e3 en e1 e2 en是任意表达式 求解过程 先求表达式1 依次求表达式2 表达式n 整个逗号表达式的值是表达式n的值 逗号运算符 逗号表达式 注意 逗号运算符是多目运算符 优先级在所有运算符中最低 而且是左结合 又称之为顺序求值运算符 例 已知inta 7 floatx y 3 z 1 求下列表达式的值 x x y x y a y z a y z a int y z y 6 y 1 x y x 1 关系运算符 优先级相同 等于 不等于 优先级低关系运算符的优先级低于算术高于赋值如 c a b等效于 c a b a b c等效于 a b ca bc 关系运算符和关系表达式 定义 用关系运算符将两个表达式联成式上述表达式可以是 算式 关系式 逻辑式 赋值表达式 字符表达式 如 a b b c a 3 b 5 a b b c 关系表达式的值为逻辑值 真 假 约定 C无逻辑数据 运算时 以非0视为真 0为假 结果 用1表示真 0表示假 关系表达式 如 若a 3 b 2 c 1 则 a b 表达式的值为 b cb d的值为 f a b c f的值为 1 0 1 0 因为 a b的值为1 1 c的值为0 逻辑运算符 逻辑非 取反 1 0 0 1 逻辑与 全真才真1 1 1 1 0 0 0 1 0 逻辑或 全假才假1 1 1 1 0 1 0 1 1 0 0 0运算符级别优先级由高到低 括号 单目运算符 关系运算符 逻辑与 逻辑或 条件运算符 赋值运算符 逗号运算符 逻辑表达式定义 用逻辑运算符将关系式或逻辑量联成的式子 逻辑运算符和表达式 逻辑表达式求解规则 a b c 当a为假 后面就不计算a b c 当a为真 后面就不计算 例1 设有说明 inta 4 b 5 c 6 d 7 m 1 n 1 e 则执行语句 c m a b n c d 后 m和n的值分别为 在程序设计中 就是要学会如何用一个逻辑表达式来表示现实生活中的一些复杂的条件 例1 判别某一年是否为闰年 用变量year表示某一年凡符合下列两者之一条件的就是闰年 能被4整除 但不能被100整除能被 整除 又能被400整除所以判断闰年的逻辑表达式为 year 4

温馨提示

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

评论

0/150

提交评论