共计 1957 个字符,预计需要花费 5 分钟才能阅读完成。
一、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:
谭浩强《C 程序设计(第五版)》