附录A 常用字符与ASCII代码对照表
ASCⅡ值 | 字符 | ASCⅡ值 | 字符 | ASCⅡ值 | 字符 | ASCⅡ值 | 字符 |
000 | NUL | 037 | % | 074 | J | 111 | o |
001 | SOH | 038 | & | 075 | K | 112 | p |
002 | STX | 039 | ‘ | 076 | L | 113 | q |
003 | ETX | 040 | ( | 077 | M | 114 | r |
004 | EOT | 041 | ) | 078 | N | 115 | s |
005 | END | 042 | * | 079 | O | 116 | t |
006 | ACK | 043 | + | 080 | P | 117 | u |
007 | BEL | 044 | , | 081 | Q | 118 | v |
008 | BS | 045 | - | 082 | R | 119 | w |
009 | HT | 046 | 。 | 083 | S | 120 | x |
010 | LF | 047 | / | 084 | T | 121 | y |
011 | VT | 048 | 0 | 085 | U | 122 | z |
012 | FF | 049 | 1 | 086 | V | 123 | { |
013 | CR | 050 | 2 | 087 | W | 124 | | |
014 | SO | 051 | 3 | 088 | X | 125 | } |
015 | SI | 052 | 4 | 089 | Y | 126 | ~ |
016 | DLE | 053 | 5 | 090 | Z | ||
017 | DC1 | 054 | 6 | 091 | [ | ||
018 | DC2 | 055 | 7 | 092 | \ | ||
019 | DC3 | 056 | 8 | 093 | ] | ||
020 | DC4 | 057 | 9 | 094 | ^ | ||
021 | NAK | 058 | : | 095 | _ | ||
022 | SYN | 059 | ; | 096 | , | ||
023 | ETB | 060 | < | 097 | a | ||
024 | CAN | 061 | = | 098 | b | ||
025 | EM | 062 | > | 099 | c | ||
026 | SUB | 063 | ? | 100 | d | ||
027 | ESC | 064 | @ | 101 | e | ||
028 | FS | 065 | A | 102 | f | ||
029 | GS | 066 | B | 103 | g | ||
030 | RS | 067 | C | 104 | h | ||
031 | US | 068 | D | 105 | i | ||
032 | (space) | 069 | E | 106 | j | ||
033 | ! | 070 | F | 107 | k | ||
034 | “ | 071 | G | 108 | l | ||
035 | # | 072 | H | 109 | m | ||
036 | $ | 073 | I | 110 | n | ||
附录B C语言中的关键字
auto | break | case | char | const |
continue | default | do | double | else |
enum | extern | float | for | goto |
if | int | long | register | return |
short | signed | sizeof | static | struct |
switch | typedef | union | unsigned | void |
volatile | while | |||
附录C 运算符和结合性
优先级 | 运 算 符 | 含 义 | 要 求 运 算 对象的个数 | 结合方向 |
1 | ( ) | 圆括号 | 自左至右 | |
[ ] | 下标运算符 | |||
-> | 指向结构体成员运算符 | |||
· | 结构体成员运算符 | |||
2 | ! | 逻辑非运算符 | 1 (单目运算符) | 自右至左 |
~ | 按位取反运算符 | |||
++ | 自增运算符 | |||
-- | 自减运算符 | |||
- | 负号运算符 | |||
(类型) | 类型转换运算符 | |||
* | 指针运算符 | |||
& | 取地址运算符 | |||
sizeof | 长度运算符 | |||
3 | * | 乘法运算符 | 2 (双目运算符) | 自左至右 |
/ | 除法运算符 | |||
% | 求余运算符 | |||
4 | + | 加法运算符 | 2 (双目运算符) | 自左至右 |
- | 减法运算符 | |||
5 | << | 左移运算符 | 2 (双目运算符) | 自左至右 |
>> | 右移运算符 | |||
6 | < <= > >= | 关系运算符 | 2 (双目运算符) | 自左至右 |
7 | == | 等于运算符 | 2 (双目运算符) | 自左至右 |
!= | 不等于运算符 | |||
8 | & | 按位与运算符 | 2 (双目运算符) | 自左至右 |
9 | ∧ | 按位异或运算符 | 2 (双目运算符) | 自左至右 |
10 | | | 按位或运算符 | 2 (双目运算符) | 自左至右 |
11 | && | 逻辑与运算符 | 2 (双目运算符) | 自左至右 |
12 | | | | 逻辑或运算符 | 2 (双目运算符) | 自左至右 |
13 | ? : | 条件运算符 | 3 (三目运算符) | 自右至左 |
14 | = += -= *= /= %= >>= <<= &= ∧= ¦= | 赋值运算符 | 2 (双目运算符) | 自右至左 |
15 | , | 逗号运算符(顺序求值运算符) | 自左至右 | |
说明:
(1) 同一优先级的运算符,运算次序由结合方向决定。例如*与/具有相同的优先级别,其结合方向为自左至右,因此3*5/4的运算次序是先乘后除。-和++为同一优先级,结合方向为自右至左,因此-i++相当于-(i++)。
(2) 不同的运算符要求有不同的运算对象个数,如+(加)和-(减)为双目运算符,要求在运算符两侧各有一个运算对象(如3+5、8-3等)。而++和-(负号)运算符是单目运算符,只能在运算符的一侧出现一个运算对象(如-a、i++、--i、(float) i、sizeof (int)、*p等)。条件运算符是C语言中惟一的一个三目运算符,如x?a:b。
(3) 从上表中可以大致归纳出各类运算符的优先级:
初等运算符 ( ) [ ] -> ·
↓
单目运算符
↓
算术运算负 (先乘除,后加减)
↓
关系运算符
↓
逻辑运算符 (不包括!)
↓
条件运算符
↓
赋值运算符
↓
isalpha 函数 逗号运算符
以上的优先级别由上到下递减。初等运算符优先级最高,逗号运算符优先级最低。位运算符的优先级比较分散(有的在算术运算符之前(如~),有的在关系运算符之前(如<<和>>),有的在关系运算符之后(如&、∧、¦))。为了容易记忆,使用位运算符时可加圆括号。
附录D C语言常用语法提要
1. 标识符
标识符可由字母、数字和下划线组成。标识符必须以字母或下划线开头,大、小写的字母分别认为是两个不同的字符。不同的系统对标识符的字符数有不同的规定,一般允许7个字符。
2. 常量
(1) 整型常量:十进制、八进制、十六进制、长整型常数。
(2) 字符常量:用单撇号(/)括起来的一个字符,可以使用转义字符。
(3) 实型常量(浮点型常量):小数形式、指数形式。
(4) 字符串常量:用双撇号括起来的字符序列。
3. 表达式
(1) 算术表达式:整形、实型表达式。
(2) 逻辑表达式:用逻辑运算符连接的整型量,结果为一个整数(0或1)。逻辑表达式可以认为是整形表达式的一种特殊形式。
(3) 字位表达式:用为运算符连接的整型量,结果为整数。字位表达式也可以认为是整形表达式的一种特殊形式。
(4) 强制类型转化表达式:用“(类型)”运算符使表达式的类型进行强制转换。如(float)a。
(5) 逗号表达式(顺序表达式),其形式为:表达式1,表达式2,…,表达式n
(6) 赋值表达式:将赋值号“=”右侧的值赋给左边的变量。赋值表达式的值为执行赋值后被赋值的变量的值。
(7) 条件表达式,其形式为:逻辑表达式?表达式1:表达式2
逻辑表达式的值若为非零,则条件表达式的值等于表达式1的值;若逻辑表达式的值为零,则条件表达式的值等于表达式2的值。
(8) 指针表达式:对指针类型的数据进行运算,例如,p-2、p1-p2等(其中p、p1、p2均已定义为指向数组的指针变量,p1与p2是指向同一数组中的元素),结果为指针类型。
4. 数据定义
对程序中需要用到的所有变量都需要进行定义。对数据要定义其数据类型,需要时要制定其存储类别。
(1) 类型识别符可用:
int
short
long
unsigned
char
float
double
struct
union
enum
typedef
结构体与共用体的定义形式为:
struct 结构体名
{ 成员表列 };
union 共用体名
{ 成员表列 };
用typedef定义新类型名的形式为:
typedef 已知类型 新定义类型;
(2) 存储类别可用
auto(自动变量)
static(静态局部变量)
register(寄存器变量)
extern(外部变量)(如不指定储存类别,作auto处理)。
(3) 变量的定义形式为:
储存类别 数据类型 变量表列;
注意外部数据定义只能用extern或static,而不能用auto或register。
5. 函数定义
其形式为:
储存类别 数据类型 函数名(形参表列)
函数体
函数的储存类别只能用extern或static。函数体是用花括号括起来的,可包括数据定义和语句。函数的定义举例如下:
static int max(int x,int y)
{int z;
z=x>y?x:y;
return 0;
}
6. 变量的初始化
可以在定义时对变量和数组指定初始值。
静态变量或外部变量如未初始化,系统自动使其初值为零(对数值型变量)或空(对字符数据)。对自动变量或寄存器变量,若为初始化,则其初值为一不可预测的数据。
7. 语句:
(1) 表达式语句;
(2) 函数调用语句;
(3) 控制语句;
(4) 符合语句;
(5) 空语句。
其中控制语句包括:
(1) if(表达式)语句
或
if(表达式)语句1
else 语句2
(2) while(表达式)语句
(3) do 语句
while(表达式);
(4) for(表达式1,表达式2,表达式3)
语句
(5) switch(表达式)
{case 常量表达式1: 语句1;
case 常量表达式2: 语句2;
……
case常量表达式n: 语句n;
default:语句n+1;
}
(6) break语句
(7) continue语句
(8) return语句
(9) goto语句
8. 预处理指令
# define 宏名 字符串
# define 宏名(参数1,参数2,…,参数n)字符串
# undef 宏名
# include “文件名”(或<文件名>)
# if 常量表达式
# ifdef 宏名
# ifndef 宏名
# else
# endif
附录E C库函数
库函数并不是C语言的一部分,它是由人们根据需要编制并提供用户使用的。每一种C编译系统都提供了一批库函数,不同的编译系统所提供的库函数的数目和函数名以及函数功能是不完全相同的。ANSI C标准提出了一批建议提供的标准库函数,它包括了目前多数C编译系统提供的库函数,但也有一些是某些C编译系统未曾实现的。考虑到通用性,本书列出ANSI C标准建议提供的、常用的部分库函数。对多数C编译系统,可以使用这些函数的绝大部分。由于C库函数的种类和数目很多(例如,还有屏幕和图形函数、时间日期函数、与系统有关的函数等,每一类函数又包括各种功能的函数),限于篇幅,本附录不能全部介绍,只从教学需要的角度列出最基本的。读者在编制C程序时可能要用到更多的函数,请查阅所用系统的手册。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论