一、C 语句
1. C 语句分类
C 语句分为以下 5 类:
控制语句
- 条件语句:
if()...else...
- 循环语句:
for()...
- 循环语句:
while()...
- 循环语句:
do...while()
- 结束本次循环语句:
continue
- 终止执行
switch
或循环语句:break
- 多分支选择语句:
switch
- 从函数返回语句:
return
- 转向语句(结构化程序中基本不用):
goto
- 条件语句:
- 函数调用语句
- 表达式语句:如赋值表达式。
- 空语句:只有一个分号,作为流程的转折点或循环语句的循环体。
- 复合语句:用
{}
把一些语句括起来。
2. 赋值语句
复合赋值运算
a += 3; // a = a+3;
x *= y+8; // x = x*(y+8);
使用复合赋值运算符,一是可以简化精炼程序,二是可以提高编译效率,生成质量较高的目标代码。
赋值过程中的类型转换
- 浮点型赋值给整型:舍弃小数部分。
- 整型赋值给单、双精度浮点型:数值不变。
- 双精度浮点型赋值给单精度浮点型:只取 6~7 位有效数字,当双精度数值大小超过单精度数值范围时会出错。
- 占字节多的整型赋值给占字节少的整型或字符型:只会将其低字节部分赋值给新变量,发生失真。失真不属于语法错误,编译系统不会提示,要注意避免!!!
赋值语句与赋值表达式
$$ 赋值语句 = 赋值表达式 + 分号\ ; $$
赋值表达式时 C 语言的特点之一,区别于其他语言。一个表达式可以包含在其他表达式中,赋值表达式也不例外:
if((b=a)>0) c=b;
// 相当于先把 a 赋值给 b,再判断 b 是否大于 0
二、数据的输入输出
1. 输入输出基本概念
- 所谓输入输出是以计算机的主机为主体而言的。
C 语言本身不提供输入输出函数,这样做可以使编译系统简化、通用性强、可移植性好。C 语言函数库提供一批标准的输入输出函数,以标准的输入输出设备(一般为终端设备)为输入输出对象:
putchar
输出字符getchar
输入字符printf
格式输出scanf
格式输入puts
输出字符串gets
输入字符串
- 要在程序文件开头用预处理指令
# include
引入有关头文件。
# include
指令还有一种形式:
#include "studio.h"
这两种预处理指令的区别是:
- 使用尖括号时,编译系统从存放 C 编译系统的子目录中去找要包含的文件,称为标准方式。
- 使用双引号时,编译系统现在用户的当前目录中寻找要包含的文件,若找不到,再按标准方式找。双引号内可以是文件的具体路径。
- 为提高效率,使用系统库函数时尽量使用标准方式。
2. printf
输入函数
printf
是格式化输出函数,用来向终端(或系统隐含指定的输出设备)输出若干个任意类型的数据。其一般格式为:
printf(格式控制, 输出表列);
输出表列是需要输出的数据,可以是常量、变量或表达式。
格式控制是用双引号括起来的字符串,称为格式控制字符串或格式字符串,包括两部分信息:
- 格式声明:由
%
和格式字符组成,作用是将输出的数据转换为指定格式。 - 普通字符:需要在输出时原样输出的字符。
格式字符包括:
格式字符 | 含义 |
---|---|
d | 输出有符号的十进制数 |
ld | 输出长整型 |
lld | 输出双长整型 |
c | 输出一个字符 |
s | 输出字符串 |
f | 输出实数(单精度、双精度、长双精度) |
e 或E | 以指数形式输出实数 |
u | 输出无符号(unsigned)型十进制数 |
g 或G | 以f 或e 格式中较短的一个格式输出浮点数 |
o | 按八进制形式输出整数 |
x 或X | 按十六进制形式输出整数 |
部分格式字符使用时可以在格式声明中指定输出数据的域宽,即所占的列数。原输出内容长度小于域宽时,默认在左侧加空格。如:
%5d
输出数据占 5 列。%m.nf
输出数据占 m 列,其中小数为 n 列。原输出数据过长时采取四舍五入的方法处理。党 n 为 0 时,不输出小数和小数点。%-m.nf
与%m.nf
作用相似,但数据长度小于 m 时,数据向左靠,右端补空格。
虽然输出数据的域宽可以控制,但要注意数据的有效性。float
型数据只能保证 6 位有效数字,double
为 15 位。并不是能输出的数据都是精确的。
如果像输出%
,应该在格式控制字符窜中使用%%
。
3. scanf
输出函数
scanf
的一般格式为:
scanf(格式控制, 地址表列);
scanf
函数的格式控制与printf
函数相同,以%
开始,以格式字符结束,可插入附加字符。
需要注意的是,scanf
函数中,格式控制后面的是变量地址,而不是变量名:
scanf("%d", a); // 错误
scanf("%d", &a); // 正确
4. 字符输入输出函数
putchar
的作用是输出一个字符。putchar(c)
中的c
可以是字符常量、字符变量、整型常量、整型变量(其值在 ASCII 代码范围内)或转义字符。
getchar
可以输入一个字符,得到的字符可以赋值给一个字符变量或整型变量,也可以直接作为表达式的一部分。
a = getchar();
putchar(getchar());
Reference:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。