1、1 第四章最简单的C程序设计 2 4 1C语句概述 引言 C程序结构框图 3 C语句的种类 共四类 控制语句 流程控制 条件 循环辅助控制 break continue goto return switch空语句 仅一个 构成 表达式语句 一个表达式后跟一个 构成 复合语句 用 括起来的一些语句 4 空语句 一般形式 含义 什么也不做 说明 凡是在C程序中出现语句的地方都可以用一个分号来代替一条语句 作用 转折点 循环语句中的空循环体 5 表达式语句 一般形式 表达式 说明 表达式 可以是任何表达式 如常量 变量 函数调用等 举例 i a 6 b a 2 printf Hello 6 复合语句
2、 一般形式 语句1 语句2 语句n 说明 复合语句在功能上相当于一条语句 最后一个分号的位置不在花括号外 复合语句多出现在函数及流程控制语句中 7 数据的输入 输出 C程序中的输入输出通过函数调用完成 数据输出库函数字符输出函数putchar 格式输出函数printf 数据输入库函数格式输入函数scanf 字符输入函数getchar 8 字符输出函数putchar 一般形式 putchar c 功能 输出变量c所代表的一个字符 说明 c为字符型变量或整型变量 使用时必须在程序开始处注明 include 9 例4 1 putchar使用 includemain chara b c a O b K
3、 c n putchar a putchar b putchar c OK 10 格式输出函数printf 一般形式 printf 格式控制 输出表 功能 按照指定格式输出指定数据 举例 printf Answer d n 112 3 格式控制 是双引号括起来的格式控制转换字符串 输出表 中的数据 要与 格式控制 中的格式字符一一对应 11 格式控制的组成 格式说明 由 后跟格式字符组成 作用是将输出数据转换为指定格式输出 字符串 原样输出 转义字符 对输出形式进行控制 printf Answer d n 112 3 12 例4 2 main inta b c a 4 b 5 c a b pr
4、intf a b d n c 程序执行结果 a b 20 13 格式说明符简介 d 以带符号的十进制形式输出整数 o 以无符号的八进制形式输出整数 x 以无符号的十六进制形式输出整数 u 以无符号的十进制形式输出整数 c 以字符形式输出单个字符 s 输出字符串 f 以小数点形式输出单 双精度实数 e 以标准指数形式输出单 双精度实数 g 选用输出宽度较小的格式输出实数 14 d格式符 功能以带符号的十进制形式输出整数 具体用法 d 按照整型数据的实际长度输出 md 以m指定的字段宽度输出 右对齐 ld 输出长整型数据 mld 输出指定宽度的长整型数据 程序范例 15 例4 3 执行下面程序 注
5、意输出格式 main inta 12 b 3456 longintc 123456 printf 5d n a printf d n b printf ld n c 运行结果 12 3456123456 16 o格式符和x格式符 功能 将内存单元中的二进制数补码直接转换成八进制数或十六进制数输出 不带符号位 说明 同 d 类似 可以用 mo 或 mx 指定字段输出宽度 对长整型数可以用 lo 或 lx 格式输出 17 机器数 带符号 的表示 正数 原码 反码及补码一样 即 符号位 绝对值负数 原码 符号位 绝对值反码 符号位 对原码取反补码 符号位 对原码取反 1举例 设有inta 1 b 1
6、 a的表示 0000000000000001 原 反 补 b的表示 1000000000000001 原码 1111111111111110 反码 1111111111111111 补码 18 例4 4 main inta 1 b 1 printf a 8d 8o 8x n a a a printf b 8d 8o 8x n b b b 运行结果 a 1 1 1b 1 177777 ffff 19 u格式符 功能 以无符号的十进制形式输出整数 说明 有符号数可用 u 格式输出 无符号数可用 d o x 格式输出 举例 inti 1 printf d u i i 输出结果 1 65535 20
7、c格式符 功能 输出单个ASCII码字符 说明 c格式也可用于输出一个范围在0 255之间的整数 其值必然对应某个ASCII字符 例4 5 main charc M inti i c 32 printf c d n c c printf c d n i i M 77m 109 21 s格式符 分类 s 直接输出指定字符串 ms 输出字符串占m列 右对齐 ms 输出字符串占m列 左对齐 m ns 输出字符串前n个字符 占m列 右对齐 m ns 输出字符串前n个字符 占m列 左对齐 程序范例 22 例4 6 s格式符使用 main printf 3s 7 2s 4s 5 3s n China Ch
8、ina China China 运行结果 China Ch Chin Chi 23 f格式符 功能 以小数点形式输出单 双精度实数 分类 f 数据的整数部分全部输出 小数部分输出6位 m nf 输出数据共占m列 小数占n位 右对齐 m nf 输出数据共占m列 小数占n位 左对齐 注意 单精度实数的有效位数一般为7位 双精度实数的有效位数为16位 程序范例 24 例4 7 f格式符使用 main floatx y x 111111 111 y 222222 222 printf f n x y 运行结果 333333 328125 25 e格式符 功能 以指数形式输出单 双精度实数 e 输出数据
9、共占13位 例 printf e 12 3 12 31 23 1011 230000e 001 整数1 指数3 小数点1 指数符号1 小数6 e1 26 g格式符 功能 根据数值自动选择f格式或e格式中宽度较小的一种输出实数 举例 floatx 12 345 printf f e g x x x 结果 12 345000 1 23450e 01 12 345 27 printf函数说明 格式字符要用小写字母 如若输出字符 在 格式控制 中用连续两个 即可 当 格式控制 中格式符个数少于输出表中的输出项时 多余的输出项不予输出 当 格式符 多于输出项时 结果为意外值 28 字符输入函数getch
10、ar 一般形式 getchar 功能 要求用户从终端 键盘 输入单个字符 返回值 从输入设备上得到的字符 说明 该函数为无参函数 使用该函数 必须在程序开头用预编译命令 include 29 例4 8 getchar函数使用 includemain charc printf Inputanuppercaseletter n c getchar putchar c 32 运行程序时 系统等待用户输入 注意回车也是一个合法字符 30 格式输入函数scanf 一般形式 scanf 格式控制 地址表 功能 要求用户从键盘上输入指定类型的任意多数据 说明 格式控制 部分同sprintf函数 地址表 由地
11、址组成 表明每个输入项应在存储单元的首地址 如 a 执行输入操作时 用户应使用空格或回车等相应分隔符间隔不同数据 31 例4 9 scanf函数使用 main inta b scanf d d 运行情况 2345 1035 如果引号部分变为 d d 在输入数据时也必须写成 23 45 32 scanf函数说明 scanf函数中不使用 u 格式说明中指定输入数据的宽度时 系统自动按需要截取所需数据 scanf函数不能规定输入数据的精度 在程序执行过程中输入数据时 以下情况认为数据结束 遇 Space 或遇 Enter 或遇 Tab 达到指定的字段宽度有非法输入 33 例4 10 根据三角形的三边长 求其面积 设三角形三边长为a b c 则三角形面积公式 提示 C程序中求平方根 需调用数学库函数sqrt 34 程序4 10 includemain floata b c p s scanf f f f 345a 3 00 b 4 00 c 5 00s 6 00 运行情况