1.1标识符¶
约 987 个字 19 行代码 预计阅读时间 7 分钟
1.1.1标识符的组成规则¶
- 必须由字母、数字和下划线组成
- 第一个字符必须是字母或下划线
- 字母要区分大小写
- 不能与关键字同名
1.1.2有效长度¶
前31个字符
1.1.3关键字¶
Which one below is NOT a keyword of the C programming language? ____
A. define
B. if
C. typedef
D. while
A
define不是关键字,是预处理指令,你甚至可以int define;而if、typedef、while显然都是关键字。
Which one below is NOT a valid identifier in the C programming language? ____ A. printf B. _ever C. "char" D. true
C,因为
int "char";肯定是非法的,标识符必须以字母或下划线开头。对于 A,printf 只是一个函数名,不是关键字,所以是合法的。对于 D,C 语言中 true 并不是关键字,也可以使用。
1.2输入与输出¶
1.2.1 printf¶
转化声明符
| 类型 | 格式字符串 | 输出形式 |
|---|---|---|
| 整形 | %d | 带符号的十进制 |
| 整型 | %o | 无符号的八进制 |
| 整型 | %x | 无符号的十六进制 |
| 整型 | %u | 无符号的十进制 |
| 浮点型 | %f | 小数,6位 |
| 浮点型 | %e | 指数,6位 |
| 浮点型 | %g | 优化的小数(去掉无意义的0) |
| 字符型 | %c | 字符 |
| 字符型 | %s | 字符串 |
附加格式
| 字符 | 输出 |
|---|---|
| %md | 当数据长度<m时,左补空格,否则按实际输出 ^1 |
| %nf | 指定小数点后位数(四舍五入) |
| %ns | 对字符串,输出指定位数 |
| %-md | 输入数据在域内左对齐 |
| %+md | 在有符号的正数前加正号 |
| %0md | 在左边的空格用0补 |
| %#o | 在八进制前显示0 |
| %#x | 在十六进制前显示0x |
| %ld | 在d,o,x,u前,long型 |
| %lf | 在e,f,g前,double型 |
重点
关于%e的用法
在C语言中,%e是用于格式化输出浮点数的格式控制符。它表示以指数形式输出浮点数,使用小写字母"e"表示指数部分。具体来说,%e将浮点数表示为[-]d.ddddde±dd的形式,其中第一个d是整数部分,后面的小数部分以及指数部分都用小写字母"e"表示。
以下是一个简单的例子:
| C | |
|---|---|
1 2 3 4 5 6 7 | |
这个程序将输出:
| Text Only | |
|---|---|
1 | |
在这个例子中,%e将12345.6789格式化为科学计数法形式,即1.234568e+04。指数部分表示10的幂,因此e+04表示10的4次方。
%e也可以与其他格式字符串的语法相结合
| C | |
|---|---|
1 | |
这将会输出
9.185e+002
printf("%12.3e", 918.48) 是一个格式化输出语句,它使用了 %e 格式控制符来表示浮点数,并且包含了一些宽度和精度的设置。让我们逐个解释这个语句:
%e: 表示以科学计数法的形式输出浮点数。%12.3e: 这个部分中的数字控制了输出的格式。12: 表示输出的总宽度为12个字符,包括小数点和指数部分。.3: 表示输出的小数部分精确到3位。e: 表示使用科学计数法表示浮点数。
现在,让我们应用这些设置到 918.48 这个浮点数:
- 浮点数
918.48以科学计数法表示为9.1848e+02。 - 总宽度为12个字符,所以在输出中会填充一些空格,使得整个输出占据12个字符的宽度。
- 小数部分精确到3位,所以输出的小数部分是
.185。 - 最终输出为
" 9.185e+002"。
这样,printf("%12.3e", 918.48) 将会输出 " 9.185e+002"。
1.2.2 scanf¶
| C | |
|---|---|
1 | |
若输入123456,则a=1234,b=56
| C | |
|---|---|
1 2 | |
若输入1234567 则a=12,b=67
| C | |
|---|---|
1 | |
不合法
| C | |
|---|---|
1 | |
非常厉害,m是任意一个字符,一直读到m字符为止。
本章做题分析¶
class不可以用作用户标识符,因为他是C++中的关键字
| C | |
|---|---|
1 | |
include 不是C语言中的关键字
| C | |
|---|---|
1 2 | |
此时输出的是1234,因为[[#^1]]
| C | |
|---|---|
1 2 | |
这是合法的。而
| C | |
|---|---|
1 | |