精华内容
下载资源
问答
  • 怎样存钱力最大c语言
    2021-05-21 08:03:54

    C语言问题 、//14.怎样存钱利最大 //假设银行整存整取存款不同期限的 月息利率 分别为: 0.63% 期限=1年 0.0

    //14.怎样存钱利最大

    //假设银行整存整取存款不同期限的 月息利率 分别为: 0.63% 期限=1年 0.66% 期限=2年 0.69% 期限=3年 0.75% 期限=5年 0.84% 期限=8年

    //利息=本金*月息利率*12*存款年限。

    //现在某人手中有2000元钱,请通过计算选择一种存钱方案,使得钱存入银行20年后得到的利息最多

    //(假定银行对超过存款期限的那一部分时间不付利息)。

    //*问题分析与算法设计为了得到最多的利息,存入银行的钱应在到期时马上取出来,然后立刻将原来的本金和利息加起来再作为新的本

    //金存入银行,这样不断地滚动直到满20年为止,由于存款的利率不同,所以不同的存款方法(年限)存20年得到的利息是不一样的。分析

    //题意,设2000元存20年,其中1年存i1次,2年存i2次,3年存i3次,5年存i5次,8年存i8次,则到期时存款人应得到的本利合计为:

    // 2000*(1+rate1)i1*(1+rate2)i2*(1+rate3)i3*(1+rate5)i5*(1+rate8)i8其中rateN为对应存款年限的利率。

    //根据题意还可得到以下限制条件:

    // 0<=i8<=2 0<=i5<=(20-8*i8)/5 0<=i3<=(20-8*i8-5*i5)/3 0<=i2<=(20-8*i8-5*i5-3*i3)/2 0<=i1=20-8*i8-5*i5-3*i3-2*i2

    //可以用穷举法穷举所有的i8、i5、i3、i2和i1的组合,代入求本利的公式计算出最大值,就是最佳存款方案。

    //*程序说明与注释

    #include

    #include

    int main()

    {

    int i8,i5,i3,i2,i1,n8,n5,n3,n2,n1;

    float max=0,term;

    for(i8=0;i8<3;i8++) /*穷举所有可能的存款方式*/

    for(i5=0;i5<=(20-8*i8)/5;i5++)

    for(i3=0;i3<=(20-8*i8-5*i5)/3;i3++)

    for(i2=0;i2<=(20-8*i8-5*i5-3*i3)/2;i2++)

    {

    i1=20-8*i8-5*i5-3*i3-2*i2;

    term=2000.0*pow((double)(1+0.0063*12), (double)i1)*pow((double)(1+2*0.0063*12), (double)i2)*pow((double)(1+3*0.0069*12),(double)i3)*pow((double)(1+5*0.0075*12),(double)i5)*pow((double)(1+8*0.0084*12),(double)i8);/*计算到期时的本利合计*/

    /这句话不怎么理解 请问下这句该怎么理解

    if(term>max){ max=term;n1=i1; n2=i2; n3=i3; n5=i5; n8=i8; }

    }

    printf("For maxinum profit,he should so save his money in a bank:\n");

    printf(" made fixed deposit for 8 year: %d times\n",n8);

    printf(" made fixed deposit for 5 year: %d times\n",n5);

    printf(" made fixed deposit for 3 year: %d times\n",n3);

    printf(" made fixed deposit for 2 year: %d times\n",n2);

    printf(" made fixed deposit for 1 year: %d times\n",n1);

    printf(" Toal: %.2f\n",max);/*输出存款方式*/

    }

    更多相关内容
  • 最终结果为: 0 + 0 + 4 + 0 + 0 + 32 + 64 + 0 = 100 2 进制转 8 进制 三个二进制位代表一个八进制位, 因为3个二进制位的最大值是7,而八进制是逢8进1 例如: 将二进制01100100转换为八进制数 从右至左每3位划分为8...

    进制基本概念

    • 什么是进制?

      • 进制是一种计数的方式,数值的表示形式
    • 常见的进制

      • 十进制、二进制、八进制、十六进制
    • 进制书写的格式和规律

      • 十进制 0、1、2、3、4、5、6、7、8、9 逢十进一
      • 二进制 0、1 逢二进一
        • 书写形式:需要以0b或者0B开头,例如: 0b101
      • 八进制 0、1、2、3、4、5、6、7 逢八进一
        • 书写形式:在前面加个0,例如: 061
      • 十六进制 0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F 逢十六进一
      • 书写形式:在前面加个0x或者0X,例如: 0x45
    • 练习

      • 1.用不同进制表示如下有多少个方格
      • 2.判断下列数字是否合理
      00011  0x001  0x7h4  10.98  0986  .089-109
      +178  0b325  0b0010  0xffdc 96f 96.0f 96.oF  -.003
      

    进制转换

    • 10 进制转 2 进制
      • 除2取余, 余数倒序; 得到的序列就是二进制表示形式
      • 例如: 将十进制(97) 10转换为二进制数

    • 2 进制转 10 进制
      • 每一位二进制进制位的值 * 2的当前索引次幂; 再将所有位求出的值相加
      • 例如: 将二进制01100100转换为十进制
      01100100
      索引从右至左, 从零开始
      第0位: 0 * 2^0 = 0;
      第1位: 0 * 2^1 = 0;
      第2位: 1 * 2^2 = 4;
      第3位: 0 * 2^3 = 0;
      第4位: 0 * 2^4 = 0;
      第5位: 1 * 2^5 = 32;
      第6位: 1 * 2^6 = 64;
      第7位: 0 * 2^7 = 0;
      最终结果为: 0 + 0 + 4 + 0 + 0 + 32 + 64 + 0 = 100
      

    • 2 进制转 8 进制
      • 三个二进制位代表一个八进制位, 因为3个二进制位的最大值是7,而八进制是逢8进1
      • 例如: 将二进制01100100转换为八进制数
      从右至左每3位划分为8进制的1位, 不够前面补0
      001 100 100
      第0位: 100 等于十进制 4
      第1位: 100 等于十进制 4
      第2位: 001 等于十进制 1
      最终结果: 144就是转换为8进制的值
      

    • 2 进制转 16 进制
      • 四个二进制位代表一个十六进制位,因为4个二进制位的最大值是15,而十六进制是逢16进1
      • 例如: 将二进制01100100转换为十六进制数
      从右至左每4位划分为16进制的1位, 不够前面补0
      0110 0100
      第0位: 0100 等于十进制 4
      第1位: 0110 等于十进制 6
      最终结果: 64就是转换为16进制的值
      

    • 其它进制转换为十进制
      • 系数 * 基数 ^ 索引 之和
          十进制           -->          十进制
         12345   =  10000 + 2000 + 300 + 40 + 5
                 =  (1 * 10 ^ 4)  + (2 * 10 ^ 3) + (3 * 10 ^ 2) + (4 * 10 ^ 1) + (5 * 10 ^ 0)
                 =  (1 * 10000) + (2 + 1000) + (3 * 100) + (4 * 10) + (5 * 1)
                 =  10000 + 2000 + 300 + 40 + 5
                 =  12345
         
         规律:
         其它进制转换为十进制的结果 = 系数 * 基数 ^ 索引 之和
         
         系数: 每一位的值就是一个系数 
         基数: 从x进制转换到十进制, 那么x就是基数
         索引: 从最低位以0开始, 递增的数
      
         二进制        -->      十进制
         543210
         101101 = (1 * 2 ^ 5) + (0 * 2 ^ 4) + (1 * 2 ^ 3) + (1 * 2 ^ 2) + (0 * 2 ^ 1) + (1 * 2 ^ 0)
                = 32 + 0 + 8 + 4 + 0 + 1
                = 45
         
         八进制        -->     十进制
         016  =   (0 * 8 ^ 2) + (1 * 8 ^ 1) + (6 * 8 ^ 0)
              =    0  + 8 + 6
              =    14
         
         十六进制      -->      十进制
         0x11f =  (1 * 16 ^ 2) + (1 * 16 ^ 1) + (15 * 16 ^ 0)
               =   256  + 16 + 15
               =   287
      

    • 十进制快速转换为其它进制
      • 十进制除以基数取余, 倒叙读取
         十进制        -->     二进制
         100          -->    1100100
         100 / 2   = 50     0
         50  / 2   = 25     0
         25  / 2   = 12     1
         12  / 2   = 6      0
         6   / 2   = 3      0
         3   / 2   = 1      1
         1   / 2   = 0      1
         
         
         十进制        -->     八进制
         100          -->     144
         100 / 8    = 12    4
         12  / 8    = 1     4
         1   / 8    = 0     1
         
         十进制        -->     十六进制
         100          --> 64
         100 / 16   =  6    4
         6   / 16   =  0    6
      

    十进制小数转换为二进制小数

    • 整数部分,直接转换为二进制即可
    • 小数部分,使用"乘2取整,顺序排列"
      • 用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,直到积中的小数部分为零,或者达到所要求的精度为止
      • 然后把取出的整数部分按顺序排列起来, 即是小数部分二进制
    • 最后将整数部分的二进制和小数部分的二进制合并起来, 即是一个二进制小数
    • 例如: 将12.125转换为二进制
    // 整数部分(除2取余)
      12
    /  2
    ------
       6    // 余0
    /  2
    ------
       3    // 余0
    /  2
    ------
       1   // 余1
    /  2
    ------
      0   // 余1
    //12 --> 1100
      
    // 小数部分(乘2取整数积)
      0.125
    *     2
      ------
       0.25  //0
       0.25
    *     2
      ------
        0.5  //0
        0.5
    *     2
      ------
        1.0  //1
        0.0
    // 0.125 --> 0.001
    
    // 12.8125 --> 1100.001
    

    二进制小数转换为十进制小数

    • 整数部分按照二进制转十进制即可
    • 小数部分从最高位开始乘以2的负n次方, n从1开始
    • 例如: 将 1100.001转换为十进制
    // 整数部分(乘以2的n次方, n从0开始)
    0 * 2^0 = 0
    0 * 2^1 = 0
    1 * 2^2 = 4
    1 * 2^3 = 8
     // 1100 == 8 + 4 + 0 + 0 == 12
    
    // 小数部分(乘以2的负n次方, n从0开始)
    0 * (1/2) = 0
    0 * (1/4) = 0
    1 * (1/8) = 0.125
    // .100 == 0 + 0 + 0.125 == 0.125
    
    // 1100.001  --> 12.125
    
    • 练习:
      • 将0.8125转换为二进制
      • 将0.1101转换为十进制
      0.8125
    *      2
    --------
       1.625  // 1
       0.625
    *      2
    --------
        1.25 // 1
        0.25
    *      2
    --------
         0.5 // 0
    *      2
    --------
        1.0 // 1
        0.0
    
    // 0. 8125  --> 0.1101
    
    1*(1/2) = 0.5
    1*(1/4)=0.25
    0*(1/8)=0
    1*(1/16)=0.0625
    
    //0.1101 --> 0.5 + 0.25 + 0 + 0.0625 == 0.8125
    

    原码反码补码

    • 计算机只能识别0和1, 所以计算机中存储的数据都是以0和1的形式存储的
    • 数据在计算机内部是以补码的形式储存的, 所有数据的运算都是以补码进行的
    • 正数的原码、反码和补码
      • 正数的原码、反码和补码都是它的二进制
      • 例如: 12的原码、反码和补码分别为
        • 0000 0000 0000 0000 0000 0000 0000 1100
        • 0000 0000 0000 0000 0000 0000 0000 1100
        • 0000 0000 0000 0000 0000 0000 0000 1100
    • 负数的原码、反码和补码
      • 二进制的最高位我们称之为符号位, 最高位是0代表是一个正数, 最高位是1代表是一个负数
      • 一个负数的原码, 是将该负数的二进制最高位变为1
      • 一个负数的反码, 是将该数的原码除了符号位以外的其它位取反
      • 一个负数的补码, 就是它的反码 + 1
      • 例如: -12的原码、反码和补码分别为
        0000 0000 0000 0000 0000 0000 0000 1100 // 12二进制
        1000 0000 0000 0000 0000 0000 0000 1100 // -12原码
        1111 1111 1111 1111 1111 1111 1111 0011  // -12反码
        1111 1111 1111 1111 1111 1111 1111 0100 // -12补码
      
    • 负数的原码、反码和补码逆向转换
      • 反码 = 补码-1
      • 原码= 反码最高位不变, 其它位取反
        1111 1111 1111 1111 1111 1111 1111 0100 // -12补码
        1111 1111 1111 1111 1111 1111 1111 0011  // -12反码
        1000 0000 0000 0000 0000 0000 0000 1100 // -12原码
      

    • 为什么要引入反码和补码
      • 在学习本节内容之前,大家必须明白一个东西, 就是计算机只能做加法运算, 不能做减法和乘除法, 所以的减法和乘除法内部都是用加法来实现的
        • 例如: 1 - 1, 内部其实就是 1 + (-1);
        • 例如: 3 * 3, 内部其实就是 3 + 3 + 3;
        • 例如: 9 / 3, 内部其实就是 9 + (-3) + (-3) + (-3);
      • 首先我们先来观察一下,如果只有原码会存储什么问题
        • 很明显, 通过我们的观察, 如果只有原码, 1-1的结果不对
          // 1 + 1
           0000 0000 0000 0000 0000 0000 0000 0001 // 1原码
          +0000 0000 0000 0000 0000 0000 0000 0001 // 1原码
           ---------------------------------------
           0000 0000 0000 0000 0000 0000 0000 0010  == 2
        
           // 1 - 1; 1 + (-1);
           0000 0000 0000 0000 0000 0000 0000 0001 // 1原码
          +1000 0000 0000 0000 0000 0000 0000 0001 // -1原码
           ---------------------------------------
           1000 0000 0000 0000 0000 0000 0000 0010 == -2
        
      • 正是因为对于减法来说,如果使用原码结果是不正确的, 所以才引入了反码
        • 通过反码计算减法的结果, 得到的也是一个反码;
        • 将计算的结果符号位不变其余位取反,就得到了计算结果的原码
        • 通过对原码的转换, 很明显我们计算的结果是-0, 符合我们的预期
        // 1 - 1; 1 + (-1);
        0000 0000 0000 0000 0000 0000 0000 0001 // 1反码
        1111 1111 1111 1111 1111 1111 1111 1110   // -1反码
        ---------------------------------------
        1111 1111 1111 1111 1111 1111 1111 1111 // 计算结果反码
        1000 0000 0000 0000 0000 0000 0000 0000 // 计算结果原码 == -0
      
      • 虽然反码能够满足我们的需求, 但是对于0来说, 前面的负号没有任何意义, 所以才引入了补码
        • 由于int只能存储4个字节, 也就是32位数据, 而计算的结果又33位, 所以最高位溢出了,符号位变成了0, 所以最终得到的结果是0
        // 1 - 1; 1 + (-1);
        0000 0000 0000 0000 0000 0000 0000 0001 // 1补码
        1111 1111 1111 1111 1111 1111 1111 1111   // -1补码
        ---------------------------------------
       10000 0000 0000 0000 0000 0000 0000 0000 // 计算结果补码
        0000 0000 0000 0000 0000 0000 0000 0000 //  == 0
      

    位运算符

    • 程序中的所有数据在计算机内存中都是以二进制的形式储存的。
    • 位运算就是直接对整数在内存中的二进制位进行操作
    • C语言提供了6个位操作运算符, 这些运算符只能用于整型操作数
    符号名称运算结果
    &按位与同1为1
    |按位或有1为1
    ^按位异或不同为1
    ~按位取反0变1,1变0
    <<按位左移乘以2的n次方
    >>按位右移除以2的n次方

    • 按位与:
      • 只有对应的两个二进位均为1时,结果位才为1,否则为0
      • 规律: 二进制中,与1相&就保持原位,与0相&就为0
    9&5 = 1
    
     1001
    &0101
    ------
     0001
    

    • 按位或:
      • 只要对应的二个二进位有一个为1时,结果位就为1,否则为0
    9|5 = 13
    
     1001
    |0101
    ------
     1101
    

    • 按位异或
      • 当对应的二进位相异(不相同)时,结果为1,否则为0
      • 规律:
        • 相同整数相的结果是0。比如55=0
        • 多个整数相^的结果跟顺序无关。例如: 567=576
        • 同一个数异或另外一个数两次, 结果还是那个数。例如: 577 = 5
    9^5 = 12
    
     1001
    ^0101
    ------
     1100
    

    • 按位取反
      • 各二进位进行取反(0变1,1变0)
    ~9 =-10
    0000 0000 0000 0000 0000 1001 // 取反前
    1111 1111 1111 1111 1111 0110 // 取反后
    
    // 根据负数补码得出结果
    1111 1111 1111 1111 1111 0110 // 补码
    1111 1111 1111 1111 1111 0101 // 反码
    1000 0000 0000 0000 0000 1010 // 源码 == -10
    

    • 位运算应用场景:
      • 判断奇偶(按位或)
         偶数: 的二进制是以0结尾
         8   -> 1000
         10  -> 1010
         
         奇数: 的二进制是以1结尾
         9   -> 1001
         11  -> 1011
      
         任何数和1进行&操作,得到这个数的最低位
         1000
        &0001
         -----
         0000  // 结果为0, 代表是偶数
      
         1011
        &0001
         -----
         0001 // 结果为1, 代表是奇数
      
      • 权限系统
        enum Unix {
          S_IRUSR = 256,// 100000000 用户可读
          S_IWUSR = 128,//  10000000 用户可写
          S_IXUSR = 64,//    1000000 用户可执行
          S_IRGRP = 32,//     100000 组可读
          S_IWGRP = 16,//      10000 组可写
          S_IXGRP = 8,//        1000 组可执行
          S_IROTH = 4,//         100 其它可读
          S_IWOTH = 2,//          10 其它可写
          S_IXOTH = 1 //           1 其它可执行
         };
      // 假设设置用户权限为可读可写
      printf("%d\n", S_IRUSR | S_IWUSR); // 384 // 110000000
      
      • 交换两个数的值(按位异或)
       a = a^b;
       b = b^a;
       a = a^b;
      

    • 按位左移
      • 把整数a的各二进位全部左移n位,高位丢弃,低位补0
        • 由于左移是丢弃最高位,0补最低位,所以符号位也会被丢弃,左移出来的结果值可能会改变正负性
      • 规律: 左移n位其实就是乘以2的n次方
    2<<1; //相当于 2 *= 2 // 4
      0010
    <<0100
    
    2<<2; //相当于 2 *= 2^2; // 8
      0010
    <<1000
    
    • 按位右移
      • 把整数a的各二进位全部右移n位,保持符号位不变
        • 为正数时, 符号位为0,最高位补0
        • 为负数时,符号位为1,最高位是补0或是补1(取决于编译系统的规定)
      • 规律: 快速计算一个数除以2的n次方
    2>>1; //相当于 2 /= 2 // 1
      0010
    >>0001
    4>>2; //相当于 4 /= 2^2 // 1
      0100
    >>0001
    
    • 练习:
      • 写一个函数把一个10进制数按照二进制格式输出
    #include <stdio.h>
    void printBinary(int num);
    int main(int argc, const char * argv[]) {
        printBinary(13);
    }
    void printBinary(int num){
        int len = sizeof(int)*8;
        int temp;
        for (int i=0; i<len; i++) {
            temp = num; //每次都在原数的基础上进行移位运算
            temp = temp>>(31-i); //每次移动的位数
            int t = temp&1; //取出最后一位
            if(i!=0&&i%4==0)printf(" "); printf("%d",t);
        }
    }
    

    变量内存分析

    • 内存模型
      • 内存模型是线性的(有序的)
      • 对于 32 机而言,最大的内存地址是2^32次方bit(4294967296)(4GB)
      • 对于 64 机而言,最大的内存地址是2^64次方bit(18446744073709552000)(171亿GB)

    • CPU 读写内存
      • CPU 在运作时要明确三件事
        • 存储单元的地址(地址信息)
        • 器件的选择,读 or 写 (控制信息)
        • 读写的数据 (数据信息)
    • 如何明确这三件事情
      • 通过地址总线找到存储单元的地址
      • 通过控制总线发送内存读写指令
      • 通过数据总线传输需要读写的数据
    • 地址总线: 地址总线宽度决定了CPU可以访问的物理地址空间(寻址能力)
      • 例如: 地址总线的宽度是1位, 那么表示可以访问 0 和 1的内存
      • 例如: 地址总线的位数是2位, 那么表示可以访问 00、01、10、11的内存
    • 数据总线: 数据总线的位数决定CPU单次通信能交换的信息数量
      • 例如: 数据总线:的宽度是1位, 那么一次可以传输1位二进制数据
      • 例如: 地址总线的位数是2位,那么一次可以传输2位二进制数据
    • 控制总线: 用来传送各种控制信号
    • 写入流程

      • CPU 通过地址线将找到地址为 FFFFFFFB 的内存
      • CPU 通过控制线发出内存写入命令,选中存储器芯片,并通知它,要其写入数据。
      • CPU 通过数据线将数据 8 送入内存 FFFFFFFB 单元中
    • 读取流程

      • CPU 通过地址线将找到地址为 FFFFFFFB 的内存
      • CPU 通过控制线发出内存读取命令,选中存储器芯片,并通知它,将要从中读取数据
      • 存储器将 FFFFFFFB 号单元中的数据 8 通过数据线送入 CPU寄存器中
    • 变量的存储原则

      • 先分配字节地址大内存,然后分配字节地址小的内存(内存寻址是由大到小)
      • 变量的首地址,是变量所占存储空间字节地址(最小的那个地址 )
      • 低位保存在低地址字节上,高位保存在高地址字节上
      10的二进制: 0b00000000 00000000 00000000 00001010
                 高字节←                        →低字节
      

    char类型内存存储细节

    • char类型基本概念
      • char是C语言中比较灵活的一种数据类型,称为“字符型”
      • char类型变量占1个字节存储空间,共8位
      • 除单个字符以外, C语言的的转义字符也可以利用char类型存储
    字符意义
    \b退格(BS)当前位置向后回退一个字符
    \r回车(CR),将当前位置移至本行开头
    \n换行(LF),将当前位置移至下一行开头
    \t水平制表(HT),跳到下一个 TAB 位置
    \0用于表示字符串的结束标记
    \代表一个反斜线字符 \
    \"代表一个双引号字符"
    \’代表一个单引号字符’
    • char型数据存储原理
      • 计算机只能识别0和1, 所以char类型存储数据并不是存储一个字符, 而是将字符转换为0和1之后再存储
      • 正是因为存储字符类型时需要将字符转换为0和1, 所以为了统一, 老美就定义了一个叫做ASCII表的东东
      • ASCII表中定义了每一个字符对应的整数
        char ch1 = 'a'; 
        printf("%i\n", ch1); // 97
    
        char ch2 = 97;
        printf("%c\n", ch2); // a
    
    • char类型注意点
      • char类型占一个字节, 一个中文字符占3字节(unicode表),所有char不可以存储中文
      char c = '我'; // 错误写法
      
      • 除转义字符以外, 不支持多个字符
      char ch = 'ab'; // 错误写法
      
      • char类型存储字符时会先查找对应的ASCII码值, 存储的是ASCII值, 所以字符6和数字6存储的内容不同
      char ch1 = '6'; // 存储的是ASCII码 64
      char ch2 = 6; //  存储的是数字 6
      
    • 练习
      • 定义一个函数, 实现输入一个小写字母,要求转换成大写输出

    类型说明符

    • 类型说明符基本概念
      • C语言提供了说明长度说明符号位的两种类型说明符, 这两种类型说明符一共有4个:
        • short 短整型 (说明长度)
        • long 长整型 (说明长度)
        • signed 有符号型 (说明符号位)
        • unsigned 无符号型 (说明符号位)
    • 这些说明符一般都是用来修饰int类型的,所以在使用时可以省略int
    • 这些说明符都属于C语言关键字

    short和long

    • short和long可以提供不同长度的整型数,也就是可以改变整型数的取值范围。
      • 在64bit编译器环境下,int占用4个字节(32bit),取值范围是-2^31 ~ 2^31-1;
      • short占用2个字节(16bit),取值范围是-2^15 ~ 2^15-1;
      • long占用8个字节(64bit),取值范围是-2^63 ~ 2^63-1
    • 总结一下:在64位编译器环境下:
      • short占2个字节(16位)
      • int占4个字节(32位)
      • long占8个字节(64位)。
      • 因此,如果使用的整数不是很大的话,可以使用short代替int,这样的话,更节省内存开销。
    • 世界上的编译器林林总总,不同编译器环境下,int、short、long的取值范围和占用的长度又是不一样的。比如在16bit编译器环境下,long只占用4个字节。不过幸运的是,ANSI \ ISO制定了以下规则:
      • short跟int至少为16位(2字节)
      • long至少为32位(4字节)
      • short的长度不能大于int,int的长度不能大于long
      • char一定为为8位(1字节),毕竟char是我们编程能用的最小数据类型
    • 可以连续使用2个long,也就是long long。一般来说,long long的范围是不小于long的,比如在32bit编译器环境下,long long占用8个字节,long占用4个字节。不过在64bit编译器环境下,long long跟long是一样的,都占用8个字节。
    #include <stdio.h>
    
    int main()
    {
        // char占1个字节, char的取值范围 -2^7~2^7
        char num = 129;
        printf("size = %i\n", sizeof(num)); // 1
        printf("num = %i\n", num); // -127
        // short int 占2个字节, short int的取值范围 -2^15~2^15-1
        short int num1 = 32769;// -32767
        printf("size = %i\n", sizeof(num1)); // 2
        printf("num1 = %hi\n", num1);
    
        // int占4个字节, int的取值范围 -2^31~2^31-1
        int num2 = 12345678901;
        printf("size = %i\n", sizeof(num2)); // 4
        printf("num2 = %i\n", num2);
    
        // long在32位占4个字节, 在64位占8个字节
        long int num3 = 12345678901;
        printf("size = %i\n", sizeof(num3)); // 4或8
        printf("num3 = %ld\n", num3);
    
        // long在32位占8个字节, 在64位占8个字节 -2^63~2^63-1
        long long int num4 = 12345678901;
        printf("size = %i\n", sizeof(num4)); // 8
        printf("num4 = %lld\n", num4);
        
        // 由于short/long/long long一般都是用于修饰int, 所以int可以省略
        short num5 = 123;
        printf("num5 = %lld\n", num5);
        long num6 = 123;
        printf("num6 = %lld\n", num6);
        long long num7 = 123;
        printf("num7 = %lld\n", num7);
        return 0;
    }
    

    signed和unsigned

    • 首先要明确的:signed int等价于signed,unsigned int等价于unsigned
    • signed和unsigned的区别就是它们的最高位是否要当做符号位,并不会像short和long那样改变数据的长度,即所占的字节数。
      • signed:表示有符号,也就是说最高位要当做符号位。但是int的最高位本来就是符号位,因此signed和int是一样的,signed等价于signed int,也等价于int。signed的取值范围是-2^31 ~ 2^31 - 1
      • unsigned:表示无符号,也就是说最高位并不当做符号位,所以不包括负数。
      • 因此unsigned的取值范围是:0000 0000 0000 0000 0000 0000 0000 0000 ~ 1111 1111 1111 1111 1111 1111 1111 1111,也就是0 ~ 2^32 - 1
    #include <stdio.h>
    
    int main()
    {
        // 1.默认情况下所有类型都是由符号的
        int num1 = 9;
        int num2 = -9;
        int num3 = 0;
        printf("num1 = %i\n", num1);
        printf("num2 = %i\n", num2);
        printf("num3 = %i\n", num3);
    
        // 2.signed用于明确说明, 当前保存的数据可以是有符号的, 一般情况下很少使用
        signed int num4 = 9;
        signed int num5 = -9;
        signed int num6 = 0;
        printf("num4 = %i\n", num4);
        printf("num5 = %i\n", num5);
        printf("num6 = %i\n", num6);
    
        // signed也可以省略数据类型, 但是不推荐这样编写
        signed num7 = 9;
        printf("num7 = %i\n", num7);
       
    
        // 3.unsigned用于明确说明, 当前不能保存有符号的值, 只能保存0和正数
        // 应用场景: 保存银行存款,学生分数等不能是负数的情况
        unsigned int num8 = -9;
        unsigned int num9 = 0;
        unsigned int num10 = 9;
        // 注意: 不看怎么存只看怎么取
        printf("num8 = %u\n", num8);
        printf("num9 = %u\n", num9);
        printf("num10 = %u\n", num10);
        return 0;
    }
    
    • 注意点:
      • 修饰符号的说明符可以和修饰长度的说明符混合使用
      • 相同类型的说明符不能混合使用
        signed short int num1 = 666;
        signed unsigned int num2 = 666; // 报错
    

    如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持你的支持就是江哥持续更新的动力。

    配套视频地址

    展开全文
  • C语言写一个查单词的小demo

    千次阅读 2021-07-03 17:36:31
    C语言写一个查单词的小demo #include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) { // 用只读的方式打开我们的单词库 FILE *fp = fopen(...

    用C语言写一个查单词的小demo

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    
    int main(int argc, const char *argv[])
    {
    	// 用只读的方式打开我们的单词库
        FILE *fp = fopen("dict.txt","r");
        if (NULL == fp){
            perror("fopen");
            return -1;
        }
        while (1){
        	// 定义两个缓冲区,用来接收数据 (用来存放用户查询的数据,和在单词库中读到的数据)
            char buf1[100];
            char buf2[100];
           	// 将指针定位到文件开头
            fseek(fp,0,SEEK_SET);
            // 清空缓存区
            memset(buf1,0,sizeof(buf1));
            printf("请输入单词(quit退出):");
            // fgets(buf1,sizeof(buf1),stdin);
            scanf("%s",buf1);
            // 如果用户输入为quit,则退出
            if (strcmp(buf1,"quit")==0)
                return -1;
    		// 记录用户输入的长度
            int len = strlen(buf1);
            while(1){
            	// 清空缓存区
                memset(buf2,0,sizeof(buf2));
                // 从单词库中读数据
                char *p = fgets(buf2,sizeof(buf2),fp);
               //  printf("buf2 = %s\n",buf2);
                if (NULL == p){
                    perror("fgets");
                    printf("%s:not find\n",buf1);
                    break;
                }
                // 将用户输入的数据和读取到的数据做比较
                char * flag = strstr(buf2,buf1);
                // printf("------------------\n");
                // printf("buf1[0] = %c\n",buf1[0]);
                // printf("buf2[0] = buf1[0]=%d\n",buf2[0]==buf1[0]);
                // printf("flag = %d\n",flag);
                // strstr返回值不为空,并且返回的地址和buf2的地址一样并且 buf1的长度为len,则buf2[len] == ' ';
                if (flag != NULL && flag == buf2 && (buf2[len] == ' '))
                {
                    printf("%s",buf2);
                    break;
                }
            }
      
        }
    		// 关闭文件
            fclose(fp);
            return 0;
    }
    
    
    

    下面为一个小型的单词库

    abandonment   n.放弃
    abbreviation   n.缩写
    abeyance   n.缓办,中止
    abide   v.遵守
    ability   n.能力
    able   adj.有能力的,能干的
    abnormal   adj.反常的,变态的
    aboard   adv.()上
    abolish   v.废除,取消
    abolition   n.废除,取消
    abortion   n.流产
    abortive   adj.无效果的,失败的
    about   prep.关于,大约
    above   prep....之上,高于
    above-mentioned   adj.上述的
    abreast   adv.并肩,并列
    abridge   v.省略,摘要
    abroad   adv.国外,海外
    abrogate   v.取消,废除
    abrogation   n.取消,废除
    abrupt   adj.突然的,生硬的
    abruptly   adv.突然地
    absence   n.缺席,缺乏
    absent   adj.缺席的,不存在
    absent-minded   adj.心不在焉的
    absolute   adj.完全的,绝对的
    absolutely   adv.绝对,完全
    absorb   v.吸收,专心于
    absorption   n.吸收,专注
    abstract   adj.抽象的,难懂的
    abstraction   n.抽象,提取
    absurd   adj.荒唐的
    absurdity   n.荒唐()
    abundance   n.丰富,大量
    abundant   adj.丰富的,充裕的
    abuse   v.滥用,谩骂
    abasement   n.滥用
    academic   adj.学院的,学术的
    academy   n.学院,研究院
    accede   v.同意
    accelerate   v.加速,加快
    acceleration   v.加速,促进
    accent   n.腔调 v.重读
    accept   v.接受,同意
    acceptable   adj.可接受的,合意的
    acceptance   n.接受,承兑
    access   n.接近,入口
    accessible   adj.可接近的
    accessory   n.附件,装饰品
    accident   n.事故,意外之事
    accidental   adj.意外的,偶然的
    accidentally   adv.偶尔,附带
    accommodate   v.提供便利,拆借
    accommodation   n.便利,通融
    accompaniment   n.伴侣,伴奏
    accompany   v.伴随,伴奏
    accomplish   v.完成,达到
    accomplishment   n.成就
    accord   v.符合,协调
    accordance   n.按照,与...一致
    according   adj.按照,据...说
    accordingly   adj.相应地,从而
    account   n.账目 v.说明
    accountant   n.会计()
    accounting   n.会计学
    accrue   v.产生,发生
    accrued   adj.增值的,应计的
    accumulate   v.积累,积蓄
    accumulation   n.积累
    accumulative   adj.积累的
    accuracy   n.准确()
    accurate   adj.准确的,精密的
    accurately   adj.准确地
    accusation   n.控告
    accuse   v.告发,指责
    accustom   v.使...习惯于
    ache   v.觉得疼 n.疼痛
    aching   adj.疼痛的
    achieve   v.完成,实现
    achievement   n.完成,成就
    acid   n.酸
    acknowledge   v.承认,鸣谢
    acknowledgment   n.承认,鸣谢,回执
    acquaint   n.使熟悉,相识
    acquaintance   n.熟悉人,相识
    acquaintant   adj.熟悉的
    acquire   v.求得,获得
    acquisition   n.获得
    acre   n.英亩
    acrobat   n.杂技演员
    acrobatics   n.杂技
    across   prep.横越 adv.横穿
    act   n.行为,法令 v.表演
    action   n.行为,行动
    activate   v.使活跃,开动
    active   adj.活跃的,积极的
    actively   adv.积极地,活跃地
    activity   n.活动
    actor   n.男演员
    actress   n.女演员
    actual   adj.现实的,实际的
    actuality   n.实际
    actually   adv.实际上,居然
    acute   adj.剧烈的,敏锐的
    a.d.   ()公元
    ad   n.()广告
    adapt   v.使适应,改编
    adaptation   n.适应
    add   v.增添,加,补充
    addition   n.增加,附加物
    additional   adj.增加的,附加的
    additive   adj.附加的 n.添加剂
    address   n.地址 v.致词
    adequate   adj.足够的,恰当的
    adequately   adv.恰当地
    adhere   v.粘附,坚持
    adhesive   n.粘合剂
    adjacent   adj.邻近的
    adjective   n.形容词
    adjoin   v.毗连
    adjust   v.调整,修整
    adjustable   adj.可调整的
    adjustment   n.调整
    administer   v.管理
    administration   n.行政管理,管理机关
    administrative   adj.行政管理的
    admirable   adj.可钦佩的
    admiration   n.羡慕,钦佩
    admire   v.钦佩,赞美
    admission   n.准入,承认
    admit   v.承认,接纳
    admittedly   adv.明白地
    adolescence   n.青春期
    adolescent   adj.青春期的
    adopt   v.采用,采纳
    adoption   n.采用
    adore   v.崇拜,敬慕
    adorn   v.装饰,佩带
    adornment   n.装饰()
    adult   n.成年人 adj.成年的
    advance   n.,v.前进
    advanced   adj.先进的,发达的
    advantage   n.优点,优势
    advantageous   adj.有利的,有用的
    adventure   n.冒险,惊险活动
    adventurous   adj.冒险的
    adverb   n.副词
    adverbial   adj.副词的
    adversary   adj.敌手,对手
    adverse   v.逆的,相反的
    adversity   n.逆境,不幸
    advertise   v.登广告,推销
    advertising   adj.广告的
    advertisement   n.广告
    advice   n.忠告,意见
    advisable   adj.适当的,可行的
    advise   v.劝告,通知
    adviser   n.顾问
    advocate   v.拥护,提倡
    aerial   adj.天空的,航空的
    aeroplane   n.飞机
    affair   n.事件,事情
    affect   v.影响,改变
    affection   n.友爱,爱慕
    affectionate   adj.充满感情的
    affiliate   n.分号(公司)
    affirm   v.断言,肯定
    affirmation   n.确定,确认
    affirmative   adj.肯定的
    afford   v.买得起,经受得起
    affordable   adj.买得起的
    afloat   adj.航行中的
    aforesaid   adj.上述的
    afraid   adj.害怕的,恐怕
    africa   n.非洲
    african   adj.非洲的 n.非洲人
    after   prep....后
    afternoon   n.下午
    afterward   adv.后来
    again   adv.再,又
    against   prep.反对,对着
    age   n.年龄,时代
    agency   n.代理,代理处
    agent   n.代理人,试剂
    aggravate   v.加重,恶化
    aggravation   n.加重,恶化
    aggregate   v.,n.,adj.合计()
    aggregation   n.总计,集合
    aggression   n.侵略
    aggressive   adj.侵略的,进取的
    aggressor   n.侵略者
    agitate   v.鼓动
    agitation   n.鼓动,不安
    ago   adv....以前
    agonize   v.使痛苦
    agony   n.苦恼,痛苦
    agree   v.同意,一致认为
    agreeable   adj.惬意的,易相处的
    agreeably   adv.欣然,依照
    agreed   adj.商定的
    agreement   n.一致,协议
    agricultural   adj.农业的
    agriculture   n.农业
    ahead   adv....前
    aid   n.,v.援助,救护
    aids   n.()艾滋病
    ailment   n.疾病
    aim   n.目的 v.旨在,指向
    aimless   adj.无目的的
    air   n.空气,气派
    aircraft   n.航空器
    airline   n.航线,航空公司
    airliner   n.定期航班
    airmail   n.航空邮件
    airplane   n.飞机
    airport   n.机场
    airway   n.航线
    aisle   n.过道,走廊
    ajar   adv.半开的
    alarm   n.惊慌,警报
    alarming   adj.警告的
    alas   int.唉,哎呀
    album   n.相册,地图册
    alcohol   n.酒精
    alcoholic   adj.含酒精的
    alcoholism   n.嗜酒者,酒鬼
    ale   n.淡啤酒
    alert   adj.警惕的,灵活的
    algebra   n.代数
    alien   adj.异国的,异样的
    alienate   v.疏远,转让,挪用
    alienation   n.异化
    alignment   n.对准,准线
    alike   adj.相象的
    alive   adj.活着的,有生命的
    all   adj.所有的 n.一切
    allergic   adj.过敏的,变态的
    allergy   n.反感,过敏
    alliance   n.联合,同盟
    allied   adj.同盟的
    allocate   v.分配
    allocation   n.分配
    allot   v.分配,配给
    allotment   n.分配,份额
    allow   v.允许,许可
    allowance   n.补助,津贴
    alloy   n.合金
    ally   n.同盟者 v.结盟
    almost   adv.几乎,差不多
    alone   adj.单独的,仅仅
    along   prep.沿着 adv.一起
    alongside   prep....旁边
    aloud   adv.大声地
    alphabet   n.字母表
    also   adv.也
    alter   v.改变,变动
    alternate   v.轮流,交替
    alternation   n.改变,变更
    alternative   n.,v.两者取一
    although   conj.虽然
    altitude   n.高度
    altogether   adv.全部地,总共
    aluminum   n.铝
    always   adv.总是,始终
    a.m.   ()上午
    amateur   adj.业余的
    amaze   v.使惊叹
    amazement   n.惊奇,诧异
    ambassador   n.大使
    ambient   adj.周围的,包围着的
    ambiguity   n.歧义性,意义不明处
    ambiguous   adj.模棱两可的
    ambition   n.抱负,野心
    ambitious   adj.雄心勃勃的
    ambulance   n.救护车
    amend   v.修改,更正
    amendment   n.修改(通知书)
    amends   n.赔偿
    america   n.美国,美洲
    american   adj.美国的 n.美国人
    amiable   adj.和蔼的,亲切的
    amicable   adj.友好的,和睦的
    amid   prep....之间
    ammunition   n.弹药
    among   prep....之中
    amount   n.数量,总数 v.合计
    ampere   n.【电】安培
    ample   adj.宽大的,充裕的
    amplification   n.放大
    amplifier   n.放大器,扩音机
    amplify   v.详述,放大
    amuse   v.逗乐,给娱乐
    amusement   n.娱乐,乐趣
    analogue   n.模拟,类似物
    analogy   n.类似,类推
    analysis   n.分析,分解
    analytical   adj.分析的,解析的
    analyze   v.分析,分解
    ancestor   n.祖先,祖宗
    anchor   n.锚 v.停泊
    ancient   adj.古老的,古代的
    and   conj.和,与,而
    anecdote   n.轶事,轶闻
    angel   n.天命,安琪儿
    anger   n.生气,愤怒
    angle   n.角,角度
    angry   adj.生气的,愤怒的
    angular   adj.角状的
    animal   n.动物
    animate   v.使有活力,激活
    animation   n.生气,生机
    ankle   n.踝,踝骨
    annex   n.附录,附件
    anniversary   n.周年纪念日
    announce   v.宣布,通报
    announcement   n.通知
    announcer   n.播音员
    annoy   v.烦扰,使生气
    annoyance   n.烦恼,麻烦事
    annual   adj.每年的,年度的
    annually   adv.每年,年年
    another   pron.,prep.另一个
    answer   n.答案 v.答复
    ant   n.蚂蚁
    antagonism   n.对立,敌对
    antagonist   n.对手,敌手
    antarctic   adj.南极的
    antibiotic   adj.抗菌的
    antecedent   n.触角,天线
    anticipate   v.期望,预料
    anticipation   n.期望,预料
    antique   adj.古老的 n.古玩
    antonym   n.反义词
    antonymous   adj.反义的
    anxiety   n.焦虑,担心
    anxious   adj.焦急的,切盼的
    anxiously   adv.焦急地,急切地
    any   adj.任何,一些
    anybody   pron.任何人
    anyhow   adv.无论如何
    anyone   pron.无论谁
    anything   pron.无论什么
    anyway   adv.不管怎样
    anywhere   adv.无论何地
    apart   adv.分离,隔开
    apartment   n.套房,公寓
    ape   n.猿猴
    apologize   v.道歉
    apology   n.道歉
    apparatus   n.仪器,设备
    apparent   adj.明显的,表面上的
    apparently   adj.显然,似乎
    appeal   v.,n.呼吁,上诉
    appealing   adj.有吸引力的
    appear   v.出现,好象
    appearance   n.出现,外表
    appendix   n.附录,盲肠
    appetite   n.食欲,欲望
    applaud   v.称赞,拍手喝彩
    applause   n.喝彩,欢呼
    apple   n.苹果
    appliance   n.用具,器械
    applicable   adj.生动的,适用的
    applicant   n.申请人
    application   n.申请,应用
    apply   v.应用,申请
    appoint   v.任命,约定
    appointment   n.任命,约会
    appreciable   adj.可看到的
    appreciably   adv.相当大地
    appreciate   v.欣赏,感激
    appreciation   n.欣赏,感激
    appreciative   adj.感激的
    apprentice   n.学校
    apprize   v.通知
    approach   v.接近 n.途径
    appropriate   adj.恰当的 v.拨给
    approval   n.同意,批准
    approve   v.赞成,批准
    approximate   adj.,v.近似,约略
    approximately   adv.近乎,大约
    approximation   n.近似值
    april   n.四月
    apt   adj.恰当的,易于..的
    aptitude   n.才智,天资
    arab   n.阿拉伯
    arabian   n.阿拉伯人,阿拉伯语
    arabic   adj.阿拉伯的
    arbitrary   adj.专横的,任意的
    arbitrate   v.仲裁
    arbitration   n.仲裁
    arbitrator   n.仲裁员
    arc   n.弧
    arch   n.拱门,弓形
    archaeologist   n.考古学家
    archaeology   n.考古学
    architect   n.建筑师
    architecture   n.建筑学
    arctic   adj.北极的
    ardent   adj.热心的,强烈的
    arduous   adj.艰巨的,努力的
    area   n.地区,面积,领域
    arena   n.竞技场
    argue   v.争论,辩论
    argument   n.争论,论点
    arise   v.起来,出现
    aristocracy   n.贵族阶层
    aristocrat   n.贵族
    aristocratic   adj.贵族的
    arithmetic   n.算术
    arm   n.手臂,扶手 v.武装
    arms   n.武器
    armchair   n.手扶椅
    armour   n.盔甲,装甲
    army   n.军队,陆军
    around   adv.在周围,大约
    arouse   v.唤醒,唤起
    arrange   v.整理,安排
    arrangement   n.安排,计划
    array   v.装扮,排列
    arrear   n.欠款
    arrest   v.逮捕,吸引
    arrival   n.到达,到货
    arrive   v.到达,达到
    arrogance   n.傲慢
    arrogant   adj.傲慢的
    arrogantly   adv.傲慢地
    arrow   n.箭,箭头
    art   n.艺术,技艺
    article   n.文章,物品,冠词
    artificial   adj.人造的,假的
    artist   n.艺术家
    artistic   n.艺术的
    as   adv.一样 prep.作为
    ascend   v.登,上升
    ascertain   v.查明,弄清
    ascribe   v.归于
    asean   n.()东盟
    ash   n.灰,灰烬
    ashamed   adj.惭愧的,羞耻的
    ashore   adv.在岸上,上岸
    ashtray   n.烟灰缸
    asia   n.亚洲
    asian   adj.亚洲的 n.亚洲人
    aside   adv.在旁边,搁在一边
    ask   v.问,要求,邀请
    asleep   adj.睡着的
    aspect   n.容貌,方面
    aspirin   n.阿斯匹林
    ass   n.驴,愚蠢的人
    assassinate   v.暗杀
    assassination   n.暗杀
    assassinator   n.暗杀者
    assault   v.袭击,攻击
    assemble   v.集合,装配
    assembly   n.集合,装配
    assert   v.断言,宣称
    assertion   n.断言
    assess   v.评定,估价
    assessment   n.估值,评价
    assign   v.分配,指定
    assignment   n.任务,作业
    assist   v.协助
    assistance   n.协助,辅助
    assistant   n.助手
    associate   v.联想 adv.副的
    associated   adj.联合的
    association   n.协会,合营
    associative   adj.联想的
    assorted   adj.各种各样的
    assortment   n.花色品种
    assume   v.假定,担任
    assumption   n.假定,假装
    assurance   n.自信,保证
    assure   v.使..放心,向..保证
    assured   adj.感到放心的
    astonish   v.使惊讶
    astonishment   n.惊讶
    astound   v.使惊讶
    astray   adv.(信件)遗失、误传
    astronaut   n.宇宙飞行员
    astronomer   n.天文学家
    astronomical   adj.天文学的
    astronomy   n.天文学
    at   prep.在,处于,以
    athlete   n.田径运动员
    athletic   adj.田径的
    atlantic   n.,adj.大西洋()
    atlas   n.地图集
    atmosphere   n.大气,气氛
    atmospheric   adj.大气的,空气的
    atom   n.原子,微粒
    atomic   adj.原子的,原子能的
    attach   v.附着于,依恋
    attachment   n.依附,附件,爱慕
    attack   v.,n.进攻,侵袭
    attain   v.赢得,到达
    attempt   v.,n.尝试,企图
    attend   v.出席,照顾
    attendance   n.出勤(),出席
    attendant   n.随从,服务员
    attention   n.注意,关心
    attentive   adj.注意的,关心的
    attentively   adv.关心地
    attic   n.阁楼
    attitude   n.态度,看法
    attorney   n.辩护律师
    attract   v.吸引,引力
    attraction   adj.有吸引力的
    attributable   adj.归于...的
    attribute   v.属于 n.属性
    attribution   n.属于
    attributive   adj.定语的,属性的
    auction   n.拍卖
    audience   n.听众,观众
    auditorium   n.礼堂
    august   n.八月
    aunt   n.(婶、姨、姑)母
    aural   adj.听觉的,耳的
    auspice   n.赞助,主办
    australia   n.澳大利亚
    australian   adj.澳大利亚的
    author   n.作者,创造者
    authority   n.权力,权威
    authorization   n.授权
    authorize   v.授权,批准
    autobiography   n.自传
    automate   v.自动化
    automatic   adj.自动的
    automation   n.自动化
    automobile   n.汽车
    autonomous   adj.自治的
    autonomy   n.自治
    autumn   n.秋天
    auxiliary   adj.辅助的,补助的
    avail   v.帮助,有用 n.效用
    availability   n.可用性,可供货
    available   adj.可得到的
    avenge   v.报复
    avenue   n.林荫道,途径
    average   adj.平均的 n.平均数
    averagely   adv.平均
    aviation   n.航空
    avoid   v.避免,逃避
    await   v.等候,等待
    awake   v.醒来,醒悟 adj.醒的
    awaken   adj.醒着的
    award   v.授予 n.奖,奖品
    aware   adj.知道的,意识到的
    away   adv.去,远离,在远处
    awe   n.威惧
    awesome   adj.可怕的
    awful   adj.令人畏惧的
    awfully   adv.可怕地,非常
    awkward   adj.笨拙的,不熟练的
    awkwardly   adv.笨拙地
    awkwardness   n.笨拙
    ax   n.斧子
    axial   adj.轴的,轴向的
    axis   n.轴,轴线,轴心
    axle   n.()轴
    baby   n.婴儿,年龄最小的人
    baby-sit   v.(替人)看护小孩
    baby-sitter   n.看护小孩的人
    bachelor   n.单身汉,学士
    back   n.背 adj.背后的
    backbone   n.脊梁骨
    backdate   v.回溯
    background   n.背景,经历
    backing   n.倒退,支持物
    backlog   n.未交付的订货
    backward   adv.向后,逆
    backwardness   n.落后(状态)
    bacon   n.咸肉,熏肉
    bacterium   n.细菌
    bad   adj.坏的,低劣的
    badge   n.徽章
    badly   adv.坏,非常,严重地
    badminton   n.羽毛球
    baffle   v.困扰,难倒
    bag   n.袋子,提包
    baggage   n.行李
    baggy   adj.袋状的
    bait   n.饵,诱饵
    bake   v.烤,烘
    baker   n.面包师
    bakery   n.面包店
    balance   n.平衡,天平,余额
    balcony   n.阳台
    bald   adj.秃的
    ball   n.球,球状物,舞会
    ballet   n.芭蕾舞
    balloon   n.气球
    ballooning   n.热气球飞行运动
    ball-point pen   n.圆珠笔
    ballroom   n.舞厅
    bamboo   n.竹
    bamboo-shoot   n.竹笋
    banana   n.香蕉
    band   n.乐队,带子 v.联合
    bandage   n.绷带
    bandit   n.盗匪,歹徒
    bang   n.,v.砰的一响
    bank   n.岸,银行
    banker   n.银行家
    banking   n.银行业务、金融业
    bankrupt   n.,v.,adj.破产
    banner   n.旗帜,横幅
    banquet   n.宴会
    bar   n.棒,杆,酒吧
    barber   n.理发师
    bare   adj.裸的,直率的
    barely   adv.赤裸裸地
    bargain   n.交易,便宜货
    barge   n.驳船
    bark   n.狗吠,树皮 v.吠
    barn   n.谷仓,牲口棚
    barometer   n.晴雨表,标记
    baron   n.男爵
    baroness   n.男爵夫人,女男爵
    barrel   n.桶,枪()管
    barren   adj.不育的,贫瘠的
    barrier   n.障碍,壁垒
    barter   n.易货贸易
    base   n.基础,基地 v.基于
    baseball   n.棒球
    basement   n.地下室,地窖
    basic   adj.基本的,基础的
    basically   adv.基本上,主要地
    basin   n.盆,盆地
    basis   n.基础,根据
    basket   n.篮子,筐
    basketball   n.篮球
    bat   n.球拍,蝙蝠 v.击打
    bath   n.洗澡,浴室
    bathe   v.洗澡,冲洗
    bathroom   n.浴室,洗手间
    batter   v.打击
    battery   n.电池
    battle   n.战斗,战役
    bay   n.海湾,湾
    bazaar   n.集市
    b.c.   ()公元前
    be   v.是,存在
    beach   n.海滩,湖滨
    bead   n.有孔小珠
    beak   n.鸟嘴
    beam   n.梁,射线 v.发光
    bean   n.豆子
    bear   v.负担,忍受,生育
    bearing   n.举止,意义,轴承
    bearish   adj.熊市的
    beast   n.野兽,牲畜
    beat   v.打,击败 n.击打
    beautiful   adj.美丽的,绝妙的
    beauty   n.美,美女
    because   conj.因为,由于
    become   v.变成
    bed   n.床,河床,苗圃
    bedroom   n.卧室
    bee   n.蜜蜂
    beef   n.牛肉
    beer   n.啤酒
    beetle   n.甲虫
    before   prep....前面
    beforehand   adv.事先,预先
    beg   v.乞讨,恳求
    beggar   n.乞丐
    begin   v.开始,着手进行
    beginner   n.初学者
    beginning   n.开端,起点
    behalf   n.代表
    behave   v.行为,举动
    behavior   n.行为,举止
    behind   prep....后面
    behindhand   adj.落后,事后
    being   n.生物,存在
    belief   n.信仰,信心
    believe   v.相信,认为
    bell   n.钟,铃
    belly   n.肚子
    belong   v.属于
    beloved   adj.敬爱的 n.爱人
    below   adj.,prep....下面
    belt   n.带,腰带
    bench   n.长凳,工作台
    bend   v.弯曲,俯身 n.拐弯
    beneath   prep....之下
    beneficial   adj.有益的,有利的
    beneficiary   n.受益者
    benefit   n.益处,利益
    benevolence   n.慈悲,捐助
    benevolent   adj.乐善好施的
    bent   adj.弯曲的
    berry   n.浆果
    beside   prep....之旁
    besides   adj.而且 prep...之外
    best   adj.最好的
    best-seller   n.畅销书()
    best-selling   adj.畅销的
    bestow   v.赠给,授予
    bet   n.,v.打赌
    betray   v.背叛,泄露
    betrayal   n.背叛,暴露
    better   adj.更好的 adv.较好
    better-off   adj.经济情况较好的
    between   prep.在两者之间
    beverage   n.饮料
    beware   v.当心
    bewilder   v.迷惑,茫然
    beyond   prep....那边,超出
    bias   n.偏好
    bible   n.圣经
    bicycle   n.自行车
    bid   n.,v.报价,投标
    bidding   n.投标
    big   adj.大的,重大的
    bike   n.自行车
    bill   n.帐单,议案,钞票
    billion   n.十亿
    bind   v.捆绑,约束
    binding   n.装订
    biographer   n.传记记者
    biography   n.传记
    biologist   n.生物学家
    biology   n.生物学
    bird   n.鸟
    birth   n.出生,创始
    birthday   n.生日,诞辰
    birthplace   n.出生地
    biscuit   n.饼干
    bishop   n.主教
    bit   n.小片,一点
    bite   n.,v.咬,叮 n.一口
    bitter   adj.苦的,痛苦的
    bitterly   adv.惨痛地,辛酸地
    bitterness   n.苦味,苦难
    b/l   n.()提单
    black   adj.黑的 n.黑色
    blackboard   n.黑板
    blacksmith   n.铁匠
    blade   n.刀刃,叶片
    blame   v.责备 n.过失
    blank   adj.空白的 n.空格
    blanket   n.毛毯
    blast   n.阵风 v.爆炸
    blaze   n.火光,光亮
    bleach   v.漂白,变白
    bleed   v.出血,流血
    blend   v.混合,掺混
    bless   v.保佑,祝福
    blessing   n.祝福
    blind   adj.瞎的 v.使失明
    blink   adj.眨眼,闪烁
    block   n.大块,街区,障碍物
    blockage   n.封锁
    blond   adj.金发的
    blood   n.血,血统
    bloody   adj.流血的,残忍的
    bloom   n.花 v.开花
    blossom   n.(果树的)花
    blot   n.污迹
    blouse   n.女衫
    blow   v.吹,吹掉,刮风
    blue   adj.蓝色的,忧郁的
    blunder   n.大错
    blunt   adj.钝的,生硬的
    blush   v.脸红,害臊
    blushy   adj.害羞的
    board   n.木板,伙食,董事会
    boarding   n.伙食
    boast   v.夸口,以...而自豪
    boat   n.小船,艇
    body   n.身体,尸体,团体
    bodyguard   n.保镖
    boil   v.沸腾,煮沸
    boiler   n.锅炉
    boiling   adj.沸腾的
    bold   adj.大胆的
    boldness   n.胆略
    bolt   n.螺检,插销 v.闩门
    bomb   n.炸弹 v.轰炸
    bomber   n.轰炸机
    bona fide   adj.真诚的,无欺的
    bond   n.束缚,联结,债券
    bonded   adj.保税的
    bone   n.骨,骨骼
    bony   adj.骨头的
    bonus   n.红利
    book   n.书 v.预订()
    booking   adj.定货
    booklet   n.小册子
    bookcase   n.书橱
    bookshelf   n.书架
    bookstore   n.书店
    boom   v.隆隆响,兴旺,繁荣
    booming   adj.兴旺的,繁荣的
    boost   v.抬高,促进
    boot   n.靴子
    booth   n.货摊,电话亭
    border   n.国界,边境
    bore   v.烦扰,使厌烦,钻孔
    boring   adj.讨厌的
    born   adj.出生的,天生的
    borrow   v.借,借用
    borrowings   n.借款
    bosom   n.胸,胸怀
    boss   n.上司,老板
    bossy   adj.好发号施令的
    both   pron.,adj.双方,两
    bother   v.打扰,麻烦 n.麻烦
    bottle   n.瓶子
    bottle-neck   n.影响...的环节
    bottom   n.底部,末尾
    bottom-line   n.末行数字,结果
    bough   n.大树枝
    bounce   v.跳起 n.跳跃
    bound   v.缚,以...为界
    boundary   n.界线,边界
    bourgeois   n.资产阶级分子
    bow   v.鞠躬,服从 n.弓
    bowl   n.碗,钵
    bowling   n.保龄球
    box   n.箱,盒 v.拳击
    boxer   n.拳击运动员
    boxing   n.拳击
    boxing-day   n.节礼日
    boy   n.男孩,小伙子
    boycott   v.,n.抵制
    brace   n.支撑 v.激励
    bracket   n.括号
    brag   v.吹嘘,夸口
    brain   n.脑子,头脑,智能
    brake   n. 制动器 v.刹车
    branch   n.树枝,分支,分部
    brand   n.牌子,商标
    brandy   n.白兰地
    brass   n.黄铜
    brave   adj.勇敢的 v.冒着
    bravely   adv.勇敢地
    bravery   n.勇敢
    brazil   n.巴西
    brazilian   adj.,n.巴西的()
    breach   n.违反(契约)
    bread   n.面包,生计
    bread-earner   n.挣钱养家的人
    breadth   n.宽度,大量
    break   n.打破,破坏 n.裂口
    breakage   n.裂口
    breakdown   n.故障,衰竭
    breakthrough   n.突破
    breakfast   n.早饭
    breast   n.乳房,胸脯
    breath   n.呼吸,气息
    breathe   v.呼吸
    breed   v.繁殖,饲养 n.品种
    breeze   n.微风
    bribe   v.贿赂
    bribery   v.贿赂
    brick   n.砖
    bride   n.新娘
    bridegroom   n.新郎
    bridge   n.桥梁,桥牌
    bridle   n.约束 v.抑制
    brief   adj.简短的
    briefing   n.简要情况
    briefly   adv.简单地,简短地
    bright   adj.明亮的,鲜明的
    brighten   v.使发光
    brightness   n.光辉,明亮
    brilliance   n.辉煌,光彩
    brilliant   v.辉煌的,杰出的
    brim   n.边,边缘
    bring   v.拿来,带来
    brink   n.边缘
    brisk   adj.敏捷的,活跃的
    bristle   n.鬃毛
    britain   n.不列颠,英国
    british   adj.英国的,英属的
    brittle   adj.易碎的,脆的
    broad   adj.宽的,辽阔的
    broadcast   v.,n.广播
    broadcasting   n.广播节目
    broaden   v.加宽,扩大
    brochure   n.产品介绍手册
    broken   adj.破碎的,毁坏了的
    broker   n.经纪人
    bronze   n.青铜
    brood   n.一窝
    brook   n.小河,溪流
    broom   n.扫帚
    brother   n.兄弟,同胞
    brotherhood   n.兄弟情谊
    brother-in-law   n.姻兄()
    brow   n.眉毛,额
    brown   n.,adj.褐色()
    bruise   n.青肿 v.打伤
    brush   n.刷子,画笔 v.刷
    brutal   adj.野蛮的
    brute   n.禽兽,畜生
    bubble   n.气泡
    bucket   n.水桶
    bud   n.芽,蓓蕾
    buddhism   n.佛教
    buddhist   n.佛教徒
    budget   n.预算
    buffalo   n.水牛,野牛
    buffet   n.冷餐
    bug   n.臭虫,虫子
    bugle   n.喇叭
    build   v.建造,建设
    builder   n.建筑工人,建设者
    building   n.建筑物,大楼
    bulb   n.球形物,灯泡
    bulk   n.体积,大半
    bulky   adj.庞大的,笨重的
    bull   n.公牛
    bullet   n.子弹
    bulletin   n.公报
    bullion   n.金块,金条
    bullish   adj.行情看涨的
    bump   v.碰,颠簸 n.碰撞
    bumpy   adj.颠簸不平的
    bunch   n.一束
    bundle   n.,v.捆,包
    burden   n.担子,负担
    burdensome   adj.沉重的
    bureau   n.局,司,办公室
    bureaucracy   n.官僚主义
    bureaucratic   adj.官僚主义的
    burglar   n.夜盗,窃贼
    burglary   n.盗窃
    burial   n.埋葬
    burn   v.烧,燃烧,烧伤
    burner   n.喷灯
    burnt   adj.烧焦的,烧坏的
    burst   v.,n.爆炸,破裂
    bury   v.掩埋,安葬
    bus   n.公共汽车
    bush   n.灌木
    bushel   n.蒲式耳(重量单位)
    business   n.行业,买卖,商号
    businesslike   adj.事务式的
    busy   adj.忙碌的,热闹的
    but   prep.但是,除了
    butcher   n.屠夫 v.屠宰
    butchery   n.肉食店
    butt   n.根端 v.顶撞
    butter   n.黄油
    butterfly   n.蝴蝶
    button   n.钮扣,按钮
    buy   v.买,购买
    buyer   n.购买者
    buzz   v.嗡嗡叫 n.嗡嗡声
    by   prep....旁边,按照
    bygone   n.已往的,过时的
    bypass   n.旁道,分路
    by-product   n.副产品 
    cab   n.出租汽车
    cabbage   n.卷心菜;圆白菜
    cabin   n.小屋,船舱
    cabinet   n.橱柜,内阁
    cable   n.电缆,海底电报
    cafe   n.咖啡馆
    cafeteria   n.自助餐厅
    cage   n.笼子,鸟笼
    cake   n.糕,饼
    calculate   v.计算,估计
    calculation   n.计算(结果)
    calculus   n.微积分
    calendar   n.日历
    calf   n.小牛,腿肚子
    calibration   n.刻度,核定
    call   v.叫,称为,打电话
    calm   adj.宁静的,镇静的
    calmly   adv.平静地,沉着地
    calorie   n.热卡,卡路里
    camel   n.骆驼
    camera   n.照相机
    camp   n.帐篷,野营 n.宿营
    campaign   n.战役,运动
    camping   n.野营
    campus   n.校园
    can   v.aux.能,会,可以
    canada   n.加拿大
    canadian   adj.,n.加拿大的()
    canal   n.运河,渠道
    canary   n.金丝雀
    cancel   v.删除,取消
    cancellation   n.删除,取消
    cancer   n.癌
    candid   adj.坦白的,直率的
    candidate   n.候选人
    candle   n.蜡烛
    candy   n.糖果
    cane   n.手杖,(藤、竹的)茎
    canned   adj.罐装的
    cannon   n.大炮
    canoe   n.独木舟,游艇
    canon   n.规范,准则
    canteen   n.食堂
    canvas   n.帆布,画布
    canvass   v.游说
    cap   n.帽子,盖子 v.覆盖
    capability   n.才能,能力
    capable   adj.有能力的
    capacity   n.容量,容积,资格
    cape   n.披肩,岬,海角
    capita   n.人
    capital   n.首都,资本
    capital-intensive   adj.资本密集型的
    capitalism   n.资本主义
    capitalist   adj.资本主义的
    capitalization   n.资本化
    capitalize   v.大写,资本化
    captain   n.队长,船长,上尉
    caption   n.标题
    captive   adj.被俘虏的 n.俘虏
    capture   v.,n.俘获,捉拿
    car   n.小汽车
    caravan   n.车队,大蓬车
    carbon   n.碳,复写纸
    card   n.卡片,纸牌,名片
    cardboard   n.硬纸板
    cardinal   adj.主要的
    care   n.注意,小心 v.关心
    career   n.职业,生涯
    careful   adj.小心的,仔细的
    careless   adj.粗心的,不关心的
    carelessness   n.粗心
    cargo   n.货物
    carol   n.颂歌
    carpenter   n.木匠
    carpet   n.地毯
    carriage   n.马车,(火车)车厢
    carrier   n.运载工具,媒介
    carrot   n.胡萝卜
    carry   v.搬运,携带
    cart   n.手推车
    carton   n.纸箱
    cartoon   n.漫画,动画片
    cartridge   n.弹仓
    carve   v.雕刻,切
    carving   n.雕塑
    case   n.事实,案例,箱子
    cash   n.现金 v.兑现
    cashier   n.出纳
    cassette   n.小盒,磁盘盒
    cast   v.掷,投射,铸造
    castle   n.城堡
    casual   adj.偶然的,随便的
    casualty   n.伤亡
    cat   n.猫
    catalog   n.(商品)目录
    catastrophe   n.灾难
    catalyst   n.催化剂
    catch   v.捕获,染病 n.捉
    category   n.种类,范畴
    cater   v.提供
    cathedral   n.大教堂
    catholic   adj.天主教的
    cattle   n.(总称)
    cause   n.原因,理由,事业
    caution   n.谨慎,告诫
    cautious   adj.谨慎的,当心的
    cavalry   n.骑兵,马术
    cave   n.洞穴,山洞
    cavern   n.酒馆
    cavity   n.坑,孔穴
    cease   v.停止,平息
    ceiling   n.天花板
    celebrate   v.庆祝
    celebration   n.庆祝仪式
    celery   n.芹菜
    cell   n.细胞,牢房,电池
    cellar   n.地窖,地下室
    cement   n.水泥
    cemetery   n.墓场
    censor   v.审查
    censorship   n.审查
    cent   n.分币
    centigrade   adj.摄氏的
    centimeter   n.厘米
    central   adj.中心的,中央的
    center   n.中心 v.集中
    century   n.世纪
    cereal   n.谷物
    ceremonial   adj.仪式的
    ceremony   n.仪式,典礼,礼节
    certain   adj.确信的,一定的
    certainly   adv.一定,当然,行
    certainty   n.确实,必然的事
    certificate   n.证书,执照
    certification   n.证明
    certify   v.证明
    chain   n.链条,一系列,锁链
    chair   n.椅子
    chairman   n.主席,董事长
    chairperson   n.主席(无性别之分)
    chairwoman   n.女主席,女董事长
    chalk   n.白垩,粉笔
    challenge   n.,v.挑战,质问
    challenging   adj.具有挑战性的
    chamber   n.房间
    champion   n.优胜者,冠军
    championship   n.锦标()
    chance   n.机会,可能性
    change   n.变化,零钱 v.改变
    changeable   adj.变化的
    channel   n.沟渠,途径,频道
    chaos   n.混乱
    chap   n.伙计
    chapter   n.章,节
    character   n.性格,角色,特牲
    characteristic   n.特征,特性
    characteristical   adj....特征的
    characterize   v.具有...特征
    charcoal   n.木炭
    charge   v.收费,冲向,控告
    charity   n.施舍,仁慈
    charm   n.魅力 v.迷惑
    charming   adj.迷人的
    chart   n.图表 v.制定计划
    charter   n.特许证,宪章
    chase   v.追逐,驱除
    chat   v.聊天
    chatter   v.喋喋不休,啁啾
    cheap   adj.便宜的,可鄙的
    cheat   v.欺骗,作弊 n.骗子
    cheating   n.欺骗行为
    check   v.检验,核对 n.支票
    check-out   n.结帐,离店时限
    check-up   n.核对,检查
    cheek   n.颊,脸
    cheeky   adj.胖乎乎的
    cheer   n.喝彩 v....喝彩
    cheerful   adj.快活的
    cheese   n.干酪,奶酪
    chemical   adj.化学的
    chemist   n.化学家,药剂师
    chemistry   n.化学
    cheque   n.支票
    cherish   v.珍爱,怀有
    cherry   n.樱桃
    chess   n.国际象棋
    chest   n.胸膛,柜子
    chestnut   n.栗树,栗子
    chew   v.咀嚼
    chick   n.小鸡
    chicken   n.鸡,鸡肉
    chief   adj.首席的,首要的
    chiefly   adv.多半,首要地
    child   n.孩子,儿童
    childhood   n.童年
    childish   adj.孩子气的
    childlike   adj.孩子似的,天真的
    chill   n.寒意 v.冷却
    chilly   adj.凉的,冷淡的
    chimney   n.烟囱
    chin   n.下巴,下颊
    china   n.中国
    china   n.瓷器,陶瓷
    chinese   adj.,n.中国的
    chip   n.片,屑,缺口
    chocolate   n.巧克力
    choice   n.选择,选中的人或物
    choke   v.闷死,窒息,阻塞
    choose   v.选择,愿意
    chop   v.劈,剁 n.带骨肉
    chorus   n.合唱队,齐声
    christ   n.基督
    christian   adj.基督教的n.基督徒
    christianity   n.基督教(精神)
    christmas   n.圣诞节
    church   n.教堂
    cif   n.()到岸价
    cigar   n.雪茄
    cigarette   n.卷烟
    cinema   n.电影院
    circle   n.圆,果 v.画圈于
    circular   adj.圆圈的
    circuit   n.巡回,电路
    circulate   v.循环,流通,流传
    circulation   n.循环,销路,周转
    circumference   n.周围,圆周
    circumstance   n.情况,环境
    circus   n.马戏团
    cite   v.引证,举例
    citizen   n.公民,市民
    citizenship   n.公民权
    city   n.城市
    civil   adj.民用的,民事的
    civilization   n.文明,民族文化
    civilize   v.使...文明,开化
    claim   v.要求,索赔,声称
    clamp   n.夹子 v.夹紧
    clap   v.排手,鼓掌
    clarify   v.弄清(问题)
    clarification   n.澄清
    clash   v.,n.碰撞,冲突
    clasp   n.扣子 v.紧握()
    class   n.阶级,种类,班级
    classic   n.经典作品
    classical   adj.经典的,古典的
    classification   n.分类
    classify   v.分类,分等
    classmate   n.同班同学
    classroom   n.教室
    clatter   v.咔嗒响 n.卡嗒响
    clause   n.条款,从句
    claw   n.爪
    clay   n.黏土
    clean   adj.清洁的,干的
    clear   adj.清楚的,明确的
    clearance   n.结关
    clearly   adv.清晰地,无疑地
    clench   v.咬紧,握紧,决定
    clerk   n.办事员,职员,店员
    clever   adj.聪明的,灵巧的
    cleverness   n.聪明,机灵
    client   n.当事人,顾客,用户
    clientele   n.顾客(总称)
    cliff   n.悬崖,峭壁
    climate   n.气候
    climax   n.顶点,高潮
    climb   v.爬,攀登,上升
    cling   v.粘住,依附
    clinic   n.诊所
    clip   n.夹子,卡子 v.夹住
    cloak   n.外套,借口
    clock   n.时钟
    clockwise   adj.,adv.顺时针的
    close   v.关闭,结束 n.终结
    closed   adj.关闭的,停业的
    close down   n.倒闭
    closely   adv.紧密地,严密地
    closet   n.壁橱
    cloth   n.织物,布,衣料
    clothe   v....着衣
    clothes   n.衣服(总称)
    clothing   n.服装(总称)
    cloud   n.云
    cloudy   adj.多云的
    clown   n.小丑,丑角
    club   n.俱乐部,会,棍棒
    clue   n.线索
    clumsy   adj.笨拙的,愚蠢的
    cluster   n.群,串
    clutch   v.,n.抓紧
    c/o   v.()请转交...
    coach   n.客车,教练
    coal   n.煤
    coarse   adj.粗糙的,粗的
    coast   n.海岸,海滨
    coastal   adj.沿海的
    coat   n.上衣,涂层
    cock   n.公鸡
    cocktail   n.鸡尾酒
    code   n.法规,代码,密码
    codify   v.编码
    coefficient   n.系数
    coffee   n.咖啡
    coffin   n.棺材
    coherence   n.凝聚性
    coherent   adj.有条理的,粘着的
    cohesion   n.凝聚力,团结
    cohesive   adj.有粘性的
    coil   v.卷曲 n.一卷,线圈
    coin   n.硬币,创造新词
    coinage   v.重合,一致
    coincide   n.巧合,同时发生
    coincidence   adj.同时发生的
    coincident   adj.冷,冷冰冰的
    coldness   n.寒冷,冷淡
    collaborate   v.协作,勾结
    collaboration   n.协作,通敌
    collapse   v.倒塌 v.坍塌
    collar   n.领子
    colleague   n.同事,同行
    collect   v.收集,征收,聚集
    collection   n.收集,收藏
    collective   n.集体 adj.集体的
    college   n.学院
    collide   v.猛烈碰撞,冲突
    collision   n.猛烈碰拉,冲突
    colonel   n.上校
    colonial   adj.殖民的,殖民地的
    colonist   n.殖民者,移民
    colonist   n.殖民主义
    colony   n.殖民地
    color   n.颜色,色彩,气色
    color-blind   adj.色盲的
    colorful   adj.色彩丰富的
    colorless   adj.无色的
    column   n.圆柱,栏
    columnist   n.专栏作家
    comb   v.梳 n.梳子
    combat   v.,n.战斗,斗争
    combination   n.混合,组合
    combine   v.组合,化合,结合
    come   v.来到,出现,发生
    comedian   n.喜剧演员
    comedy   n.喜剧
    comfort   n.舒适,慰藉 v.安慰
    comfortable   adj.舒适的,自在的
    comic   adj.喜剧的,滑稽的
    command   v.,n.命令,控制
    commander   n.司令,指挥官
    commemorate   n.纪念
    commemoration   v.纪念
    commence   v.开始
    commend   v.称赞,推荐
    commandment   n.称赞
    comment   n.,v.评论
    commerce   n.商业
    commercial   adj.商业的,商务的
    commission   n.,v.委托,委任
    commit   v.委托,犯(错误)
    commitment   n.责任
    committee   n.委员会
    commodity   n.商品
    common   adj.共同的,普通的
    commonly   adv.通常,平常
    commonplace   adj.平凡的,平淡的
    commonsense   n.常识
    commonwealth   n.共同体,联邦
    commune   n.公社
    communicate   v.传播,通讯
    communication   n.通信,通讯系统
    communicative   adj.通讯的
    communism   n.共产主义
    communist   n.共产主义者
    community   n.团体,共同体,群体
    compact   adj.严密的,紧凑的
    companion   n.同伴,伴侣
    company   n.公司,同伴
    comparable   adj.可比较的
    comparative   adj.比较的,相当的
    comparatively   adv.比较地
    compare   v.比较,比作
    comparison   n.比较
    compass   n.指南针,圆规
    compatible   adj.可兼容的,一致的
    compel   v.强迫,逼迫
    compensate   v.赔偿,补偿,酬报
    compensation   n.赔偿,补偿
    compete   v.竞争,比赛
    competent   adj.称职的,有能力的
    competition   n.竞争,比赛
    competitive   adj.竞争的
    competitiveness   n.竞争能力
    competitor   n.竞争者,对手
    compile   v.(),编辑
    complain   v.抱怨,控诉
    complaint   n.怨言,控告
    complement   n.补充,余数
    complete   v.完成,结束
    completely   adv.完全地,十分
    completion   n.完成,完满
    complex   adj.综合的,复杂的
    complexity   n.复杂性
    compliance   n.顺从,应允
    complicate   v.使复杂
    complicated   adj.错综复杂的
    compliment   n.,v.称赞,问候
    complimentary   adj.称赞的
    comply   v.履行,遵守
    component   n.成分,组分
    componential   adj.成分的
    compose   v....组成,作曲
    composed   adj.镇静的
    composer   n.作曲家
    composite   adj.合成的,组合的
    composition   n.作文,组成
    compound   n.化合物 v.混合
    comprehend   v.理解,了解
    comprehension   n.理解
    comprehensive   adj.综合的,广泛的
    compress   v.压缩
    compression   n.压缩,凝缩
    comprise   v.包括,由...组成
    compromise   n.,v.妥协,和解
    compels   v.强迫
    compulsory   adj.强制的,必修的
    computation   n.计算
    compute   v.计算
    computer   n.计算机
    computerization   n.计算机化
    computerize   v.使...计算机化
    comrade   n.同志
    conceal   v.隐瞒,隐藏
    concede   v.让步,输
    conceit   n.自负,自大
    conceited   adj.自负的
    conceive   v.想象,怀孕
    concentrate   v.集中,浓缩
    concentrated   adj.全神贯注的
    concentration   n.专心,浓度
    concept   n.概念
    conception   n.想法,概念
    conceptive   adj.概念的
    concern   v.涉及,关心 n.商行
    concerned   adj.有关的
    concerning   prep.关于
    concert   n.音乐会
    concerted   adj.齐心协力的
    concess   v.让步
    concession   n.让步,减免,租界
    concise   adj.简明的,简要的
    conclude   v.结束,缔结,断定
    conclusion   n.结束,结论
    conclusive   adj.结束的,结论性的
    concrete   n.混凝土 adj.具体的
    concur   v.同地发生
    concurrence   n.合作,并发
    concurrent   adj.同时发生的
    condemn   v.谴责,判刑
    condemnation   n.谴责,判决
    condensation   n.凝聚
    condense   v.凝结,冷凝,精简
    condenser   n.冷凝器,聚光器
    condition   n.状态,情形,条件
    conditional   adj.有条件的
    conduce   v.导致,有益于
    conducive   adj.有助于...的
    conduct   n.行为,管理 v.为人
    conduction   n.传导,传热
    conductor   n.(乐队)指挥,售票员
    cone   n.锥体,锥形
    confer   v.授予,颁布,商议
    conference   n.会议
    confess   v.坦白,供认
    confession   n.供认,自由
    confide   v.委托,吐露秘密
    confidence   n.信任,信心
    confident   adj.确信的,自信的
    confidential   adj.机密的
    confine   v.限制
    confinement   n.限制
    confirm   v.证实,确认,批准
    confirmation   n.确认
    conflict   v.,n.冲突,斗争
    conform   v.遵守,使...一致
    conformity   n.遵照,一致
    confront   v.面对,与...相对
    confrontation   n.面对,对峙
    confuse   v.混淆,弄糊涂,搅乱
    confusion   n.混乱,糊涂
    congestion   n.阻塞,消化不良
    congratulate   v.祝贺
    congratulation   n.祝贺,贺辞
    congress   n.(代表)大会,国会
    congressman   n.国会议员
    conjunction   n.连词,联结
    connect   v.连接,联想
    connection   n.联系,社会关系
    conquer   v.征服,战胜
    conqueror   n.征服者,胜利者
    conquest   n.征服
    conscience   n.良心,良知
    conscientious   adj.有良心的
    conscientiously   adv.认真地
    conscious   adj.意识到的,自觉的
    consciousness   n.知觉,意识
    consecutive   adj.连续的,连贯的
    consent   v.,n.同意,允许
    consequence   n.后果,重要性
    consequently   adv.因而,所以
    conservation   n.保护,保存
    conservative   adj.保守的,稳健的
    consider   v.考虑,以为,体谅
    considerable   adj.相当的,可观的
    considerably   adv.相当
    considerate   adj.考虑周全的
    consideration   n.考虑,照顾
    consign   v.委托,托运货物
    consignment   n.委托,货物
    consist   v....组成
    consistency   n.一致()
    consistent   adj.始终如一的,符合
    console   v.安慰
    consolidate   v.团结
    consolidated   adj.加固的,统一的
    consolidation   n.团结
    consonant   adj.响亮的
    conspicuous   adj.显眼的,出众的
    conspiracy   n.阴谋
    constable   adv.警官
    constant   adj.不变的,恒定的
    constantly   adv.经常地
    constituent   adj.组成的 n.成分
    constitute   v.组成,构成,设立
    constitution   n.宪法,章程
    constitutive   adj.宪法的,章程的
    constraint   n.强制,拘束
    construct   v.建设,建立
    construction   n.建设,建筑
    construe   v.翻译,解释
    consul   n.领事
    consulate   n.领事馆
    consult   v.咨询,磋商
    consultant   n.咨询顾问(公司)
    consultation   n.咨询
    consume   v.消费,消耗
    consumer   n.消费者,用户
    consumption   n.消费,消耗量
    contact   n.,v.接触,联系
    contain   v.含有,容纳,抑制
    container   n.容器,集装箱
    contemplate   v.沉思
    contemplation   n.苦思冥想
    contemporarian   n.同时代人
    contemporary   adj.当代的,同时代的
    contempt   n.轻视,蔑视
    contemptuous   adj.轻视的
    content   n.含量,内容 v.满足
    contest   n.,v.争夺,比赛
    contestant   n.参赛人
    context   n.上下文,语境,环境
    contextual   adj.上下文的,环境的
    continent   adj.节制的 n.大陆
    continental   adj.大陆的
    contingency   n.事故,意外
    continual   adj.连续的,频繁的
    continuance   n.连续
    continue   v.继续,连续,依旧
    continuous   adj.持续的,不断的
    continuously   adv.连续不断地
    contract   n.契约,合同 v.订
    contracted   adj.合同所规定的
    contractual   adj.合同的,契约的
    contradict   v.反驳,与...矛盾
    contradiction   n.矛盾,反驳
    contrary   adj.相反的 n.反面
    contrast   n.,v.对照,对比
    contribute   v.捐献,贡献,投稿
    contribution   n.贡献,捐献物
    control   v.,n.控制,管理
    controversy   n.论战,论争
    controversial   adj.有争议的
    convenience   n.方便,便利
    convenient   adj.便利的,方便的
    convention   n.大会,协定,惯例
    conventional   adj.传统的,常规的
    conversant   adj.精通的,有交情的
    conversation   n.会话,谈话
    converse   v.谈话,对话,交往
    conversely   adv.相反地
    conversion   n.转变,转化,换算
    convert   v.转换,改变信仰
    convey   v.运输,传达
    conveyance   n.运送,传达
    convict   n.罪犯
    conviction   n.定罪,确信
    convince   v.使...确信,信服
    convinced   adj.信服的
    cook   v.烹调,烧 n.厨师
    cooker   n.厨具,厨灶
    cool   adj.凉的,冷静的
    coolness   n.凉爽,冷淡
    cooperate   v.合作,协作
    cooperation   n.合作,协作
    cooperative   adj.合作的 n.合作社
    coordinate   v.协调,配合
    coordination   n.协调,配合
    cope   v.应付,对付
    copper   n.铜
    copy   v.抄写,复制 n.副本
    cord   n.细绳,电线
    cordial   adj.诚恳的,亲切的
    cordially   adv.亲切地
    core   n.核,核心
    cork   n.软木塞
    corn   n.谷物,玉米
    corner   n.角落,拐角
    corporate   n.有限公司
    corporation   n.公司
    correct   adj.正确的,恰当的
    correction   n.修改,校正
    correctly   adv.正确地
    correlate   v.相关,关联
    correlation   n.相互关系
    correspond   v.符合,通信,相当于
    correspondence   n.相应,通信
    correspondent   adj.对应的 n.记者
    corresponding   adj.相应的,通信的
    corridor   n.走廓
    corrode   v.腐蚀
    corrosion   n.腐蚀
    corrupt   adj.腐败的,腐化的
    corruption   n.腐败,腐化
    cosmetics   n.化妆品
    cosmic   adj.宇宙的
    cosmos   n.宇宙
    cosmopolitan   n.大都市
    cost   n.成本,费用 v.花费
    costly   adj.昂贵的
    cottage   n.村舍
    cotton   n.棉花,棉布,棉纱
    couch   n.躺椅
    cough   v.,n.咳嗽
    council   n.理事会,委员会
    counsel   n.劝告,辩护律师
    counsellor   n.顾问
    count   v.计算,数,认为
    countable   adj.可计算的
    countenance   n.容貌,支持
    counter   n.柜台 adj.相反的
    countermand   v.撤回,取消
    countermeasure   n.对策
    counter-offer   n.还价,还盘
    counterpart   n.同类的人或物
    countersign   v.副署,会签
    countersignature   n.副署,会签
    countless   adj.无数的
    country   n.国家,乡间,故乡
    countryside   n.乡下
    county   n.县,郡
    couple   n.一对,几个,夫妇
    courage   n.勇气,胆量
    courageous   adj.勇敢的
    course   n.过程,路线,课程
    court   n.法庭,宫廷,球场
    courteous   adj.有礼貌的
    courtesy   n.礼貌,礼仪,好意
    courtyard   n.院子
    cousin   n.(或表)兄弟姐妹
    cover   v.盖,掩盖 n.盖子
    coverage   n.覆盖率
    covering   adj.包括的
    cow   n.母牛,奶牛
    coward   n.懦夫
    cowardly   adv.胆小地
    crab   n.蟹
    crack   v.使...破裂 n.裂缝
    cracker   n.苏打饼干,克力架
    cradle   n.摇篮,发源地
    craft   n.工艺,手艺,飞机
    craftsman   n.手艺人
    craftsmanship   n.手艺
    crane   n.鹤,起重机
    crash   v.碰撞 n.坠毁
    crate   n.一箱,篓,筐
    crave   v.渴望,恳求
    crawl   v.爬行,徐徐行进
    craziness   n.疯狂
    crazy   adj.疯狂的,迷恋的
    cream   n.乳脂,奶油
    creamy   adj.奶油的,奶黄色的
    create   v.创造,创作,造成
    creation   n.创造,创造物
    creative   adj.有创造力()的
    creature   n.家伙,生物
    credit   n.信誉,信用 v.相信
    creditworthy   adj.有信誉的
    creditworthiness   n.商誉
    creek   n.小川,小湾
    creep   v.爬行,蔓延
    crew   n.(飞机等的)全体人员
    cricket   n.板球,蟋蟀
    crime   n.罪,罪行
    criminal   n.罪犯 adj.犯罪的
    crimson   adj.,n.深红色()
    cripple   n.跛子 v.使残废
    crisis   n.危险,危险期
    crisp   adj.松脆的,鲜嫩的
    critic   n.评论家,爱挑剔的人
    critical   adj.批评的,危急的
    criticism   n.批评
    criticize   v.批评,评论
    crook   n.钩子
    crooked   adj.弯曲的,歪的
    crop   n.作物,庄稼
    cross   n.十字,交叉 v.横过
    crossing   n.交叉,十字路口
    crossroads   n.交叉路口,十字路
    crouch   v.蹲下,缩着
    crow   n.乌鸦 v.鸦啼
    crowd   n.人群 v.挤满
    crown   n.王冠 v.加冕
    crude   adj.未加工的,粗糙的
    cruel   adj.残酷的,残忍的
    cruelty   n.残忍,残酷行为
    cruise   v.巡游,巡航
    crumb   n.面包屑
    crumble   adj.粉碎,崩溃
    crush   v.压榨,粉碎
    crust   n.面包皮,硬的表面
    crutch   n.拐杖
    cry   v.,n.叫喊,哭泣
    crystal   n.水晶,晶体
    cube   n.立方体,三次方
    cubic   adj.立方的
    cubism   n.立体主义
    cuckoo   n.布谷鸟,杜鹃
    cucumber   n.黄瓜
    cultivate   v.耕作,栽培,培养
    cultivation   n.耕作,培养
    cultural   adj.文化的
    culture   n.文化,养殖
    cunning   adj.狡猾的,狡诈的
    cup   n.杯子,一杯
    cupboard   n.碗橱
    curb   v.制止,束缚
    cure   v.,n.治疗,矫正
    curiosity   n.好奇心,古玩
    curious   adj.好奇的,爱打听的
    curl   v.卷曲,缭绕 n.卷发
    curly   adj.卷曲的,波浪式的
    currency   n.通货,货币
    current   adj.现令的 n.流
    currently   adv.当前,广泛地
    curse   n.,v.诅咒,咒骂
    curtail   n.削减,剥夺
    curtain   n.窗帘,幕布
    curve   n.曲线,弯曲
    cushion   n.垫子,靠垫
    custody   n.保管,监护
    custom   n.风俗,习惯
    customary   adj.习惯的,通常的
    customer   n.顾客,主顾
    customs   n.海关
    cut   v.割,切,削减,切断
    cutlery   n.刀具,餐刀
    cutter   n.刀具,裁剪者
    cutting   n.切片,剪辑
    cycle   n.周期,循环,自行车
    cyclist   n.自行车运动员
    cylinder   n.圆筒,柱,汽缸
    d/a   n.()承兑交单
    dacron   n.涤纶
    dad   n.爸爸
    dagger   n.匕首
    daily   adj.每日的 adv.天天
    dainty   adj.优雅,考究
    dairy   n.奶牛场,乳品商店
    dam   n.坝
    damage   v.,n.损害,破坏
    damn   v.,n.诅咒
    damp   adj.潮湿的 n.潮气
    dance   v.跳舞 n.舞蹈
    dancer   n.舞蹈者,舞蹈演员
    danger   n.危险,威胁
    dangerous   adj.有危险的
    danish   adj.,n.丹麦人()
    denmark   n.丹麦
    dare   v.敢,挑战,竟敢
    daring   adj.大胆的,勇敢的
    dark   adj.黑暗的 n.暗处
    darken   v.变黑,转暗
    darkness   n.黑暗
    darling   n.爱人 adj.心爱的
    dart   n.飞标游戏
    dash   v.猛冲,泼溅 n.破折号
    data   n.(复数)资料,数据
    date   n.日期 v.注日期
    dating   n.约会
    daughter   n.女儿
    daughter-in-law   n.儿媳
    dawn   n.黎明,开端
    day   n.一天,白天
    daybreak   n.破晓
    daylight   n.日光,白昼
    daytime   n.日间
    daze   v.耀眼,使迷乱
    dazzle   v.使...眼花缭乱
    dazzling   adj.令人目眩的
    dead   adj.死的 n.死者
    deadline   n.期限
    deadly   adj.致命的,死一般的
    deaf   adj.聋的
    deafen   v.使...聋,震聋
    deal   v.处理,交易 n.买卖
    dealer   n.商人,贩子
    dealing   n.交往,生意
    dean   n.系主任
    dear   adj.亲爱的,敬爱的
    death   n.死,死亡
    deathly   adj.致死的
    debate   v.,n.辩论,讨论
    debit   n.借方
    debt   n.债,债务
    decade   n.十年
    decay   v.,n.腐烂,衰败
    deceased   adj.已死的
    deceit   n.欺骗,欺诈行为
    deceive   v.欺骗
    deception   n.欺诈
    deceitful   adj.欺骗性的
    december   n.十二月
    decency   n.体面
    decent   adj.体面的,象样的
    decide   v.决定,判决
    decided   adj.明确的,果断的
    decidedly   adv.明确地,果断的
    decimal   adj.十进制的,小数的
    decision   n.决定,决议
    decisive   adj.决定性,明确的
    deck   n.甲板
    declaration   n.宣布,宣告
    declare   v.宣布,声明
    decline   v.婉谢,推辞 n.衰落
    declining   adj.下降的,衰落的
    decompose   v.分解,腐烂
    decorate   v.装饰
    decoration   n.装饰物
    decorative   adj.装饰的,装璜的
    decrease   v.,n.减少
    decree   n.法令 v.判决
    dedicate   v.奉献,致力
    deduce   v.演绎,推断
    deduct   v.减
    deduction   n.推断,减少
    deed   n.行为,契据
    deem   v.以为,认为
    deep   adj.深的,深远的
    deepen   v.加深,深化
    deeply   adv.深深的,深切地
    deer   n.鹿
    default   n.,v.不履行,不负责
    defeat   v.击败 n.失败
    defect   n.缺点,缺陷
    defective   adj.有缺点的
    defence   n.保卫,防御
    defend   v.保卫,为...辩护
    defer   v.拖延
    defiance   n.蔑视,挑战
    defiant   adj.无礼的,挑战的
    deficiency   n.缺乏
    deficient   adj.缺乏的,不足的
    deficit   n.赤字
    define   v.下定义,界定,规定
    definite   adj.明确的,限定的
    definitely   adv.明确地,肯定地
    definition   n.定义,解释
    definitive   adv.定义的
    deflate   v.收缩,紧缩
    deflect   v.偏斜
    deflection   n.偏转,偏斜
    deform   v.使变形,使残废
    deformation   n.变形
    defray   v.支付
    defy   v.反抗,蔑视,使不能
    degradation   n.降低,恶化
    degrade   v.败低,下降,堕落
    degree   n.程度,度,学位
    delay   v.,n.耽搁,延误
    del credere   n.保付
    delegate   n.代表 n.委派
    delegation   n.代表团
    delete   v.删除
    deletion   n.删除
    deliberate   adj.故意的,审慎的
    deliberately   adv.故意地,从容地
    deliberation   n.慎重,故意
    delicacy   n.精致
    delicate   adj.优雅的,精致的
    delicious   adj.美味的
    delight   n.快乐,乐事 n.喜爱
    delightful   adj.令人高兴的
    delinquency   n.轻微犯罪
    delinquent   adj.拖欠的
    deliver   v.交付,递送,讲述
    deliverance   n.救助
    delivery   n.交付,递送,讲述
    delusion   n.错觉
    delusive   adj.令人产生错觉的
    demand   v.,n.要求,需求
    demanding   adj.对人要求严格的
    democracy   n.民主,民主政体
    democrat   n.民主党人
    democratic   adj.民主的
    demolish   v.拆除
    demolition   n.拆除
    demonstrate   v.论证,演示,表明
    demonstration   n.示范,表演,示威
    demurrage   n.滞期费
    den   n.窝
    denial   n.拒绝,否定
    denominate   v....命名
    denomination   n.命名
    denote   v.表示
    denounce   v.谴责,斥责
    dense   adj.稠密的,浓厚的
    density   n.密度,稠密
    dent   n.牙,槽,凹陷
    dentist   n.牙科医生
    deny   v.否认,拒绝
    depart   v.离去,出发,违反
    department   n.部,部门,系
    departure   n.离开,违背
    depend   v.依靠,依赖
    dependability   n.可依赖性
    dependable   adj.可依赖的
    dependant   n.受赡养者
    dependence   n.依靠,依赖
    dependent   adj.依靠的,随..而定
    depict   v.描述,描画
    depiction   n.描述
    deplete   v.减少,耗尽
    deposit   v.存放,储蓄 n.存款
    deposition   n.免职,罢官
    depreciate   v.降价,贬值,折旧
    depreciation   n.折旧,贬值
    depress   v.抑制,使人抑郁
    depressed   adj.情绪低落的
    depression   n.沮丧,萧条
    deprive   v.剥夺,丧失
    depth   n.深度
    deputy   n.代表 adj.副职的
    derivation   n.起源,衍生物
    derive   v....而来,得来
    derrick   n.钻塔,井架
    descend   v.降临,下来,遗传
    descendant   n.子孙,后裔
    descent   n.下降,血统
    describe   v.描写,作图
    description   n.描述,形容
    desert   v.遗弃,擅离 n.沙漠
    deserve   v.应受,值得
    design   v.设计,旨在 n.设计
    designate   v.指明,指定
    designation   n.指定,委派
    designer   n.设计者
    desirable   adj.合乎要求的
    desire   n.欲望,要求 v.要求
    desk   n.课桌,写字台
    desolate   adj.荒芜的,凄凉的
    desolation   n.荒凉,凄凉
    despair   n.,v.绝望
    desperate   adj.不顾一切的
    desperation   n.绝望
    despise   v.鄙视,看不起
    despite   prep.不管,任凭
    dessert   n.(最后一道)甜食
    destination   n.终点,目的地
    destine   v.注定,预定
    destiny   n.命运,定数
    destroy   v.破坏,摧毁,消灭
    destruction   n.破坏,毁灭
    destructive   adj.破坏性的
    detach   v.分离,拆开
    detail   n.细节
    detailed   adj.详细的,详尽的
    detain   v.留住,阻止
    detect   v.发现,侦察
    detection   n.发现,侦查
    detective   n.侦探
    deteriorate   v.恶化,败坏
    deterioration   n.退化
    determination   n.决心,决定
    determine   v.决心,决定,测定
    detour   v.绕道,绕开
    detract   v.降低
    detriment   n.损害
    detrimental   adj.有害的
    devaluation   n.贬值
    devalue   v.贬值
    develop   v.发展,开发,成长
    developing   adj.发展中的
    development   n.进展,发展
    deviate   v.背离
    deviation   n.背离,偏向
    device   n.装置,方法
    devil   n.魔鬼,恶人
    devise   v.设计,计划
    devote   v.奉献,贡献
    devoted   adj.献身于...的
    devotion   n.献身,专心
    devour   v.吞吃,吞没
    dew   n.露水
    diagnose   v.诊断
    diagnosis   n.诊断
    diagram   n.图表,图解
    dial   n.钟盘 v.拨电话
    dialect   n.方言
    dialog   n.对话,对白
    diameter   n.直径
    diamond   n.钻石,金刚石
    diary   n.日记
    dictate   v.口授,命令
    dictation   n.口授,听写
    dictator   n.独裁者
    dictatorship   n.独裁,专政
    diction   n.措辞
    dictionary   n.词典,字典
    die   v.死,消亡
    diesel   n.内燃机,柴油机
    diet   n.饮食,节食
    differ   v.不同,相异
    difference   n.差异,差别
    different   adj.不同的,各种
    differential   adj.有差别的
    differently   adv.不同地
    difficult   adj.困难的
    difficulty   n.困难,难题
    dig   v.挖,采掘
    digest   v.消化 n.摘要
    digestion   n.消化
    digit   n.数字
    digital   adj.数字的
    dignity   n.尊贵,尊严
    dike   n.堤
    dilute   v.稀释
    diligent   adj.勤奋的,用功的
    dim   adj.暗淡的,模糊的
    dime   n.(美元)一角
    dimension   n.维,方面,尺寸
    dimensional   adj.尺寸的
    diminish   v.减少,缩小
    dine   v.用餐
    dining-room   n.餐厅
    dingy   adj.肮脏的
    dinner   n.正餐,晚餐,宴会
    dip   v.,n.蘸,浸
    diploma   n.毕业文凭,学位证书
    diplomacy   n.外交
    diplomat   n.外交人员
    diplomatic   n.外交的
    direct   v.支配,指挥,对准
    direction   n.方向,指示,说明
    directive   n.命令,指令
    directly   adv.直接地,立即
    director   n.指导者,导演,领导
    directory   n.目录,地址录
    dirt   n.尘埃,灰尘,泥土
    dirty   adj.肮脏的
    disable   v.使残废
    disabled   adj.残废的 n.残疾人
    disadvantage   n.不利之处
    disadvantageous   adj.不利的
    disagree   v.意见不合,不符
    disagreement   n.不和,不一致
    disallow   v.不允许
    disappear   v.失踪,消失
    disappearance   n.消失
    disappoint   v.使...失望
    disappointed   adj.失望的,扫兴的
    disappointment   n.失望
    disapproval   n.不批准
    disaster   n.自然灾害,祸患
    disastrous   adj.灾难性的
    disburse   v.支付
    disbursement   n.支付
    disc   n.圆盘,唱片
    discard   v.,n.丢弃,扔掉
    discern   v.操作别,辨明
    discharge   v.解除,放出,卸货
    disciplinary   adj.纪律的,学科的
    discipline   n.训练,纪律 n.锻炼
    disclaim   v.放弃,不承认
    disclose   v.揭开,透露
    discomfort   n.不安,不舒服
    discomfortable   adj.不舒服的
    discontinue   v.中断
    discount   n.,v.折扣
    discourage   v.使...泄气,阻止
    discourse   n.演说,谈话,话语
    discover   v.发现
    discovery   n.发现,发现物
    discreet   adj.周到的,慎重的
    discreetly   adv.慎重地
    discrepancy   n.单货不符
    discretion   n.慎重
    discriminate   v.区别,岐视
    discrimination   n.辨别,岐视
    discuss   v.讨论
    discussion   v.讨论,商议
    disdain   v.轻视
    disease   n.疾病
    disgrace   n.耻辱 v.使受辱
    disgraceful   adj.耻辱的,受辱的
    disguise   v.,n.伪装,掩饰
    disgust   n.厌恶 v.使讨厌
    disgustful   adj.令人生厌的
    dish   n.盘子,碟子
    dishonorable   adj.不名誉的
    dishonor   n.耻辱 v.凌辱
    disillusion   v.使觉醒,幻灭
    disinclined   adj.不愿意的
    disinfectant   n.消毒剂
    disintegration   n.分散,解体
    dislike   v.,n.厌恶
    disloyal   adj.不忠的
    disloyalty   adj.不忠
    dismal   adj.阴郁的,沉闷的
    dismay   v.使沮丧 n.沮丧
    dismiss   v.解散,开除
    dismissal   n.解散,开除
    disobey   v.不服从
    disorder   n.紊乱,骚乱,失调
    disparity   n.不同,悬殊
    dispatch   v.迅速派遣 n.快件
    dispel   v.驱散
    dispense   v.分配,施予
    disperse   v.驱散,散布
    displace   v.置换,取代
    displacement   n.置换,替换物
    display   v.,n.陈列,表现
    displease   v.使生气,惹怒
    displeasure   n.不快
    disposal   n.处置,对付
    dispose   v.处置,对付,解决
    disposed   adj....倾向的
    disposition   n.布置,处置
    dispute   v.争论,质疑 n.争论
    disregard   v.,n.无视,不顾
    dissatisfaction   n.不满
    dissatisfy   v.使不满
    dissimilar   adj.不同的
    dissipate   v.驱散,消耗,浪费
    dissolve   v.溶解,使终结
    distance   n.距离,远处
    distant   adj.远方的,疏远的
    distillation   n.蒸馏
    distinct   adj.不同的,明显的
    distinction   n.差别,非凡
    distinctly   adv.明晰地,清楚地
    distinguish   v.辨别,认出
    distinguished   adj.尊贵的,尊敬的
    distort   v.扭曲,歪曲
    distortion   n.曲解,失真,变形
    distract   v.分神,迷惑
    distraction   n.分心
    distress   n.苦恼,不幸
    distribute   v.分配,分布,分销
    distribution   n.分配,分布
    distributor   n.分销商
    distributorship   n.分销权
    district   v.区,区域,地区
    disturb   v.打扰,打乱,使烦恼
    disturbance   n.干扰,动乱
    disunite   v.使分裂
    disuse   v.,n.废止
    ditch   n.沟,渠,下水道
    ditto   n.同上
    dive   v.潜水,跳水,俯冲
    diver   n.潜水员,跳水运动员
    diverge   v.分歧,离题
    divergence   n.分歧
    diverse   adj.不同的,分歧的
    diversion   n.转移,消遣
    diversity   n.多样化
    divert   v.使转向,消遣
    divide   v.分开,分享,分裂
    divine   adj.神的,神圣的
    division   n.划分,部分
    divorce   v.离婚,使脱离
    dizzy   adj.晕眩的
    do   v.做,干,足够,制作
    dock   n.码头
    doctor   n.医生,博士
    doctrine   n.教义,学说
    document   n.文件,公文
    documentary   adj.文化的
    documentation   n.提供文件
    dodge   v.躲避
    dog   n.狗
    doggedly   adv.顽固地
    doll   n.玩偶,娃娃
    dollar   n.元,美元
    domain   n.领土,领域
    dome   n.圆顶,穹窿
    domestic   adj.家里的,国内的
    dominant   adj.统治的
    dominate   v.统治,支配,占优势
    donate   v.捐献
    donation   n.捐献
    donkey   n.驴,笨蛋
    doom   n.命运,判决 v.命定
    door   n.门,(一户)人家
    doorway   n.门口,门道
    dormitory   n.集体宿舍
    dose   n.剂量,一服药
    dot   n.点,圆点
    double   adj.两倍的,双重的
    doubt   v.,n.怀疑,疑惑
    doubtful   adj.怀疑的,可疑的
    doubtless   adv.无疑地,大约
    dough   n.面团
    dove   n.鸽子
    down   adv.向下,下降
    downstairs   adv.在楼下
    downtown   n.闹市 adv.去市里
    downward   adj.向下的,下坡的
    downwards   adv.向下,以下
    doze   v.打瞌睡
    dozen   n.一打
    draft   n.草案,草稿,穿堂风
    drag   v.拖,拽
    dragon   n.龙
    drain   v.排水,耗竭,泄
    drainage   v.排水系统,污水
    drama   n.戏剧,剧本
    dramatic   adj.戏剧性的,显著的
    dramatist   n.戏剧家
    dramatize   v.使戏剧化
    drastic   adj.激烈的,严厉的
    draw   v.画,拉,吸引
    drawback   n.不利,欠缺
    drawer   n.抽屉
    drawing   n.素描,绘画,图样
    dread   v.,n.恐惧,担心
    dreadful   adj.可怕的,糟糕的
    dream   n.梦,梦想 v.做梦
    dreary   adj.疲劳的
    drench   v.浸泡,充满
    dress   n.服装 v.穿衣
    dressing   n.打扮,调味品
    drift   v.漂流,游荡
    drill   n.钻头,操练 v.训练
    drink   v.喝,饮 n.饮料,酒
    drip   v.滴下,流下
    drive   v.驾驶,乘车 n.车道
    driver   n.司机
    droop   v.下垂
    drop   v.落下 n.滴,下降
    dropout   n.中途退出者
    drought   n.旱灾
    drown   v.淹死
    drug   n.药物,麻醉剂
    drugstore   n.零食店
    drum   n.鼓 v.敲鼓
    drunk   adj.喝醉的
    drunkard   n.醉鬼
    dry   adj.干的,枯燥的
    dubious   adj.怀疑的
    duck   n.鸭子
    due   adj.到期的,预定的
    duke   n.公爵
    dull   adj.沉闷的,钝的
    duly   adv.按期地
    dumb   adj.哑的
    dummy   n.傀儡
    dump   v.倾倒 n.垃圾堆
    dumping   n.倾销
    dung   n.粪
    dungeon   n.地牢
    duplicate   adj.二重的,复制的
    durable   adj.持久的,耐用的
    duration   n.期间,待续时间
    during   prep....期间
    dusk   n.黄昏
    dust   n.尘土,粉末 v.掸土
    dustbin   n.簸箕
    dusty   adj.沾满灰尘的
    duty   n.责任,义务,关税
    duty-free   adj.免税的
    dwarf   n.矮子,侏儒
    dwell   v.居住
    dweller   n.居住者,住客
    dwelling   n.住宅
    dye   n.染料 v.染色
    dynamic   adj.动力的,动态的
    dynasty   n.朝代,王朝
    each   adj.,adv.名,每个
    eager   adj.热切的,渴望的
    eagle   n.鹰
    ear   n.耳朵,穗
    earl   n.伯爵
    early   adj.早的,初期的
    earmark   n.标记,特征
    earn   v.挣钱,赢得
    earnest   adj.认真的,诚恳的
    earnings   n.收入,赚得的钱
    earphone   n.耳机
    earth   n.地球,地上,泥土
    earthly   adj.世俗的
    earthquake   n.地震
    ease   n.安逸,轻易
    easily   adv.容易地,安逸地
    east   adj.东方的 n.东方
    easter   n.复活节
    eastern   adj.东的,朝东的
    eastward   adv.向东
    easy   adj.容易的,轻松的
    easy-going   adj.逍遥自在的
    eat   v.吃
    eccentric   adj.性格怪僻的
    eccentricity   n.怪僻
    echo   n.回声,反响,共呜
    eclipse   n.(日、月)食,蚀
    ecology   n.生态学
    economic   adj.经济的,经济学的
    economical   adj.节省的,经济的
    economically   adv.经济上
    economics   n.经济学
    economize   v.节省
    economy   n.经济,节约
    ecstasy   n.狂喜
    edge   n.边,边缘,刀刃
    edit   v.校订,编辑
    edition   n.()
    editor   n.编辑,编者
    editorial   n.社论
    educate   v.教育
    education   n.教育,训练
    educational   adj.教育的
    eel   n.鳝鱼
    effect   n.后果,效力 v.导致
    effective   adj.有效的
    effectively   adv.有效地
    effectiveness   n.有效
    efficiency   n.效率,功效
    efficient   adj.效率高的
    effort   n.努力,尽力,成果
    e. g.   ()例如
    egg   n.卵,蛋,鸡蛋
    eggplant   n.茄子
    egypt   n.埃及
    egyptian   adj.,n.埃及人()
    eight   num.八
    eighteen   num.十八
    eighth   num.第八,八分之一
    eighty   num.八十
    either   adj.二者之一 adv.也
    eject   v.喷射
    ejection   n.喷射
    elaborate   v.,adj.详尽阐述
    elaboration   n.详尽阐述
    elapse   v.(时间)消逝
    elastic   adj.弹性的,灵活的
    elasticity   n.弹性
    elbow   n.肘,弯管
    elder   adj.年长的,资格老的
    elect   v.选举 adj.当选的
    election   n.选举
    electric   adj.电的,电力的
    electrical   adj.电的
    electrician   n.电工
    electricity   n.电
    electrify   v.充电,电气化
    electron   n.电子
    electronic   adj.电子的
    electronics   n.电子学
    elegance   n.优雅
    elegant   adj.优雅的,典雅的
    element   n.成分,元素
    elemental   adj.自然力的,基本的
    elementary   adj.基础的,初步的
    elephant   n.象
    elevate   v.提升,抬高
    elevation   n.海拔,提高,崇高
    elevator   n.电梯
    eleven   num.十一
    eleventh   num.第十一
    eliminate   v.消灭,删除
    elimination   n.消灭,删除
    elliptical   adj.椭圆的,省略的
    ellipsis   n.省略
    eloquence   n.雄辩,口才
    eloquent   adj.雄辩的,有口才的
    else   adj.别的 adv.否则
    elsewhere   adv.在别处
    elusive   adj.躲闪的
    email   n.電子郵件
    emancipate   v.解放
    emancipation   n.解放
    embargo   n.禁运
    embark   v.登陆
    embarrass   v.使窘,使为难
    embarrassing   adj.令人尴尬的
    embarrassment   n.窘迫,尴尬
    embassy   n.使馆
    embody   v.体现,包含
    embrace   v.拥抱,接受,包括
    embroider   v.绣
    embroidery   v.刺绣()
    emerge   v.出现,暴露
    emergency   n.紧急情况,急诊
    emigrant   n.移居国外的人
    emigrate   v.移居国外,移民
    emigration   n.向国外移民
    eminent   adj.杰出的,突出的
    emission   n.发射,散发
    emit   v.发射,散发
    emotion   n.感情,情绪
    emotional   adj.感情的,激动的
    emperor   n.皇帝
    emphasis   n.强调,重点,重读
    emphasize   v.强调,着重
    emphatic   adj.强调的,着重的
    empire   n.帝国,财团
    empirical   adj.经验的
    employ   v.雇用,使用,从事
    employee   n.雇员
    employer   n.雇主
    employment   n.职业,就业
    emptiness   n.空虚,空白
    empty   adj.空的,空虚的
    enable   v.使能够,使可能
    enchant   v.迷住,陶醉
    encircle   v.环绕,包围
    enclose   v.围住,圈起,封入
    enclosure   n.围绕,附件
    encounter   v.面临,遭遇
    encourage   v.鼓舞,鼓励,助长
    encouragement   n.鼓舞,鼓励
    encyclopaedia   n.百科全书
    end   n.结尾 v.终止,结束
    endanger   v.危及,危害
    endeavor   v.,n.努力,尽力
    ending   n.结局
    endless   adj.无穷无尽的
    endorse   v.背签
    endorsement   n.背书
    endow   v.资助,赋予,授予
    endurance   n.忍耐力,耐用
    endure   v.忍受,容忍,持久
    endures   n.最终用户
    enemy   n.敌人,对手
    energetic   adj.精力旺盛的
    energy   n.精力,活力,能量
    enforce   v.实施,强制
    engage   v.从事,雇用,吸引
    engaged   adj.占用的,从事..的
    engagement   n.约束,约会,婚约
    engine   n.发动机,火车头
    engineer   n.工程师
    engineering   n.工程
    england   n.英格兰,英国
    english   n.,adj.英国的,英语
    englishman   n.英国人
    engrave   v.刻上,牢记
    engraving   adj.雕刻
    engulf   v.吞没
    enhance   v.提高,增加
    enhancement   n.提高
    enjoy   v.欣赏,享有,享受
    enjoyable   adj.愉快的
    enjoyment   n.享受,乐趣
    enlarge   v.扩大,扩展,放大
    enlargement   n.扩大
    enlighten   v.启发,教导
    enlightening   adj.给人启发的
    enormous   adj.巨大的,庞大的
    enough   adj.,adv.足够()
    enquire   v.询问
    enquiry   v.询问
    enrich   v.使富裕
    enroll   v.登记,招收
    enrolment   n.招收
    en route   adv.在途中
    ensure   v.保证,担保,保护
    entail   v.遗留给,引起
    enter   v.进入,加入
    enterprise   n.事业,企业
    entertain   v.招待,使欢乐
    entertainment   n.招待,娱乐
    enthusiasm   v.热情,热心
    enthusiastic   adj.热情的,热心的
    entire   adj.完全的,全部的
    entirely   adv.完全地,彻底地
    entirety   n.全部
    entitle   v....权利,资格
    entrance   n.进入,入口
    entreat   v.恳求,请求
    entrust   v.委托
    entry   n.进入,入口,词条
    enumerate   v.列举
    envelop   v.包,围绕
    envelope   n.信封
    envious   adj.嫉妒的
    environment   n.环境
    environmental   adj.环境的
    envy   v.,n.嫉妒,羡慕
    epidemic   adj.传染的 n.传染病
    episode   n.事件,情节,插曲
    epoch   n.时代,纪元
    epoch-making   adj.划时代的
    equal   adj.相等的,胜任的
    equality   n.平等,相等
    equally   adv.相等地,相同地
    equation   n.等式,方程式
    equator   n.赤道
    equilibrium   n.平衡,均衡
    equip   v.装备,配备
    equipment   n.设备,器材,装置
    equivalence   n.相等,等值
    equivalent   adj.相等的,等值的
    era   n.时代,年代
    eradicate   v.根除
    eradication   n.根除
    erase   v.擦掉,抹去
    erasure   n.抹去
    erect   v.树立,建立,竖立
    erection   n.竖立,建立
    erosion   n.腐蚀,侵蚀
    err   v.犯错误
    errand   n.差事,差使
    error   n.错误,过失
    erupt   v.喷发,爆发
    eruption   n.喷发,爆发
    escalator   n.电动扶梯
    escape   v.逃跑,避免,被遗忘
    escort   v.护送 n.护卫队
    especial   adj.特别的,专门的
    especially   adv.特别地,专门地
    essay   n.散文,论文,小品文
    essayist   n.散文作家
    essence   n.本质,情髓,香精
    essential   adj.必需的,本质的
    essentially   adj.本质上,实质上
    establish   v.建立,设立,确立
    established   adj.已建立的
    establishment   n.建立,组织
    estate   n.房地产,财产
    esteem   v.,n.尊重
    estimate   v.,n.估算,预算
    estimation   n.估算,估计
    etc.   ()等等
    eternal   adj.永恒的,无休止的
    europe   n.欧洲
    european   n.,adj.欧洲人()
    evaluate   v.估价,评价
    evaluation   n.估价,评价
    evaporate   v.蒸发,脱水,消失
    evaporation   n.蒸发,升华
    eve   n.前夕,前夜
    even   adj.平坦的,均匀的
    evening   n.傍晚,晚上
    evenly   adv.平坦地,均匀地
    event   n.事件,场合,比赛
    eventful   adj.多事的
    eventually   adv.最终,终于
    ever   adv.曾经,总是,究竟
    everlasting   adj.永久的,持久的
    every   adj.每个,所有的
    everybody   pron.人人,每人
    everyday   adj.每日的,日常的
    everyone   pron.人人,每人
    everything   pron.事事,一切
    everywhere   adv.处处,到处
    evidence   n.证据,迹象
    evident   adj.明显的,明白的
    evidently   adv.明显地,显然
    evil   adj.坏的,邪恶的
    evolution   v.发展,渐进,进化
    evolve   v.发展,进化
    ex   prep....交货
    exact   adj.精确的,精密的
    exactly   adv.确切地,正是
    exaggerate   v.夸张,夸大
    exaggerated   adj.言过其辞的
    exaggeration   n.夸张
    exalt   v.抬高,发扬
    exalted   adj.高贵的,得意的
    exam   n.考试
    examination   n.检查,考试
    examine   v.检查,细看,考试
    example   n.例子,榜样
    exasperate   v.激怒,恶化
    exasperation   n.愤慨,加剧
    exceed   v.超过,过度
    exceedingly   adv.非常,极端地
    excel   v.胜过,优于
    excellence   n.优秀,卓越
    excellent   adj.优秀的,卓越的
    except   prep....外 v.除外
    exception   n.除外,例外
    exceptional   adj.异常的,例外的
    excess   n.过量,过剩
    excessive   adj.过分的,极度的
    exchange   v.交换,兑换 n.交易
    excite   v.刺激,使兴奋
    excited   adj.兴奋的
    excitement   n.兴奋,激动
    exciting   adj.令人激动的
    exclaim   v.呼喊,感叹
    exclamation   n.呼喊,感叹
    exclude   v.排除,拒绝考虑
    exclusion   n.排除
    exclusive   adj.独有的
    exclusively   adv.独占地
    exclusivity   n.独家经营权
    excursion   n.短途游览
    excuse   v.原谅 n.借口
    execute   v.执行,实施,处决
    execution   n.执行,处决
    executive   adj.执行的 n.执行者
    exemplify   v.举例说明
    exempt   v.免除
    exercise   n.锻炼,练习,运用
    exercise-book   n.练习簿
    exert   v.(),发挥
    exertion   n.尽力,竭力
    exhaust   v.竭尽,用完
    exhausted   adj.精疲力竭的
    exhaustion   n.用尽,详述
    exhaustive   adj.详尽的
    exhibit   v.展出,显示 n.展览品
    exhibition   n.展览会,表现
    exile   v.放逐 n.流亡者
    exist   v.存在,生存
    existence   n.存在,生存
    existing   adj.现存的,已有的
    exit   n.出口,安全门,离开
    exonerate   v.昭雪,解除
    exoneration   n.免罪,免除
    expand   v.扩张,膨胀,扩充
    expansion   n.扩张,扩大
    expect   v.盼望,期待,预料
    expectation   v.期待,前程
    expedience   n.便利,权宜之计
    expedient   adj.方便的,临时的
    expedite   v.加快,急送
    expedition   n.探险,考察队
    expel   v.驱逐,开除
    expend   v.花费,消耗
    expenditure   n.支出,费用
    expense   n.支出,开支
    expensive   adj.昂贵的,高价的
    experience   n.,v.经历,经验
    experienced   adj.有经验的
    experiment   n.,v.实验,试验
    experimental   adj.实验的
    experimentation   n.实验
    expert   n.专家,能手
    expertise   n.专家队伍(总称)
    expiration   n.期满
    expire   v.到期,断气
    expiry   n.逾期
    explain   v.解释,说明
    explanation   n.说明,解释
    explanatory   adj.说明的
    explicit   adj.清楚的,明晰的
    explicitly   adv.清晰地
    explode   v.爆炸,激增
    exploit   v.开发,利用,剥削
    exploitation   n.开发,利用
    exploration   n.勘探,考察
    explore   v.勘探,考察
    explorer   n.勘探者,探险家
    explosion   n.爆炸,爆发,激增
    explosive   adj.爆炸性的 n.炸药
    export   v.,n.输出,出口
    exportation   n.出口
    exporter   n.出口商
    expose   v.暴露,揭露,陈列
    exposition   n.展览会,说明
    exposure   n.揭露,曝光
    express   v.表达,快递 n.快车
    expression   n.表达,措辞,表情
    expressive   adj.有表现力的
    expressly   adj.明确表示的
    expressway   n.高速公路
    exquisite   adj.精致的
    extend   v.延伸,扩大,给予
    extension   n.延伸,电话分机
    extensive   adj.广泛的,密集的
    extensively   adv.广泛地
    extent   n.范围,限度,一大片
    exterior   adj.,n.外部()
    external   adj.外部的,对外的
    extinct   adj.绝灭的,熄灭的
    extinction   n.绝灭,熄灭
    extinguish   v.扑灭,熄灯
    extra   adj.额外的,外加的
    extract   v.取出,榨出,摘录
    extraction   n.出身,摘要
    extraordinary   n.特别的,格外的
    extravagance   n.奢侈,浪费
    extravagant   adj.奢侈的,浪费的
    extreme   adj.极度的,极端的
    extremely   adv.极其,非常
    eye   n.眼睛,孔眼,视力
    eyeball   n.眼球
    eyebrow   n.眉毛
    eyeglass   n.眼镜
    eyelid   n.眼睑
    eyesight   n.视力 
    fable   n.寓言
    fabric   n.织物,结构,组织
    fabricate   v.制作,捏造
    fabrication   n.制作,虚构
    face   n.脸,正面 v.面对
    facilitate   v.使便利,使容易
    facility   n.方便,设施,便利
    fact   n.事实,真相
    faction   n.宗派,派别
    factor   n.因素,因数,要素
    factory   n.工厂,制造厂
    faculty   n.本领,学系
    fade   v.褪色,枯萎
    fahrenheit   n.,adj.华氏()
    fail   v.失败,不及格,不能
    failing   adj.缺点
    failure   n.失败,疏忽,破产
    faint   adj.软弱的,模糊的
    fair   adj.公平的 n.交易会
    fairly   adj.公平地,相当
    fairy   n.妖精,仙女
    faith   n.信任,信念
    faithful   adj.忠诚的,可靠的
    faithfully   adv.忠诚地
    fake   adj.冒片的 n.冒牌货
    fall   v.落下,跌倒 n.瀑布
    false   adj.假的,假造的
    fame   n.名声,声誉
    familiarity   n.熟悉,相似
    familiar   adj.熟悉的,亲近的
    family   n.家庭,家属
    famine   n.饥荒,饥饿
    famous   adj.著名的
    fan   n.扇子,...迷 v.扇
    fanatic   adj.狂热的,入迷的
    fancy   n.幻想,爱好 v.想象
    fantastic   adj.奇异的,荒谬的
    far   adj.遥远的 adv.远
    fare   n.车费 v.饮食
    farewell   int.再见 adj.告别的
    farm   n.农场,农庄
    farmer   n.农夫,农场主
    farmhand   n.农工,农场工人
    farmhouse   n.农舍
    farming   n.农业,种植业
    farther   adv.较远,更进一步
    fascinate   v.吸引,入迷,蛊惑
    fascination   n.入迷
    fascism   n.法西斯
    fascist   n.法西斯分子
    fashion   n.方式,时髦,时装
    fashionable   adj.流行的,时髦的
    fast   adj.快的 adv.快
    fasten   v.捆紧,钉牢
    fat   n.脂肪 adj.肥胖的
    fatal   adj.致命的
    fate   n.命运,厄运,宿命
    father   n.父亲,神父,始祖
    father-in-law   n.岳父,公公
    fathom   v.领会,推测
    fatigue   n.,v.(使)疲劳
    fault   n.缺点,过失,断层
    faultless   adj.完美的
    faulty   adj.有缺点的
    favor   n.帮助,偏爱 v.宠爱
    favorable   adj.赞成的,有利的
    favorably   adv.有利地,顺利地
    favorite   n.adj.最喜爱的人或物
    fbi   國際刑警
    fear   n.,v.害怕,担忧
    fearful   adj.可怕的,吓人的
    fearless   adj.毫不畏惧的
    feasibility   n.可行性
    feasible   adj.可行的,做得到的
    feast   n.,v.宴会,宴请
    feat   n.功绩
    feather   n.羽毛
    feature   n.相貌,特征,特写
    february   n.二月
    federal   adj.联邦的
    federation   n.联邦
    fee   n.费用,酬金
    feeble   adj.虚弱的,无力的
    feed   v.喂养,吃东西
    feedback   n.反馈
    feel   v.感到,摸,意识到
    feeling   n.知觉,感觉,感情
    fell   v.砍到
    fellow   n.家伙,同事
    fellowship   n.交情,会员资格
    female   adj.女性的,雌的
    feminine   adj.女性的,妇女的
    fence   n.围栏,篱笆
    ferocious   adj.凶猛的,野蛮的
    ferrous   adj.铁的,含铁的
    ferry   n.渡船 v.渡运
    ferryboat   n.渡船
    fertile   adj.肥沃,多产的
    fertilizer   n.肥料,化肥
    fervent   adj.强烈的,热烈的
    festival   n.节日 adj.喜庆的
    fetch   v.去取来,去请来
    feud   n.纠纷,封地
    feudal   adj.封建的
    feudalism   n.封建主义
    fever   n.发烧,狂热
    few   adj.少的 n.少数
    fiber   n.纤维,质地
    fiction   n.小说,虚构
    fictional   adj.虚构的
    fiddle   n.提琴
    field   n.田野,战场,场
    fierce   adj.凶猛的,猛烈的
    fiery   adj.火的
    fifteen   num.十五
    fifth   num.第五,五分之一
    fifty   num.五十
    fig   n.无花果
    fight   v.打仗,战斗,作斗争
    fighter   n.战士
    figurative   adj.比喻的,修饰的
    figure   n.数字,图形,人物
    file   n.档案,纵列,锉刀
    filing   n.档案管理
    fill   v.装满,充满,补缺
    filling   n.充填物,馅
    film   n.胶片,电影,薄膜
    filter   n.滤器 v.过滤
    filth   n.污秽,污物
    filthy   adj.污秽的
    final   adj.最终的 n.决赛
    finalize   v.落实,定下来
    finally   adv.最终,终于
    finance   n.金融 v.资助
    financial   adj.金融的,财政的
    financier   n.金融家
    financing   n.金融业,财政学
    find   v.寻找,找到,发现
    finding   n.发现,发现物
    fine   adj.好的,精细的
    finger   n.手指
    finish   v.,n.结束,抛光
    finished   adj.制成的
    finite   adj.有限的,限定的
    fir   n.裘皮
    fire   n.火,火灾 v.开火
    fire-engine   n.消防车
    fireman   n.消防队员
    fireplace   n.壁炉
    firework   n.焰火
    firm   adj.坚固的 n.商号
    firmly   adv.坚定地,坚固地
    firmness   n.坚定,坚固
    first   adj.第一的 adv.首先
    first-rate   adj.第一流的
    fish   n.鱼 v.捞取,探听
    fisherman   n.渔夫
    fishery   n.渔业
    fission   n.裂变,分裂
    fist   n.拳头
    fit   adj.适合的,健康的
    fitness   n.适合,健康
    fitting   adj.适当的
    five   num.五
    fix   v.固定,确定,修理
    fixed   adj.固定的,已确定的
    fixture   n.固定物,固定装置
    flag   n.旗
    flake   n.片,片状物
    flame   n.火焰,热情
    flank   n.侧面,胁腹
    flannel   n.法兰绒
    flap   v.拍打 n.垂下物
    flare   v.,n.闪烁
    flash   n.,v.闪光,闪现
    flask   n.瓶,烧瓶
    flat   adj.平的,平淡的
    flatten   v.弄平,变平
    flatter   v.奉承,谄媚
    flavor   n.滋味,风趣
    flaw   n.裂缝,瑕疵,缺点
    flee   v.逃走,消散
    fleece   n.羊毛
    fleet   n.船队
    flesh   n.肌肉,骨肉,果肉
    fleshy   adj.肉的
    flexibility   n.柔韧,灵活性
    flexible   adj.柔韧的,灵活的
    flicker   v.闪烁
    flight   n.飞,航班,逃走
    fling   v.抛,掷
    float   v.浮,漂 n.彩车
    flock   n.群 v.群集
    flood   n.洪水,大量
    floor   n.地板,()层
    flour   n.面粉
    flourish   v.茂盛,兴旺
    flow   v.流动 n.流动,流量
    flower   n.花,盛期
    flu   n.流感
    fluctuate   v.波动,起伏
    fluctuation   n.波动
    fluency   n.流利,流畅
    fluent   adj.流利的
    fluid   n.液体 adj.流动的
    flush   v.()发红 n.红晕
    flute   n.长笛,笛子
    flutter   v.飘动,振翼
    flux   n.流动,变迁
    fly   v.飞,驾机 n.苍蝇
    foam   n.泡沫 v.起泡
    fob   ()离岸价
    focus   n.焦点,中心 v.集中
    fodder   n.饲料
    foe   n.敌人,宿敌
    fog   n.雾,翳
    foggy   adj.有雾的,雾蒙蒙的
    fold   v.折叠 n.折痕
    foliage   n.叶子(总称)
    folk   n.人们,乡亲,亲属
    follow   v.跟随,听懂,遵循
    follower   n.追随者,信徒
    following   adj.下列的,其次的
    follow-up   n.,adj.后续()
    fond   adj.喜爱..的,慈爱的
    food   n.食物,食粮
    foodstuff   n.食品
    fool   n.蠢人,傻瓜 v.愚弄
    foolish   n.愚蠢的,笨的
    foot   n.脚,英尺,最下部
    football   n.足球
    footing   n.立足点,立场
    footstep   n.足迹,脚步声
    for   prep.给,作...用的
    forbid   v.禁止,不许
    forbidden   adj.禁止的
    force   n.力,力量 v.强迫
    fore   adj.前面的adv.在前面
    forecast   n.,v.预测,预报
    forefather   n.祖先,先辈
    forefinger   n.食指
    foregoing   adj.先行的,上述的
    forehead   n.前额
    foreign   adj.外国的,对外的
    foreigner   n.外国人,异乡人
    foreman   n.领班
    foremost   adj.最初的,第一流的
    foresee   v.预见,预知
    forest   n.森林
    forestry   n.林业
    foretell   v.预告,预言
    forever   adv.永远,总是
    forge   v.打铁,锻造,伪造
    forgery   n.锻炉,锻造厂
    forget   v.忘记,疏忽,没想到
    forgive   v.饶恕,原谅,豁免
    fork   n.餐叉,岔口
    form   n.形状,类型,表格
    formal   adj.形式上的,正式的
    formality   n.礼节,正式
    format   n.格式,样式
    formation   n.形成,构成
    former   adj.以前的,前者
    formerly   adv.从前,以前
    formidable   adj.可怕的,难对付的
    formula   n.公式
    formulate   v.系统阐述
    formulation   n.确切表述
    forsake   v.遗弃,抛弃
    fort   n.堡垒,要塞
    forth   adv.向前,向外
    forthcoming   adj.即将到来的
    fortitude   n.坚毅
    fortnight   n.两星期
    fortress   n.堡垒,城堡
    fortuity   n.偶然事件
    fortunate   adj.幸运的,侥幸的
    fortunately   adv.幸运地,幸而
    fortune   n.运气,财富
    forty   num.四十
    forum   n.讨论会,座谈会
    forward   adj.向前的 adv.向前
    fossil   n.化石,守旧者
    foster   v.养育,抚养
    foul   adj.肮脏的,邪恶的
    found   v.创办,使有根据
    foundation   n.建立,基金,基础
    founder   n.创办人,奠基人
    fountain   n.泉,源泉,喷泉
    four   num.四
    fourteen   num.十四
    fourth   num.第四,四分之一
    fowl   n.家禽,鸡,禽肉
    fox   n.狐狸,狡猾的人
    fraction   n.片断,分数
    fractional   adj.零碎的,不足的
    fracture   n.断裂 v.折断
    fragile   adj.易碎的,脆的
    fragment   n.碎片,片断
    fragrance   n.芬芳,香气
    fragrant   adj.香的,芬芳的
    frail   adj.脆弱的,虚弱的
    frame   n.框架,骨骼 v.构造
    framework   n.构架,机构
    france   n.法国
    franchise   n.特许权
    frank   adj.坦率的,真诚的
    frankly   adv.坦率地
    free   adj.自由的,空闲的
    freedom   n.自由,免除
    freely   adv.自由地,随意地
    freeze   v.结冰,楞住,冻结
    freezer   n.冷冻箱
    freight   n.货运,货物,运费
    french   adj.法国的 n.法语
    frenchman   n.法国人
    frequency   n.频繁,频率
    frequent   adj.频繁的,经常的
    frequently   adv.时常,往往
    fresh   adj.新鲜的,崭新的
    freshen   v.使新鲜,使振作
    freshman   n.新人,新生
    fret   v.使烦恼 n.烦燥
    friction   n.摩擦,摩擦力
    friday   n.星期五
    friend   n.朋友
    friendly   adj.友好的,和气的
    friendship   n.友谊,友好
    fright   n.恐怖,惊吓
    frighten   v.惊吓,吓唬
    frightening   adj.令人害怕的
    frightful   adj.可怕的
    fringe   n.边缘,花边,穗子
    frock   n.女上衣,童上装
    frog   n.蛙
    from   prep.自,从...来
    front   n.正面,前线 v.面对
    frontier   n.边界,国境,新领域
    frost   n.霜,霜冻
    frosty   adj.霜的
    frown   v.皱眉头,厌恶
    frugal   adj.节俭的
    fruit   n.果子,水果,成果
    fruitful   adj.果实累累的
    frustrate   v.阻挠,使灰心
    frustration   n.挫折,灰心
    fry   v.油煎,炸
    frying-pan   n.煎锅
    fuck   渾蛋,辱駡
    fuel   n.燃料
    fulfil   v.完成,满足要求
    fulfillment   n.完成,成就
    full   adj.满的,完全的
    fully   adv.完全,彻底
    fumble   v.摸索
    fun   n.娱乐,玩笑,乐趣
    function   n.作用,集会,函数
    functional   adj.功能的
    fund   n.基金,资金,蕴藏
    fundamental   adj.基本的,根本的
    funeral   n.葬礼
    funny   adj.有趣的,好笑的
    fur   n.毛皮,裘衣
    furious   adj.狂怒的,狂暴的
    furnace   n.熔炉
    furnish   v.供应,装备,摆家具
    furniture   n.家具(总称)
    furrow   n.犁沟
    further   adv.更远,进一步
    furthermore   adv.而且
    fury   n.狂暴,狂怒
    fuse   n.保险丝,导火线
    fuss   n.忙乱,大惊小怪的
    fussy   adj.爱大惊小怪的
    future   n.将来,前途
    futures   n.期货
    gain   v.获得,赢得 n.收益
    gale   n.大风,定期交付
    gallery   n.美术馆
    gallon   n.加仑
    gallop   v.奔驰,飞跑
    gamble   v.,n.赌博,投机
    gambler   n.赌徒
    game   n.游戏,比赛,猎物
    gang   n.一群,一帮
    gangster   n.匪徒,歹徒
    gaol   n.监狱
    gap   n.空隙,隔阂,山口
    garage   n.车库,汽车修理站
    garbage   n.垃圾
    garden   n.花园,菜园
    gardener   n.园丁
    gardening   n.园艺
    garlic   n.大蒜
    garment   n.衣服,服装
    garrison   n.要塞,警备队
    gas   n.气体,煤气,汽油
    gasoline   n.汽油
    gasp   v.,n.喘息,喘气
    gate   n.大门,门票收入
    gather   v.聚集,收集,采集
    gathering   n.集会,聚集
    gauge   n.规格,计量表
    gay   adj.快活的,快乐的
    gaze   v.,n.凝视,注视
    gear   n.齿轮,用品
    gem   n.宝石
    general   adj.一般的,总的
    generalization   n.概括
    generalize   v.总结,归纳
    generally   adv.通常,大概
    generate   v.产生,发生,生殖
    generation   n.世代,一代人
    generator   n.发电机
    generosity   n.慷慨,大方
    generous   adj.慷慨的,丰盛的
    genius   n.天份,才华,天才
    gentle   adj.温柔的,温和的
    gentleman   n.绅士,先生,君子
    gently   adv.轻轻地,温柔地
    genuine   adj.真正的,道地的
    geography   n.地理学,地形
    geology   n.地质学
    geometry   n.几何学
    germ   n.萌芽,起源,细菌
    german   adj.德国的 n.德语
    germany   n.德国
    gesture   n.姿势,手势,姿态
    get   v.获得,记住,到达
    get-together   n.集会,聚会
    ghost   n.鬼魂,幽灵
    giant   n.巨人 adj.巨大的
    gift   n.礼品,天赋
    gigantic   adj.巨大的
    giggle   v.咯咯地笑
    ginger   n.姜
    girl   n.少女,姑娘
    giver   v.给予,付出 n.让步
    glad   adj.快乐的,高兴的
    glance   v.看一眼 n.一瞥
    glare   n.,v.闪耀,瞪眼
    glass   n.玻璃,镜子
    glassware   n.玻璃制品
    gleam   n.微光,闪光
    glide   v.,n.滑行,溜
    glimpse   v.,n.瞥见
    glisten   v.闪光
    glitter   v.闪闪发光
    global   adj.全世界的,总的
    globalization   n.全球化
    globalize   v.使...全球化
    globe   n.地球,球体,地球仪
    gloom   n.黑暗,忧郁
    gloomy   adj.阴沉的,忧郁的
    glorious   adj.光荣的,辉煌的
    glorify   v.颂扬,赞美
    glory   n.光荣,壮丽,荣誉
    glossary   n.词汇表
    glove   n.手套
    glow   v.发光,发红
    glue   n.胶水 n.粘贴
    glut   n.供过于求v.狼吞虎咽
    gnaw   v.啃,咬
    gnp   n.()国民总收入
    go   v.去,进行,打算
    goal   n.目标,目的,球门
    goat   n.山羊
    god   n.神,上帝
    goddess   n.女神
    gold   n.黄金,金币,金色
    golden   adj.黄色的,金黄色的
    golf   n.高尔夫球
    good   adj.好的,善良的
    good-bye   int.再见
    good-looking   adj.好看的
    goodness   n.优良,天哪
    goodself   n.你方
    goods   n.货物,商品
    goodwill   n.商誉
    goose   n.鹅
    gorge   n.咽喉,峡谷,山口
    gorgeous   adj.绚丽的,了不起的
    gorilla   n.大猩猩
    gossip   n.闲谈,聊天
    govern   v.统制,支配,决定
    government   n.编制,政体,政府
    governess   n.女家庭教师
    governor   n.州长,总督
    gown   n.长袍,法衣
    grab   v.抓住,攫取
    grace   n.优美,文雅,恩惠
    graceful   adj.优美的,文雅的
    gracious   adj.亲切的,客气的
    grade   n.等级,年级
    gradual   adj.逐渐的,逐步的
    gradually   adv.逐渐地,逐步地
    graduate   v.毕业生 v.毕业
    graduation   n.毕业
    grain   n.谷物,颗粒,一点点
    gram   n.克
    grammar   n.语法
    grammatical   adj.语法的
    gramophone   n.留声机
    grand   adj.雄伟的,重大的
    grandchild   n.()孙儿、女
    granddaughter   n.孙女,外孙女
    grandfather   n.祖父,外祖父
    grandmother   n.祖母,外祖母
    grandparent   n.()祖父()
    grandson   n.孙子,外孙
    granite   n.花岗石
    grant   v.答应,授予,承认
    grape   n.葡萄
    graph   n.图象,图解
    grasp   v.,n.抓住,领悟
    grass   n.草,禾本植物
    grasshopper   n.蚱蜢
    grateful   adj.感激的,致谢的
    gratify   v.使满足,使高兴
    gratifying   adj.可喜的
    gratis   adj.免费的
    gratitude   n.感激,感谢
    grave   adj.严肃的,庄重的
    gravel   n.砂砾,石子
    gravity   n.引力,严肃
    graze   v.吃草,擦碰
    grease   v.润滑油脂
    great   adj.大的,伟大的
    greatly   adj.大大地,非常地
    greatness   n.伟大,大
    greece   n.希腊
    greed   n.贪婪,贪心
    greedy   adj.贪婪的
    greek   n.,adj.希腊人()
    green   adj.绿的,没有经验的
    greengrocer   n.蔬菜商
    greenhouse   n.温室
    greet   v.打招呼
    greeting   n.问候,致意
    grey   adj.灰色的,阴郁的
    grief   n.悲哀,悲伤
    grieve   v.使悲伤,伤心
    grim   adj.冷酷的,不祥的
    grin   v.露齿而笑
    grind   v.碾碎,磨快,折磨
    grip   v.,n.紧握,吸引
    groan   v,,n.呻吟
    grocer   n.杂货铺
    grocery   n.杂货店
    groove   n.槽,沟,常规
    grope   v.摸索,探索
    gross   adj.总的,粗糙的
    ground   n.地面,场,根据
    groundless   adj.无根据的
    group   n.群,组,团体
    grove   n.林子,树丛
    grow   v.增长,成长,种植
    growl   v.,n.咆哮,嗥叫
    grown   adj.已长成的
    grown-up   n.成人 adj.成人的
    growth   n.增长,发展,生长
    grudge   v.嫉妒,吝啬
    grumble   v.抱怨,咕哝,发牢骚
    grunt   n.,v.()呼噜声
    guarantee   n.,v.保证,担保
    guard   v.警卫,提防 v.哨兵
    guardian   n.保护人
    guess   v.,n.猜想,推测
    guest   n.客人,宾客,旅客
    guesthouse   n.宾馆
    guidance   n.向导,指导
    guide   v.向导,指引 n.导游
    guilt   n.犯罪,过失
    guilty   adj.有罪的,内疚的
    guitar   n.吉它,六弦琴
    gulf   n.海湾,鸿沟
    gulp   v.吞下
    gum   n.树胶,口香糖,牙龈
    gun   n.枪,炮
    gunpowder   n.火药
    gust   n.一阵(大风)
    gutter   n.街沟
    guy   n.家伙
    gymnasium   n.体育馆,健身房
    gymnastics   n.体操
    gymnast   n.体操运动员
    habit   n.习惯
    habitual   adj.习惯的,惯常的
    haggard   adj.消瘦的,憔悴的
    haggle   n.争论,讨价还价
    hail   v.欢呼 n.冰雹
    hair   n.头发,毛发
    haircut   n.理发
    hairdress   n.美发
    hairpin   n.发卡
    hairy   adj.毛发的,多毛的
    half   n.一半 adv.一半
    halfway   adv.半途
    hall   n.大厅,会堂
    hallmark   n.标志
    halt   v.,n.停住
    halve   v.对分,减半
    ham   n.火腿
    hamburger   n.汉堡包
    hammer   n.锤子 v.锤击
    hamper   v.妨碍
    hand   n.手,人手,指针
    handbag   n.手袋,手提包
    handbook   n.手册
    handful   adj.一把,少量
    handicap   n.障碍 v.妨碍
    handicapped   adj.有残疾的
    handkerchief   n.手帕,手绢
    handle   v.处理,对待 n.把
    handling   n.处理,管理
    handsome   adj.漂亮的,得体
    handout   n.分发物(印刷品等)
    handwriting   n.手写,书法,笔迹
    handy   adj.方便的,近便的
    hang   v.挂,垂,绞死
    hanger   n.衣架
    haphazard   adj.偶然的
    happen   v.发生,碰巧,出事
    happening   n.事件
    happily   adv.幸运地
    happiness   n.幸福
    happy   adj.高兴的,幸运的
    harbor   n.港口,停泊处
    hard   adj.硬的 adv.努力
    harden   v.硬化,变硬
    hardly   adv.刚刚,几乎不
    hardness   n.坚硬,硬度
    hardship   n.困苦,艰难
    hardware   n.硬件
    hard-working   adj.勤劳的
    hardy   adj.耐劳的,耐寒的
    hare   n.野兔
    harm   n.,v.损害,伤害
    harmful   adj.有害的
    harmless   adj.无害的,无恶意的
    harmonious   adj.和睦的,和谐的
    harmony   n.融洽,和谐
    harness   v.支配,治理
    harsh   adj.刺耳的,严厉的
    harvest   v.,n.收获
    haste   n.急忙,急速
    hasten   v.赶紧,加快
    hasty   adj.急促的,草率的
    hat   n.帽子
    hatch   v.孵化,策划
    hate   v.恨,憎恶,不愿意
    hateful   adj.可恨的,可憎的
    hatred   n.憎恶,敌意
    haughty   adj.傲慢的
    haul   v.拉,拖 n.获得量
    haunt   v.萦绕,作崇
    have   v.有,不得不,拿
    hawk   n.鹰隼
    hay   n.干草
    hazard   n.危险
    he   pron.他
    head   n.头,领导 v.率领
    headache   n.头疼,头疼的事
    heading   n.标题
    headline   n.通栏标题
    headlong   ad.头向前地,卤莽地
    headmaster   n.(中、小学)校长
    headquarters   n.司令部,总部
    heal   v.治愈,医治
    health   n.健康(状况)
    healthy   adj.健康的
    heap   n.一堆,许多 v.堆积
    hear   v.听见,听取,听说
    hearing   n.听力,审讯
    heart   n.心,心肠,中心
    heartfelt   adj.衷心的
    hearth   n.壁炉,炉边
    heartily   adv.精神饱满的
    hearty   adj.衷心的,热诚的
    heat   n.热,热烈 v.加热
    heated   n.激烈的,热烈的
    heating   n.取暖,供热
    heave   v.起伏,举起,叹气
    heaven   n.天空,天堂
    heavily   adv.重,沉重的
    heavy   adj.星的,繁重的
    hedge   n.树篱,套期保值
    hedgehog   n.刺猬
    heed   v.,n.注意,留心
    heel   n.后跟
    height   n.高度,顶点
    heighten   v.加高,增加
    heir   n.继承人
    heiress   n.女继承人
    helicopter   n.直升飞机
    hell   n.地狱,苦境
    hello   int.喂,你好
    helmet   n.头盔
    help   v.,n.帮助,有助于
    helpful   adj.有用的
    helpless   adj.无用的,无效的
    hemisphere   n.半球,领域
    hen   n.母鸡
    hence   adv.因此,由此
    henceforth   adv.今后
    her   pron.她的,她(宾格)
    herald   n.先兆,先驱
    herb   n.药草
    herbal   adj.草药的
    herd   v.放牧 n.(牲畜)群
    here   adv.这里,在这里
    hereafter   adv.此后
    hereby   adv.以此
    herein   adv.在此
    hereinafter   adv.以下
    hereof   adv.在本文件中
    hereto   adv.对此
    herewith   adv.与此一道
    hero   n.英雄,男主角
    heroic   adj.英雄的,英勇的
    heroine   n.女英雄,女主角
    herself   pron.她自己
    hesitant   adj.犹豫的
    hesitate   v.犹豫,不想
    hesitation   n.犹豫,踌躇
    hey   int.嗨
    hi   int.嗨,你好
    hide   v.躲藏,隐瞒,掩盖
    hideous   adj.骇人听闻的
    high   adj.高的,高度的
    highland   n.高地
    highly   adv.十分,赞许地
    highway   n.公路
    hijack   v.拦路抢劫
    hijacker   n.栏路抢劫者
    hike   n.,v.徒步郊游
    hill   n.小山,丘陵
    hillside   n.山坡,山腰
    him   pron.(宾格)
    himself   pron.他自己
    hind   adj.后面的,后部的
    hinder   v.妨碍,阻止
    hinterland   n.内地
    hindrance   n.障碍()
    hinge   n.合页,绞链
    hint   n.暗示,迹象 v.暗示
    hip   n.臀部
    hire   v.租,雇佣
    his   pron.他的
    hiss   v.,n.()嘶嘶声
    historian   n.历史学家
    historic   adj.历史性的
    historical   adj.历史的
    history   n.历史
    hit   v.打,碰,打击
    hitchhike   v.搭车旅行
    hitherto   adv.迄今,到那时
    hoarse   adj.嘶哑的,沙哑的
    hobby   n.嗜好,业余爱好
    hoe   n.锄头 v.锄
    hoist   v.升起,扯起
    hold   v.握住,容纳 n.控制
    holder   n.持有人,支架
    holding   n.支持,控股
    hold-up   n.停顿,耽误
    hole   n.洞,孔穴
    holiday   n.节日,假日
    hollow   adj.空心的,凹陷的
    holy   adj.神圣的,圣洁的
    home   n.家,故乡 adv.回家
    homeless   adj.无家可归的
    homely   adj.家常的,简便的
    homesick   n.思乡的
    homework   n.家庭作业
    homogenous   adj.同质的,同类的
    honest   adj.诚实的,正直的
    honesty   n.诚实,正直
    honey   n.蜂蜜
    honeymoon   n.蜜月
    honor   n.荣誉,名誉 v.尊敬
    honorable   adj.可尊敬的,体面的
    hook   n.钩 v.钩住
    hop   v.跳跃
    hope   v.,n.希望,愿望
    hopeful   adj.有希望的
    hopefully   adv.可以指望
    hopeless   adj.无望的,绝望的
    horizon   n.地平线,视野
    horizontal   adj.水平的,横的
    horn   n.角,触须,号角
    horrible   adj.可怕的,糟透的
    horrify   v.使恐惧
    horror   n.恐惧,恐怖
    horse   n.马
    horsepower   n.马力
    hose   n.软水管,长统袜
    hospital   n.医院
    hospitable   adj.好客的
    hospitality   n.好客,款待
    host   n.一大群,男主人
    hostage   n.人质
    hostel   n.廉价旅馆
    hostess   n.女主人,女主持人
    hostile   adj.怀敌意的
    hot   adj.热的,辣的
    hotdog   n.热狗(面包)
    hotel   n.旅馆
    hotelling   n.旅馆业
    hour   n.小时,点钟
    hound   n.猎狗 v.追逐
    house   n.房子,剧场,家
    household   n.户 adj.家庭的
    housekeeper   n.看门人,保姆
    housewife   n.家庭主妇
    housework   n.家务
    hover   v.翱翔,盘旋,徘徊
    how   adv.如何,多么,怎样
    however   adv.可是,然而
    howl   v.,n.嚎叫,嚎哭
    hug   v.,n.紧抱
    huge   adj.庞大的,巨大的
    hull   n.豆荚,外壳,船壳
    hum   v.哼,嗡嗡叫
    human   adj.人的,人类的
    humane   adj.人慈的
    humanism   n.人道主义
    humanitarian   n.慈善家
    humanity   n.人类,人性
    humble   adj.谦卑的,卑贱的
    humid   adj.湿的,潮湿的
    humidity   n.湿度,湿气
    humiliate   v.使受辱
    humiliation   n.羞辱,耻辱
    humor   n.幽默(),心情
    humorous   adj.幽默的,诙谐的
    hundred   num.一百
    hundredth   num.第一面,百分之一
    hunger   n.饥饿,渴望
    hungry   adj.饥饿的,渴望的
    hunt   v.打猎,搜索,寻找
    hunter   n.猎人,搜索者
    hurl   v.猛掷,猛投
    hurrah   int.好哇 n.喝彩声
    hurry   v.赶紧,急忙,急运
    hurt   v.使受伤,使痛,伤害
    husband   n.丈夫
    hush   int.嘘 n.沉默
    hustle   v.奔忙
    hut   n.小屋
    hydraulic   adj.水力的,液压的
    hydroelectric   adj.水电的
    hydrogen   n.氢,氢气
    hygiene   n.卫生
    hymn   n.赞美诗,赞歌
    hypocrisy   n.伪善
    hypothesis   n.假设,前提
    hypothetical   adj.假设的
    hysteria   n.歇斯底里,癔病
    hysteric   adj.亢奋的
    i   .我
    ice   n.冰,冰块
    ice-cream   n.冰淇淋
    ice-bound   adj.冰封的
    iceland   n.冰岛
    icy   adj.冰冷的,结了冰的
    idea   n.思想,主意,打算
    ideal   adj.理想的 n.理想
    idealism   n.理想主义
    idealize   v.使理想化
    identical   adj.同一的,相同的
    identification   n.识别,身分
    identify   v.认出,认为...一致
    identity   n.认同,同一性
    idiom   n.习语,成语
    idiomatic   adj.习语的,惯用的
    idiot   n.傻子,白痴
    idle   adj.空闲的,懒的
    idleness   n.闲散,无所事事
    idol   n.偶像,被崇拜的人
    i.e.   ()即,也就是
    if   conj.如果,虽然,是否
    ignite   v.点燃
    ignorance   n.无知,不知道
    ignorant   adj.不知道的,无知的
    ignore   v.忽视,不理睬
    ill   adj.患病的,坏的
    illegal   adj.不合法的,非法的
    illegible   adj.字迹不清的
    illiteracy   n.文盲
    illiterate   adj.文盲的 n.文盲
    illness   n.疾病,生病
    illuminate   v.照亮,启发
    illusion   n.幻想,幻觉
    illusive   adj.幻觉的
    illustrate   v.图解,用图说明
    illustration   n.阐明,实例
    image   n.图像,影像,形象
    imaginary   adj.想象的,虚构的
    imagination   n.想象力,想象
    imagine   v.想象,猜想
    imitate   v.模仿,仿造,模拟
    imitation   n.模仿,仿制品
    immaterial   adj.无形的,不重要的
    immature   adj.不成熟的
    immediate   adj.立即的,最近的
    immediately   adv.立即,马上
    immense   adj.巨大的,极大的
    immerse   v.浸泡,埋头于
    immigrant   n.移民
    immigrate   v.移入
    immigration   n.移居入境
    imminent   adj.迫切的,危急的
    immoral   adj.不道德的
    immortal   adj.不朽的
    impact   n.冲击,影响
    impart   v.给予,告诉
    impartial   adj.公证的
    impatience   n.不耐烦
    impatient   adj.急切的,不耐烦的
    imperative   adj.绝对必要的
    imperfect   adj.不完善的
    imperialism   n.帝国主义
    imperialist   n.帝国主义者
    implement   v.实行 n.工具
    implementation   n.实行,执行
    implication   n.暗示,含义
    implied   adj.暗含的,暗示的
    implore   v.恳求,哀求
    imply   v.暗示,意味
    import   v.进口,引进 n.进口货
    importance   n.重要性,意义
    important   adj.重要的,重大的
    importation   n.进口
    importer   n.进口商
    impose   v.(),强加
    imposition   n.强迫接受
    impossibility   n.不可能性
    impossible   adj.不可能的,不妥的
    impost   n.进口税,关税
    impractical   v.不可行的
    impress   v.印,铭刻,产生印象
    impression   n.印象,影响,印迹
    impressive   adj.给人深刻印象的
    imprison   v.关押,监禁
    imprisonment   n.监禁,徒刑
    improper   adj.不适当的
    improve   v.改善,提高
    improvement   n.改善,好转
    impulse   n.冲击,冲动,脉搏
    impurity   n.不纯,杂质
    in   prep....内,穿戴
    inability   n.无能
    inaccessible   adj.很难得到的
    inaccurate   adj.不准确的,不确切
    inadequate   adj.不充足的,不足以
    inasmuch   adv.因为,由于
    inaugural   adj.开幕的
    inaugurate   v.举行开幕、就职典礼
    inauguration   n.开幕、就职典礼
    incapable   adj.不能的,不会的
    incense   v.使发怒 n.香
    incentive   n.刺激的,鼓励的
    inch   n.英寸
    incident   n.事件,事变,插曲
    incidentally   adv.偶然地,另外
    inclination   n.倾斜,倾向
    incline   v.低头,喜欢,倾斜
    inclined   adj.倾向于...的
    include   v.包括
    inclusion   n.包括在内
    inclusive   adj.包括在内的
    income   n.收入,所得
    incompatibility   n.不兼容
    incompatible   adj.不相容的
    incomplete   adj.不完全的,没完成
    inconsistency   n.不一致
    inconsistent   adj.不一致的
    inconvenience   n.不便,不利
    inconvenient   adj.不方便的
    incorporate   v.合并,体现
    incorporated   adj.有限的
    incorrect   adj.不正确的
    incoterms   n.()国际贸易术语
    increase   v.,n.增加,增长
    increasing   adj.不断增长的
    increasingly   adv.日益,越来越
    incredible   adj.不可信的,惊人的
    incredulous   adj.表示怀疑的
    increment   n.增值
    incur   v.招致,承受
    indebted   adj.感激的,感恩的
    indebtedness   n.感激
    indeed   adv.的确,实际上
    indefinite   adj.不明确的,不确定
    indefinitely   adv.不明确地
    indemnify   v.赔偿,保护
    indent   v.(书写)缩行
    independence   n.独立,自主
    independent   adj.独立的
    independently   adv.独立地
    index   n.索引,标志,指数
    india   n.印度
    indian   adj.,n.印度人()
    indicate   v.指明,表示
    indication   n.表示,迹象
    indicative   adj.表示...的
    indifference   n.冷淡,不关心
    indifferent   adj.冷淡的,不在乎的
    indigestion   n.消化不良
    indignant   adj.气愤的,愤慨的
    indignation   n.愤慨,气愤
    indirect   adj.间接的,侧面的
    indirectly   adj.间接地
    indispensable   adj.必不可少的
    individual   adj.个人的,各自的
    indoor   adj.室内的
    indoors   adv.在户内,在屋里
    induce   v.诱使,引起,归纳
    inducement   n.诱导,动机
    induction   n.感应,归纳
    indulge   v.放纵,放任,纵容
    industrial   adj.工业的
    industrialize   v.使工业化
    industrialization   n.工业化
    industrialized   adj.工业化的
    industrious   adj.勤劳的,勤奋的
    industry   n.工业,产业,勤奋
    ineffective   adj.效率低的
    ineffectiveness   n.低效率
    inefficiency   n.无效力
    inefficient   adj.无效的
    inertia   n.惯性,惰性,不活动
    inevitable   adj.必然的,不可避免
    inevitably   adv.必然地
    inexpensive   adj.便宜的
    infant   n.婴儿,幼儿
    infantry   n.步兵
    infect   v.感染,传染
    infection   n.感染
    infectious   adj.传染的
    infer   v.推断,推论
    inference   n.推断,推论的结果
    inferior   adj.低级的 n.下级
    inferiority   n.劣势
    infinite   adj.无限大的,无穷的
    infinitely   adv.无限地,无穷地
    infinitive   adj.不定式的
    infinity   n. 无限,无数,极多
    inflammable   adj.不易燃的
    inflation   n.充气,通货膨胀
    inflict   v.打击
    influence   n.影响,势力(范围)
    influential   adj.有影响的
    influenza   n.流行性感冒
    inform   v.通知,告诉,告密
    informal   adj.非正式的
    information   n.通知,情报,资料
    informative   adj.提供资料的
    infrequent   adj.不经常的
    infringe   v.侵权
    infringement   n.侵权
    ingenious   adj.灵巧的,精巧的
    ingenious   adj.独创的,机智的
    ingenuity   n.灵巧,机灵,巧妙
    inhabit   v.居住,栖身
    inhabitant   n.居民
    inherent   adj.生来俱有的
    inherit   v.继承,遗传
    initial   adj.最初的
    initially   adv.最初
    initiate   v.发动,开始,使入门
    initiative   n.积极性,首创精神
    inject   v.注射
    injection   n.注射
    injure   v.伤害,损害
    injury   n.伤害,损害
    injustice   n.不公正
    ink   n.墨水,油墨
    inland   n.内地的,内陆的
    inlet   n.水湾,入口
    inn   n.客栈
    inner   adj.里面的,内心的
    innocence   n.清白,天真
    innocent   adj.无罪的
    innovate   v.革新,变革,创始
    innovation   n.革新,创新
    innumerable   adj.无数的
    inorganic   adj.无机的
    input   n.输入,投入
    inquire   v.询问
    inquiry   n.询问,查询,调查
    insane   adj.疯狂的
    insect   n.昆虫
    insert   v.插入,嵌入
    insertion   n.插入
    inside   n.里面 adj.里面的
    insider   n.知情者
    insight   n.洞察力
    insignificant   adj.无足轻重的
    insist   v.坚持,坚决要求
    insistent   adj.紧迫的,坚持的
    insofar   adv....范围内
    insolvent   adj.无偿付能力的
    inspect   v.检查,视察,审查
    inspection   n.检查,视察
    inspector   n.检查员,视察者
    inspiration   n.灵感
    inspire   v.鼓舞,激励,受启发
    instable   adj.不稳定的
    install   v.安装,安置
    installation   n.安装,装置
    installment   n.分期付款
    instance   n.例子
    instant   adj.立即的,速溶的
    instantly   adv.立即,立刻
    instead   adv.代替,而是
    instinct   n.本能,直觉,天性
    instinctive   adj.本能的,天性的
    institute   n.(专科)学院 v.建立
    institution   n.机构,制度
    instruct   v.指导,指示,告知
    instruction   n.指导,指示
    instructive   adj.指示的,教育的
    instructor   n.教员,教练
    instrument   n.仪器,乐器,手段
    instrumental   adj.仪器的,工具的
    insufficient   adj.不充足的
    insulate   v.绝缘,隔离,使孤立
    insulation   n.隔离,绝缘
    insult   v.,adj.侮辱
    insurance   n.保险(),保障
    insure   v.保险,确保
    intangible   adj.无形的
    integral   adj.组成的,整体的
    integrate   v.整合,结合
    integration   n.结合,整体
    integrity   n.完整性,诚实
    intellect   n.理智,才智
    intellectual   n.知识分子
    intelligence   n.智慧,情报
    intelligent   adj.聪明的,明智的
    intend   v.打算
    intense   adj.强烈的,极度的
    intensity   n.强烈,强度
    intensive   adj.强化的,密集的
    intent   n.意图 adj.专心的
    intention   n.意图,目的
    intentional   adj.有意的,故意的
    interact   v.相互作用,相互影响
    interaction   n.相互作用
    intercourse   n.交流,往来
    interest   n.兴趣,利息,利益
    interested   adj.感兴趣的
    interesting   adj.有趣的
    interface   n.交界,接口
    interfere   v.妨碍,干涉
    interference   n.干涉,干扰
    interior   n.内部,内地,内政
    intermediate   adj.中间的
    internal   adj.内部的,国内的
    international   adj.国际的
    internationalization   n.国际化
    internationalize   v.使国际化
    interpret   v.解释,当...译员
    interpretation   n.解释,口译
    interpreter   n.译员
    interrupt   v.打断,中断
    interruption   n.中断,打扰
    interval   n.间隔,中间休息
    intervene   v.介入,调解
    interview   n.,v.会见,面谈
    intimate   adj.亲密的,熟悉的
    intimation   n.亲密,熟悉
    into   prep....里面,..成
    intonation   n.语调,声调
    introduce   v.介绍,引进,采用
    introduction   n.介绍,引言
    introductory   adj.介绍的,入门的
    intrude   v.侵入,强加于
    inundate   adj.使充满
    invade   v.入侵,侵犯
    invader   n.入侵者
    invalid   adj.伤残的,无效的
    invalidate   v.使无效
    invaluable   adj.非常宝贵的
    invariably   adv.不变地,总是
    invasion   n.侵略,侵袭
    invent   v.发明,创造,编造
    invention   n.发明,创造
    inventor   n.发明者
    inverse   adj.相反的,倒转的
    inversely   adv.相反地
    invest   v.投资,花费
    investigate   v.调查,研究
    investigation   n.调查
    investment   n.投资()
    invisible   adj.看不见的
    invitation   n.邀请()
    invite   v.邀请,招致,征求
    invoice   n.发票,装货清单
    involve   v.使卷入,忙于
    involved   adj.涉及的,复杂的
    involvement   n.卷入,涉足
    inward   adj.里面的,内心的
    inwards   adv.向内的
    ireland   n.爱尔兰
    iIrish   n.,adj.爱尔兰人()
    iron   n.铁,熨斗 v.熨平
    ironical   adj.反讽的,讽刺的
    irony   n.反讽,讽刺
    irregular   adj.不规则的
    irregularity   n.不规则
    irresistible   adj.不可抗拒的
    irrespective   adj.不论,不考虑
    irrevocable   adj.不可撤消的
    irrigate   v.灌溉
    irrigation   n.灌溉
    irritate   v.使生气,刺激
    irritation   n.刺激,恼怒
    islam   n.伊斯兰教,回教
    island   n.岛屿
    isolate   v.隔离,孤立
    isolation   n.隔离,孤立状态
    issue   v.发行,发布 n.发行物
    it   pron.它
    italian   n.,adj.意大利人()
    italy   n.意大利
    itch   v.,n.痒,热望
    item   n.条款,项目
    itemize   v.分列
    its   pron.它的
    itself   pron.它自己
    ivory   n.象牙,象牙色
    jack   n.千斤顶,船首旗
    jacket   n.短外套,茄克衫
    jail   n.监狱 v.监禁
    jam   n.果酱,阻塞
    january   n.一月
    japan   n.日本
    japanese   n.,adj.日本人()
    jar   n.罐子,坛子,刺耳声
    jaw   n.下颚,下巴
    jazz   n.爵士乐
    jealousy   n.妒忌
    jealous   adj.妒忌的
    jeans   n.牛仔裤
    jelly   n.果冻
    jeep   n.吉普车
    jeopardize   v.危及
    jerk   n.颠簸,猛推
    jesus   n.耶稣
    jet   v.喷射 v.喷气发动机
    jettison   n.投弃货物 v.抛弃
    jew   n.犹太人
    jewel   n.珠宝,宝石
    jewelry   n.珠宝(总称)
    jewish   adj.犹太人的
    jingle   v.,n.()叮当声
    job   n.工作,活儿,差使
    jobless   adj.失业的
    jog   v.慢跑
    join   v.连接,加入,参加
    joint   n.接着,关节
    joke   n.笑话 v.开玩笑
    jot   v.匆匆记下
    journal   n.刊物,日志
    journalism   n.新闻体
    journalist   n.记者
    journey   n.旅行,旅程
    joy   n.高兴,乐事
    joyful   adj.令人高兴的
    judge   n.法官,裁判 v.审判
    judgement   n.判决,意见,判断
    jug   n.大壶,罐
    juice   n.汁,液
    juicy   adj.多汁的
    july   n.七月
    jumble   n.搞乱,混乱
    jump   v.,n.跳跃,跳动
    junction   n.连接,结合处,接头
    june   n.六月
    jungle   n.密林,热带丛林
    junior   adj.年少的,低级的
    jupiter   n.木屋
    jury   n.陪审团,评奖团
    just   adv.只,刚才
    justice   n.公正,正直
    justifiable   adj.有理由的
    justification   n.辩护,正当理由
    justify   v.认为...有理
    juvenile   adj.青少年的
    kangaroo   n.带鼠
    keen   adj.锋利的,敏捷的
    keep   v.保持,保留,防止
    keeper   n.保管人,管理员
    keeping   n.一致,协调
    kernel   n.(),核心
    kerosene   n.煤油
    kettle   n.水壶
    key   n.钥匙,关键,答案
    keyboard   n.键盘
    keyhole   n.钥匙孔
    kick   v.,n.踢
    kid   n.小孩 v.哄骗
    kidnap   v.绑架,诱拐
    kidnaper   n.绑架者
    kidney   n.肾,腰子
    kill   v.杀死,杀害
    killer   n.杀人者,杀手
    kilo   n.()公斤,公里
    kilogram   n.公斤
    kilometer   n.公里
    kilowatt   n.千瓦
    kind   n.种类 adj.仁慈的
    kindergarten   n.幼儿园
    kindle   v.点燃,激发
    kindly   adv.仁慈地,好心地
    kindness   n.仁慈,好意
    king   n.国王
    kingdom   n.王国
    kiss   v.接吻,亲嘴
    kit   n.全套工具、装备
    kitchen   n.厨房
    kite   n.风筝
    knee   n.膝
    kneel   v.跪下
    knife   n.小刀
    knight   n.骑士,爵士
    knit   v.编织,皱()
    knob   n.球形把手
    knock   v.敲,击倒 n.敲门声
    knot   n.结,树节 v.打结
    know   n.知道,认识,懂
    know-how   n.专项技术,诀窍
    knowledge   n.知识,学识
    knowledgeable   adj.博学的
    lab   n.()实验室
    label   n.标签 v.标明
    laboratory   n.实验室
    labor   n.劳动,劳动力
    laborer   n.劳工,劳动者
    labor-intensive   adj.劳动密集型的
    lace   n.花边,鞋带
    lack   v.,n.缺少
    lad   n.少年,小伙子
    ladder   n.梯子,阶梯
    lady   n.女士,贵妇人,夫人
    lag   v.,n.落后,滞后
    lake   n.湖,湖泊
    lamb   n.羔羊,小羊肉
    lame   adj.跛的,站不住脚的
    lamp   n.灯
    land   n.陆地,土地 v.着陆
    landed   adj.卸货的
    landing   n.楼梯平台,着陆
    landlady   n.女房东
    landlord   n.房东,地主
    landscape   n.风景(),地形
    lane   n.小巷,跑道,行车道
    langkap   冷甲(馬來西亞,霹靂洲内一地方名)
    language   n.语言
    lantern   n.灯笼
    lap   n.膝盖
    lapse   v.(时间)流失
    large   adj.大的,巨大的
    largely   adv.大部分,基本上
    lark   n.云雀,百灵鸟
    laser   n.激光
    last   adj.最后的 adv.上次
    lasting   adj.持久的,持续的
    late   adj.迟到的,晚的
    lately   adv.近来,最后
    latent   adj.潜伏的,潜在的
    later   adv.更晚,以后,过后
    lateral   adj.横向的,侧向的
    lathe   n.车床
    latin   n.,adj.拉丁语()
    latitude   n.纬度,活动余地
    latter   adj.后面的,后者的
    lattice   n.结构,点阵
    laugh   v.笑,嘲笑
    laughter   n.笑,笑声
    launch   v.发射,发动,开始
    laundry   n.洗衣店,送洗的衣物
    lavatory   n.盥洗室,厕所
    law   n.法律,定律
    lawful   adj.合法的,法律的
    lawn   n.草地,草坪
    lawyer   n.律师,法学家
    lay   v.放,安排,打基础
    layday   n.装卸日期
    layer   n.层,层次
    layout   n.设计,规划,图案
    laziness   n.懒惰
    lazy   adj.懒惰的
    l/c   n.()信用证
    lead   v.引导,领先,率领
    leader   n.领导,领袖
    leadership   n.领导
    leading   adj.领先的,一流的
    leaf   n.叶子,页
    leaflet   n.传单,单页宣传品
    league   n.同盟,协会
    leak   v.漏,泄漏
    leakage   n.渗漏
    lean   v.俯身,倚 adj.瘦的
    leap   v.,n.跳跃 adj.闰年的
    learn   v.学习,获悉
    learned   adj.有学问的
    learner   n.学习者,学生
    learning   n.学问,学习
    lease   v.租凭,出租 n.租约
    least   adj.最少的
    leather   n.皮革 adj.皮革制的
    leave   v.出发,离开 n.休假
    lecture   n.,v.演讲,讲课
    lecturer   n.演讲者,讲师
    leeway   adj.活动余地
    left   adj.左的 adv.向左
    left-handed   adj.左手的,左侧的
    leftover   n.剩余物
    leg   n.腿,裤脚
    legal   adj.合法的,法律的
    legend   n.传说,传奇
    legendary   adj.传说的,传奇的
    legislation   n.立法,法规
    legitimate   adj.合法的,合理的
    legitimation   n.合法
    leisure   n.闲暇,闲空
    lemon   n.柠檬
    lemonade   n.柠檬汽水
    lend   v.出借,贷款
    lending   n.贷款,借款
    length   n.长度,期限
    lengthen   v.延长,变长
    leninism   n.列宁主义
    lens   n.透镜,镜片,晶体
    leopard   n.豹
    less   adj.更少的 adv.较小
    lessen   v.减少,变小,变弱
    lesson   n.功课,课程,教训
    lest   prep.唯恐,以免
    let   v.让,使
    letter   n.字母,信,函件
    level   n.水平,级 v.弄平
    lever   n.杠杆
    levy   v.征税 n.关税
    liability   n.责任,义务,债务
    liable   adj.有责任的
    liar   n.说谎者
    liberal   adj.思想开放的
    liberate   v.解放,释放,使自由
    liberation   n.解放
    liberty   n.自由
    librarian   n.图书管理员
    library   n.图书馆,藏书
    license   n.许可(),执照
    lick   v.舔
    lid   n.盖,脸
    lie   v.躺,位于 v.,n.说谎
    lieutenant   n.中尉,副职
    life   n.生活,生命,一生
    lifetime   n.一生
    lift   v.举起,吊 n.电梯
    light   n.光,灯 adj.明亮的
    lighten   v.发亮,使...愉快
    lighter   n.打火机
    lighthouse   n.灯塔
    lightly   adv.轻轻地,轻易地
    lightning   n.闪电
    like   v.喜欢 prep.像
    likelihood   n.可能,相似性
    likely   adj.可信的adv.很可能
    likeness   n.相像,类似
    likewise   adv.同样,照样
    liking   n.兴趣,嗜好
    lily   n.百合,睡莲
    limb   n.肢,树枝
    lime   n.石灰
    limestone   n.石灰岩
    limit   n.界限,限度 v.限制
    limitation   n.限制,局限
    limited   adj.有限的,限定的
    limousine   n.豪华轿车
    limp   adj.柔软的 v.跛行
    line   n.行,线条,界线
    linear   adj.线性的,线状的
    linen   n.亚麻(织物)
    liner   n.班轮,班机
    linger   v.徘徊,逗留,拖延
    linguist   n.语言学者
    linguistics   n.语言学
    lining   n.夹里,衬里
    link   v.联系,连结 n.纽带
    lion   n.狮子
    lioness   n.母狮子
    lip   n.嘴唇
    lipstick   n.口红,唇膏
    liquid   n.液体 adj.液体的
    liquor   n.烈性酒
    list   n.表,名单 v.列表
    listen   v.听,听从
    listener   n.听者
    literacy   n.识字
    literal   adj.字面的,不夸张的
    literally   adv.简直,字面上
    literary   adj.文学的
    literate   n.有文化的
    literature   n.文学,文献
    litre   n.公升
    litter   v.乱丢废物 n.废物
    little   adj.小的,一点,少的
    live   v.居住,生存 adj.活的
    livelihood   n.生活
    lively   adj.活跃的,热闹的
    liver   n.肝
    livestock   n.牲畜
    living   adj.活着的 n.生计
    living-room   n.客厅,起居室
    load   n.负载,负担 v.装载
    loaf   n.面包 v.游荡
    loan   n.贷款 v.出借
    lobby   n.前厅 v.游说
    lobster   n.龙虾
    local   adj.地方的,当地的
    locality   n.地点,现场
    locate   v.找出,确定地点
    location   n.地点,位置
    lock   v.锁上 n.锁,绺
    lock-up   n.锁,固定资本
    locomotive   n.火车头,机车
    locust   n.蝗虫
    lodge   v.寄宿
    lodging   n.住处,住房
    lofty   adj.崇高的,高耸的
    log   n.原木,航海日志
    logic   n.逻辑,论理学
    logical   adj.逻辑的
    loneliness   n.孤独,寂寞
    lonely   adj.孤独的,寂寞的
    lonesome   adj.寂寞的
    long   adj.长的 adv.长久
    longevity   n.长寿
    longing   n.渴望,思慕
    longitude   n.经度,经线
    long-term   adj.长期的
    look   v.看,看上去 n.外表
    loom   v.隐隐出现 n.织布机
    loop   n.环,回路 v.环绕
    loose   adj.松的,自由自在的
    loosen   v.解开,放松
    lord   n.君主,贵族,上帝
    lorry   n.卡车,载重汽车
    lose   v.失去,丢失,输
    loss   n.丧失,失利,损失
    lost   adj.失去的
    lot   n.许多,地 adv.相当
    lottery   n.抽彩,抓阄,彩票
    loud   adj.响亮的,大声的
    loudness   n.响亮
    loudspeaker   n.扬声器,扩音器
    lounge   n.休息室
    lovable   adj.可爱的
    love   v.爱,喜欢 n.爱情
    lovely   adj.好看的,可爱的
    lover   n.爱人,情人,爱好者
    low   adj.低的,低廉的
    lower   v.降低,减弱
    loyal   adj.忠诚的,忠贞的
    loyalty   n.忠诚,忠贞
    lubricate   v.润滑
    lubrication   n.润滑
    luck   n.运气,幸运
    lucky   adj.幸运的
    luggage   n.行李
    lumber   n.木材,木料
    luminous   adj.发光的,明晰的
    lump   n.块,肿块
    lumpsum   n.总数
    lunar   adj.月亮的,阴历的
    lunch   n.午饭,便餐
    luncheon   n.午餐,午宴
    lung   n.肺
    luxurious   adj.豪华的,奢侈的
    luxury   n.奢侈()
    machine   n.机器
    machinery   n.机械(总称)
    mackintosh   n.雨衣
    macroeconomics   n.宏观经济学
    mad   adj.疯狂的,狂热的
    madam   n.夫人,太太,女士
    madman   nn.疯子
    madness   n.疯狂,疯病
    magazine   n.杂志,期刊
    magic   n.魔法,魔术,魅力
    magician   n.魔术师
    magistrate   n.地方法官
    magnet   n.磁性,磁铁
    magnetic   adj.磁性的
    magnetism   n.磁性,磁力,吸引力
    magnificent   adj.壮丽的,宏伟的
    magnify   v.放大,扩大
    magnitude   n.宏大,重要()
    maid   n.女仆,侍女
    maiden   n.少女 adj.未婚的
    mail   n.邮件 v.邮寄
    mailbox   n.信箱
    main   adj.主要的
    mainland   n.大陆,本土
    mainly   adv.主要地,大部分
    mainstream   n.主流
    maintain   v.维持,保养,坚持
    maintenance   n.保养,维修
    maize   n.玉米
    majesty   n.陛下,雄伟,庄严
    major   adj.主要的,多数的
    majority   n.多数,过半数
    make   v.做,制造 n.种类
    maker   n.制造者,制造商
    make-shift   adj.临时的n.权宜之计
    make-up   n.气质,化妆品
    malady   n.病
    malaria   n.疟疾
    malaise   n.马来西亚
    malaysia   n.马来西亚
    male   adj.男性的,雄的
    malice   n.恶意,恶感
    malicious   adj.恶意的
    man   n.人,男人,人类
    manage   v.管理,处理,设法
    management   n.管理(人员),经营
    manager   n.经理
    managerial   adj.管理的
    manhood   n.男子气
    manifest   v.表明 adj.明白的
    manifestation   n.表明
    manifesto   n.宣言
    manipulate   v.操纵,操作,摆布
    manipulation   n.操纵,操作
    mankind   n.人类
    manly   adj.大丈夫的
    manner   n.方法,方式,礼貌
    mansion   n.宅第,官邸,大厦
    manual   adj.用手的 n.手册
    manufacture   v.,n.制造
    manufactured   adj.制成的
    manufacturer   n.制造商
    manuscript   n.手稿,原稿
    many   adj.许多的 n.许多
    map   n.地图 v.筹划
    maple   n.枫树
    marble   n.大理石,弹子
    march   n.三月
    march   n.,v.行进,行军
    margin   n.余地,边缘
    marginal   adj.边缘的,边际的
    marine   adj.海的,海生的
    mariner   n.海员,水手
    mark   n.痕迹,符号,标记
    marked   adj.有标记的,标明的
    market   n.市场,销路
    marketable   adj.有销路的
    marketing   n.市场学,营销学
    marketplace   n.市场,集市
    marking   n.唛头,标记
    marriage   n.婚姻,婚礼
    married   adj.已婚的
    marry   v.娶,嫁,为...主婚
    mars   n.火星
    marsh   n.沼泽
    marshal   n.元帅
    martyr   n.烈士,殉道者
    marvel   n.奇迹 v.惊奇
    marvellous   adj.奇异的,绝妙的
    marxism   n.马克思主义
    marxist   n.马克思主义者
    masculine   adj.男性的,阳性的
    mask   n.假面具 v.掩饰
    mass   n.堆,大量,群众
    massacre   n.,v.屠杀,残杀
    massage   n.按摩,推拿
    massive   adj.粗大的,厚重的
    mass media   n.传媒工具,新闻界
    mast   n.桅杆
    master   n.主人,大师,硕士
    masterpiece   n.杰作
    mat   n.垫子,席子
    match   n.火柴,对手,比赛
    mate   n.伙伴 v.配对
    material   n.材料,资料,原料
    materialism   n.唯物主义
    materialize   v.使具体化,物质化
    mathematical   adj.数学的
    mathematics   n.数学
    mathematician   n.数字家
    maths   n.()数学
    matinee   n.日场演出
    matter   n.事情,物资,毛病
    mattress   n.床垫
    mature   adj.成熟的,到期的
    maturity   n.成熟,到期
    maximize   v.增加到最大程度
    maximum   n.最大量,极限
    may   n.五月
    may   v.可以,也许,祝愿
    maybe   adv.或许,大概
    mayor   n.市长
    me   pron.(宾格)
    meadow   n.牧场,草地
    meal   n.膳食,一顿饭
    mean   v.打算,意指
    meaning   n.意义,意图
    means   n.手段,财力
    meantime   adv.同时,在这期间
    meanwhile   adv.,n.在这期间
    measure   n.尺寸,量具,措施
    measurement   n.测量(结果)
    meat   n.肉
    mechanic   n.技工
    mechanical   adj.机械的、机动的
    mechanically   adv.机械地
    mechanics   n.力学,机械学
    mechanism   n.机制,机械装置
    medal   n.奖章,勋章,纪念章
    medical   adj.医学的,医务的
    medicine   n.药,医学
    medieval   adj.中世纪的
    meditate   v.考虑,沉思
    meditation   n.考虑,沉思冥想
    mediterranean   n.地中海
    medium   n.中间,媒介,中庸
    meek   adj.温顺的
    meet   v.遇到,会见,迎接
    meeting   n.会议,集会
    melancholy   n.,adj.忧郁()
    melody   n.旋律,曲调
    melon   n.瓜,甜瓜
    melt   v.熔化,融解
    member   n.成员,会员
    membership   n.会员资格,全体成员
    memo   n.备忘录
    memoir   n.回忆录
    memorial   adj.纪念的,追悼的
    memorize   v.记住,记忆
    memory   n.记忆(),回忆
    menace   v.,n.威胁,恐吓
    mend   v.修理,修补,好转
    mental   adj.心理的,精神的
    mentality   n.心理,意识
    mention   v.,n.提及,讲到
    menu   n.菜单
    merchandise   n.商品,货物
    merchant   n.商人 adj.商业的
    mercantile   n.商品
    merciful   adj.仁慈的,宽大的
    mercury   n.水星
    mercury   n.汞,水银
    mercy   n.宽大,慈悲,怜悯
    mere   adj.仅仅的,起码的
    merely   adv.仅仅,只
    merge   v.合并
    merit   n.价值,功绩 v.应得
    mermaid   n.美人鱼
    merry   adj.欢乐的
    mesh   n.网孔,筛眼
    mess   n.肮脏,凌乱 v.弄脏
    message   n.音讯,消息
    messenger   n.通讯员,使者
    metal   n.金属
    metallic   adj.金属的
    metallurgy   n.冶金学
    meter   n.量器,仪表
    method   n.方法
    methodology   n.方法()
    meticulous   adj.小心翼翼的
    meticulously   adv.胆小地
    metre   n.米,公尺
    metric   adj.公制的,米的
    metropolitan   n.大都市
    mexican   n.,adj.墨西哥人()
    mexico   n.墨西哥
    microeconomics   n.微观经济学
    microphone   n.扩音器,话筒
    microprocessor   n.微处理机
    microscope   n.显微镜
    microwave   n.微波
    midday   n.正午,晌午
    middle   n.当中 adj.中部的
    middleman   n.中人,中间人
    middling   n.中等的,第二流的
    midnight   n.午夜
    midst   n.中间,中部
    might   v.或许,可以 n.力
    mighty   adj.强有力的
    migrant   adj.迁移的,候鸟的
    migrate   v.迁移(海外),移栖
    migration   n.迁移,移居海外
    mild   adj.温和的,味淡的
    mile   n.英里
    mileage   n.里程
    milestone   n.里程碑
    military   adj.军事的,好斗的
    militia   n.民兵(组织)
    milk   n.奶,乳夜 v.挤奶
    milkman   n.送奶人
    milky   adj.加奶的,乳白色的
    mill   n.磨坊,工厂 v.滚乱
    miller   n.磨坊主
    millimetre   n.毫米
    million   n.百万
    millionaire   n.百万富翁
    mince   v.切碎,绞碎
    mincer   n.粉碎机
    mind   n.头脑,智力 v.介意
    mine   pron.我的 n.矿山
    miner   n.矿工
    mineral   n.矿物 adj.矿物的
    mingle   v.混合,混入
    miniature   n.雏形,缩影,袖珍
    minicomputer   n.微型计算机
    minimize   v.使减到最小
    minimum   n.最少量 adj.最小的
    minister   n.教士,部长,大臣
    ministry   n.(政府)部
    minor   adj.较小的,次要的
    minority   n.少数,少数民族
    mint   n.造币厂,薄荷
    minus   prep.减去 adj.减的
    minute   n.分钟,片刻
    miracle   n.奇迹,令人惊讶的事
    miraculous   adj.奇迹()的
    mirror   n.镜子 v.反映
    miscarriage   n.未到目的地
    miscarry   v.未运到(目的地)
    mischief   n.伤害,恶作剧
    miser   n.吝啬鬼,守财奴
    miserable   adj.悲惨的,糟糕的
    misery   n.痛苦,悲惨,苦难
    misfortune   n.不幸
    misgiving   n.疑虑,担心
    mishandle   v.装卸不慎
    mishap   n.事故
    misinterpret   v.误解
    mislead   v.引入岐途
    miss   v.未击中,错过 n.小姐
    missile   n.导弹,发射物
    missing   adj.丢失的,缺少的
    mission   n.使团,使命,天职
    missionary   n.传教士
    mist   n.薄雾 v.使迷糊
    mistake   n.错误,误解 v.搞错
    mistaken   adj.搞错了的,误解的
    mister   n.先生(缩写为Mr.)
    mistress   n.女主人,情妇
    misty   adj.雾蒙蒙的,有雾的
    misunderstand   v.误解,误会
    misunderstanding   n.误会,曲解
    mitten   n.连指手套,露指手套
    mix   v.混合,配料,交往
    mixer   n.混合器
    mixture   n.混合物,混和
    moan   v.,n.呻吟,悲叹
    mob   n.暴民,乌合之众
    mobile   adj.机动的,流动的
    mobilize   v.动员
    mock   v.嘲笑,愚弄
    mode   n.方式,方法
    model   n.模范,模型,模特儿
    moderate   adj.适度的 v.缓和
    moderately   adv.适度地,适中地
    modern   adj.现代的,时髦的
    modernization   n.现代化
    modernize   v.使...现代化
    modest   adj.谦虚的,质朴的
    modesty   n.谦虚
    modification   n.修改,缓和
    modified   adj.改良的,改进的
    modify   v.修改,减轻,修饰
    modulate   v.调整,改变
    module   n.模量,模件
    moist   adj.潮湿的
    moisture   n.潮气
    molecular   adj.分子的
    molecule   n.分子
    moment   n.时刻,瞬间
    momentary   adj.片刻的,瞬间的
    momentous   adj.重要的,重大的
    monarch   n.君主,王室
    monastery   adj.修道院,寺院
    monday   n.星期一
    monetary   adj.货币的,金融的
    money   n.金钱,货币,财富
    monitor   n.班长,监视器 v.监视
    monk   n.和尚,修道士
    monkey   n.猴子
    monopolize   v.垄断,独占
    monopoly   n.垄断,独占
    monotonous   adj.单调的,枯燥的
    monotony   n.单调,枯燥
    monster   n.怪兽,怪物,魔鬼
    monstrous   adj.可怕的,极恶的
    month   n.月份
    monthly   adj.每月的 n.月刊
    monument   n.纪念章,不朽之物
    monumental   adj.纪念碑式的
    mood   n.心情,心境,情绪
    moon   n.月亮
    moonlight   n.月光
    moonlighting   n.业余干活
    moor   v.系泊,把船栓定
    mop   n.拖把,墩布
    moral   adj.道德的 n.教训
    morale   n.士气,斗志
    morality   n.道德品质
    more   adj.更多的,更 adv.更
    moreover   adv.此外,而且
    morning   n.早晨,上午
    mortal   adj.致命的
    moslem   n.,adj.穆斯林
    mosque   n.清真寺
    mosquito   n.蚊子
    moss   n.苔藓,地衣
    most   adj.最多的 adv.非常
    mostly   adv.主要地,大多
    motel   n.汽车旅馆
    moth   n.蛾
    mother   n.母亲 adj.出生地的
    mother-in-law   n.岳母,婆婆
    motion   n.运动,议案
    motionless   adj.不动的
    motivate   v.促进,激发
    motivation   n.动机
    motive   n.动机
    motor   n.发动机
    motorcar   n.汽车
    motorcycle   n.摩托车
    motorist   n.摩托车手
    motorway   n.汽车道,高速公路
    motto   n.座右铭
    mould   n.模子,型,霉菌
    mount   n.山,岳 v.登上
    mountain   n.山
    mountainous   adj.多山的,山一般的
    mourn   v.悲悼,哀痛
    mournful   adj.悲悼的,哀痛的
    mourning   n.哀痛
    mouse   n.老鼠
    moustache   n.胡子,须
    mouth   n.口,嘴巴,河口
    mouthful   n.一口,满口
    move   v.移动,推动,搬家
    movement   n.活动,运动,动作
    movie   n.电影()
    mr.   n.()先生
    mrs.   n.()夫人,太太
    ms.   n.()女士
    much   adj.许多的 n.许多
    mud   n.泥浆
    muddy   adj.泥泞的
    muffle   v.裹住,捂住
    muffler   n.围巾,消音器
    mug   n.(有柄)大杯
    mule   n.骡子
    multiple   adj.复合的,多次方的
    multiplication   n.乘法,增加
    multiply   v.乘,增加,繁殖
    multifunction   n.多功能的
    multitude   n.大批,大群
    municipal   adj.市的,市政的
    mumble   v.咕哝,嘟囔
    mumps   n.腮腺炎
    murder   v.,n.谋杀()
    murderer   n.凶手,杀人犯
    murmur   v.低声说
    muscle   n.筋,肌肉
    muscular   adj.肌肉发达的
    muse   v.沉思,默想
    museum   n.博物馆,陈列馆
    mushroom   n.“蘑菇
    music   n.音乐,乐曲
    musical   adj.音乐的 n.歌舞片
    musician   n.音乐家,作曲家
    must   v.必须,准是 n.必须
    mustard   n.芥末
    mute   adj.缄默的 n.哑巴
    mutter   v.咕哝,抱怨
    mutton   n.羊肉
    mutual   adj.相互的,共同的
    my   pron.我的
    myriad   n.,adj.无数()
    myself   pron.我自己,我亲自
    mysterious   adj.神秘的,玄妙的
    mystery   n.神秘,奥妙,秘事
    mystic   adj.神秘的
    myth   n.神话
    mythology   n.神话()
    nail   n.钉子,指甲 v.钉
    naive   adj.天真的
    naked   adj.裸体的,赤裸裸的
    name   n.姓名,名称 v.命名
    nameless   adj.无名的
    namely   adv.即,也就是
    namesake   n.名义
    nap   n.打盹,小睡
    napkin   n.餐巾()
    narrate   v.叙述
    narration   n.叙述
    narrator   n.叙述者
    narrow   adj.狭窄的,勉强的
    nasty   adj.肮脏的,下流的
    nation   n.国家,国民,民族
    national   adj.民族的,国家的
    nationality   n.国籍
    native   adj.本国的,出生地的
    natural   adj.自然的,通常的
    naturally   adv.自然地
    nature   n.自然,本性,性质
    naughty   adj.淘气的,顽皮的
    nausea   v.恶心,讨厌
    naval   adj.海军的
    navel   n.脐,中心
    navigable   adj.可航行的
    navigation   n.航行,航海,航空
    navy   n.海军
    near   adv.近 adj.近的
    nearby   adj.,adv.附近()
    nearly   adv.几乎,差不多
    neat   adj.整洁的,简洁的
    necessarily   adv.必然,当然
    necessary   adj.必要的,必然的
    necessitate   v.使需要,强迫
    necessity   n.必要性,必须品
    neck   n.颈,脖子
    necklace   n.项链
    need   n.需要,贫困 v.需要
    needful   adj.必要的
    needle   n.针,指针,针叶
    needless   adj.不必要的,无用的
    needy   adj.贫穷的
    negate   v.否定
    negation   n.否定
    negative   adj.否定的 n.负片
    neglect   v.,n.疏忽,忽视
    negligence   n.疏忽,过失
    negligent   adj.粗心大意的
    negligible   adj.微不足道的
    negotiable   adj.可谈判的
    negotiate   v.谈判,交涉
    negotiation   n.谈判
    negro   n.黑人(贬义)
    neighbor   n.邻居,邻国
    neighborhood   n.邻里,街坊
    neighboring   adj.邻近的,相邻的
    neither   conj.既不...又不...
    nephew   n.侄子,外甥
    nerve   n.神经,胆量
    nervous   adj.神经()的,
    nest   n.巢,窝
    nestle   v.安顿,建巢
    net   n.网 adj.净的,纯的
    network   n.网络,网状组织
    neutral   adj.中立的,中和的
    neutrality   n.中立
    neutron   n.中子
    never   adv.从不,永不,未曾
    nevertheless   adv.还是,然而
    new   adj.新的,重新的
    news   n.新闻,消息
    newspaper   n.报纸,新闻纸
    next   adv.下一次,然后
    nice   adj.令人愉快的
    nickel   n.镍,镍币
    nickname   n.绰号,诨号
    niece   n.侄女,外甥女
    night   n.夜,黑夜
    nightgown   n.睡衣
    nightingale   n.夜莺
    nightmare   n.恶梦
    nine   num.九
    nineteen   num.十九
    ninety   num.九十
    ninth   num.第九,九分之一
    nitrogen   n.氮
    no   adv.,毫不 adj.没有
    no.   n.()...号,号码
    nobility   n.高贵,庄严
    noble   adj.高尚的,贵族的
    nobody   prep.谁也不
    nod   v.,n.点头
    noise   n.噪音,吵嚷声
    noisy   adj.吵闹的
    nominal   adj.名义上的,票面的
    nominate   v.提名,推荐,任命
    nomination   n.提名,任命
    none   prep.没人,毫无
    nonsense   n.废话,谬论
    noon   n.中午,正午
    nor   conj.也不,也没
    norm   n.标准,规范,定额
    normal   adj.正常的,标准的
    normalization   n.正常化
    normalize   v.使正常,使标准化
    normally   adv.正常地,通常
    north   n.北,北方 adj.北的
    northeast   adj.,n.东北()
    northern   adj.北方的,北部的
    northward   adj.,adv.向北()
    northwest   adj.,n.西北()
    nose   n.鼻子
    nostril   n.鼻孔
    not   adv.不
    notable   adj.值得注意的
    notably   adj.尤其,值得注意地
    note   n.笔记,注释,便条
    notebook   n.笔记本
    noted   adj.著名的
    note-taking   n.笔记,笔录
    nothing   n.没有东西 adv.毫不
    notice   v.留意 n.注意,通知
    noticeable   adj.显而易见的
    notification   n.通知(),布告
    notify   v.通知,通告,报告
    notion   n.概念,意见,看法
    notorious   adj.臭名昭著的
    notwithstanding   prep.,conj.尽管
    nought   n.零
    noun   n.名词
    nourish   v.养育,提供养分
    nourishment   n.食物,补品
    novel   adj.新颖的 n.小说
    novelist   n.小说家
    novelette   n.中篇小说
    novelty   n.新奇,新颖
    november   n.十一月
    now   adv.n.现在 conj.既然
    nowadays   adv.现今,目前
    nowhere   adv.哪儿也不
    nuclear   adj.核的,原子核的
    nucleus   n.(原子)核,核心
    nuisance   n.令人讨厌的人或事
    null   n.无
    nullify   v.使无效,取消
    number   n.数字,若干,号码
    numerical   adj.数字的
    numerous   adj.众多的,大量的
    nun   n.修女,尼姑
    nurse   n.护士,保姆 v.护理
    nursery   n.托儿所,苗圃
    nut   n.坚果,螺母
    nylon   n.尼龙
    oak   n.橡树,栎树
    oar   n.橹,桨
    oath   n.誓言,誓约
    obedience   n.服从,顺从
    obedient   adj.服从的,顺从的
    obey   v.服从,遵守
    object   n.物体,目的 v.反对
    objection   n.反对,异议,不愿
    objective   n.目标 adj.客观的
    obligation   n.义务,责任
    oblige   v.责成,使感激
    obliterate   adj.删去,抹掉
    oblong   adj.椭圆形的
    obscure   adj.无名的 v.遮蔽
    observance   n.仪式,习惯
    observation   n.观察,评述
    observe   v.观察,遵守,注视
    observer   n.观察员
    obstacle   n.障碍()
    obstinate   adj.固执的,顽强的
    obstruction   n.堵塞,妨碍
    obtain   v.获得
    obtainable   adj.可得到的
    obvious   adj.明显的
    obviously   adv.明显地,显然
    occasion   n.场合,盛事,机会
    occasional   adj.偶然的,有时的
    occasionally   adv.偶而,有时
    occident   n.西方
    occidental   adj.西方的,西洋的
    occupation   n.职业,占有
    occupy   v.占据,占领,担任
    occur   v.发生,出现,想到
    occurrence   n.发生,出现,事件
    ocean   n.海洋,大洋
    oceania   n.大洋洲
    oceanography   n.海洋学
    o'clock   adv.点钟
    october   n.十月
    odd   adj.古怪的,奇数的
    odour   n.气味
    of   prep..(表示领属等)
    off   adv....去 prep.离开
    off-duty   adj.不当班的
    offence   n.过错,冒犯,攻击
    offend   v.冒犯,得罪
    offensive   adj.冒犯的,攻击的
    offer   v.,n.提供,报盘
    offering   n.报盘,提供的货物
    off-grade   adj.等外的,质差的
    office   n.办公室,事务所
    officer   n.军官,警官,官员
    official   n.官员 adj.官方的
    offset   v.抵消,弥补
    offspring   n.子女,子孙
    often   adv.经常,常常
    oh   int.哦,嗬
    oil   n.油,石油
    o.k.   adj.,n.()对,行
    old   adj.老的,...岁的
    olive   n.橄榄()
    omen   n.前兆
    ominous   adj.不祥的
    omission   n.省略
    omit   v.省略,遗漏
    on   prep....上,关于
    once   adv.一度,一次
    one   num.,n.一,一个
    oneself   pron.自己,自身
    onion   n.洋葱
    only   adj.唯一的 adv.仅仅
    onset   n.攻击,着手
    onto   prep....上
    onward   adv.,adj.向前()
    opal   n.蛋白石
    opaque   adj.不透明的
    open   adj.开的 v.打开
    opener   n.开罐器,起子
    opening   n.开始,通路,孔
    opera   n.歌剧
    operate   v.运转,操作,开刀
    operation   n.操作,生效,手术
    operational   adj.业务上的,操作的
    operative   adj.有效的
    operator   n.操作人员,接线员
    opinion   n.意见,评论,看法
    opium   n.鸦片
    opponent   n.对手,敌手
    opportune   adj.及时的,凑巧的
    opportunity   n.机会,机遇,时机
    oppose   v.反对,反抗
    opposite   adj.对立的,对面的
    opposition   n.敌对,反抗
    oppress   v.压抑,压迫,压制
    oppression   n.压迫
    optical   adj.视觉的,光学的
    optimal   adj.最佳的
    optimism   n.乐观(主义)
    optimistic   adj.乐观(主义)的
    optimize   v.最佳化
    optimum   n.最佳条件
    option   n.选择,可选择的东西
    optional   adj.可任选的,随意的
    or   conj.或者,即,否则
    oral   adj.口头的,口的
    orange   n.柑桔,橙色
    orbit   n.轨道
    orchard   n.果园
    orchestra   n.管弦乐队,交响乐
    order   n.命令,订货,次序
    orderly   adj.整齐的 n.勤务员
    ordinarily   adv.通常
    ordinary   adj.普通的,一般的
    ore   n.矿石,矿物
    organ   n.器官,风琴
    organic   adj.器官的,有机的
    organism   n.有机体
    organization   n.组织,团体
    organizational   adj.组织的
    organize   v.组织,筹备,编排
    orient   n.东方 v.定方针
    oriental   adj.,n.东方的()
    orientation   n.定向,倾向性
    origin   n.起源,产地
    original   adj.原始的 n.原物
    originality   n.独创性
    originally   adv.原来,当初
    originate   v.起源,首创
    ornament   n.装饰()
    ornamental   adj.装饰的
    orphan   n.孤儿
    oscillation   n.摆动,振动
    other   adj.其他的,别的
    otherwise   adv.另外的 conj.否则
    ought   v.应该,大概
    ounce   n.盎司
    our   pron.我们的
    ourselves   pron.我们自己
    out   adv.出外,向外,完
    outbreak   n.爆发,发作
    outcome   n.结果
    outdoor   adj.野外的,露天的
    outdoors   adv.在外的,在野外的
    outer   adj.外部的,外面的
    outermost   adj.最外的
    outland   n.偏僻地区
    outlandish   adj.外国的
    outlaw   n.逃犯,歹徒
    outlay   n.费用,支出
    outlet   n.出口,销路
    outline   n.轮廓,略图,大纲
    outlook   n.看法,景色,展望
    output   n.出产,产量
    outrage   n.暴行
    outrageous   adj.残暴的
    outright   adj.公然地,直率地
    outset   n.开头,起初
    outside   n.外部 adv.在外面
    outsider   n.局外人
    outskirts   n.郊区
    outstanding   adj.杰出的,未付款的
    outturn   n.卸货情况
    outward   adj.,adv.向外()
    oval   adj.椭圆()的
    oven   n.烤炉,锅灶
    over   prep....上方,越过
    overall   adj.总的,全面的
    overcast   adj.多云的
    overcharge   v.,n.多收()钱
    overcoat   n.外套,大衣
    overcome   v.征服,克服,压倒
    overestimate   v.估计过高
    overextend   v.使..承担过多的义务
    overflow   v.泛滥,溢出,满怀
    overhead   adv.,adj.头上()
    overhear   v.偶然听到,偷听
    overjoy   n.使大喜
    overlap   v.重叠
    overlapping   adj.相互重叠的
    overload   v.,n.超载
    overlook   v.视察,俯瞰,宽容
    overnight   adv.,adj.终夜()
    overpayment   n.多付的款项
    overseas   adv.,adj.海外()
    oversight   n.监视,疏忽
    overtake   v.赶上,压倒
    overthrow   v.推翻,颠覆
    overtime   n.超时,加班
    overwhelm   v.压倒,淹没
    overwhelming   adj.压倒的
    owe   v.欠,归功于
    owing   adj.该付的
    owl   n.猫头鹰
    own   adj.自己的 v.拥有
    owner   n.物主,所有人
    ownership   n.所有权,所有制
    ox   n.公牛
    oxide   n.氧化物
    oxygen   n.氧,氧化
    oyster   n.牡蛎,蚝
    pace   n.步,速度,步调
    pacific   n.太平洋
    pack   v.包装,挤满 n.背包
    package   n.包裹 v.打包
    packaging   n.包装
    packet   n.一盒,小件包裹
    packing   n.装箱,收拾行李
    pad   n.垫,便笺本
    page   n.()页
    pail   n.提桶
    pain   n.疼痛,悲痛 v.作痛
    painful   adj.痛苦的
    paint   n.涂料,油漆 v.刷漆
    painter   n.画家,油漆匠
    painting   n.画,绘画(艺术)
    pair   n.对,双,夫妇
    palace   n.宫殿
    pale   adj.苍白的,淡的
    palm   n.手掌,掌心,棕榈树
    pamphlet   n.小册子
    pan   n.平底锅
    panda   n.熊猫
    pane   n.()玻璃
    panel   n.镶板,仪表盘,小组
    panic   n.,v.恐慌,惊慌
    panorama   n.全景
    panoramic   adj.全景的
    pant   n.,v.喘气
    panther   n.豹,美洲豹
    pantry   n.配膳室,食品室
    pants   n.长裤,衬裤
    paper   n.纸,报纸,文件
    papercut   n.剪纸,刻纸
    papercutting   n.剪纸艺术
    papers   n.文件,证书
    par   n.()原价相等
    parachute   n.降落伞
    parade   n.,v.游行
    paradise   n.天堂,天国
    paragraph   n.段落,节
    parallel   adj.平行的,类似的
    paralyse   v.使麻痹,惊呆
    parameter   n.参数,参量
    parasite   n.寄生虫,寄生物
    parcel   n.包裹,邮包
    pardon   n.,v.原谅,赦免
    parent   n.父或母亲,母体
    paris   n.巴黎
    parish   n.教区
    park   n.公园 v.停放车辆
    parking   n.停放车辆
    parliament   n.议会,国会
    parlimental   adj.国会的,议会的
    parlor   n.客厅
    parrot   n.鹦鹉
    part   n.部分,零件,角色
    partial   adj.局部的,偏颇的
    partially   adv.局部地,部分地
    participant   n.参加者,参与者
    participate   v.参与,分享
    participation   n.参加,参与
    particle   n.颗粒,微粒,虚词
    particular   adj.特殊的 n.项目
    particularly   adv.特别地
    partition   v.,n.划分,隔开
    partly   adv.部分地
    partner   n.伙伴,合伙人,搭档
    partnership   n.伙伴关系,合伙
    part-time   adj.计时(干活)的
    party   n.聚会,政党,一方
    pass   v.经过,传给 n.关口
    passable   adj.过得去的
    passage   n.一段,通过,通道
    passenger   n.旅客,乘客
    passion   n.激情,热衷
    passionate   adj.多情的,热烈的
    passive   adj.被动的,消极的
    passport   n.护照
    past   adj.过去的 n.过去
    past-due   adj.过期的
    paste   n.浆糊,糊状物
    pastime   n.消谴,娱乐
    pasture   n.牧场
    pat   n.,v.轻拍,抚摸
    patch   n.补丁,眼罩
    patent   n.专利权,专利证
    path   n.小径,路线
    pathetic   adj.凄婉动人的
    patience   n.耐心,忍耐力
    patient   adj.耐心的 n.病人
    patriot   n.爱国者
    patriotic   adj.爱国的
    patriotism   n.爱国主义
    patrol   v.巡逻 n.巡逻队
    patron   n.赞助人,保护人
    patronage   n.保护人身分
    pattern   n.模式,式样,图案
    pause   v.,n.暂停,中止
    pave   v.铺路,为..铺平道路
    pavement   n.人行道
    paw   n.脚瓜
    pawn   v.产卵
    pay   v.支付 n.工资
    payable   adj.支付给...的
    payment   n.支付,付款
    pea   n.豌豆
    peace   n.和平,平静,和约
    peaceful   adj.和平的,平静的
    peach   n.桃子
    peacock   n.孔雀
    peak   n.顶点,巅,山峰
    peanut   n.花生
    pear   n.梨
    pearl   n.珍珠
    peasant   n.农民
    peasantry   n.农民(总称)
    pebble   n.鹅卵石
    peck   v.啄
    peculiar   adj.古怪的,独特的
    peculiarity   n.特性,怪癖
    pedal   n.踏板 v.骑车
    pedestrian   n.行人
    pedlar   n.小贩
    peel   n.果皮 v.削、剥皮
    peep   v.偷看,窥视
    peer   n.同行 v.盯,凝视
    peg   n.桩 v.(汇率)钉住
    pen   n.钢笔,栏,圈
    penalty   n.刑罚,处罚,罚款
    pencil   n.铅笔
    pending   adj.未决的,紧迫的
    penetrate   v.贯穿,穿透,弥漫
    penetration   n.贯穿,洞察力
    penicillin   n.青霉素,盘尼西林
    peninsular   n.半岛
    penny   n.便士
    pension   n.养老金,年金
    people   n.人们,人民,人员
    pepper   n.胡椒
    per   prep.每,由,按照
    perceive   v.知觉,觉察,领悟
    percent   n.每百,百分之
    percentage   n.百分率
    perception   n.感觉,理解力
    perch   v.栖息
    perfect   adj.完美的,完备的
    perfection   n.完成,完善
    perfectly   adv.完全地,完美地
    perform   v.执行,表演
    performance   n.执行,演出
    performer   n.执行者,表演者
    perfume   n.香味,香水
    perhaps   adv.也许,多半
    peril   n.危难,巨大危险
    perimeter   n.周长
    period   n.时期,句号
    periodic   adj.周期的,定时的
    periodical   n.期刊
    peripheral   adj.边缘的,周边的
    perish   v.死亡,枯萎
    permanence   n.永久,持久
    permanent   n.永久性的,持久的
    permanently   adv.永久地
    permission   n.允许,许可
    permissive   adj.允许的,许可的
    permit   v.允许 n.许可证
    perpendicular   adj.垂直的
    perpetual   adj.永久的,永恒的
    perplex   v.迷惑,难住
    persecute   v.迫害
    persecution   n.迫害
    persevere   v.坚持
    perseverance   n.坚持
    persist   v.坚持,固执,持续
    persistence   n.坚持,持续
    person   n.人,人称,身体
    personal   adj.私人的,个人的
    personality   n.人格,个性,人物
    personally   adv.亲自,就个人而言
    personnel   n.全体人员,人事部门
    perspective   n.展望,观点,透视
    persuade   v.说服,劝导
    persuasion   n.说服,信念
    pertain   v.属于
    pertinence   n.中肯
    pertinent   adj.中肯的,恰当的
    perturb   v.扰乱
    perturbed   adj.烦燥不安的
    perusal   n.细读
    peruse   v.仔细阅读,审查
    pessimist   n.悲观(主义)
    pessimistic   adj.悲观的
    pest   n.害虫
    pet   n.爱畜,宠儿
    petition   v.,n.请愿()
    petrol   n.石油,汽油
    petroleum   n.石油
    petty   adj.细小的,不重要的
    phase   n.阶段,时期,侧面
    phenomenon   n.现象,非凡的人
    philosopher   n.哲学家
    philosophical   adj.哲学上的
    philosophy   n.哲学,基本原则
    phone   n.电话 v.打电话
    phonetics   n.语音学
    photo   n.照片
    photograph   n.照片 v.拍照
    photographer   n.摄影师
    photography   n.摄影术
    photostatic   adj.静电复印的
    phrase   n.词组,短语
    physical   adj.身体的,物质的
    physically   adv.物质上,身体上
    physician   n.内科医生
    physicist   n.物理学家
    physics   n.物理学
    pianist   n.钢琴家
    piano   n.钢琴
    pick   v.拣,采 n.精华,镐
    pickle   n.腌渍品,泡菜
    pickpocket   n.扒手,小偷
    picnic   n.,v.郊游,野餐
    pictorial   n.画报
    picture   n.图片,画,照片
    picturesque   adj.风景如画的
    pie   n.馅饼
    piece   n.件,片段,张
    pier   n.码头,栈桥
    pig   n.猪
    pigeon   n.鸽子
    pigment   n.色料
    pile   n.堆 v.堆积
    pilferage   v.偷窃
    pilgrim   n.香客,朝圣者
    pilgrimage   n.朝圣
    pill   n.药片,药丸
    pillar   n.柱子
    pillow   n.枕头
    pilot   n.飞行员,领航员
    pin   n.别针,发卡 v.别住
    pinch   v.捏,掐,挤痛
    pine   n.松树
    pineapple   n.菠萝
    pink   adj.,n.桃色,粉红色
    pint   n.品脱(容量单位)
    pioneer   n.先驱者 v.倡导
    pioneering   n.先驱的
    pious   adj.虔诚的
    pipe   n.管子,烟斗
    pipeline   n.管道,管线
    pirate   n.海盗 adj.盗版的
    pistol   n.手枪
    piston   n.活塞
    pit   n.坑,洼,煤矿,桃核
    pitch   v.搭帐篷,投掷
    pitcher   n.水罐
    pity   n.怜悯,惋惜,憾事
    place   n.地方,位置 v.放置
    plague   n.瘟疫
    plain   adj.明白的,朴素的
    plan   n.计划,平面图 v.打算
    plane   n.水平,平面,飞机
    planet   n.行星
    plant   n.植物,工厂 v.栽培
    plantation   n.种植园
    plaster   n.灰泥 v.粘贴
    plastic   n.塑料 adj.可塑的
    plastics   n.塑料(制品)
    plate   n.盘子,金属牌
    plateau   n.高原,高地
    platform   n.讲台,站台,政纲
    platinum   n.白金
    play   v.玩,扮演,演奏
    player   n.选手,演奏者
    playground   n.运动场,操场
    playmate   n.游伴
    playwright   n.剧作家
    plea   n.请求,恳求,辩解
    plead   v.恳求,辩解
    pleasant   adj.令人愉快的
    please   v.使高兴,喜欢,请
    pleased   adj.高兴的,乐意的
    pleasure   n.快乐,乐事,乐趣
    pledge   n.暂约,抵押 v.保证
    plenary   adj.完全的
    plentiful   adj.大量的,丰富的
    plenty   n.大量,丰富
    plight   n.保证,困境
    plot   n.阴谋,情节 v.密谋
    plough   n.,v.犁
    pluck   v.拔,摘 n.勇气
    plug   n.塞子,插头 v.堵住
    plumb   v.测锤,垂直
    plumber   n.管子工
    plume   n.羽毛,羽饰
    plump   adj.丰满的
    plunder   v.,n.掠夺,抢劫
    plunge   v.插进,跳入
    plural   adj.复数的
    plus   prep.加 n.加号,正号
    ply   v.出力,努力从事
    p.m.   ()下午
    pneumatic   adj.气体的,空气的
    pneumonia   n.风湿病
    pocket   n.衣袋 adj.袖珍的
    poem   n.诗歌
    poet   n.诗人
    poetry   n.诗,诗意,诗艺
    point   n.尖,点,分 v.指
    pointed   adj.尖的
    poison   n.毒,毒药 v.放毒
    poisonous   adj.有毒的
    poke   v.戳,刺
    poker   n.扑克
    polar   adj.极的
    polarity   n.极性,极端
    pole   n.柱,杆,极
    police   n.警察()
    policeman   n.警察
    policy   n.政策,方针,保险单
    polish   v.擦亮,磨光,润色
    polite   adj.有礼貌的,客气的
    politeness   n.礼貌,客气
    political   adj.政治的
    politician   n.政治家,政客
    politics   n.政治学,政治活动
    poll   n.选举投票,民意测验
    pollute   v.污染,弄脏
    pollution   n.污染
    polymer   n.聚合物
    pond   n.池塘
    ponder   v.考虑,沉思
    pony   n.小马
    pool   n.水塘,游泳池
    poor   adj.穷的,差的
    pop   v.,n.砰的一声,爆裂
    popcorn   n.爆米花
    pope   n.教皇
    popular   adj.受欢迎的
    popularity   n.名望,知名
    popularize   v.普及,宣传
    population   n.人口
    porcelain   n.瓷,瓷器
    porch   n.门廊
    pore   n.毛孔
    pork   n.猪肉
    porridge   n.粥,麦片粥
    port   n.港口,港
    portable   adj.手提的,经便的
    porter   n.搬运工
    portion   n.一份,部分
    portrait   n.肖像,画像,描写
    portray   v.描写,给...画像
    portugal   n.葡萄牙
    portuguese   n.,adj.葡萄牙人()
    pose   v.作姿态,提供考虑
    position   n.位置,地位,处境
    positive   adj.明确的,肯定的
    positively   adv.断言地,绝对地
    possess   v.占有,拥有,控制
    possession   n.所有,财产
    possessive   adj.所有()的
    possibility   n.可能性
    possible   adj.可能的
    possibly   adv.可能,或许
    post   n.柱,职位 v.邮寄
    postage   n.邮资
    postal   adj.邮政的
    postcard   n.明信片
    posterity   n.子孙,后代
    postman   n.邮递员
    post-office   n.邮局
    postpone   v.推迟,延迟
    postponement   n.推迟
    postulate   v.假定,主张
    pot   n.罐,壶,锅
    potato   n.马铃薯,土豆
    potent   adj.有效的
    potential   adj.潜在的 n.潜力
    potentiality   n.潜在性
    poultry   n.家禽
    pound   n.英镑,磅 v.重击
    pour   v.注,灌,倒,涌出
    poverty   n.贫穷,缺乏
    powder   n.粉末
    power   n.力,动力,权力
    powerful   adj.有力的,强的
    practicable   adj.可行的
    practical   adj.实用的,可行的
    practically   adj.实际地,几乎
    practice   n.练习,习惯,实施
    practise   v.练习,习惯于做
    prairie   n.大草原
    praise   v.,n.赞美,称颂
    pray   v.祈祷
    prayer   v.祷告,祷文
    preach   v.说教,鼓吹,布道
    preacher   n.鼓吹者,宣教士
    precaution   n.预防,防备
    precede   v.在前,高于
    precedence   n.领先,优先权
    precedent   n.先例,惯例
    preceding   adj.前面的,上述的
    precious   adj.宝贵的,珍爱的
    precise   adj.精确的,严格的
    precisely   adv.精确地
    precision   n.精确,精度
    predecessor   n.前任,原有物
    predict   v.预言
    prediction   n.预言,预报
    predominance   n.优越,杰出
    predominant   adj.主要的,有势力的
    preface   n.序言,开场白
    prefer   v.较喜欢,宁愿
    preferable   adj.更喜爱的
    preferably   adv.更好地
    preference   n.偏爱(之物)
    preferential   adj.优惠的
    prefix   n.前缀
    pregnancy   n.怀孕
    pregnant   adj.怀孕的
    prejudice   n.偏见,成见
    preliminary   adj.初步的,预备的
    prelude   n.序言,前兆,序曲
    premature   adj.早熟的
    premier   n.首相,总理
    premises   n.建筑物
    premium   n.津贴
    preoccupy   v.使迷住,专心于
    preparation   n.准备,预备
    prepare   v.准备,配制
    prepared   adj.准备好的,预制的
    preposition   n.介词
    prescribe   v.命令,规定,开处方
    prescribed   adj.规定的
    prescription   n.药方
    presence   n.出席,在场
    present   adj.在场的 n.现在
    presentation   n.提出,演出
    presently   adv.不久,目前
    preservation   n.保藏,保存
    preserve   v.保护,保藏,保持
    preset   v.预先安排
    preside   v.主持
    president   n.总统,总经理,校长
    presidential   adj.总统的
    press   v.压,榨,按 n.印刷
    pressing   adj.急迫的
    pressure   n.压力,繁忙,紧迫
    prestige   n.威望,声望
    presumably   adv.也许,大概
    presume   v.假定,推测
    pretend   v.假装,佯称
    pretense   n.借口
    pretentious   adj.自负的,虚伪的
    pretty   adj.精致的,漂亮的
    prevail   v.获胜,流行
    prevailing   adj.占上风的
    prevalence   n.流行
    prevalent   adj.流行的,普遍的
    prevent   v.防止,阻碍
    prevention   n.防止,预防
    previous   adj.早先的,先前的
    previously   adv.预先,先前
    prey   n.猎物,牺牲品
    price   n.价格,代价 v.定价
    price-list   n.价格表
    pricing   n.定价
    prick   v.刺穿 n.刺痛
    pride   n.骄傲,自豪,自负
    priest   n.教士,神父
    primarily   adv.首要地,主要地
    primary   adj.首要的,初级的
    prime   adj.首要的,第一的
    primitive   adj.原始的,简朴的
    prince   n.王子,诸侯
    princess   n.公主,王妃
    principal   adj.重要的,主要的
    principally   adv.主要地
    principle   n.原则,原理,主义
    print   v.印刷,出版 n.字体
    printer   n.印刷者
    prior   adj.较早的,在前的
    priority   n.优先,居先
    prism   n.棱镜
    prison   n.监狱,牢房
    prisoner   n.囚犯
    privacy   n.私事,隐私
    private   adj.私人的,秘密的
    privilege   n.特权 v.给特权
    privileged   adj.有特权的
    prize   n.奖品,奖赏
    probability   n.可能性,概率
    probable   adj.很可能的
    probably   adv.或许,大概
    probe   v.细察,查究
    problem   n.课题,难题,问题
    problematic   adj.有问题的
    procedure   n.手续,程序
    proceed   v.前进,继续向前
    proceeding   n.进行,诉讼
    proceeds   n.收益
    process   n.程序,过程 v.处理
    processing   n.,adj.加工()
    procession   n.行列,仪仗
    proclaim   v.宣布,公布
    procure   v.采购
    procurement   n.采购
    produce   v.生产,制造,创作
    producer   n.生产者
    product   n.产品,作品
    production   n.生产,制造
    productive   adj.能生产的,多产的
    productivity   n.生产力,生产率
    profess   v.表白
    profession   n.职业,专业,表白
    professional   adj.职业的n.专业人员
    professor   n.教授
    proficiency   n.熟练,精通
    proficient   adj.熟练的,精通的
    profile   n.侧面,轮廓
    profit   n.利润 v.获益
    profitable   adj.有利可图的
    proforma   adj.形式的
    profound   adj.深奥的,深深的
    program   n.节目,规划,项目
    programer   n.项目,程序制定者
    programing   n.程序编排
    progress   n.,v.进步,进展
    progressive   adj.前进的,进步的
    prohibit   v.禁止,阻止
    prohibition   n.禁止,禁令
    prohibitive   adj.禁止的
    project   n.计划 v.设计,射出
    projection   n.射出,投射
    projector   n.电影放映机
    proletarian   adj.,n.无产阶级
    prolong   v.延长
    prominence   n.显著,突出
    prominent   adj.著名的,显著的
    promise   v.允诺,预示 n.诺言
    promising   adj.有希望的
    promissory   adj.约定的
    promote   v.提升,促进,宣传
    promotion   n.晋级,提高,促销
    prompt   adj.及时的,迅速的
    promptly   adv.及时地,敏捷地
    prone   adj.俯伏的
    pronoun   n.代词
    pronounce   v.发音,宣布
    pronunciation   n.发音
    proof   n.证明,证据,实验
    propaganda   n.宣传
    propagate   v.繁殖,传播,宣传
    propagation   n.繁殖,传播
    propel   v.推进,推动
    propellent   adj.推进的
    propeller   n.推进器,螺旋桨
    proper   adj.合适的,本来的
    properly   adv.合适地
    property   n.财产,地产,特性
    prophesy   n.预言
    prophet   n.预言家
    proportion   n.比例,部分
    proportional   adj.成比例的
    proposal   n.建议,计划
    propose   v.建议,打算,求婚
    proposition   n.建议,提议
    proprietor   n.所有者,业主
    proprietorship   n.业主资格
    prose   n.散文
    prosecute   v.迫害
    prosecution   n.迫害
    prosecutor   n.检查官
    prospect   n.前景 v.勘探
    prosperity   n.繁荣,兴旺
    prosperous   adj.繁荣的,兴旺的
    protect   v.保护,警戒
    protection   n.保护,警戒
    protectionism   n.贸易保护主义
    protective   adj.保护的
    protein   n.蛋白质
    protest   v.,n.抗议,反对
    protestant   n.清教徒,新教徒
    protocol   n.协议,议定书
    prototype   n.原型
    protracted   adj.延长了的
    proud   adj.骄傲的,得意的
    prove   v.证明,表明是
    proverb   n.谚语,格言
    provide   v.供给,提供,准备
    provided   conj.只要
    province   n.省份,领域
    provincial   adj.省级的,省的
    provision   n.准备,条款,辎重
    provisional   adj.临时的
    provocation   n.刺激,煸动
    provoke   v.激怒,引起
    proximo   adj.下月的
    prudence   n.谨慎
    prudent   adj.谨慎的
    psychological   adj.心理()的
    psychologist   n.心理学家
    psychology   n.心理学,心理状态
    public   adj.公众的,公共的
    publication   n.出版物,发表
    publicity   n.公开
    publicly   adv.公开地
    publish   v.出版,发表,公布
    publisher   n.出版商
    pudding   n.布丁
    puff   n.一阵 v.喘气
    pull   v.拖,拔, 扯 n.牵引
    pulley   n.滑轮
    pulse   n.脉搏 v.跳动
    pump   n.泵 v.抽水,打气
    pumpkin   n.南瓜
    punch   n.,v.用拳击,冲孔
    punctual   adj.准时的,守时的
    punctuality   n.准时
    punctuation   n.准时
    punish   v.处罚,惩罚
    punishment   n.处罚,刑罚
    pupil   n.小学生,瞳孔
    puppet   n.木偶,傀儡
    puppy   n.小狗
    purchase   v.,n.购买
    purchaser   n.买主
    pure   adj.纯洁的,纯净的
    purely   adv.全然,纯然
    purify   v.净化
    purity   n.纯粹,纯净
    purple   n.紫色 adj.紫色的
    purpose   n.目的,用途,意图
    purse   n.钱包
    pursuance   n.追求,实行
    pursuant   n.追逐者
    pursue   v.追逐,从事,追求
    pursuit   n.追逐,追求,职业
    push   v.推,推动 n.推力
    put   v.放置,估价,表达
    puzzle   v.使困惑 n.难题,谜语
    pyjamas   n.睡衣
    pyramid   n.金字塔
    qualification   n.资格,条件
    qualified   adj.有资格的
    qualify   v.使合格,使胜任
    qualitative   adj.质量的,定性的
    quality   n.特性,属性,质量
    quantitative   adj.数量的,定量的
    quantity   n.量,大量
    quarrel   v.,n.争吵
    quart   n.夸脱(容量单位)
    quarter   n.四分之一,一刻钟
    quarterly   adj.季度的 n.季刊
    quartz   n.石英
    quay   n.码头
    queen   n.王后,女王
    queer   adj.奇妙的,古怪的
    quench   v.抑制,熄灭,淬火
    query   v.,n.询问
    quest   n.寻找,搜索
    question   n.问题,疑问 v.询问
    questionnaire   n.调查表
    queue   n.辫子,队 v.排队
    quick   adj.快的,灵敏的
    quicken   v.加快,加速,刺激
    quickly   adv.快,迅速地
    quiet   adj.安静的,轻声的
    quietly   adv.安静地,静静地
    quietness   n.平静,安定,安静
    quilt   n.被子
    quit   v.停止,放弃,退出
    quite   adv.完全,十分,相当
    quiver   v.颤抖
    quiz   n.测验,问答比赛
    quota   n.定额,配额
    quotation   n.引语,语录,报价单
    quote   v.引用,引证,报价
    rabbit   n.兔子
    race   n.种族,竞赛 v.赛跑
    racial   adj.种族的,人种的
    rack   n.搁班,行李架
    racket   n.喧闹,球拍
    radar   n.雷达
    radial   adj.放射的,辐射的
    radiant   adj.发光的
    radiate   v.辐射,放射,发光
    radiation   n.辐射,发射
    radical   adj.基本的,激进的
    radio   n.无线电,收音机
    radioactive   adj.放射性的
    radioactivity   n.放射性
    radish   n.萝卜
    radium   n.镭
    radius   n.半径,活动范围
    rag   n.抹布,破衣服
    rage   n.盛怒,流行 v.大怒
    raid   v.袭击,搜查
    rail   n.栏杆,钢轨
    railroad   n.铁路
    railway   n.铁路,铁路公司
    rain   n.雨 v.下雨
    rainbow   n.虹
    raincoat   n.雨衣
    rainfall   n.下雨,降雨量
    rainy   adj.有雨的
    raise   v.举起,提高,唤起
    rake   n.,v.耙
    rally   n.,v.集会
    ramble   n.漫步
    ranch   n.牧场
    random   adj.胡乱的,随便的
    range   n.射程,范围,一系列
    rank   n.军衔,等级 v.排列
    rapid   adj.快的,急速的
    rapidly   adv.迅速地,急速地
    rapture   n.狂喜
    rare   adj.稀有的,罕见的
    rarely   adv.难得,少有
    rascal   n.无赖,恶棍
    rash   adj.轻率的,鲁莽的
    rat   n.老鼠,耗子
    rate   n.比率,速度,费率
    rather   adv.相当,颇,宁愿
    ratification   n.批准,认可
    ratify   v.批准,认可,追认
    ratio   n.比,比率
    ration   n.理性
    rational   adj.合理的,有理性的
    rattle   v.,n.嘎吱响
    ravage   n.破坏,暴力
    raw   adj.生的,未加工的
    ray   n.光线,射线,辐射
    razor   n.剃须刀
    re   prep.关于
    reach   v.到达,伸手,够到
    react   v.反应,起反应,反抗
    reaction   n.反应,反动
    reactionary   adj.反动的
    reactor   n.反应堆
    read   v.读,阅读,朗诵
    reader   n.读者,读本
    readily   adv.容易地,乐意地
    reading   n.读书,读数,读本
    ready   adj.准备好的,乐意的
    real   adj.真的,纯粹的
    realism   n.现实主义,写实主义
    realist   n.adj.现实主义者()
    realistic   adj.现实的,实在的
    reality   n.现实,真实性
    realization   n.实现
    realize   v.认识到,实现,执行
    really   adv.真正地,果然
    realm   n.王国,领域
    reap   v.收割,收获
    rear   n.后部 adj.后面的
    reason   n.原因,理由 v.推论
    reasonable   adj.有理的,讲理的
    reasonably   adv.合理地,适当地
    reassure   v.使...放心
    rebate   n.回扣,折扣
    rebel   v.起义,反叛
    rebellion   n.叛乱,起义
    rebuke   v.斥责
    recall   v.想到,召回,取消
    recede   v.归还,撤回
    receipt   n.收到,收据
    receive   v.收到,接待, 接见
    receiver   n.受领人,听筒
    recent   adj.近来的,新近的
    recently   adv.近来,最近
    reception   n.招待会,欢迎会
    receptionist   n.接待员
    recession   n.衰退
    recipe   n.菜谱,配方
    recipient   n.接受者
    reciprocal   adj.相互的,互易的
    recitation   n.朗诵
    recite   v.背诵,朗诵,讲述
    reckless   adj.鲁莽的
    reckon   v.数,计算,认为
    reclaim   v.收回,开垦
    recognition   n.认出,承认
    recognize   v.认出,识别,承认
    recollect   v.回忆,追想
    recollection   n.回忆
    recommend   v.推荐,介绍,劝告
    recommendation   n.推荐()
    recompense   v.,n.回报,赔偿
    reconcile   v.使和好,调停
    reconnaissance   n.探索,勘查
    record   v.记录,录音 n.记录
    recorder   n.记录员,录音机
    recourse   n.求助
    recover   v.寻回,恢复,复原
    recovery   n.寻回,恢复
    recreation   n.消遣,文娱活动
    recruit   v.招募,征兵
    recruitment   n.招募
    rectangle   n.长方形,矩形
    rectification   n.纠正
    rectify   v.纠正,订正
    recur   v.再发生,复发
    recurrence   n.再发生
    red   adj.红的 n.红色
    redeem   v.买回,赎回
    redound   v.增加,促进
    reduce   v.减少,贬为
    reduction   n.减少,缩减
    reed   n.芦苇,芦笛
    reef   n.礁石
    reel   n.卷,线轴 v.卷绕
    reexport   v.再出口
    refer   v.查阅,提及
    referee   n.裁判员
    reference   n.参考(),推荐书
    referent   n.被谈到的事
    refine   v.精炼,精制
    refined   adj.精炼的,精的
    refinement   n.精炼
    refinery   n.精炼厂
    reflect   v.反射,反映,反省
    reflection   n.反射,映象,反思
    reform   v.,n.改革,改造
    refrain   v.抑制
    refresh   v.使清醒,使振作
    refreshment   n.茶点,饮料
    refrigerator   n.冰箱
    refuge   n.藏身处,避难所
    refugee   n.难民
    refund   v.再投资,归还 n.退款
    refusal   n.拒绝,谢绝
    refuse   v.拒绝 n.渣,废物
    refute   v.驳斥,反驳
    regard   v.认为,尊重,关于
    regarding   prep.关于
    regardless   adj.,adv.不顾的()
    regime   n.政体,制度
    regiment   n.团,大量
    region   n.地区,地域,地带
    regional   adj.地区的,区域的
    regionalization   n.区域化
    regionalize   v.使区域化
    register   v.登记,注册,挂号
    registered   adj.登记的,注册的
    registration   n.登记
    regret   v.懊悔 n.遗憾
    regretful   adj.遗憾的
    regretfully   adv.遗憾地
    regrettable   adj.可遗憾的
    regular   adj.正常的,有规律的
    regularity   n.整齐,规律
    regularly   adv.整齐地,有规律地
    regulate   v.管理,调整
    regulation   n.管理,规则,法令
    rehearsal   n.排练,彩排
    rehearse   v.排练
    reign   n.统治 v.统治,盛行
    reimburse   v.偿还
    reimbursement   n.偿还,还款
    rein   n.缰绳 v.驾驭,约束
    reinforce   v.增援,加强
    reinforcement   n.加强,援兵
    reiterate   v.重申
    reject   v.拒绝
    rejection   n.拒绝
    rejoice   v.欢欣,使喜悦
    relate   v.叙述,关联,涉及
    related   adj....有关的
    relation   n.关系,得害关系
    relationship   n.关系,联系
    relative   n.亲戚 adj.有关系的
    relatively   adv.比较地,相对地
    relativity   n.相关性,相对论
    relax   v.松弛,舒张,休息
    relaxation   n.放松,松弛
    relay   v.转播,中继
    release   v.释放,透露,发行
    relevant   adj.相关的
    reliability   n.可靠性
    reliable   adj.可靠的,可依赖的
    reliance   n.依靠,信赖
    relief   n.解除,减轻,安慰
    relieve   v.解除,减轻,换班
    religion   n.宗教(信仰)
    religious   adj.宗教的,信教的
    relinquish   v.放弃
    relish   n.味道,风味
    reluctance   n.不愿,勉强
    reluctant   adj.不愿的,勉强的
    rely   v.依靠,依赖
    remain   n.依旧的,剩余,逗留
    remainder   n.剩余部分
    remains   n.剩余,遗迹,遗体
    remark   v.说起,留意,评论
    remarkable   adj.显著的,异常的
    remedy   n.药品,治疗(方法)
    remember   v.记得,想起,记住
    remembrance   n.记得,记忆
    remind   v.提醒,使想起
    reminiscence   n.回想,回忆,怀念
    reminiscent   adj.使想起...的
    remit   v.汇款,汇出
    remittance   n.汇款
    remnant   n.残余,残迹
    remote   adj.遥远的,疏远的
    remoteness   n.遥远,疏远
    removal   n.移开,除去,移居
    remove   v.移开,除去,罢免
    remuneration   n.列举
    renaissance   n.(文艺)复兴
    render   v.使得,给予,翻译
    renew   v.更新,续期
    renewable   adj.可续期的
    renewal   n.更新,续订
    rent   n.租金 v.租
    rental   adj.租借的,租金的
    repair   v.修理,纠正
    repairmen   n.修理,修补,纠正
    repay   v.偿付,报答
    repeal   v.,n.撤消,废除
    repeat   v.重复,背诵
    repeatedly   adj.重复地,一再地
    repel   v.驱逐,推开
    repent   v.后悔,悔悟
    repetition   n.重复,反复,复制
    repetitive   adj.重复的,反复的
    replace   v.归还原处,代替
    replacement   n.归回,代替()
    replenish   v.补充
    replenishment   n.补充(货物)
    reply   v.,n.回答,答复
    report   v.报告,报导,报道
    reportage   n.报告文学
    reporter   n.报告人,记者
    represent   v.表示,表现,代表
    representation   n.表示,代表
    representative   adj.代表
    reproach   v.,n.责备,指责
    reproduce   v.复制,再造,繁殖
    reproduction   n.复制()
    reptile   n.爬行动物
    republic   n.共和国
    republican   n.,adj.共和()的
    repudiate   n.拒绝接收,拒付
    reputable   adj.声誉好的
    reputation   n.名声,声誉
    repute   n.声誉 v.看作,评价
    request   n.请求
    require   v.需要,请求
    requirement   n.要求,需要
    requisite   adj.必要的,需要的
    rescind   adj.退还,取消
    rescue   v.,n.救援,救出
    research   v.,n.调查,研究
    researcher   n.调查者,研究人员
    resemblance   n.相仿,类似
    resemble   v.象,类似
    resent   v.不满于,愤恨
    resentful   adj.不满的,怨恨的
    resentment   n.不满,愤恨
    reservation   n.贮存物,预定
    reserve   v.贮备,保存,预定
    reservoir   n.水库
    reside   v.居住,存在
    residence   n.住宅,住处
    resident   n.居民
    residual   adj.剩余的
    resign   v.辞职
    resignation   n.辞职
    resist   v.抵抗,忍住
    resistance   n.抵抗,阻力,反感
    resistant   n.抵抗的,反对的
    resolute   adj.坚决的,果断的
    resolution   n.决议,决定,决心
    resolutely   adj.坚决地,果断地
    resolve   v.决定,解决,分解
    resort   v.诉诸,求助 n.胜地
    resource   n.资源,机智,策略
    respect   v.尊重,重视,尊敬
    respectable   adj.可敬的
    respectful   adj.恭敬的,尊重的
    respectfully   adv.恭敬地
    respective   adj.各自的,各个的
    respectively   adv.各自,分别地
    respond   v.答复,反应,响应
    response   v.答复,反应,响应
    responsibility   n.责任,职责
    responsible   adj.负责的,尽责的
    rest   v.休息 n.休息,休止
    restaurant   n.饭馆,餐厅
    restless   adj.没休息的,不安的
    restock   v.重新进货
    restore   v.恢复,复原,归还
    restrain   v.抑制,制止
    restraint   n.抑制,自制
    restrict   v.限制,约束
    restriction   n.限制,约束
    restrictive   n.限制的
    result   n.结果,效果,后果
    resultant   adj.结果的,合成的
    resume   v.继续,再度
    resume   n.个人简历,摘要
    retail   v.,n.零售
    retailer   n.零售商
    retain   v.保留,记忆,雇
    retell   v.复述
    retire   v.退休,退隐,就寝
    retirement   n.退休,隐居
    retort   v.反驳,回嘴
    retreat   v.,n.退却,撤退
    retroactive   adj.可追溯的
    return   v.回归,归还 n.归来
    reveal   v.揭露,透露,显示
    revenge   n.,v.报仇,报复
    revenue   n.岁入,收入
    reverence   n.尊敬,崇敬
    reverse   adj.颠倒的,相反的
    revert   v.回复到,重议
    review   v.,n.检查,复习
    revise   v.修改,校订,复习
    revision   n.修改,修订
    revival   n.复苏,再生
    revive   v.苏醒,复苏
    revoke   v.废除,取消,撤回
    revolt   n.,v.起义,反抗
    revolution   n.革命,变革
    revolutionary   adj.革命的
    revolve   v.旋转,绕行
    reward   n.报酬,酬金,报答
    rewarding   adj.有收获的
    rheumatism   n.风湿病
    rhyme   n.韵,脚韵
    rhythm   n.韵律,节奏
    rib   n.肋,肋骨
    ribbon   n.带子,缎带
    rice   n.稻子,大米,米饭
    rich   adj.富的,富饶的
    richness   n.富饶,富有
    rid   v.使摆脱,使除去
    riddle   n.谜语,谜
    ride   v.乘坐,骑 n.乘车
    ridge   n.山脉,岭,屋脊
    ridicule   n.,v.嘲笑,挖苦
    rediculous   adj.可笑的,荒谬的
    rifle   n.步枪,来福枪
    right   adj.正确的,右的
    righteous   adj.正直的,公正的
    rigid   adj.僵硬的,严厉的
    rigidity   adj.僵硬,严厉,死板
    rigor   n.严格,严肃
    rigorous   adj.严厉的,酷热的
    rim   n.边缘,眼镜架
    ring   v.鸣,打铃,打电话
    rinse   v.漂洗,润丝
    riot   n.,v.骚乱,闹事
    riotous   adj.骚乱的,喧扰的
    rip   v.撕破,扯碎
    ripe   adj.熟的,成熟的
    ripen   v.成熟,变热
    ripple   n.波纹,涟漪
    rise   v.起立,晋级,增长
    risk   n.,v.冒险,风险
    risky   adj.有风险的,冒险的
    rival   n.对手 adj.竞争的
    rivalry   n.竞争,对抗
    river   n.河,江
    road   n.道路,路
    roam   v.漫步,漫游
    roar   v.,n.吼,怒号,轰鸣
    roast   v.烤,炙 adj.烘烤的
    rob   v.抢劫,偷
    robber   n.强盗
    robbery   n.抢劫()
    robe   n.长袍
    robot   n.机器人
    robust   adj.强壮的,粗壮的
    rock   n.岩石 v.摇摆,摇晃
    rock-bottom   n.adj.(价格)最低()
    rocket   n.火箭
    rod   n.小棒,竿
    role   n.角色,作用
    roll   v.滚,卷,转动,压平
    roller   n.滚筒,压路机
    roman   adj.古罗马的n.罗马人
    romance   n.浪漫文学,浪漫故事
    romantic   adj.浪漫的,好幻想的
    romanticism   n.浪漫主义
    rome   n.罗马
    roof   n.屋顶
    room   n.房间,室,空间
    rooster   n.公鸡
    root   n.根,根源
    rope   n.绳,索
    rose   n.玫瑰,蔷薇
    rosy   adj.玫瑰红的,幻想的
    rot   v.腐烂,枯朽
    rotary   adj.旋转的
    rotate   v.旋转,循环,转流
    rotation   n.旋转,更替
    rotten   adj.腐烂的,发臭的
    rough   adj.粗糙的,粗野的
    roughly   adv.大约地,粗略地
    round   adj.圆形的adv.在周围
    roundabout   adj.迂回的,转弯抹角
    rouse   v.唤醒,惊起
    route   n.路线,航线
    routine   n.日常事务
    row   v.划船 n.排,列
    royal   adj.王室的,皇家的
    royalty   n.皇家,皇族
    rub   v.擦,摩擦,涂抹
    rubber   n.橡胶,橡皮
    rubbish   n.垃圾,废物,废话
    rude   adj.粗鲁的,下流的
    rug   n.小块地毯
    ruin   n.废墟 v.毁坏,破坏
    ruinous   adj.毁灭性的
    rule   n.法规,常规,统治
    ruler   n.统治者,直尺
    ruling   adj.统治的
    rumor   n.,v.传闻,谣言
    run   v.跑,竞选,行驶
    runner   n.奔跑者,赛跑运动员
    running   adj.连续的 n.经营
    rural   adj.农村的
    rush   v.,n.冲,冲进
    russia   n.俄罗斯,俄语
    russian   n.,adj.俄国()的
    rust   n.锈 v.生锈,衰退
    rusty   adj.生锈的
    ruthless   adj.无情的,冷酷的
    sack   n.麻袋 v.解雇
    sacred   adj.神圣的
    sacrifice   n.,v.牺牲()
    sad   adj.悲哀的,可悲的
    saddle   n.马鞍
    sadly   adv.悲哀地,可惜
    sadness   n.悲哀
    safe   adj.安全的,无风险的
    safely   adv.安全地,平安地
    safety   n.安全 adj.保险的
    sag   v.下跌
    said   adj.上述的,该
    sail   n.帆 v.行驶,开航
    sailing   adj.启航的 n.航行
    sailor   n.水手,海员
    saint   n.圣人,圣徒
    sake   n.缘故,利益
    salad   n.色拉,拌凉菜
    salability   n.适销性
    salable   adj.有销路的,适销的
    salary   n.工资,薪水
    sale   n.出售,贱卖
    sales   n.销售 adj.出售的
    salesman   n.售货员,推销员
    salmon   n.鲑,大马哈鱼
    salt   n.盐
    salty   adj.咸的
    salute   v.行礼,致敬
    salution   n.致敬
    same   adj.同样的
    sample   n.样品 v.抽样
    sampling   n.抽样
    sand   n.沙子
    sandwich   n.三明治 v.夹入
    sandy   adj.沙的,沙色的
    sanitary   n.疗养院
    santa Claus   n.圣诞老人
    sarcasm   n.讽刺,挖苦
    sarcastic   adj.讽刺的
    sardine   n.沙丁鱼
    satellite   n.卫星
    satire   n.讽刺作品
    satisfaction   n.满足,满意
    satisfactorily   adv.圆满地
    satisfactory   adj.令人满意的
    satisfy   v.满足,使满意,偿还
    saturation   n.浸透,饱和
    saturday   n.星期六
    saturn   n.土星
    sauce   n.调味汁,酱油
    saucer   n.茶碟
    sausage   n.香肠,腊肠
    savage   adj.野蛮的,残暴的
    save   v.救,拯救,储蓄
    savings   n.存款,储蓄额
    saw   v.,n.锯
    say   v.说 n.发言()
    scale   n.刻度,等级,秤
    scaly   adj.鱼鳞状的
    scan   v.浏览,细察,扫描
    scandal   n.丑闻
    scar   n.疤,疤痕
    scarce   adj.缺乏的,罕见的
    scarcely   adv.几乎没有,将近
    scarcity   n.缺乏,不足
    scare   v.惊吓 n.惊恐
    scarf   n.围巾,头巾
    scarlet   adj.n.猩红的,鲜红的
    scatter   v.散布,撒播
    scene   n.现场,情景,一场戏
    scenery   n.风景,布景
    scenic   adj.风景如画的
    scent   n.气味,香味
    schedule   n.时间表 v.排定
    scheme   n.计划,方案,图谋
    scholar   n.学者
    scholarship   n.奖学金,学问
    school   n.学校,上学,学系
    schooling   n.学校教育
    science   n.科学,学科
    scientific   adj.科学的
    scientist   n.科学家
    scissors   n.剪刀
    scoff   v.嘲笑,嘲弄
    scold   v.,n.训斥,责骂
    scope   n.范围
    scorch   v.烧焦
    scorching   adj.灼热的
    score   n.得分,成绩,二十
    scorn   n.,v.蔑视,不屑
    scornful   adj.蔑视的,轻视的
    scotch   n.苏格兰
    scotsman   n.苏格兰人
    scottish   adj.苏格兰的
    scotland   n.苏格兰
    scout   n.侦察员,童子军
    scramble   v.爬,攀,争夺
    scrap   n.碎片,废品,屑
    scrape   v.擦,刮,凑集
    scratch   v.抓破,挠 n.抓痕
    scream   v.,n.尖叫声
    screech   v.,n.尖叫()
    screen   n.屏,帘 v.甄别
    screw   v.拧 n.螺钉
    screwdriver   n.螺丝刀,改锥
    script   n.临时单据
    scrub   v.擦洗,刷
    scrutiny   n.细看,复查
    sculptor   n.雕塑家
    sculpture   n.雕塑,雕刻
    sea   n.海,海洋
    seal   v.封 n.图章,封条
    seam   n.接缝
    seaman   n.海员,水手
    seaport   n.海港,港口
    search   v.,n.搜查,寻找
    seashore   n.海滨
    seaside   n.海边
    season   n.季节 v.调味
    seasonal   adj.季节性的
    seat   n.座位,席位 v.就座
    second   num.第二 n.第二,秒
    secondary   adj.第二的,次要的
    secondhand   adj.二手的,间接的
    secondly   adv.第二,其次
    secrecy   n.秘密(状态)
    secret   adj.秘密的 n.秘密
    secretariat   n.秘书处
    secretary   n.秘书,部长,书记
    section   n.部分,区域
    sector   n.部分,部门
    secure   adj.安全的,可靠的
    security   n.安全,有价证券
    see   v.看见,明白,查看
    seed   n.种子 v.播种
    seek   v.寻觅,企图获得
    seem   v.好象,似乎
    seemingly   adv.表面上
    segment   n.部分,节,片
    seize   v.抓住,夺取,占领
    seizure   n.强占,没收
    seldom   adv.难得,不常
    select   v.挑选 adj.精选的
    selection   n.选择,选集
    self   n.自己,自身,品质
    selfish   adj.自私的,利己的
    sell   v.卖,出售
    seller   n.卖方
    seminar   n.研讨会,学术讲座
    semiconductor   n.半导体
    senate   n.参议院
    senator   n.参议员
    send   v.派遣,送,寄出,请
    sender   n.寄信人
    senior   adj.年长的,老资格的
    sensation   n.感觉,感动
    sensational   adj.轰动的
    sense   n.感官,感觉,见识
    senseless   adj.无意义的
    sensible   adj.明智的,感知的
    sensitive   adj.敏感的
    sensitivity   n.灵敏度
    sentence   n.句子 v.判决
    sentiment   n.感情,情绪
    sentimental   adj.多愁善感的
    separate   v.分离,分隔,分手
    separately   adv.分别地
    separation   n.分离,分开
    september   n.九月
    sequence   n.一连串,顺序
    serene   adj.清澈的,晴朗的
    serenity   n.晴朗
    series   n.系列,从书
    serious   adj.慎重的,严重的
    seriously   adv.严肃地,严重地
    sermon   n.布道,说教
    serpent   n.大蛇
    servant   n.仆人
    serve   v.服务,任职,服役
    service   n.服务,公共设施
    serviceable   adj.有用的,耐用的
    session   n.会议,会期,市,盘
    set   v.放,指定 n.全套
    setting   n.安置,背景,环境
    settle   v.解决,安置,支付
    settlement   n.解决,结算
    seven   num.七
    seventeen   num.十七
    seventh   num.第七,七分之一
    seventy   num.七十
    several   adj.几个
    severe   adj.严厉的,苛刻的
    severely   adv.严厉地,苛刻地
    sew   v.缝纫
    sewing-machine   n.缝纫机
    sex   n.性,性别
    sexual   adj.性的,性感的
    sexuality   n.性欲
    shabby   adj.褴褛的,不体面的
    shade   n.阴影,遮光物,浓淡
    shadow   n.影子,阴影
    shadowy   adj.有阴影的,模糊的
    shady   adj.遮阴的,背阴的
    shaft   n.柄,竖井
    shake   v.摇动,发抖,握手
    shall   v.将
    shallow   adj.浅的,浅薄的
    sham   n.赝品 v.假冒
    shame   n.羞耻,耻辱
    shameful   adj.可耻的,丢脸的
    shampoo   n.洗发香波
    shape   n.形状,轮廓 v.形成
    shapeless   adj.不定形的
    share   n.份,股份 v.分配
    shark   n.鲨鱼
    sharp   adj.锐利的,明显的
    sharpen   v.削尖,磨快
    sharpener   n.铅笔刀,磨石
    sharply   adv.尖锐地,敏锐地
    shatter   v.粉碎,毁坏
    shave   v.剃,修脸
    she   pron.她
    shear   v.剪毛,切割
    shed   v.流下 n.棚子
    sheep   n.绵羊
    sheepish   adj.胆怯的
    sheer   adj.全然的,极薄的
    sheet   n.被单,张,大片
    shelf   n.架子,搁板
    shell   n.壳,英,炮弹,外壳
    shelter   n.躲避处,庇护
    shepherd   n.牧羊人
    sheriff   n.郡长,警官
    shield   n.盾牌 v.防护
    shift   v.转变 n.转移,轮班
    shilling   n.先令
    shine   v.发光,照射,照耀
    shiny   adj.耀眼的
    ship   n.船,舰 v.船运
    shipbuilding   n.造船业
    shipmail   n.随船带交
    shipment   n.船运,一船货
    shipowner   n.船主
    shipping   n.船运,装运
    shipwreck   n.(船只)失事
    shipyard   n.船坞
    shirt   n.衬衣
    shiver   v.发抖
    shock   n.震惊,电击 v.震动
    shoe   n.鞋
    shoemaker   n.鞋匠
    shoot   v.射击,发芽 n.嫩芽
    shop   n.商店,车间
    shopkeeper   n.店主
    shopping   n.购物
    shore   n.岸,滨
    short   adj.短的,矮的
    shortage   n.缺少,不足
    shortcoming   n.短处,缺点
    shortcut   n.捷径
    shorten   v.缩短
    shorthand   n.速记
    shortly   adv.立刻,不久
    shorts   n.短裤
    short-weight   n.短装,短重
    shot   n.射击,弹丸
    should   v.应该,会
    shoulder   n.肩膀
    shout   v.,n.叫喊
    shove   v.推,推开
    shovel   n.铲子
    show   v.显示,表明 n.演出
    shower   n.阵雨,淋浴
    showroom   n.展室,陈列室
    shrewd   adj.机敏的,精明的
    shriek   v.,n.尖叫()
    shrill   v.刺耳的 v.尖叫
    shrine   n.神龛
    shrimp   n.虾
    shrink   v.收缩,畏缩
    shroud   n.遮蔽物
    shrub   n.灌木
    shrug   v.,n.耸肩
    shuffle   v.拖脚走
    shun   v.躲避,躲开
    shut   v.关闭,合拢
    shutter   n.百叶窗,快门
    shuttle   n.梭 v.穿梭
    shy   adj.害羞的,腼腆的
    sick   adj.有病的,厌恶的
    sickness   n.病
    sickle   n.镰刀
    side   n.边,面,侧面,一方
    sidewalk   n.人行道
    sideways   adv.侧面地
    siege   v.包围,围攻
    sieve   n.筛子
    sift   v.筛,细查
    sigh   v.,n.叹息,叹气
    sight   n.视力,情景
    sightseeing   n.观光,游览
    sign   n.告示,迹象,符号
    signal   n.信号 v.做手势
    signature   n.签字
    significance   n.重要性,意义
    significant   adj.重要的,有意义的
    signify   v.表示,意味
    signpost   n.路标,广告柱
    silence   n.寂静,沉默
    silent   adj.寂静的,沉默的
    silicon   n.硅
    silk   n.丝,绸 adj.丝的
    silky   adj.丝绸般的
    silly   adj.糊涂的,愚蠢的
    silver   n.银,银餐具
    similar   adj.类似的,相象的
    similarity   n.类似,相似
    simple   adj.简单的,朴素的
    simplicity   n.简单,简朴,单纯
    simplify   v.简单化
    simply   adv.简单地,仅
    simulate   v.假装,佯伪
    simultaneous   adj.同时(发生)的
    simultaneously   adv.同时地
    sin   n.罪,罪恶
    since   prep.自从 conj.既然
    sincere   adj.真诚的,诚挚的
    sincerely   adv.真诚地
    sincerity   n.真诚,诚挚
    sinful   adj.有罪的,罪恶的
    sing   v.唱
    singer   n.歌手
    single   adj.单个的,单身的
    singular   adj.非凡的,单数的
    sink   v.沉,下落 n.水槽
    sir   n.先生
    siren   n.汽笛,报警器
    sister   n.姊,妹
    sit   v.坐,栖息
    site   n.场所,场地
    sitting-room   n.起居室
    situate   v.位于,坐落在
    situation   n.形势,局面
    six   num.六
    sixteen   num.十六
    sixth   num.第六,六分之一
    sixty   num.六十
    sizable   adj.相当大的
    size   n.大小,规模,尺寸
    skate   n.冰鞋 v.滑冰
    skating   n.滑冰,溜冰
    skeleton   n.骨架
    sketch   n.素描,速写,草图
    ski   n.雪撬 v.滑雪
    skiing   n.滑雪
    skill   n.技能,技艺
    skillful   adj.熟练的
    skim   v.撇去,掠过,略谈
    skin   n.皮,皮肤 v.剥皮
    skip   v.跳过,遗漏
    skirmish   n.小冲突
    skirt   n.裙子
    skull   n.颅骨
    sky   n.天,天空
    skyrocket   v.猛涨
    skyscraper   n.摩天大楼
    slack   adj.松驰的,不景气的
    slam   v.砰地关上
    slander   n.,v.诽谤,污蔑
    slang   n.俚语
    slap   v.掌击,掴
    slaughter   v.,n.屠宰,屠杀
    slave   n.奴隶 v.做苦工
    slavery   n.奴隶制,奴役
    slay   v.屠杀
    sleep   v.,n.睡眠
    sleepy   adj.欲睡的
    sleet   n.雨加雪
    sleeve   n.袖子
    slender   adj.细长的,苗条的
    slice   n.薄片 v.切成薄片
    slide   v.滑,溜
    slight   adj.轻微的,纤瘦的
    slightly   adv.轻微地,稍稍
    slim   adj.苗条的
    slip   v.滑,滑行,溜走
    slipper   n.便鞋,拖鞋
    slippery   adj.滑的
    slit   v.割裂 n.狭口,裂缝
    slogan   n.标语,口号
    slope   v.倾斜 n.坡,坡度
    slow   adj.慢的,迟钝的
    slowdown   n.放慢,迟缓
    slowly   adj.慢慢地
    slum   n.贫民窟
    slumber   n.睡眠,微睡
    slump   n.暴跌,不景气
    sly   adj.狡猾的
    smack   n.滋味 v.劈啪地响
    small   adj.小的,不重要的
    smart   adj.聪明的,漂亮的
    smash   v.打破,粉碎,猛撞
    smell   v.,发出气味 n.气味
    smile   v.,n.微笑
    smog   n.烟雾
    smoke   v.冒烟,抽烟 n.烟
    smoker   n.抽烟者
    smoking   n.抽烟
    smooth   adj.平稳的,光滑的
    smoothly   adv.顺利地,安稳地
    smuggle   v.走私,夹带
    smuggler   n.走私者
    smuggling   n.走私
    snack   n.快餐,小吃
    snail   n.蜗牛
    snake   n.蛇
    snap   v.,n.折断()
    snatch   v.,n.抢夺,攫取
    sneak   v.偷偷地逃走、做
    sneakers   n.旅游鞋
    sneer   v.,n.嘲笑,讥笑
    sneeze   v.打喷嚏
    sniff   v.嗅,闻
    snob   n.势利小人
    snobbery   n.势利
    snobbish   adj.势利的
    snore   v.打鼾
    snow   n.雪 v.下雪
    snowman   n.雪人
    snowstorm   n.暴风雪
    snowy   adj.有雪的,下雪的
    so   adv.这样,也一样
    soak   v.浸,吸水,湿透
    soap   n.肥皂
    soar   v.急速上升,暴涨
    sob   v.,n.呜咽,啜泣
    sober   adj.清醒的,冷静的
    so-called   adj.所谓的
    soccer   n.足球
    sociable   adj.善交际的,社交的
    social   adj.社会的,社会性的
    socialism   n.社会主义
    socialist   n.adj.社会主义者、的
    society   n.社会,协会,社交界
    sociologist   n.社会学家
    sociology   n.社会学
    sock   n.短袜
    soda   n.苏打,碱,苏打水
    sodium   n.钠
    sofa   n.沙发,软椅
    soft   adj.柔软的,温和的
    soften   v.使柔软,变软
    softly   adv.柔软地,温和地
    softness   n.柔软,温和
    software   n.软件
    soil   n.土壤,国土,污秽
    solar   adj.太阳的
    soldier   n.士兵,兵
    sole   adj.唯一的,单独的
    solely   adv.唯一地,只
    solemn   adj.正式的,严肃的
    solicitor   n.律师
    solid   adj.固体的,牢固的
    solidarity   n.团结
    solitary   adj.独自的,孤独的
    solitude   n.寂寞,独居
    solo   n.独唱,独奏
    solution   n.解决,溶液
    solve   v.解答,溶解
    solvency   n.偿付能力
    solvent   adj.有偿付能力的
    some   adj.若干,某一
    somebody   pron.某人,重要人物
    somehow   adv.以某种方式
    someone   pron.有人,某人
    something   pron.某事,某物
    sometime   adv.日后,曾经
    sometimes   adv.有时,不时
    somewhat   adv.稍微,有点
    somewhere   adv.某地,到某处
    son   n.儿子
    song   n.歌,歌词,鸟鸣
    son-in-law   n.女婿
    sonnet   n.十四行诗
    sonyericsson   n.索尼愛立信通訊手機公司
    soon   adv.不久,很快,早
    soot   n.油烟,煤烟
    soothe   v.安慰,使镇定
    sophisticated   adj.复杂的,先进的
    sophistication   n.世故
    sore   adj.疼痛的,恼火的
    sorrow   n.伤心,悲哀,忧患
    sorrowful   adj.悲哀的,忧愁的
    sorry   adj.难过的,遗憾的
    sort   n.种类 v.分类,拣
    soul   v.灵魂,心灵,人
    sound   n.声,声音 v.听起来
    soup   n.汤
    sour   adj.酸的,不高兴的
    source   n.来源,出处,源泉
    south   n.,南方 adj.南方的
    southeast   n.东南()
    southern   adj.南的,南方的
    southward   adj.,adv.向南
    southwest   n.西南()
    souvenir   n.纪念品
    sovereign   n.君主 adj.主权的
    sovereignty   n.主权
    sow   v.播种,散布 n.母猪
    soy   n.酱油
    space   n.空间,太空,空地
    spacecraft   n.宇宙飞船
    spaceship   n.太空船,宇宙飞船
    spaceshuttle   n.航天飞机
    spacious   adj.广阔的,宽敞的
    spade   n.铲子,铁锹,黑桃
    spain   n.西班牙
    span   n.跨度;指距 v.跨越
    spanish   adj.,n.西班牙人()
    spare   v.腾出时间adj.备用的
    spark   n.火花,火星
    sparkle   v.发火花,闪耀
    sparrow   n.麻雀
    spatial   adj.空间的
    speak   v.说话,发言,讲
    speaker   n.说话者,发言人
    spear   n.矛,枪
    special   adj.特别的,专门的
    specialist   n.专家
    specialize   v.专攻,专门研究
    specialized   adj.专业的,专门的
    specially   adv.特地,专门地
    specialty   n.专业,专长
    species   n.物种,种类
    specific   adj.特殊的,明确的
    specification   n.规格,明细表
    specify   v.详细说明,指定
    specimen   n.标本,样本
    spectacle   n.眼镜,场面,壮观
    spectacular   adj.壮观的
    spectator   n.观众,旁观者
    spectrum   n.光谱
    speculate   v.推测,投机
    speculation   n.推测,投机
    speculator   n.投机商
    speech   n.演说,语言能力
    speed   n.速度 v.飞驰
    speedy   adj.快速的
    spell   v.拼写,咒语
    spelling   n.拼音,拼写
    spend   v.花费,消耗
    sphere   n.球体,范围,领域
    spice   n.香料,调味品
    spicy   adj.辛辣的
    spider   n.蜘蛛
    spill   v.溢出,流出
    spin   v.自转,纺
    spiral   adj.,n.螺旋()
    spirit   n.精神,心灵 n.酒精
    spiritual   adj.精神上的,心灵的
    spit   v.吐,倾吐 n.唾液
    spite   n.恶意,怨恨
    splash   v.溅,泼
    splendid   adj.辉煌的,灿烂的
    split   v.劈,分割
    spoil   v.损坏,宠坏
    spokesman   n.发言人
    sponge   n.海绵
    sponsor   n.发起人,主办者
    sponsorship   n.发起,主办
    spontaneous   adj.自发的
    spoon   n.汤匙
    spoonful   adj.一匙的量
    sport   v.运动,嬉戏
    sportsman   n.运动员
    sportsmanship   n.体育精神
    spot   n.点,斑,污点,场所
    sprain   v.,n.扭伤
    spray   n.水雾 v.喷射
    spread   v.伸开,散布,传播
    spring   v.跳跃,萌芽 n.春季
    sprinkle   v.洒,撒,不细雨
    sprout   n.幼芽 v.出芽
    spur   n.,v.刺激,鼓舞
    spy   n.间谍
    square   n.正方形,广场,平方
    squash   v.压碎 n.果子汁
    squat   v.蹲
    squeeze   v.压,榨,挤
    s. s.   n.()轮船
    squirrel   n.松鼠
    stab   v.,n.刺,戳
    stability   n.稳定性
    stable   adj.稳固的,稳定的
    stack   n.,v.推放,垛
    stadium   n.露天运动场
    staff   n.工作人员,棒子
    stage   n.舞台,阶段 v.上演
    stagger   v.蹒跚
    stagnation   n.停滞
    stain   n.污点,瑕疵 v.弄脏
    stainless   adj.无瑕的,不锈的
    stair   n.楼梯
    staircase   n.扶手楼梯
    stake   n.桩,赌注
    stale   adj.陈旧的
    stalk   n.主茎,叶柄
    stall   n.厩,货摊
    stammer   v.,n.口吃,结巴
    stamp   n.邮票,图章 v.盖章
    stand   v.站立,坐落,忍受
    standard   n.标准 adj.标准的
    standardize   v.标准化
    standing   adj.常务的 n.地位
    standpoint   n.立场,观点
    standstill   n.停顿
    staple   n.钉书钉,主要产品
    stapler   n.钉书机
    star   n.星 v.主演
    stare   n.,v.凝视
    start   v.开始,着手,发动
    starting   n.出发,开始
    startle   v.惊吓,使吃惊
    starvation   n.饥饿
    starve   v.挨饿,渴求
    state   n.状态,国家,州
    statement   n.声明,陈述
    statesman   n.政治家,国务活动家
    static   adj.静止的,静态的
    station   n.站,台 v.驻扎
    stationary   adj.固定的,稳定的
    stationery   n.文具
    statistical   adj.统计的
    statistics   n.统计()
    statue   n.雕像,铸像
    status   n.形势,身分
    statute   n.法令,章程,条例
    stay   v.停留,暂住,保持
    steadily   adv.稳固地,稳步地
    steady   adj.平稳的,稳健的
    steak   n.牛排,排骨
    steal   v.偷窃
    steam   n.汽,蒸汽 v.蒸
    steamer   n.汽船
    steel   n.钢
    steep   adj.陡峭的
    steer   v.驾驶,行驶
    stem   n.茎
    stencil   n.复写纸,蜡纸
    step   n.脚步,台阶,步骤
    stereo   n.立体声
    sterling   adj.英镑的
    stern   adj.严厉的,坚决的
    stevedore   n.码头工人
    stew   v.炖,煮 n.炖菜
    steward   n.乘务员,男仆
    stewardess   n.女乘务员,空姐
    stick   n.枝,杆,手杖 v.扎
    sticky   adj.黏的
    stiff   adj.僵硬的,生硬的
    still   adj.静止的 adv.仍旧
    stillness   n.寂静,静止
    stimulate   v.刺激,使兴奋
    stimulation   n.刺激
    sting   n.刺痛 v.刺,叮
    stink   adj.臭的
    stipulate   v.合同规定,约定
    stipulation   n.规定
    stir   v.搅拌,激起 n.骚动
    stirring   adj.动人的
    stitch   n.一针 v.缝合
    stock   n.存货,股份 v.贮存
    stocking   n.长袜
    stomach   n.胃
    stone   n.石头,石料,宝石
    stony   adj.石头多的
    stool   n.凳子
    stoop   v.弯腰,屈从 n.俯身
    stop   v.停止,终止 n.停止
    storage   n.贮藏,货栈
    store   n.商店 v.贮藏,储备
    storey   n.楼层
    storm   n.暴风雨,暴怒
    stormy   adj.有暴风雨的
    story   n.故事,小说,经历
    stout   adj.肥胖的,结实的
    stove   n.炉子,火炉
    stow   v.装载,理舱
    stowage   n.装载
    straight   adj.直的 adv.笔直地
    straightforward   adj.直爽的
    straighten   v.弄直
    strain   v.拉紧,扭伤,使紧张
    strait   n.海峡
    strand   n.()股,缕
    strange   adj.奇怪的,陌生的
    stranger   n.新人,陌生人
    strap   n.带,皮带
    strategic   adj.战略的
    strategy   n.战略,策略,计谋
    straw   n.麦杆,稻草,吸管
    strawberry   n.草莓
    stray   v.迷路 adj.走失的
    streak   n.纹理,条纹
    stream   n.小溪,流
    streamline   n.流线型 v.精简
    street   n.大街
    streetcar   n.有轨电车
    strength   n.力气,力量,强度
    strengthen   v.加强,巩固
    stress   v.,n.强调,压力
    stretch   v.伸展,拉长 n.伸展
    strict   adj.严格的,精确的
    strictly   adv.严格地,绝对
    stride   adv.阔步走 n.阔步
    strife   n.冲突,争斗
    strike   v.打,攻击,罢工
    striking   adj.引人注目的
    string   n.细绳,弦,一串
    strip   v.剥 n.窄条
    stripe   n.条纹
    strive   v.努力,奋斗
    stroke   n.敲,笔划 v.抚摸
    stroll   v.,n.散步,闲逛
    stroller   n.散步者
    strong   adj.强壮的,强烈的
    strongly   adv.强烈地,强有力地
    stronghold   n.堡垒,要塞
    structural   adj.结构的,组织上的
    structure   n.结构,构造,组织
    struggle   v.,n.斗争,奋斗
    stubborn   adj.顽固的,倔强的
    student   n.学生,研究人员
    studio   n.画室,工作间
    study   v.,n.学习,研究
    stuff   n.材料,东西 v.塞满
    stuffy   adj.闷热的,不透气的
    stumble   v.绊跌
    stump   n.树桩,残茬
    stupid   adj.愚蠢的,迟钝的
    stupidity   n.愚蠢
    sturdy   adj.健壮的
    style   n.风格,时尚,作风
    stylist   n.时装设计师
    subdivide   v.细分,再分
    subdue   v.战胜,征服
    subject   n.题目,学科,主语
    subjective   adj.主观的
    subjunctive   adj.虚拟的
    submarine   adj.海底的 n.潜水艇
    submerge   v.浸没,淹没
    submit   v.服从,呈交
    subordinate   adj.下级的,辅助的
    subordination   n.服从
    subscribe   v.订购,订阅
    subscription   n.预订,订购
    subsequence   n.后果
    subsequent   adj.以后的,后起的
    subsequently   adv.后来,其后
    subsidiary   adj.辅助的,次要的
    substance   n.物质,实质
    substantial   adj.可观的,实质的
    substantiate   v.证实
    substitute   n.,v.代替,代用品
    substitution   n.代替
    subtle   adj.敏锐的,微妙的
    subtract   v.减去
    subtraction   n.减法,减去
    suburb   n.郊区,郊外
    suburban   adj.郊区的
    subway   n.地铁
    succeed   v.成功,后继
    success   n.成功
    successful   adj.成功的
    successfully   adv.成功地
    succession   n.接连,继任
    successive   adj.接连的,连续的
    successor   n.继承人,继任者
    such   adj.这样的,如此的
    suck   v.吮,咂
    sudden   adj.突然的,意外的
    suddenly   adv.突然,忽然
    suffer   v.遭受,受苦,忍受
    suffering   n.苦难
    suffice   v.足够,满足需要
    sufficient   adj.充足的,充分的
    sufficiently   adv.充分地,足够地
    suffix   n.后缀
    sugar   n.糖
    suggest   v.建议,暗示
    suggestion   n.建议,示意
    suicide   n.自杀
    suit   n.一身西服,起诉
    suitable   adj.合适的,适宜的
    suitcase   n.手提箱
    suite   n.随员,一套(房间)
    sullen   adj.板着脸的
    sultry   adj.闷热的
    sum   n.总数,会计 v.总结
    summarize   v.概括,总结
    summary   n.概要 adj.概括的
    summer   n.夏季
    summit   n.顶峰,最高点
    summon   v.,n.召唤,召集
    sun   n.太阳,阳光
    sunburn   v.晒黑
    sunday   n.星期日
    sunflower   n.葵花
    sunlight   n.阳光
    sunny   adj.向阳的,晴朗的
    sunrise   n.日出
    sunset   n.日落
    sunshine   n.日照,日光
    super   adj.特级的,超级的
    superb   adj.华丽的,超等的
    superficial   adj.表面的,肤浅的
    superinrtendent   n.管理人,负责人
    superior   adj.优良的,上级的
    superiority   n.优越()
    supermarket   n.超级市场
    supersede   v.代替
    supersonic   adj.超音速的
    superstition   n.迷信
    superstitious   adj.迷信的
    supervise   v.管理,监督,监考
    supervision   n.监督
    supervisor   n.监考人,监查
    supper   n.晚餐
    supplement   n.,v.增补,补充
    supplementary   adj.补充的
    supplier   n.供应商
    supply   v.供应,供给
    support   v.支持,资助,支援
    supporter   n.支持者
    suppose   v.猜想,假设
    supposing   conj.假使
    suppress   v.镇压,压制,遏止
    suppression   n.镇压,压制
    supreme   adj.最高的
    surcharge   n.附加费,超载
    sure   adj.有把握的,一定的
    surely   adv.一定,肯定,谅必
    surface   n.表面 adj.表面的
    surge   n.,v.汹涌,波动
    surgeon   n.外科医生
    surgery   n.外科()
    surmise   v.,n.猜想,推测
    surname   n.姓
    surpass   v.超过,胜过
    surplus   n.过剩 adj.剩余的
    surprise   v.使惊诧 n.惊奇
    surprising   adj.惊人的
    surrender   v.放弃,交出,投降
    surround   v.包围
    surroundings   n.环境,周围事物
    survey   v.视察,测量 n.调查
    surveyor   n.调查人,检验人
    survival   n.幸存,遗风
    survive   v.幸免于,幸存
    survivor   n.幸存者
    suspect   v.怀疑 n.嫌疑犯
    suspend   v.吊,悬,暂停,停学
    suspense   n.暂停,中止
    suspicion   n.怀疑,嫌疑
    suspicious   adj.可疑的,猜疑的
    sustain   v.支撑,遭受
    swallow   n.燕子 v.吞咽
    swamp   n.沼泽
    swan   n.天鹅
    swarm   n.群 v.云集
    sway   v.摇晃,影响
    swear   v.宣誓,诅咒
    sweat   v.出汗 n.汗水
    sweater   n.运动衫,毛衣
    swede   n.瑞典人
    sweden   n.瑞典
    swedish   adj.,n.瑞典人()
    sweep   v.扫除,席卷
    sweet   adj.甜的,甜蜜的
    sweeten   v.变甜,加糖
    sweetheart   n.心肝,宝贝
    sweetness   n.甜味
    swell   v.膨胀,肿
    swift   adj.快的,迅速的
    swim   v.游泳,游
    swing   v.摇摆 n.秋千
    swiss   n.瑞士人
    switch   v.转换 n.开关
    switzerland   n.瑞士
    sword   n.剑
    syllable   n.音节
    symbol   n.象征,符号
    symbolize   v.象征
    symmetric   adj.对称的,匀称的
    symmetry   n.对称
    sympathetic   adj.同情的,有共鸣的
    sympathize   v.同情
    sympathy   n.同情,同感,共鸣
    symphony   n.交响乐
    symposium   n.座谈会,学术讨论会
    symptom   n.症状,征兆
    synonym   n.同义词
    synthesis   n.综合,合成
    synthetic   adj.合成的,人造的
    system   n.系统,体制,制度
    systematic   adj.系统的,有组织的
    systematically   adv.有系统地
    table   n.桌子,表格
    tablet   n.药片
    tabulate   v.制表,将...列表
    tack   n.图钉
    tackle   n.用具,辘轳 v.抓住
    tact   n.机敏,圆滑
    tactful   adj.机智的,老练的
    tactics   n.战术,策略
    tag   n.标签,货签
    tail   n.尾巴,尾部
    tailor   n.裁缝 v.缝制
    take   v.拿,带,吃,乘
    take-off   n.起飞
    tale   n.故事
    talent   n.人才,天资
    talk   v.谈话 n.讲话,会谈
    talkative   adj.罗嗦的
    tall   adj.高的
    tally   v.吻合,符合
    tame   v.驯养,制报
    tan   n.黄褐色 v.鞣草
    tangle   v.缠绕,纠缠
    tank   n.油箱,水箱,坦克
    tanker   n.油轮
    tap   v.叩击 n.轻敲
    tape   n.条,带,磁带
    tape-recorder   n.录音机
    tape-recording   n.录音
    tar   n.沥青,柏油
    target   n.目标,对象,靶
    tare   n.皮重
    tariff   n.关税
    task   n.工作,任务
    taste   n.味道,趣味 v.品尝
    tasteful   adj.有滋味的,好吃的
    tax   n.税 v.征税
    taxation   n.(总称),税务
    taxi   n.出租汽车
    tea   n.茶,茶叶
    teach   v.教,教书,教导
    teacher   n.教员,老师
    teaching   n.教学,教导
    teacup   n.茶杯
    team   n.小队 v.协同工作
    teapot   n.茶壶
    tear   n.眼泪 v.撕,拔
    tease   v.取笑,逗乐
    technical   adj.技术的,技能的
    technician   n.技术员,技师
    technique   n.技术,技巧
    technological   adj.技术的,工艺的
    technology   n.技术,工艺
    tedious   adj.腻烦的,乏味的
    teenager   n.(十几岁的)少年
    teens   n.十多岁
    telefax   n.传真 v.发传真
    telegram   n.电报
    telegraph   n.电报
    telephone   n.电话 v.打电话
    telescope   n.望远镜
    television   n.电视,电视机
    telex   n.电传 v.发电传
    tell   v.告诉,讲,说出
    teller   n.出纳
    temper   n.情绪,脾气
    temperature   n.温度,体温
    temple   n.庙,寺院,太阳穴
    temporary   adj.暂时的,临时的
    tempt   v.引诱,诱惑
    tempatation   n.诱惑,引诱
    ten   num.十
    tenant   n.房客,承租人
    tend   v.趋向,照料,投标
    tendency   n.趋势,倾向
    tender   n.投标人 adj.温柔的
    tenis   n.网球
    tenor   n.(支票)限期
    tense   adj.紧张的 v.拉紧
    tension   n.紧张状态,张力
    tent   n.帐篷
    tentative   adj.试探性的
    tenth   num.第十,十分之一
    term   n.期限,学期,术语
    terminable   adj.可终止的
    terminal   n.终点 adj.末端的
    terminate   v.终止,结束
    termination   n.终止,结束
    terminology   n.术语(总称)
    terrace   n.平台,台阶
    terrible   adj.可怕的,极度的
    terribly   adv.可怕地,极
    terrific   adj.了不起的,极好的
    terrify   v.惊吓,使恐怖
    territory   n.领土,领域,地区
    terror   n.恐怖,令人恐怖的事
    terrorism   n.恐怖主义
    terrorist   n.恐怖分子
    test   v.,n.测验,试验
    testify   v.证明,证实
    testimony   n.证据
    text   n.正文,课文,原文
    textbook   n.课本,教科书
    textile   n.纺织品
    textual   adj.课文的,正文的
    than   conj.比,除...外
    thank   v.谢谢,感谢
    thankful   adj.感谢的,欣慰的
    thanks   n.感谢 int.谢谢
    thanksgiving day   ]n.感恩节
    that   adj.,那个 adv.那么
    the   (定冠词)那,这
    theatre   n.剧场,戏剧,舞台
    theatrical   adj.戏剧的
    theft   n.偷盗
    their   adj.他们的,它们的
    them   pron.()们,它们
    theme   n.主题,题目
    themselves   pron.他们、它们自己
    then   adv.当时,然后,那么
    theoretical   adj.理论的
    theory   n.理论,学说
    there   adv.那里,到那里
    thereafter   adv.此后,其后
    thereby   adv.因此,由此
    therefor   adv.为此
    therefore   adv.因而,所以
    therefrom   adv.由此
    therein   adv.在那里,其中
    thereof   adv.及其,由此,它的
    thereon   adv.关于那
    therewith   adv.对此
    thermometer   n.温度计
    these   pron.这些
    thesis   n.论文
    they   pron.()们,它们
    thick   adj.厚的,浓的
    thicken   v.加厚,变浓
    thickness   n.厚,厚度,浓
    thief   n.窃贼,小偷
    thigh   n.大腿
    thin   adj.薄的,瘦的
    thing   n.东西,事情
    think   v.想,相信,认为
    thinking   n.思想
    thinker   n.思想家
    third   num.第三,三分之一
    thirst   n.渴,渴望
    thirsty   adj.渴的,渴望的
    thirteen   num.十三
    thirty   num.三十
    this   adj.,pron.这,这个
    thorn   n.刺,荆棘
    thorough   adj.充分的,彻底的
    thoroughly   adv.充分地,彻底地
    those   pron.,adj.那些
    though   conj.虽然,可是
    thought   n.想法,思想,关怀
    thoughtful   adj.深思的,体贴的
    thoughtless   adj.轻率的,粗心的
    thousand   num.千
    thrash   v.抽打
    thread   n.线,思路
    threat   n.恐吓,威胁
    threaten   v.恐吓,威胁
    three   num.三
    threshold   n.开端,门槛
    thrift   n.节俭
    thrifty   adj.节俭的
    thrill   v.发抖 n.激动
    thriller   n.惊险小说,电影
    thrive   v.兴旺,繁荣
    throat   n.咽喉
    throne   n.王位
    throng   n.一群人 v.挤满
    through   prep.通过,借助
    throughout   prep.贯穿 adv.全部
    throw   v.,n.投,扔,抛
    thrust   v.强推,插入,刺
    thumb   n.拇指
    thumbtack   n.按钉,图钉
    thunder   n.雷 v.隆隆响
    thunderstorm   n.雷雨
    thursday  ]n.星期四
    thus   adv.如此,这样,因而
    tick   n.滴答声 v.打勾号
    ticket   n.票,标签,价目单
    tickle   v.挠,搔,逗乐
    tide   n.潮汐,潮流 v.度过
    tidy   adj.整齐的,整洁的
    tie   v.捆,打结 n.领带
    tie-up   n.(资金)占用,冻结
    tiger   n.虎
    tight   adj.紧的,密封的
    tighten   v.拉紧
    tightly   adv.紧紧地,紧密地
    tigress   n.母虎
    tile   n.瓦,瓷砖
    till   prep.直到
    tilt   v.,n.倾斜
    timber   n.木材
    time   n.时间,时候,次数
    timely   adj.及时的
    timetable   n.时刻表,时间表
    timid   adj.胆怯的,害羞的
    tin   n.锡,锡器
    tiny   adj.微小的
    tip   n.梢,尖,小费
    tiptoe   v.用脚尖走
    tire   v.疲劳,厌倦
    tired   adj.疲劳的,厌倦的
    tiresome   adj.使人厌倦的
    tissue   n.组织,卫生纸
    title   n.标题,题目,称号
    to   prep.向,到
    toad   n.蟾蜍,癞蛤蟆
    toast   n.烤面包,祝酒 v.烘
    tobacco   n.烟草
    today   adv.今天,现在 n.今日
    toe   n.脚趾,鞋头
    together   adv.共同,一起,同时
    toil   v.苦干
    toilet   n.卫生间,便桶
    token   n.象征,纪念章
    tolerable   adj.可容忍的
    tolerance   n.宽容,容忍
    tolerant   adj.宽容的,宽大的
    tolerate   v.容忍,宽容
    toll   n.税
    tomato   n.蕃茄,西红柿
    tomb   n.坟
    tombstone   n.墓碑
    tomorrow   n.明天 adv.在明天
    ton   n.吨
    tone   n.语气,腔调,市况
    tongue   n.舌,语言
    tonight   n.今晚 adv.在今晚
    tonnage   n.吨位,吨数
    tonne   n.公吨
    too   adv.也,非常
    tool   n.工具,手段
    tooth   n.牙齿
    toothache   n.牙疼
    toothbrush   n.牙刷
    toothpaste   n.牙膏
    top   n.顶,盖子 v.高于
    topic   n.课题,主题
    torch   n.火炬,手电筒
    torment   v.,n.折磨,虐待
    torpedo   n.鱼雷
    torrent   n.激流,山洪
    tortoise   n.龟
    torture   v.,n.拷打,折磨
    toss   v.向上扔,颠簸,辗转
    total   adj.总 n.总和,合计
    totally   adv.统统,完全地
    touch   v.碰,接触,触动
    tough   adj.坚韧的,难嚼烂的
    tour   n.,v.旅行,周游
    tourism   n.旅游业
    tourist   n.旅游者,游客
    tow   v.,n.拖,牵引
    toward   prep.向,对于,将近
    towel   n.毛巾
    tower   n.塔 v.高耸
    town   n.市镇,城市,闹市
    toy   n.玩具
    trace   n.痕迹,微量 v.追踪
    track   n.径赛,轨道,路径
    tractor   n.拖拉机
    trade   n.贸易,交换 v.经商
    trader   n.商人
    trademark   n.商标
    tradesman   n.商人
    tradition   n.传统,惯例
    traditional   adj.传统的
    traffic   n.交通,交易,运输
    tragedy   n.悲剧,惨事,灾难
    tragic   adj.悲剧的,悲惨的
    trail   v.拖曳,尾随 n.踪迹
    train   n.列车,一列 v.训练
    trainee   n.受训练者
    trainer   n.教练
    training   n.训练
    traitor   n.叛徒
    tram   n.有轨电车
    tramp   n.跋涉,流浪者
    trample   v.践踏,蹂躏
    tranquil   adj.平静的,安宁的
    transact   v.交易
    transaction   n.交易
    transfer   v.转移,转让
    transferable   adj.可转让的
    transform   v.转变,转化
    transformation   n.转化,转变
    transformer   n.变压器
    transcient   adj.短暂的,瞬时的
    transistor   n.晶体管(收音机)
    transit   v.运输,转运
    transition   n.过渡,转变
    translate   v.翻译
    translation   n.翻译,译文
    translator   n.译音
    transmission   n.传送,播送
    transmit   v.传播,传导,发射
    transparent   adj.透明的
    transplant   v.移植
    transport   v.运送 v.运输
    transportation   n.运输,交通
    transship   v.转运,转船
    transshipment   n.转运
    transverse   adj.横向的,横断的
    trap   n.陷井,圈套 v.诱捕
    traverse   n.,v.横断,横过
    travel   v.旅行,传导
    traveler   n.旅行者
    tray   n.托盘
    tread   v.踩,践踏
    treason   n.谋反,叛国
    treasure   n.财宝,珍宝 v.珍藏
    treasurer   n.司库
    treat   v.对待,医治,论述
    treatment   n.待遇,疗法
    treaty   n.条约
    tree   n.树
    tremble   v.哆嗦,发抖
    tremendous   adj.巨大的,惊人的
    trench   n.沟,壕
    trend   n.走向,趋势
    trial   n.审讯,尝试,试验
    triangle   n.三角()
    triangular   adj.三角形的,三方的
    tribe   n.部落
    tribute   n.颂词,献礼
    trick   n.诡计,骗局,伎俩
    trickle   v.滴下,流下
    tricky   adj.巧妙的,狡猾的
    trifle   n.小事,琐事
    trigger   n.扳机 v.触发
    trim   v.修剪,修整
    trip   n.旅行,远足
    triple   adj.三倍的,三重的
    triplicate   n.一式二份
    triumph   n.胜利 v.战胜
    triumphant   adj.得胜的,得意的
    trivial   adj.琐碎的
    trolley   n.手推车,电车
    troop   n.队,军队
    tropic   n.回归线,热带
    tropical   adj.热带的
    trot   v.,n.小跑,快步走
    trouble   n.,v.麻烦
    troublesome   adj.讨厌的,麻烦的
    trousers   n.裤子
    truck   n.卡车,载重汽车
    true   adj.真实的,真正的
    truly   adv.真正地,确实
    trumpet   n.喇叭
    trunk   n.树干,躯干,皮箱
    trust   n.v.委托,信任,信托
    truth   n.真相,真理
    truthful   adj.诚实的,真正的
    try   v.尝试,审讯 n.尝试
    tub   n.浴  缸,木盆
    tube   n.管子,试管
    tuberculosis   n.结核,肺结核
    tuck   v.卷起,塞进
    tuesday   ]n.星期二
    tug   v.,n.用力拖,拖船
    tuition   n.学费
    tulip   n.郁金香
    tumble   v.跌倒,摔跤,打滚
    tumult   n.骚动,暴动,吵闹
    tuna   n.金枪鱼
    tune   n.调子 v.调谐
    tunnel   n.隧道,地道,坑道
    turbine   n.汽轮机,涡轮机
    turbulent   adj.骚动的
    turk   ]n.土耳其人
    turkey   n.火鸡adj.,n.土耳其
    turn   v.转向,旋转 n.轮流
    turning   n.拐角 adj.旋转的
    turnip   n.萝卜
    turnover   n.周转,营业额
    turtle   n.海龟
    tutor   n.辅导教师
    twelfth   num.第十二
    twelve   num.十二
    twentieth   num.第二十
    twenty   num.二十
    twice   adv.两次,两倍
    twig   n.细枝
    twilight   n.黎明,黄昏,微亮
    twin   n.,adj.孪生()
    twinkle   v.,n.闪烁,眨眼
    twist   v.拧,扭,搓,歪曲
    two   num.二
    type   n.类型,典型 v.打字
    typewriter   n.打字机
    typhoon   n.台风
    typical   adj.典型的
    typist   n.打字员
    tyranny   n.暴政,暴行
    tyrant   n.暴君,专制
    tyre   n.轮胎
    ugly   adj.丑恶的,丑陋的
    ulcer   n.溃疡
    ultimate   adj.最终的,极限的
    ultimately   adv.最后,终究
    ultimo   adj.上月的
    ultrasonic   adj.超声速的
    ultraviolet   adj.紫外的
    umbrella   n.伞,保护伞
    unable   adj.不能的,不会的
    unacceptable   adj.不能接受的
    unaccommodating   adj.不青通融的
    unaffordable   adj.买不起的
    unanimous   adj.一致的
    unavoidable   adj.不可避免的
    unbearable   adj.不可忍受的
    uncertain   adj.不确定的,易变的
    uncertainty   n.不定,易变
    uncle   n.伯、叔、舅、姑父
    uncomfortable   adj.不舒服的
    uncommon   adj.罕见的,不常见的
    unconditionally   adv.无条件地
    unconscious   adj.无知觉的
    uncover   v.揭开
    under   prep....下面
    underestimate   v.低估
    undergo   v.经受,经历
    undergraduate   n.本科生
    underground   adj.地下的,秘密的
    underline   v....下划线,强调
    underlying   adj.根本的,在下面的
    undermentioned   adj.下述的
    undermine   v.破坏
    underneath   prep.,adv....下面
    undersigned   adj....下面签名的
    understand   n.了解,懂,熟悉
    understanding   n.理解,谅解
    undertake   v.从事,承担
    undertaking   n.事业,许诺
    underwear   n.内衣
    underwriter   n.保险商,承购人
    undo   v.解开,取消
    undoubtedly   adv.无容置疑地
    undue   adj.过分的,不适当的
    unduly   adv.过分地,不适当地
    uneasy   adj.不自在的,担心的
    unemloyment   n.失业
    unexpected   adj.意外的,未料到的
    unfair   adj.不公平的
    unfit   adj.不合适的
    unfold   v.展示,摊开
    unfortunate   adj.不幸的,遗憾的
    unfortunately   adv.不幸地,不凑巧
    unhappy   adj.不幸福的
    uniform   adj.均匀的,统一的
    uniformly   adv.单调地,一样地
    uninterested   adj.不感兴趣的
    union   n.联合,联盟,联合会
    unique   adj.唯一的
    unit   n.单位,个体
    unite   v.统一,联合,团结
    united   adj.联合的
    united kingdom   n.英国,联合王国
    united nations   n.联合国
    united states   n.美国,合众国
    unity   n.统一,团结
    universal   adj.宇宙的,普遍的
    universally   adv.普遍地
    universe   n.宇宙
    university   n.大学
    unjust   adj.不公正的
    unkind   adj.不仁慈的,冷酷的
    unknown   adj.未知的 n.未知物
    unlawful   adj.不合法的,违法的
    unless   prep.除非
    unlike   adj.不同的
    unlikely   adj.未必的,不象的
    unlimited   adj.无限的
    unload   v.卸货,卸除
    unlock   v.开启,揭开
    unlucky   adj.不幸的,倒霉的
    unmerchantable   adj.无销路的
    unnecessary   adj.不必要的
    unobtainable   adj.无法得到的
    unpaid   adj.未付的
    unpleasant   adj.令人不愉快的
    unprecedented   adj.前所未有的
    unprecedentedly   adv.空前地
    unreasonable   adj.不合理的,贵的
    unsalable   adj.不好销售的
    unsatisfactory   adj.不令人满意的
    unstable   adj.不稳定
    unsuitable   adj.不适宜的
    untie   v.解开
    until   prep.,conj....为止
    unusable   adj.无法使用的
    unusual   adj.不寻常的
    unwarranted   adj.无根据的
    unwelcome   adj.不受欢迎的
    unwilling   adj.不愿意的
    unworkable   adj.行不通的
    up   adv.向上,起床
    upcreep   n.(价格)上涨
    uphold   v.支持,维持
    upon   prep....之上
    upper   adj.上部的,较高的
    upright   adj.直立的,正直的
    uproar   n.喧闹,轰鸣
    upset   v.倾覆,打乱,使心烦
    upside   n.上面,上部
    upside-down   adj.颠倒的,倒置的
    upstairs   adv.在楼上,往楼上
    up-to-date   adj.时新的,最近的
    upward   adv.,adj.向上()
    uranium   n.铀
    urban   adj.都市的,城市的
    urge   v.敦促,推动 n.冲动
    urgent   adj.紧迫的,紧急的
    urgently   adv.紧急地
    us   pron.我们(宾格)
    usage   n.使用,惯用法
    use   v.使用 n.用途,利用
    useful   adj.有用的,有益的
    usefulness   n.用处,有效性
    useless   adj.无用的
    user   n.使用者,用户
    usual   adj.通常的,习惯性的
    usually   adv.通常,平常
    utensil   n.用具,器皿
    utility   n.效用,公用事业
    utilization   n.利用
    utilize   v.利用
    utmost   adj.最大的,最高的
    utter   v.,发声 adj.完全的
    utterance   n.说话
    vacacy   n.空缺,空位
    vacant   adj.空的,闲置的
    vacation   n.假期
    vaccinate   v.接种疫苗
    vaccination   n.接种
    vacuum   n.真空
    vague   adj.含糊的,不清楚的
    vain   adj.徒然的,自负的
    vainly   adv.徒劳地
    valian   n.坏蛋
    valid   adj.正当的,有效的
    validity   n.有效,确实
    valley   n.山谷
    valuable   adj.宝贵的,有价值的
    value   n.价值 v.评价,估价
    valued   adj.宝贵的
    valve   n.阀门
    van   n.小货车,面包车
    vanish   v.消失,消散
    vanity   n.虚荣心,浮华
    vapor   n.水汽,蒸汽
    variable   adj.可变的 n.变量
    variance   n.分歧,不一致
    variant   adj.不同的,不一致的
    variation   n.变化,变更
    varied   adj.不同的
    variety   n.多样(),品种
    various   adj.各种各样的
    varnish   n.清漆
    vary   v.变化,使多样化
    vase   n.花瓶
    vast   adj.巨大的,宏大的
    vault   n.拱顶
    vegetable   n.蔬菜,植物
    vehicle   n.运载工具
    veil   n.面纱,账,托辞
    vein   n.静脉,矿脉,脉
    velocity   n.速度,速率
    velvet   n.丝绒 adj.柔软的
    vender   n.商贩
    vengeance   n.报复,复仇
    ventilate   v.换气,自由讨论
    ventilation   n.通风
    venture   n.,v.冒险
    venus   n.金星
    verb   n.动词
    verbal   adj.文字的,口头的
    verge   n.边缘,界限
    verification   n.检验
    verify   v.检验,证实
    versatile   adj.多才多艺的
    verse   n.诗,韵文
    version   n.译文,译本,看法
    versus   prep.对
    vertical   adj.垂直的
    very   adv.很,非常
    vessel   n.船只,容器,血管
    vest   n.背心,汗衫
    veteran   n.老手,老兵
    veto   v.,n.否决()
    vex   v.使烦恼
    via   prep.经由,取道
    vibrate   v.振动,战栗
    vibration   n.振动,颤动
    vice   n.坏事,恶习
    vicinity   n.邻近,附近,接近
    vicious   adj.邪恶的,不道德的
    victim   n.受害者
    victorious   adj.胜利的,成功的
    victory   n.胜利
    video   adj.电视的,视频的
    view   n.视域,景色,见解
    viewer   n.观察者,电视观众
    viewpoint   n.观点,看法
    vigor   n.活动,精力,元气
    vigorous   adj.精力旺盛的
    villa   n.别墅
    village   n.村庄
    villain   n.坏蛋
    vine   n.藤,葡萄树
    vinegar   n.醋
    violate   v.违犯,违背
    violation   n.违犯,侵犯
    violence   n.猛烈,暴力,暴行
    violent   adj.猛烈的,暴力的
    violet   n.紫罗兰,紫色
    violin   n.小提琴
    virgin   adj.处女的 n.处女
    virtual   adj.实质上的
    virtually   adj.几乎,差不多
    virtue   n.善,美德,优点
    virus   n.病毒
    visa   n.签证
    viscous   adj.粘的
    visible   adj.看得见的
    vision   n.视觉,视力,想象力
    visit   v.,n.访问,参观
    visitor   n.客人,来宾,来访者
    visual   adj.视觉的
    vital   adj.必不可少的
    vitamin   n.维生素
    vivid   adj.鲜艳的
    vividly   adv.生动地
    vividness   n.生动()
    vocabulary   n.词汇,词汇表、量
    vocation   n.职业
    vogue   n.时尚,时髦
    voice   n.声音,嗓音 v.吐露
    voiceless   adj.无声的
    void   adj.空的,无效的
    volcano   n.火山
    volley   n.,v.齐射
    volleyball   n.排球
    volt   n.伏特
    voltage   n.电压
    volume   n.卷,册,量,体积
    voluntary   adj.自愿的,志愿的
    volunteer   n.志愿者 v.志愿
    vote   n.投票(),得票数
    voter   n.投票人,选举人
    voting   adj.有投票权的
    vouch   v.担保
    voucher   n.凭证,收据
    vow   v.,n.许愿,发誓
    vowel   n.元音
    voyage   n.,v.航行
    vulgar   adj.低级趣味的
    vulnerability   n.易损性
    vulnerable   adj.晚受损害的
    wade   v.消,跋涉
    wag   v.摇,摆
    wage   n.工资 v.进行
    wagon   n.货车
    waist   n.()
    wait   v.等候,伺候
    waiter   n.服务员,侍者
    waitress   n.女服务员
    waive   v.放弃(要求、权利)
    wake   v.醒来
    waken   v.唤醒,使觉醒
    walk   v.步行,走 n.散步
    walker   n.步行者,散步者
    wall   n.墙壁
    wallet   n.钱夹
    walnut   n.核桃
    wander   v.徘徊,离题,迷失
    want   v.想要,通辑 n.缺乏
    war   n.战争,斗争
    ward   n.病房,牢房
    wardrobe   n.衣柜
    ware   n.货物
    warehouse   n.仓库,货栈
    warehousing   n.仓储
    warfare   n.战争(状态)
    warm   adj.温暖的,热情的
    warmly   adv.热烈地,热情地
    warmth   n.温暖,暖和,热烈
    warn   v.警告,预先通知
    warning   n.警告
    warrant   n.许可证,正当理由
    warranted   adj.担保的
    warranty   n.担保,保证
    warrior   n.勇士,战士
    warship   n.军舰
    wash   v.洗,冲走
    washing-machine   n.洗衣机
    wasp   n.黄蜂,马蜂
    waste   v.浪费 n.垃圾,废料
    wasteful   adj.浪费的,挥霍的
    watch   v.观看,看过 n.手表
    watchful   adj.注意的,警惕的
    water   n.水 v.浇水,垂涎
    waterfall   n.瀑布
    waterfront   n.水边,滩
    waterproof   adj.防水的
    watertight   adj.不透水的
    watery   adj.水汪汪的,淡的
    watt   n.瓦特
    wave   n.波浪,波 v.挥手
    wavelength   n.波长
    waver   n.晃动,动摇
    waving   adj.波浪状的
    wax   n.蜡 v.打蜡
    way   n.方法,路,方向
    we   pron.我们
    weak   adj.弱的,差的
    weakness   n.弱点,软弱
    wealth   n.财富,丰富
    wealthy   adj.富裕的,富庶的
    weapon   n.武器
    wear   v.穿,戴,磨损,耐久
    weary   adj.疲倦的
    weather   n.天气 v.经受住
    weave   v.编织
    weaver   n.织布工,编织者
    web   n.网,蛛网,圈套
    wedding   n.婚礼
    wedge   n.楔子,起因 v.楔住
    wednesday   n.星期三
    weed   n.杂草 v.除草,清除
    week   n.星期,周,工作周
    weekday   n.工作日
    weekend   n.周末
    weekly   adj.每周的 n.周刊
    weep   v.哭泣,哀悼
    weigh   v....,称,权衡
    weight   n.重量,重担,重物
    welcome   adj.受欢迎的 v.欢迎
    weld   v.焊接
    welfare   n.福利
    well   n.井 adv.好,充分
    well-known   adj.有名的,著名的
    west   n.西方 adj.向西的
    western   adj.西的,西方的
    westerner   n.西方人,欧美人
    westward   adj.,adv.向西()
    wet   adj.湿的,多雨的
    whale   n.鲸
    whaling   n.捕鲸()
    wharf   n.码头,停泊处
    what   pron.什么 adj.什么的
    whatever   pron.无论什么
    wheat   n.小麦
    wheel   n.轮,车轮
    when   adv.何时
    whenever   conj.无论何时
    where   adv.哪里
    whereabouts   n.下落
    whereas   conj.而,却
    whereby   adv.借此
    wherein   adv.在何处
    wherever   adv.无论哪里
    whether   conj.是否,还是...
    which   pron.,adj.哪个,那个
    whichever   pron.无论哪个
    while   n.一会儿 conj...时
    whilst   conj....时,尽管
    whip   v.抽打,搅 n.鞭子
    whirl   v.,n.旋转,飞转
    whisker   n.络腮胡子
    whisky   n.威士忌洒
    whisper   v.,n.耳语,发飒飒声
    whistle   v.吹哨,鸣笛,啸叫
    white   adj.白的 n.白色,蛋清
    whitewash   v.粉刷,掩饰
    who   pron.谁
    whoever   pron.无论谁
    whole   adj.全部的 n.全部
    wholesale   n.,v.批发
    wholesaler   n.批发商
    wholesaling   n.批发
    wholesome   adj.卫生的
    wholly   adv.完全,一概
    whom   pron.(宾格)
    whose   pron.谁的
    why   adv.为什么
    wicked   adj.坏的,不道德的
    wide   adj.宽的,广阔的
    widely   adv.广泛地,非常
    widen   v.加宽,扩大
    widespread   adj.流传广泛的
    widow   n.寡妇
    widower   n.鳏夫
    width   n.宽度
    wield   v.挥动,行使
    wife   n.妻子,夫人
    wild   adj.野生的,狂暴的
    wilderness   n.荒原
    will   v.aux.将,愿 n.意志
    willing   adj.乐意的,自愿的
    willingly   adv.乐意地,自愿地
    willingness   n.乐意,自愿
    willow   n.柳树
    win   v.赢得,成功
    wind   n.风,风声 v.绕
    winding   adj.弯曲的,蜿蜒的
    windmill   n.风车
    window   n.窗户
    windowsill   n.窗台
    windy   adj.刮风的
    wine   n.酒,葡萄酒
    winery   n.酿酒厂
    wing   n.翅膀,翼,派别
    wink   v.眨眼,使眼色
    winner   n.得胜者,获奖者
    winter   n.冬季
    wipe   v.擦,抹掉
    wire   n.金属线,电线
    wireless   adj.,n.无线电
    wisdom   n.智慧,明智
    wise   adj.智慧的,博学的
    wish   v.希望,祝愿,想要
    wit   n.机智,才智
    with   prep....一起,用
    withdraw   v.撤消,退出,提款
    withdrawal   n.撤退,取款
    wither   v.枯萎,凋谢,衰弱
    withhold   v.坚持
    within   prep.,adv....内
    without   prep.没有,在...外部
    withstand   v.抵挡,顶住
    witness   n.目击者,证人 v.目睹
    witty   adj.机智的,风趣的
    woe   n.悲痛,苦恼
    wolf   n.狼
    woman   n.妇女,女人
    wonder   v.想知道,诧异 n.奇迹
    wonderful   adj.奇妙的,精彩的
    wood   n.木,木材
    wooden   adj.木制的
    woodpecker   n.啄木鸟
    woods   n.树林
    wool   n.羊毛,毛线
    woollen   adj.羊毛的,毛织的
    word   n.字,词,诺言,音讯
    wording   n.措辞
    wordy   adj.冗长的,罗嗦的
    work   n.劳动,工作,作品
    workable   adj.可行的,起作用的
    worker   n.工人
    workman   n.工作者
    workmanship   n.工艺,手艺
    works   n.工厂
    workshop   n.车间,工场,学习班
    world   n.世界,...界,世间
    worldwide   adj.,adv.全世界的
    worm   n.蠕虫,幼虫
    worry   v.,v.烦恼,担心
    worse   adj.更坏的,更差的
    worship   v.,n.崇拜,礼拜
    worst   adj.最坏的,最差的
    worth   n.价值 adj....的
    worthless   adj.不值钱的
    worthwhile   adj.值得做的
    worthy   adj.值得的,配...的
    wound   v.受伤 n.伤口,创伤
    wounded   adj.受伤的 n.伤员
    wrap   v.包,裹
    wrapper   n.(饺子)皮,包装用品
    wrath   n.暴怒
    wreath   n.花圈,花环
    wreck   v.毁坏 n.失事
    wrench   v.拧,扭伤 n.扳手
    wrestle   v.,n.摔交,搏斗
    wretched   adj.可怜的,可耻的
    wring   v.拧,扭
    wrinkle   n.皱纹 v.折皱
    wrist   n.腕
    write   v.写,写信,写作
    writer   n.作者,作家
    writing   n.写作
    written   adj.写作的,书面的
    wrong   adj.错误的,有毛病的
    wrongly   adv.错误地,不正当地
    xerox   n.,v.复印
    x-ray   n.X射线 v.X光检查
    yacht   n.游船,快艇
    yard   n.码,庭院,场
    yawn   v.,n.打呵欠
    year   n.年,年度
    yearly   adj.,adv.每年的
    yearn   v.向往
    yeast   n.酵母
    yell   v.,n.叫嚷
    yellow   n.,adj.黄色()
    yes   adv.是,好
    yesterday   n.昨天 adv.在昨天
    yet   adv.仍然,还,尚
    yield   v.生产,屈服 n.产量
    yoke   n.轭
    yolk   n.蛋黄
    you   pron.你,你们
    young   adj.年轻的 n.青年人
    youngster   n.少年
    your   pron.你的,你们的
    yourself   pron.()自己
    youth   n.青春,青年
    youthful   adj.年轻的
    zeal   n.热情,热忱
    zealous   adj.热情的,热心的
    zebra   n.斑马
    zero   n.零,零度
    zinc   n.锌
    zip   n.活动,尖啸声
    zipcode   n.邮政编码
    zipper   n.拉链
    zone   n.地带,区域,区
    zoo   n.动物园
    
    
    展开全文
  • 实用文库汇编之《C语言程序设计》课程标准.pdf实用文库汇编之《C语言程序设计》课程标准.pdf实用文库汇编之《C语言程序设计》课程标准.pdf实用文库汇编之《C语言程序设计》课程标准.pdf实用文库汇编之《C语言程序...
  • 13 万字 C 语言从入门到精通保姆级教程2021 年版

    万次阅读 多人点赞 2021-06-07 12:25:01
    13 万字C语言保姆级教程,从入门到精通。


    友情提示:先关注收藏,再查看,13 万字保姆级 C 语言从入门到精通教程。

    文章目录

    计算机常识

    • 什么是计算机 ?

      • 顾名思义,就是能够进行数据运算的机器(台式电脑、笔记本电脑、平板电脑、智能手机)
      • 计算机_百度百科
    • 计算机的发明者是谁 ?

      • 关于电子计算机的发明者是谁这一问题,有好几种答案:
        • 1936年***英国数学家图灵***首先提出了一种以程序和输入数据相互作用产生输出的计算机***构想***,后人将这种机器命名为通用图灵计算机
        • 1938年***克兰德·楚泽***发明了首台采用***继电器***进行工作的计算机,这台计算机命名为***Z1***,但是继电器是机械式的,并不是完全的电子器材
        • 1942年***阿坦那索夫和贝利***发明了首台采用***真空管***的计算机,这台计算机命名为***ABC***
        • 1946年ENIAC诞生,它拥有了今天计算机的主要结构和功能,是通用计算机
    • 现在世界上***公认***的第一台现代电子计算机是1946年在美国宾夕法尼亚大学诞生的ENIAC(Electronic Numerical Integrator And Calculator)
    • 计算机特点是什么 ?
      • 计算机是一种电器, 所以计算机只能识别两种状态, 一种是通电一种是断电

      • 正是因为如此, 最初ENIAC的程序是由很多开关和连接电线来完成的。但是这样导致***改动一次程序要花很长时间***(需要人工重新设置很多开关的状态和连接线)

      • 为了提高效率,工程师们想能不能把程序和数据都放在存储器中, 数学家冯·诺依曼将这个思想以数学语言系统阐述,提出了存储程序计算机模型(这是所谓的冯·诺依曼机)

      • 那利用数学语言如何表示计算机能够识别的通电和断电两种状态呢?

        • 非常简单用0和1表示即可
        • 所以计算机能识别的所有指令都是由0和1组成的
        • 所以计算机中存储和操作的数据也都是由0和1组成的

    0和1更准确的是应该是高电平和低电平, 但是这个不用了解, 只需要知道计算机只能识别0和1以及存储的数据都是由0和1组成的即可。


    什么是计算机程序 ?

    • 计算机程序是为了告诉计算机"做某件事或解决某个问题"而用"***计算机语言***编写的命令集合(语句)

    • 只要让计算机执行这个程序,计算机就会自动地、有条不紊地进行工作,计算机的一切操作都是由程序控制的,离开程序,计算机将一事无成

    • 现实生活中你如何告诉别人如何做某件事或者解决某个问题?

      • 通过人能听懂的语言: 张三你去楼下帮我买一包烟, 然后顺便到快递箱把我的快递也带上来
      • 其实我们通过人能听懂的语言告诉别人做某件事就是在发送一条条的指令
      • 计算机中也一样, 我们可以通过计算机语言告诉计算机我们想做什么, 每做一件事情就是一条指令, 一条或多条指令的集合我们就称之为一个计算机程序

    什么是计算机语言 ?

    • 在日常生活、工作中, 语言是人们交流的工具
      • 中国人和中国人交流,使用中文语言
      • 美国人和美国人交流,使用英文语言
      • 人想要和计算机交流,使用计算机语言
    • 可以看出在日常生活、工作中,人们使用的语言种类很多
      • 如果一个很牛人可能同时掌握了中文语言和英文语言, 那么想要和这个人交流既可以使用中文语言,也可以使用英文语言
      • 计算机其实就是一个很牛的人, 计算机同时掌握了几十门甚至上百门语言, 所以我们只要使用任何一种计算机已经掌握的语言就可以和计算机交流

    常见的计算机语言类型有哪些 ?

    • 机器语言
      • 所有的代码里面只有0和1, 0表示不加电,1表示加电(纸带存储时 1有孔,0没孔)
      • 优点:直接对硬件产生作用,程序的执行效率非常非常高
      • 缺点:指令又多又难记、可读性差、无可移植性
    • 汇编语言
      • 符号化的机器语言,用一个符号(英文单词、数字)来代表一条机器指令
      • 优点:直接对硬件产生作用,程序的执行效率非常高、可读性稍好
      • 缺点:符号非常多和难记、无可移植性
    • 高级语言
      • 非常接近自然语言的高级语言,语法和结构类似于普通英文
      • 优点:简单、易用、易于理解、远离对硬件的直接操作、有可移植性
      • 缺点:有些高级语言写出的程序执行效率并不高
    • 对比(利用3种类型语言编写1+1)
      • 机器语言
        • 10111000 00000001 00000000 00000101 00000001 00000000
      • 汇编语言
        • MOV AX, 1 ADD AX, 1
      • 高级语言
        • 1 + 1

    什么是C语言?

    • C语言是一种用于和计算机交流的高级语言, 它既具有高级语言的特点,又具有汇编语言的特点
      • 非常接近自然语言
      • 程序的执行效率非常高
    • C语言是所有编程语言中的经典,很多高级语言都是从C语言中衍生出来的,
      • 例如:C++、C#、Object-C、Java、Go等等
    • C语言是所有编程语言中的经典,很多著名的系统软件也是C语言编写的
      • 几乎所有的操作系统都是用C语言编写的
      • 几乎所有的计算机底层软件都是用C语言编写的
      • 几乎所有的编辑器都是C语言编写的

    C语言历史

    • 最早的高级语言:FORTRAN–>ALGOL–>CPL–>BCPL–>C–>C++等

    “初,世间无语言,仅电路与连线。及大牛出,天地开,始有 FORTRAN、 LISP、ALGOL 随之, 乃有万种语”

    • 1963年英国剑桥大学推出了CPL(Combined Programming Langurage)语言。 CPL语言在ALGOL 60的基础上接近硬件一些,但规模比较大,难以实现
    • 1967年英国剑桥大学的 Matin Richards(理查兹)对CPL语言做了简化,推出了 BCPL (Base Combined Programming Langurage)语言
    • 1970年美国贝尔实验室的 Ken Thompson(肯·汤普逊) 以 BCPL 语言为基础,又作了进一步的简化,设计出了很简单的而且很接近硬件的 B 语言(取BCPL的第一个字母),并用B语言写出了第一个 UNIX 操作系统。但B语言过于简单,功能有限
    • 1972年至1973年间,贝尔实验室的 Dennis.Ritchie(丹尼斯·里奇) 在 B语言的基础上设计出了C语言(取BCPL的第二个字母)。C语言即保持 BCPL 语言和B语言的优点(精练、接近硬件),又克服了他们的缺点(过于简单,数据无类型等)

    C语言标准

    • 1983年美国国家标准局(American National Standards Institute,简称ANSI)成立了一个委员会,开始制定C语言标准的工作
    • 1989年C语言标准被批准,这个版本的C语言标准通常被称为ANSI C(C89)
    • 1999年,国际标准化组织ISO又对C语言标准进行修订,在基本保留原C语言特征的基础上,针对应该的需要,增加了一些功能,命名为***C99***
    • 2011年12月,ANSI采纳了ISO/IEC 9899:2011标准。这个标准通常即***C11,它是C程序语言的现行标准***

    C语言现状


    为什么要学习C语言?

    • 40多年经久不衰
    • 了解操作系统、编译原理、数据结构与算法等知识的最佳语言
    • 了解其它语言底层实现原理必备语言
    • 基础语法与其它高级语言类似,学会C语言之后再学习其它语言事半功倍,且知根知底

    当你想了解底层原理时,你才会发现后悔当初没有学习C语言
    当你想学习一门新的语言时, 你才会发现后悔当初没有学习C语言
    当你使用一些高级框架、甚至系统框架时发现提供的API都是C语言编写的, 你才发现后悔当初没有学习C语言
    学好数理化,走遍天下都不拍
    学好C语言,再多语言都不怕


    如何学好C语言

    学习本套课程之前学习本套课程中学习本套课程之后
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gHyaoC72-1623039894713)(https://upload-images.jianshu.io/upload_images/647982-c724f6cd01191121.png?imageMogr2/auto-orient/strip)]
    • 如何达到这样的效果

    工欲善其事必先利其器

    编写C语言程序用什么工具 ?

    • 记事本(开发效率低)
    • Vim(初学者入门门槛高)
    • VSCode(不喜欢)
    • eclipse(不喜欢)
    • CLion(深爱, 但收费)
    • Xcode(逼格高, 但得有苹果电脑)
    • Qt Creator(开源免费,跨平台安装和运行)

    什么是Qt Creator ?

    • Qt Creator 是一款新的轻量级集成开发环境(IDE)。它能够跨平台运行,支持的系统包括 Windows、Linux(32 位及 64 位)以及 Mac OS X
    • Qt Creator 的设计目标是使开发人员能够利用 Qt 这个应用程序框架更加快速及轻易的完成开发任务
    • 开源免费, 简单易用, 能够满足学习需求

    集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器编译器调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。


    Qt Creator安装

    • 切记囫囵吞枣, 不要纠结里面的东西都是什么含义, 初学者安装成功就是一种成功

    • 下载Qt Creator离线安装包:

      • http://download.qt.io/archive/qt/
      • 极速下载地址:
      • 链接:https://pan.baidu.com/s/1gx0hNDBJkA2gx5wF1Jx34w
        提取码:0fg9
    • 以管理身份运行离线安装包

    • 下一步,下一步,下一步,等待ing…


      • +
        +
    • 注意安装路径中最好不要出现中文

    • 对于初学者而言全选是最简单的方式(重点!!!)





    • 配置Qt Creator开发环境变量





    你的安装路径\5.11.0\mingw53_32\bin
    你的安装路径\Tools\mingw530_32\bin

    • 启动安装好的Qt Creator

    • 非全选安装到此为止, 全选安装继续往下看
      • 出现这个错误, 忽略这个错误即可
    • 等待安装完毕之后解决刚才的错误
      • 找到安装目录下的strawberry.msi,双击运行




    什么是环境变量?

    • 打开我们添加环境变量的两个目录, 不难发现里面大部分都是.exe的可执行程序
    • 如果我们不配置环境变量, 那么每次我们想要使用这些"可执行程序"都必须"先找到这些应用程序对应的文件夹"才能使用
    • 为了方便我们在电脑上"任何地方"都能够使用这些"可执行程序", 那么我们就必须添加环境变量, 因为Windows执行某个程序的时候, 会先到"环境变量中Path指定的路径中"去查找

    为什么要配置系统变量,不配置用户变量

    • 用户变量只针对使用这台计算机指定用户
      • 一个计算机可以设置多个用户, 不同的用户用不同的用户名和密码
      • 当给计算机设置了多个用户的时候,启动计算机的时候就会让你选择哪个用户登录
    • 系统变量针对使用这台计算机的所有用户
      • 也就是说设置了系统变量, 无论哪个用户登录这台计算机都可以使用你配置好的工具

    Qt Creator快捷键

    如何创建C语言程序

    • 这个世界上, 几乎所有程序员入门的第一段代码都是Hello World.
    • 原因是当年C语言的作者Dennis Ritchie(丹尼斯 里奇)在他的名著中第一次引入, 传为后世经典, 其它语言亦争相效仿, 以示敬意

    如何创建C语言文件





    C语言程序组成

    • 手机有很多功能, “开机”,“关机”,“打电话”,“发短信”,"拍照"等等

    • 手机中的每一个功能就相当于C语言程序中的一个程序段(函数)

    • 众多功能中总有一个会被先执行,不可能多个功能一起执行

    • 想使用手机必须先执行手机的开机功能

    • 所以C语言程序也一样,由众多功能、众多程序段组成, 众多C语言程序段中总有一个会被先执行, 这个先执行的程序段我们称之为"主函数"

    • 一个C语言程序由多个"函数"构成,每个函数有自己的功能

    • 一个程序***有且只有一个主函数***

    • 如果一个程序没有主函数,则这个程序不具备运行能力

    • 程序运行时系统会***自动调用***主函数,而其它函数需要开发者***手动调用***

    • 主函数有固定书写的格式和范写

    函数定义格式

    • 主函数定义的格式:
      • int 代表函数执行之后会返回一个整数类型的值
      • main 代表这个函数的名字叫做main
      • () 代表这是一个函数
      • {} 代表这个程序段的范围
      • return 0; 代表函数执行完之后返回整数0
    int main() {
        // insert code here...
        return 0;
    }
    
    • 其它函数定义的格式
      • int 代表函数执行之后会返回一个整数类型的值
      • call 代表这个函数的名字叫做call
      • () 代表这是一个函数
      • {} 代表这个程序段的范围
      • return 0; 代表函数执行完之后返回整数0
    int call() {
        return 0;
    }
    

    如何执行定义好的函数

    • 主函数(main)会由系统自动调用, 但其它函数不会, 所以想要执行其它函数就必须在main函数中手动调用
      • call 代表找到名称叫做call的某个东西
      • () 代表要找到的名称叫call的某个东西是一个函数
      • ; 代表调用函数的语句已经编写完成
      • 所以call();代表找到call函数, 并执行call函数
    int main() {
        call();
        return 0;
    }
    
    • 如何往屏幕上输出内容
      • 输出内容是一个比较复杂的操作, 所以系统提前定义好了一个专门用于输出内容的函数叫做printf函数,我们只需要执行系统定义好的printf函数就可以往屏幕上输出内容
      • 但凡需要执行一个函数, 都是通过函数名称+圆括号的形式来执行
      • 如下代码的含义是: 当程序运行时系统会自动执行main函数, 在系统自动执行main函数时我们手动执行了call函数和printf函数
      • 经过对代码的观察, 我们发现两个问题
        • 并没有告诉printf函数,我们要往屏幕上输出什么内容
        • 找不到printf函数的实现代码
    int call(){
        return 0;
    }
    
    int main(){
        call();
        printf();
        return 0;
    }
    
    • 如何告诉printf函数要输出的内容
      • 将要输出的内容编写到printf函数后面的圆括号中即可
      • 注意: 圆括号中编写的内容必须用双引号引起来
    printf("hello world\n");
    
    • 如何找到printf函数的实现代码
      • 由于printf函数是系统实现的函数, 所以想要使用printf函数必须在使用之前告诉系统去哪里可以找到printf函数的实现代码
      • #include <stdio.h> 就是告诉系统可以去stdio这个文件中查找printf函数的声明和实现
    #include <stdio.h>
    
    int call(){
        return 0;
    }
    
    int main(){
        call();
        printf("hello world\n");
        return 0;
    }
    

    如何运行编写好的程序

    • 方式1:
      • 点击小榔头将"源代码"编译成"可执行文件"
      • 找到编译后的源代码, 打开终端(CMD)运行可执行文件




    • 方式2
      • 直接点击Qt开发工具运行按钮


    main函数注意点及其它写法

    • C语言中,每条完整的语句后面都必须以分号结尾
    int main(){
        printf("hello world\n") // 如果没有分号编译时会报错
        return 0;
    }
    
    int main(){
        // 如果没有分号,多条语句合并到一行时, 系统不知道从什么地方到什么地方是一条完整语句
        printf("hello world\n") return 0;
    }
    
    • C语言中除了注释和双引号引起来的地方以外都不能出现中文
    int main(){
        printf("hello world\n"); // 这里的分号如果是中文的分号就会报错
        return 0;
    }
    
    • 一个C语言程序只能有一个main函数
    int main(){
        return 0;
    }
    int main(){ // 编译时会报错, 重复定义
        return 0;
    }
    
    • 一个C语言程序不能没有main函数
    int call(){ // 编译时报错, 因为只有call函数, 没有main函数
        return 0;
    }
    
    int mian(){ // 编译时报错, 因为main函数的名称写错了,还是相当于没有main函数
        return 0;
    }
    
    • main函数前面的int可以不写或者换成void
    #include <stdio.h>
    main(){ // 不会报错
        printf("hello world\n");
        return 0;
    }
    
    #include <stdio.h>
    void main(){  // 不会报错
        printf("hello world\n");
        return 0;
    }
    
    • main函数中的return 0可以不写
    int main(){ // 不会报错
        printf("hello world\n");
    }
    
    • 多种写法不报错的原因
      • C语言最早的时候只是一种规范和标准(例如C89, C11等)
      • 标准的推行需要各大厂商的支持和实施
      • 而在支持的实施的时候由于各大厂商利益、理解等问题,导致了实施的标准不同,发生了变化
        • Turbo C
        • Visual C(VC)
        • GNU C(GCC)
      • 所以大家才会看到不同的书上书写的格式有所不同, 有的返回int,有的返回void,有的甚至没有返回值
      • 所以大家只需要记住最标准的写法即可, no zuo no die
    #include <stdio.h>
    int main(){
        printf("hello world\n");
        return 0;
    }
    

    Tips:
    语法错误:编译器会直接报错
    逻辑错误:没有语法错误,只不过运行结果不正确


    C语言程序练习

    • 编写一个C语言程序,用至少2种方式在屏幕上输出以下内容
       *** ***
      *********
       *******
        ****
         **
    
    • 普通青年实现
    printf(" *** *** \n");
    printf("*********\n");
    printf(" *******\n");
    printf("  ****\n");
    printf("   **\n");
    
    • 2B青年实现
    printf(" *** *** \n*********\n *******\n  ****\n   **\n");
    
    • 文艺青年实现(装逼的, 先不用理解)
    int  i = 0;
    while (1) {
        if (i % 2 == 0) {
            printf(" *** *** \n");
            printf("*********\n");
            printf(" *******\n");
            printf("  ****\n");
            printf("   **\n");
        }else
        {
            printf("\n");
            printf("   ** ** \n");
            printf("  *******\n");
            printf("   *****\n");
            printf("    **\n");
        }
        sleep(1);
        i++;
        system("cls");
    }
    

    初学者如何避免程序出现BUG

                              _ooOoo_
                             o8888888o
                             88" . "88
                             (| -_- |)
                              O\ = /O
                          ____/`---'\____
                        .   ' \\| |// `.
                         / \\||| : |||// \
                       / _||||| -:- |||||- \
                         | | \\\ - /// | |
                       | \_| ''\---/'' | |
                        \ .-\__ `-` ___/-. /
                     ___`. .' /--.--\ `. . __
                  ."" '< `.___\_<|>_/___.' >'"".
                 | | : `- \`.;`\ _ /`;.`/ - ` : | |
                   \ \ `-. \_ __\ /__ _/ .-` / /
           ======`-.____`-.___\_____/___.-`____.-'======
                              `=---='
    
           .............................................
                  佛祖保佑                   有无BUG
    
    ━━━━━━神兽出没━━━━━━
             ┏┓    ┏┓
            ┏┛┻━━━━━━┛┻┓
            ┃        ┃
            ┃   ━    ┃
            ┃ ┳┛   ┗┳ ┃
            ┃        ┃
            ┃   ┻    ┃
            ┃          ┃
            ┗━┓    ┏━┛Code is far away from bug with the animal protecting
              ┃    ┃    神兽保佑,代码无bug
              ┃    ┃
              ┃    ┗━━━┓
              ┃        ┣┓
              ┃     ┏━━┛┛
              ┗┓┓┏━┳┓┏┛
               ┃┫┫ ┃┫┫
               ┗┻┛ ┗┻┛
    
          ━━━━━━感觉萌萌哒━━━━━━
    
            ´´´´´´´´██´´´´´´´
            ´´´´´´´████´´´´´´
            ´´´´´████████´´´´
            ´´`´███▒▒▒▒███´´´´´
            ´´´███▒●▒▒●▒██´´´
            ´´´███▒▒▒▒▒▒██´´´´´
            ´´´███▒▒▒▒██´                      项目:第一个C语言程序
            ´´██████▒▒███´´´´´                 语言: C语言
            ´██████▒▒▒▒███´´                   编辑器: Qt Creator 
            ██████▒▒▒▒▒▒███´´´´                版本控制:git-github
            ´´▓▓▓▓▓▓▓▓▓▓▓▓▓▒´´                 代码风格:江哥style
            ´´▒▒▒▒▓▓▓▓▓▓▓▓▓▒´´´´´              
            ´.▒▒▒´´▓▓▓▓▓▓▓▓▒´´´´´              
            ´.▒▒´´´´▓▓▓▓▓▓▓▒                   
            ..▒▒.´´´´▓▓▓▓▓▓▓▒                   
            ´▒▒▒▒▒▒▒▒▒▒▒▒                      
            ´´´´´´´´´███████´´´´´              
            ´´´´´´´´████████´´´´´´´
            ´´´´´´´█████████´´´´´´
            ´´´´´´██████████´´´´             大部分人都在关注你飞的高不高,却没人在乎你飞的累不累,这就是现实!
            ´´´´´´██████████´´´                     我从不相信梦想,我,只,相,信,自,己!
            ´´´´´´´█████████´´
            ´´´´´´´█████████´´´
            ´´´´´´´´████████´´´´´
            ________▒▒▒▒▒
            _________▒▒▒▒
            _________▒▒▒▒
            ________▒▒_▒▒
            _______▒▒__▒▒
            _____ ▒▒___▒▒
            _____▒▒___▒▒
            ____▒▒____▒▒
            ___▒▒_____▒▒
            ███____ ▒▒
            ████____███
            █ _███_ _█_███
    ——————————————————————————女神保佑,代码无bug——————————————————————
    

    多语言对比

    • C语言
    #include<stdio.h>
    int main() {
        printf("南哥带你装B带你飞");
        return 0;
    }
    
    • C++语言
    #include<iostream>
    using namespace std;
    int main() {
        cout << "南哥带你装B带你飞" << endl;
        return 0;
    }
    
    • OC语言
    #import <Foundation/Foundation.h>
    int main() {
        NSLog(@"南哥带你装B带你飞");
        return 0;
    }
    
    • Java语言
    class Test
    {
        public static viod main()
        {
            system.out.println("南哥带你装B带你飞");
        }
    }
    
    • Go语言
    package main
    import  "fmt" //引入fmt库
    func main() {
        fmt.Println("南哥带你装B带你飞")
    }
    

    什么是注释?

    • 注释是在所有计算机语言中都非常重要的一个概念,从字面上看,就是注解、解释的意思
    • 注释可以用来解释某一段程序或者某一行代码是什么意思,方便程序员之间的交流沟通
    • 注释可以是任何文字,也就是说可以写中文
    • 被注释的内容在开发工具中会有特殊的颜色

    为什么要使用注释?

    • 没有编写任何注释的程序
    void printMap(char map[6][7] , int row, int col);
    int main(int argc, const char * argv[])
    {
        char map[6][7] = {
            {'#', '#', '#', '#', '#', '#', '#'},
            {'#', ' ', ' ', ' ', '#' ,' ', ' '},
            {'#', 'R', ' ', '#', '#', ' ', '#'},
            {'#', ' ', ' ', ' ', '#', ' ', '#'},
            {'#', '#', ' ', ' ', ' ', ' ', '#'},
            {'#', '#', '#', '#', '#', '#', '#'}
        };
        int row = sizeof(map)/sizeof(map[0]);
        int col = sizeof(map[0])/ sizeof(map[0][0]);
        printMap(map, row, col);
        int pRow = 2;
        int pCol = 1;
        int endRow = 1;
        int endCol = 6;
        while ('R' != map[endRow][endCol]) {
            printf("亲, 请输入相应的操作\n");
            printf("w(向上走) s(向下走) a(向左走) d(向右走)\n");
            char run;
            run = getchar();
            switch (run) {
                case 's':
                    if ('#' != map[pRow + 1][pCol]) {
                        map[pRow][pCol] = ' ';
                        pRow++;//3
                        map[pRow][pCol] = 'R';
                    }
                    break;
                case 'w':
                    if ('#' != map[pRow - 1][pCol]) {
                        map[pRow][pCol] = ' ';
                        pRow--;
                        map[pRow][pCol] = 'R';
                    }
                    break;
                case 'a':
                    if ('#' != map[pRow][pCol - 1]) {
                        map[pRow][pCol] = ' ';
                        pCol--;
                        map[pRow][pCol] = 'R';
                    }
                    break;
                case 'd':
                    if ('#' != map[pRow][pCol + 1]) {
                        map[pRow][pCol] = ' ';
                        pCol++;
                        map[pRow][pCol] = 'R';
                    }
                    break;
            }
            printMap(map, row, col);
        }
        printf("你太牛X了\n");
        printf("想挑战自己,请购买完整版本\n");
        return 0;
    }
    void printMap(char map[6][7] , int row, int col)
    {
        system("cls");
        for (int i = 0; i < row; i++) {
            for (int j = 0; j < col; j++) {
                printf("%c", map[i][j]);
            }
            printf("\n");
        }
    }
    

    • 编写了注释的程序
    /*
         R代表一个人
         #代表一堵墙
    //   0123456
         ####### // 0
         #   #   // 1
         #R ## # // 2
         #   # # // 3
         ##    # // 4
         ####### // 5
    
         分析:
         >1.保存地图(二维数组)
         >2.输出地图
         >3.操作R前进(控制小人行走)
          3.1.接收用户输入(scanf/getchar)
          w(向上走) s(向下走) a(向左走) d(向右走)
          3.2.判断用户的输入,控制小人行走
             3.2.1.替换二维数组中保存的数据
                 (
                    1.判断是否可以修改(如果不是#就可以修改)
                    2.修改现有位置为空白
                    3.修改下一步为R
                 )
          3.3.输出修改后的二维数组
         4.判断用户是否走出出口
    */
    // 声明打印地图方法
    void printMap(char map[6][7] , int row, int col);
    int main(int argc, const char * argv[])
    {
        // 1.定义二维数组保存迷宫地图
        char map[6][7] = {
            {'#', '#', '#', '#', '#', '#', '#'},
            {'#', ' ', ' ', ' ', '#' ,' ', ' '},
            {'#', 'R', ' ', '#', '#', ' ', '#'},
            {'#', ' ', ' ', ' ', '#', ' ', '#'},
            {'#', '#', ' ', ' ', ' ', ' ', '#'},
            {'#', '#', '#', '#', '#', '#', '#'}
        };
        // 2.计算地图行数和列数
        int row = sizeof(map)/sizeof(map[0]);
        int col = sizeof(map[0])/ sizeof(map[0][0]);
        // 3.输出地图
        printMap(map, row, col);
        // 4.定义变量记录人物位置
        int pRow = 2;
        int pCol = 1;
        // 5.定义变量记录出口的位置
        int endRow = 1;
        int endCol = 6;
        // 6.控制人物行走
        while ('R' != map[endRow][endCol]) {
            // 6.1提示用户如何控制人物行走
            printf("亲, 请输入相应的操作\n");
            printf("w(向上走) s(向下走) a(向左走) d(向右走)\n");
            char run;
            run = getchar();
            // 6.2根据用户输入控制人物行走
            switch (run) {
                case 's':
                    if ('#' != map[pRow + 1][pCol]) {
                        map[pRow][pCol] = ' ';
                        pRow++;//3
                        map[pRow][pCol] = 'R';
                    }
                    break;
                case 'w':
                    if ('#' != map[pRow - 1][pCol]) {
                        map[pRow][pCol] = ' ';
                        pRow--;
                        map[pRow][pCol] = 'R';
                    }
                    break;
                case 'a':
                    if ('#' != map[pRow][pCol - 1]) {
                        map[pRow][pCol] = ' ';
                        pCol--;
                        map[pRow][pCol] = 'R';
                    }
                    break;
                case 'd':
                    if ('#' != map[pRow][pCol + 1]) {
                        map[pRow][pCol] = ' ';
                        pCol++;
                        map[pRow][pCol] = 'R';
                    }
                    break;
            }
            // 6.3重新输出行走之后的地图
            printMap(map, row, col);
        }
        printf("你太牛X了\n");
        printf("想挑战自己,请购买完整版本\n");
        return 0;
    }
    
    /**
     * @brief printMap
     * @param map 需要打印的二维数组
     * @param row 二维数组的行数
     * @param col 二维数组的列数
     */
    void printMap(char map[6][7] , int row, int col)
    {
        // 为了保证窗口的干净整洁, 每次打印都先清空上一次的打印
        system("cls");
        for (int i = 0; i < row; i++) {
            for (int j = 0; j < col; j++) {
                printf("%c", map[i][j]);
            }
            printf("\n");
        }
    }
    

    注释的分类

    • 单行注释

      • // 被注释内容
      • 使用范围:任何地方都可以写注释:函数外面、里面,每一条语句后面
      • 作用范围: 从第二个斜线到这一行末尾
      • 快捷键:Ctrl+/
    • 多行注释

      • /* 被注释内容 */
      • 使用范围:任何地方都可以写注释:函数外面、里面,每一条语句后面
      • 作用范围: 从第一个/*到最近的一个*/

    注释的注意点

    • 单行注释可以嵌套单行注释、多行注释
    // 南哥 // it666.com
    // /* 江哥 */
    // 帅哥
    
    • 多行注释可以嵌套单行注释
    /*
    // 作者:LNJ
    // 描述:第一个C语言程序作用:这是一个主函数,C程序的入口点
     */
    
    • 多行注释***不能***嵌套多行注释
    /* 
    哈哈哈
         /*嘻嘻嘻*/
     呵呵呵 
    */
    

    注释的应用场景

    • 思路分析
    /*
         R代表一个人
         #代表一堵墙
    //   0123456
         ####### // 0
         #   #   // 1
         #R ## # // 2
         #   # # // 3
         ##    # // 4
         ####### // 5
    
         分析:
         >1.保存地图(二维数组)
         >2.输出地图
         >3.操作R前进(控制小人行走)
          3.1.接收用户输入(scanf/getchar)
          w(向上走) s(向下走) a(向左走) d(向右走)
          3.2.判断用户的输入,控制小人行走
             3.2.1.替换二维数组中保存的数据
                 (
                    1.判断是否可以修改(如果不是#就可以修改)
                    2.修改现有位置为空白
                    3.修改下一步为R
                 )
          3.3.输出修改后的二维数组
         4.判断用户是否走出出口
    */
    
    • 对变量进行说明
    // 2.计算地图行数和列数
    int row = sizeof(map)/sizeof(map[0]);
    int col = sizeof(map[0])/ sizeof(map[0][0]);
    
    • 对函数进行说明
    /**
     * @brief printMap
     * @param map 需要打印的二维数组
     * @param row 二维数组的行数
     * @param col 二维数组的列数
     */
    void printMap(char map[6][7] , int row, int col)
    {
        system("cls");
        for (int i = 0; i < row; i++) {
            for (int j = 0; j < col; j++) {
                printf("%c", map[i][j]);
            }
            printf("\n");
        }
    }
    
    • 多实现逻辑排序
        // 1.定义二维数组保存迷宫地图
        char map[6][7] = {
            {'#', '#', '#', '#', '#', '#', '#'},
            {'#', ' ', ' ', ' ', '#' ,' ', ' '},
            {'#', 'R', ' ', '#', '#', ' ', '#'},
            {'#', ' ', ' ', ' ', '#', ' ', '#'},
            {'#', '#', ' ', ' ', ' ', ' ', '#'},
            {'#', '#', '#', '#', '#', '#', '#'}
        };
        // 2.计算地图行数和列数
        int row = sizeof(map)/sizeof(map[0]);
        int col = sizeof(map[0])/ sizeof(map[0][0]);
        // 3.输出地图
        printMap(map, row, col);
        // 4.定义变量记录人物位置
        int pRow = 2;
        int pCol = 1;
        // 5.定义变量记录出口的位置
        int endRow = 1;
        int endCol = 6;
        // 6.控制人物行走
        while ('R' != map[endRow][endCol]) {
            ... ...
        }
    

    使用注释的好处

    • 注释是一个程序员必须要具备的良好习惯
    • 帮助开发人员整理实现思路
    • 解释说明程序, 提高程序的可读性
      • 初学者编写程序可以养成习惯:先写注释再写代码
      • 将自己的思想通过注释先整理出来,在用代码去体现
      • 因为代码仅仅是思想的一种体现形式而已

    什么是关键字?

    • 关键字,也叫作保留字。是指一些被C语言赋予了特殊含义的单词
    • 关键字特征:
      • 全部都是小写
      • 在开发工具中会显示特殊颜色
    • 关键字注意点:
      • 因为关键字在C语言中有特殊的含义, 所以不能用作变量名、函数名等
    • C语言中一共有32个关键字
    12345678
    charshortintlongfloatdoubleifelse
    returndowhileforswitchcasebreakcontinue
    defaultgotosizeofautoregisterstaticexternunsigned
    signedtypedefstructenumunionvoidconstvolatile

    这些不用专门去记住,用多了就会了。在编译器里都是有特殊颜色的。 我们用到时候会一个一个讲解这个些关键字怎么用,现在浏览下,有个印象就OK了


    关键字分类

    什么是标识符?

    • 从字面上理解,就是用来标识某些东西的符号,标识的目的就是为了将这些东西区分开来
    • 其实标识符的作用就跟人类的名字差不多,为了区分每个人,就在每个人出生的时候起了个名字
    • C语言是由函数构成的,一个C程序中可能会有多个函数,为了区分这些函数,就给每一个函数都起了个名称, 这个名称就是标识符
    • 综上所述: 程序员在程序中给函数、变量等起名字就是标识符

    标识符命名规则

    • 只能由字母(a~z、 A~Z)、数字、下划线组成
    • 不能包含除下划线以外的其它特殊字符串
    • 不能以数字开头
    • 不能是C语言中的关键字
    • 标识符严格区分大小写, test和Test是两个不同的标识符

    练习

    • 下列哪些是合法的标识符
    fromNo22from#22my_Booleanmy-Boolean2ndObjGUIlnj
    Mike2jack江哥_testtest!32haha(da)ttjack_rosejack&rose

    标识符命名规范

    • 见名知意,能够提高代码的可读性
    • 驼峰命名,能够提高代码的可读性
      • 驼峰命名法就是当变量名或函数名是由多个单词连接在一起,构成标识符时,第一个单词以小写字母开始;第二个单词的首字母大写.
      • 例如: myFirstName、myLastName这样的变量名称看上去就像驼峰一样此起彼伏

    什么是数据?

    • 生活中无时无刻都在跟数据打交道

      • 例如:人的体重、身高、收入、性别等数据等
    • 在我们使用计算机的过程中,也会接触到各种各样的数据

      • 例如: 文档数据、图片数据、视频数据等

    数据分类

    • 静态的数据

      • 静态数据是指一些永久性的数据,一般存储在硬盘中。硬盘的存储空间一般都比较大,现在普通计算机的硬盘都有500G左右,因此硬盘中可以存放一些比较大的文件
      • 存储的时长:计算机关闭之后再开启,这些数据依旧还在,只要你不主动删掉或者硬盘没坏,这些数据永远都在
      • 哪些是静态数据:静态数据一般是以文件的形式存储在硬盘上,比如文档、照片、视频等。
    • 动态的数据

      • 动态数据指在程序运行过程中,动态产生的临时数据,一般存储在内存中。内存的存储空间一般都比较小,现在普通计算机的内存只有8G左右,因此要谨慎使用内存,不要占用太多的内存空间
      • 存储的时长:计算机关闭之后,这些临时数据就会被清除
      • 哪些是动态数据:当运行某个程序(软件)时,整个程序就会被加载到内存中,在程序运行过程中,会产生各种各样的临时数据,这些临时数据都是存储在内存中的。当程序停止运行或者计算机被强制关闭时,这个程序产生的所有临时数据都会被清除。
    • 既然硬盘的存储空间这么大,为何不把所有的应用程序加载到硬盘中去执行呢?

      • 主要***原因就是内存的访问速度比硬盘快N倍***

    • 静态数据和动态数据的相互转换
      • 也就是从磁盘加载到内存
    • 动态数据和静态数据的相互转换
      • 也就是从内存保存到磁盘
    • 数据的计量单位
      • 不管是静态还是动态数据,都是0和1组成的
      • 数据越大,包含的0和1就越多
    1 B(Byte字节) = 8 bit(位)
    // 00000000 就是一个字节
    // 111111111 也是一个字节
    // 10101010 也是一个字节
    // 任意8个0和1的组合都是一个字节
    1 KB(KByte) = 1024 B
    1 MB = 1024 KB
    1 GB = 1024 MB
    1 TB = 1024 GB
    

    C语言数据类型

    • 作为程序员, 我们最关心的是内存中的动态数据,因为我们写的程序就是在内存中运行的
    • 程序在运行过程中会产生各种各样的临时数据,为了方便数据的运算和操作, C语言对这些数据进行了分类, 提供了丰富的数据类型
    • C语言中有4大类数据类型:基本类型、构造类型、指针类型、空类型


    什么是常量?

    • "量"表示数据。常量,则表示一些固定的数据,也就是不能改变的数据
    • 就好比现实生活中生男生女一样, 生下来是男孩永远都是男孩, 生下来是女孩就永远都是女孩, 所以性别就是现实生活中常量的一种体现
      • 不要和江哥吹牛X说你是泰国来的, 如果你真的来自泰国, 我只能说你赢了

    常量的类型

    • 整型常量

      • 十进制整数。例如:666,-120, 0
      • 八进制整数,八进制形式的常量都以0开头。例如:0123,也就是十进制的83;-011,也就是十进 制的-9
      • 十六进制整数,十六进制的常量都是以0x开头。例如:0x123,也就是十进制的291
      • 二进制整数,逢二进一 0b开头。例如: 0b0010,也就是十进制的2
    • 实型常量

      • 小数形式
        • 单精度小数:以字母f或字母F结尾。例如:0.0f、1.01f
        • 双精度小数:十进制小数形式。例如:3.14、 6.66
        • 默认就是双精度
        • 可以没有整数位只有小数位。例如: .3、 .6f
      • 指数形式
        • 以幂的形式表示, 以字母e或字母E后跟一个10为底的幂数
          • 上过初中的都应该知道科学计数法吧,指数形式的常量就是科学计数法的另一种表 示,比如123000,用科学计数法表示为1.23×10的5次方
          • 用C语言表示就是1.23e5或1.23E5
          • 字母e或字母E后面的指数必须为整数
          • 字母e或字母E前后必须要有数字
          • 字母e或字母E前后不能有空格
    • 字符常量

      • 字符型常量都是用’’(单引号)括起来的。例如:‘a’、‘b’、‘c’
      • 字符常量的单引号中只能有一个字符
      • 特殊情况: 如果是转义字符,单引号中可以有两个字符。例如:’\n’、’\t’
    • 字符串常量

      • 字符型常量都是用""(双引号)括起来的。例如:“a”、“abc”、“lnj”
      • 系统会自动在字符串常量的末尾加一个字符’\0’作为字符串结束标志
    • 自定义常量

      • 后期讲解内容, 此处先不用了解
    • 常量类型练习

    1231.1F1.1.3‘a’“a”“李南江”

    什么是变量?

    • "量"表示数据。变量,则表示一些不固定的数据,也就是可以改变的数据
    • 就好比现实生活中人的身高、体重一样, 随着年龄的增长会不断发生改变, 所以身高、体重就是现实生活中变量的一种体现
    • 就好比现实生活中超市的储物格一样, 同一个格子在不同时期不同人使用,格子中存储的物品是可以变化的。张三使用这个格子的时候里面放的可能是尿不湿, 但是李四使用这个格子的时候里面放的可能是面包

    如何定义变量

    • 格式1: 变量类型 变量名称 ;
      • 为什么要定义变量?
        • 任何变量在使用之前,必须先进行定义, 只有定义了变量才会分配存储空间, 才有空间存储数据
      • 为什么要限定类型?
        • 用来约束变量所存放数据的类型。一旦给变量指明了类型,那么这个变量就只能存储这种类型的数据
        • 内存空间极其有限,不同类型的变量占用不同大小的存储空间
      • 为什么要指定变量名称?
        • 存储数据的空间对于我们没有任何意义, 我们需要的是空间中存储的值
        • 只有有了名称, 我们才能获取到空间中的值
    int a;
    float b;
    char ch;
    
    • 格式2:变量类型 变量名称,变量名称;
      • 连续定义, 多个变量之间用逗号(,)号隔开
    int a,b,c;
    
    • 变量名的命名的规范
      • 变量名属于标识符,所以必须严格遵守标识符的命名原则

    如何使用变量?

    • 可以利用=号往变量里面存储数据
      • 在C语言中,利用=号往变量里面存储数据, 我们称之为给变量赋值
    int value;
    value = 998; // 赋值
    
    • 注意:
      • 这里的=号,并不是数学中的“相等”,而是C语言中的***赋值运算符***,作用是将右边的整型常量998赋值给左边的整型变量value
      • 赋值的时候,= 号的左侧必须是变量 (10=b,错误)
      • 为了方便阅读代码, 习惯在 = 的两侧 各加上一个 空格

    变量的初始化

    • C语言中, 变量的第一次赋值,我们称为“初始化”
    • 初始化的两种形式
      • 先定义,后初始化
      • int value; value = 998; // 初始化
      • 定义时同时初始化
      • int a = 10; int b = 4, c = 2;
      • 其它表现形式(不推荐)
    int a, b = 10; //部分初始化
    int c, d, e;
    c = d = e =0;
    
    • 不初始化里面存储什么?
      • 随机数
      • 上次程序分配的存储空间,存数一些 内容,“垃圾”
      • 系统正在用的一些数据

    如何修改变量值?

    • 多次赋值即可
      • 每次赋值都会覆盖原来的值
    int i = 10;
    i = 20; // 修改变量的值
    

    变量之间的值传递

    • 可以将一个变量存储的值赋值给另一个变量
     int a = 10;
     int b = a; // 相当于把a中存储的10拷贝了一份给b
    

    如何查看变量的值?

    • 使用printf输出一个或多个变量的值
    int a = 10, c = 11;
    printf("a=%d, c=%d", a, c);
    
    • 输出其它类型变量的值
    double height = 1.75;
    char blood = 'A';
    printf("height=%.2f, 血型是%c", height,  blood);
    

    变量的作用域

    • C语言中所有变量都有自己的作用域
    • 变量定义的位置不同,其作用域也不同
    • 按照作用域的范围可分为两种, 即局部变量和全局变量

    • 局部变量
      • 局部变量也称为内部变量
      • 局部变量是在***代码块内***定义的, 其作用域仅限于代码块内, 离开该代码块后无法使用
    int main(){
        int i = 998; // 作用域开始
        return 0;// 作用域结束
    }
    
    int main(){
        {
            int i = 998; // 作用域开始
        }// 作用域结束
        printf("i = %d\n", i); // 不能使用
        return 0;
    }
    
    int main(){
        {
            {
                int i = 998;// 作用域开始
            }// 作用域结束
            printf("i = %d\n", i); // 不能使用
        }
        return 0;
    }
    

    • 全局变量
      • 全局变量也称为外部变量,它是在代码块外部定义的变量
    int i = 666;
    int main(){
        printf("i = %d\n", i); // 可以使用
        return 0;
    }// 作用域结束
    int call(){
        printf("i = %d\n", i); // 可以使用
        return 0;
    }
    

    • 注意点:
      • 同一作用域范围内不能有相同名称的变量
    int main(){
        int i = 998; // 作用域开始
        int i = 666; // 报错, 重复定义
        return 0;
    }// 作用域结束
    
    int i = 666; 
    int i = 998; // 报错, 重复定义
    int main(){
        return 0;
    }
    
    • 不同作用域范围内可以有相同名称的变量
    int i = 666; 
    int main(){
        int i = 998; // 不会报错
        return 0;
    }
    
    int main(){
        int i = 998; // 不会报错
        return 0;
    }
    int call(){
        int i = 666;  // 不会报错
        return 0;
    }
    

    变量内存分析(简单版)

    • 字节和地址
      • 为了更好地理解变量在内存中的存储细节,先来认识一下内存中的“字节”和“地址”
      • 每一个小格子代表一个字节
      • 每个字节都有自己的内存地址
      • 内存地址是连续的

    • 变量存储占用的空间
      • 一个变量所占用的存储空间,和***定义变量时声明的类型***以及***当前编译环境***有关
    类型16位编译器32位编译器64位编译器
    char111
    int244
    float444
    double888
    short222
    long448
    long long888
    void*248
    • 变量存储的过程
      • 根据定义变量时声明的类型和当前编译环境确定需要开辟多大存储空间
      • 在内存中开辟一块存储空间,开辟时从内存地址大的开始开辟(内存寻址从大到小)
      • 将数据保存到已经开辟好的对应内存空间中
      int main(){
        int number;
        int value;
        number = 22;
        value = 666;
      }
      
      #include <stdio.h>
      int main(){
          int number;
          int value;
          number = 22;
          value = 666;
          printf("&number = %p\n", &number); // 0060FEAC
          printf("&value = %p\n", &value);   // 0060FEA8
      }
      

    先不要着急, 刚开始接触C语言, 我先了解这么多就够了. 后面会再次更深入的讲解存储的各种细节。

    printf函数

    • printf函数称之为格式输出函数,方法名称的最后一个字母f表示format。其功能是按照用户指定的格式,把指定的数据输出到屏幕上
    • printf函数的调用格式为:
      • printf("格式控制字符串",输出项列表 );
      • 例如:printf("a = %d, b = %d",a, b);
      • 非格式字符串原样输出, 格式控制字符串会被输出项列表中的数据替换
      • 注意: 格式控制字符串和输出项在数量和类型上***必须一一对应***

    • 格式控制字符串
      • 形式: %[标志][输出宽度][.精度][长度]类型

    • 类型
      • 格式: printf("a = %类型", a);
      • 类型字符串用以表示输出数据的类型, 其格式符和意义如下所示
    类型含义
    d有符号10进制整型
    i有符号10进制整型
    u无符号10进制整型
    o无符号8进制整型
    x无符号16进制整型
    X无符号16进制整型
    f单、双精度浮点数(默认保留6位小数)
    e / E以指数形式输出单、双精度浮点数
    g / G以最短输出宽度,输出单、双精度浮点数
    c字符
    s字符串
    p地址
    #include <stdio.h>
    int main(){
        int a = 10;
        int b = -10;
        float c = 6.6f;
        double d = 3.1415926;
        double e = 10.10;
        char f = 'a';
        // 有符号整数(可以输出负数)
        printf("a = %d\n", a); // 10
        printf("a = %i\n", a); // 10
    
        // 无符号整数(不可以输出负数)
        printf("a = %u\n", a); // 10
        printf("b = %u\n", b); // 429496786
    
        // 无符号八进制整数(不可以输出负数)
        printf("a = %o\n", a); // 12
        printf("b = %o\n", b); // 37777777766
    
        // 无符号十六进制整数(不可以输出负数)
        printf("a = %x\n", a); // a
        printf("b = %x\n", b); // fffffff6
    
        // 无符号十六进制整数(不可以输出负数)
        printf("a = %X\n", a); // A
        printf("b = %X\n", b); // FFFFFFF6
    
        // 单、双精度浮点数(默认保留6位小数)
        printf("c = %f\n", c); // 6.600000
        printf("d = %lf\n", d); // 3.141593
    
        // 以指数形式输出单、双精度浮点数
        printf("e = %e\n", e); // 1.010000e+001
        printf("e = %E\n", e); // 1.010000E+001
        
        // 以最短输出宽度,输出单、双精度浮点数
        printf("e = %g\n", e); // 10.1
        printf("e = %G\n", e); // 10.1
        
        // 输出字符
        printf("f = %c\n", f); // a
    }
    

    • 宽度
      • 格式: printf("a = %[宽度]类型", a);
      • 用十进制整数来指定输出的宽度, 如果实际位数多于指定宽度,则按照实际位数输出, 如果实际位数少于指定宽度则以空格补位
    #include <stdio.h>
    int main(){
        // 实际位数小于指定宽度
        int a = 1;
        printf("a =|%d|\n", a); // |1|
        printf("a =|%5d|\n", a); // |    1|
        // 实际位数大于指定宽度
        int b = 1234567;
        printf("b =|%d|\n", b); // |1234567|
        printf("b =|%5d|\n", b); // |1234567|
    }
    

    • 标志
      • 格式: printf("a = %[标志][宽度]类型", a);
    标志含义
    -左对齐, 默认右对齐
    +当输出值为正数时,在输出值前面加上一个+号, 默认不显示
    0右对齐时, 用0填充宽度.(默认用空格填充)
    空格输出值为正数时,在输出值前面加上空格, 为负数时加上负号
    #对c、s、d、u类型无影响
    #对o类型, 在输出时加前缀o
    #对x类型,在输出时加前缀0x
    #include <stdio.h>
    int main(){
        int a = 1;
        int b = -1;
        // -号标志
        printf("a =|%d|\n", a); // |1|
        printf("a =|%5d|\n", a); // |    1|
        printf("a =|%-5d|\n", a);// |1    |
        // +号标志
        printf("a =|%d|\n", a); // |1|
        printf("a =|%+d|\n", a);// |+1|
        printf("b =|%d|\n", b); // |-1|
        printf("b =|%+d|\n", b);// |-1|
        // 0标志
        printf("a =|%5d|\n", a); // |    1|
        printf("a =|%05d|\n", a); // |00001|
        // 空格标志
        printf("a =|% d|\n", a); // | 1|
        printf("b =|% d|\n", b); // |-1|
        // #号
        int c = 10;
        printf("c = %o\n", c); // 12
        printf("c = %#o\n", c); // 012
        printf("c = %x\n", c); // a
        printf("c = %#x\n", c); // 0xa
    }
    

    • 精度
      • 格式: printf("a = %[精度]类型", a);
      • 精度格式符以"."开头, 后面跟上十进制整数, 用于指定需要输出多少位小数, 如果输出位数大于指定的精度, 则删除超出的部分
    #include <stdio.h>
    int main(){
        double a = 3.1415926;
        printf("a = %.2f\n", a); // 3.14
    }
    
    • 动态指定保留小数位数
      • 格式: printf("a = %.*f", a);
    #include <stdio.h>
    int main(){
        double a = 3.1415926;
        printf("a = %.*f", 2, a); // 3.14
    }
    
    • 实型(浮点类型)有效位数问题
      • 对于单精度数,使用%f格式符输出时,仅前6~7位是有效数字
      • 对于双精度数,使用%lf格式符输出时,前15~16位是有效数字
      • 有效位数和精度(保留多少位)不同, 有效位数是指从第一个非零数字开始,误差不超过本数位半个单位的、精确可信的数位
      • 有效位数包含小数点前的非零数位
    #include <stdio.h>
    int main(){
        //        1234.567871093750000
        float a = 1234.567890123456789;
        //         1234.567890123456900
        double b = 1234.567890123456789;
        printf("a = %.15f\n", a); // 前8位数字是准确的, 后面的都不准确
        printf("b = %.15f\n", b); // 前16位数字是准确的, 后面的都不准确
    }
    

    • 长度
      • 格式: printf("a = %[长度]类型", a);
    长度修饰类型含义
    hhd、i、o、u、x输出char
    hd、i、o、u、x输出 short int
    ld、i、o、u、x输出 long int
    lld、i、o、u、x输出 long long int
    #include <stdio.h>
    int main(){
        char a = 'a';
        short int b = 123;
        int  c = 123;
        long int d = 123;
        long long int e = 123;
        printf("a = %hhd\n", a); // 97
        printf("b = %hd\n", b); // 123
        printf("c = %d\n", c); // 123
        printf("d = %ld\n", d); // 123
        printf("e = %lld\n", e); // 123
    }
    
    • 转义字符
      • 格式: printf("%f%%", 3.1415);
      • %号在格式控制字符串中有特殊含义, 所以想输出%必须添加一个转移字符
    #include <stdio.h>
    int main(){
        printf("%f%%", 3.1415); // 输出结果3.1415%
    }
    

    Scanf函数

    • scanf函数用于接收键盘输入的内容, 是一个阻塞式函数,程序会停在scanf函数出现的地方, 直到接收到数据才会执行后面的代码
    • printf函数的调用格式为:
      • scanf("格式控制字符串", 地址列表);
      • 例如: scanf("%d", &num);

    • 基本用法
      • 地址列表项中只能传入变量地址, 变量地址可以通过&符号+变量名称的形式获取
    #include <stdio.h>
    int main(){
        int number;
        scanf("%d", &number); // 接收一个整数
        printf("number = %d\n", number); 
    }
    
    • 接收非字符和字符串类型时, 空格、Tab和回车会被忽略
    #include <stdio.h>
    int main(){
        float num;
        // 例如:输入 Tab 空格 回车 回车 Tab 空格 3.14 , 得到的结果还是3.14
        scanf("%f", &num);
        printf("num = %f\n", num);
    }
    
    • 非格式字符串原样输入, 格式控制字符串会赋值给地址项列表项中的变量
      • 不推荐这种写法
    #include <stdio.h>
    int main(){
        int number;
        // 用户必须输入number = 数字  , 否则会得到一个意外的值
        scanf("number = %d", &number);
        printf("number = %d\n", number);
    }
    
    • 接收多条数据
      • 格式控制字符串和地址列表项在数量和类型上必须一一对应
      • 非字符和字符串情况下如果没有指定多条数据的分隔符, 可以使用空格或者回车作为分隔符(不推荐这种写法)
      • 非字符和字符串情况下建议明确指定多条数据之间分隔符
    #include <stdio.h>
    int main(){
        int number;
        scanf("%d", &number);
        printf("number = %d\n", number);
        int value;
        scanf("%d", &value);
        printf("value = %d\n", value);
    }
    
    #include <stdio.h>
    int main(){
        int number;
        int value;
        // 可以输入 数字 空格 数字, 或者 数字 回车 数字
        scanf("%d%d", &number, &value);
        printf("number = %d\n", number);
        printf("value = %d\n", value);
    }
    
    #include <stdio.h>
    int main(){
        int number;
        int value;
        // 输入 数字,数字 即可
        scanf("%d,%d", &number, &value);
        printf("number = %d\n", number);
        printf("value = %d\n", value);
    }
    
    • \n是scanf函数的结束符号, 所以格式化字符串中不能出现\n
    #include <stdio.h>
    int main(){
        int number;
        // 输入完毕之后按下回车无法结束输入
        scanf("%d\n", &number);
        printf("number = %d\n", number);
    }
    

    scanf运行原理

    • 系统会将用户输入的内容先放入输入缓冲区
    • scanf方式会从输入缓冲区中逐个取出内容赋值给变量
    • 如果输入缓冲区的内容不为空,scanf会一直从缓冲区中获取,而不要求再次输入
    #include <stdio.h>
    int main(){
        int num1;
        int num2;
        char ch1;
        scanf("%d%c%d", &num1, &ch1, &num2);
        printf("num1 = %d, ch1 = %c, num2 = %d\n", num1, ch1, num2);
        char ch2;
        int num3;
        scanf("%c%d",&ch2, &num3);
        printf("ch2 = %c, num3 = %d\n", ch2, num3);
    }
    

    • 利用fflush方法清空缓冲区(不是所有平台都能使用)
      • 格式: fflush(stdin);
      • C和C++的标准里从来没有定义过 fflush(stdin)
      • MSDN 文档里清除的描述着"fflush on input stream is an extension to the C standard" (fflush 是在标准上扩充的函数, 不是标准函数, 所以不是所有平台都支持)
    • 利用setbuf方法清空缓冲区(所有平台有效)
      • 格式: setbuf(stdin, NULL);
    #include <stdio.h>
    int main(){
        int num1;
        int num2;
        char ch1;
        scanf("%d%c%d", &num1, &ch1, &num2);
        printf("num1 = %d, ch1 = %c, num2 = %d\n", num1, ch1, num2);
        //fflush(stdin); // 清空输入缓存区
        setbuf(stdin, NULL); // 清空输入缓存区
        char ch2;
        int num3;
        scanf("%c%d",&ch2, &num3);
        printf("ch2 = %c, num3 = %d\n", ch2, num3);
    }
    

    putchar和getchar

    • putchar: 向屏幕输出一个字符
    #include <stdio.h>
    int main(){
        char ch = 'a';
        putchar(ch); // 输出a
    }
    
    • getchar: 从键盘获得一个字符
    #include <stdio.h>
    int main(){
        char ch;
        ch = getchar();// 获取一个字符
        printf("ch = %c\n", ch);
    }
    

    运算符基本概念

    • 和数学中的运算符一样, C语言中的运算符是告诉程序执行特定算术或逻辑操作的符号

      • 例如告诉程序, 某两个数相加, 相减,相乘等
    • 什么是表达式

      • 表达式就是利用运算符链接在一起的有意义,有结果的语句;
      • 例如: a + b; 就是一个算数表达式, 它的意义是将两个数相加, 两个数相加的结果就是表达式的结果
      • 注意: 表达式一定要有结果

    运算符分类

    • 按照功能划分:
      • 算术运算符
      • 赋值运算符
      • 关系运算符
      • 逻辑运算符
      • 位运算符
    • 按照参与运算的操作数个数划分:
      • 单目运算
        • 只有一个操作数 如 : i++;
      • 双目运算
        • 有两个操作数 如 : a + b;
      • 三目运算
        • C语言中唯一的一个,也称为问号表达式 如: a>b ? 1 : 0;

    运算符的优先级和结合性

    • 早在小学的数学课本中,我们就学习过"从左往右,先乘除后加减,有括号的先算括号里面的", 这句话就蕴含了优先级和结合性的问题
    • C语言中,运算符的运算优先级共分为15 级。1 级最高,15 级最低
      • 在C语言表达式中,不同优先级的运算符, 运算次序按照由高到低执行
      • 在C语言表达式中,相同优先级的运算符, 运算次序按照结合性规定的方向执行

    算数运算符

    优先级名称符号说明
    3乘法运算符*双目运算符,具有左结合性
    3除法运算符/双目运算符,具有左结合性
    3求余运算符 (模运算符)%双目运算符,具有左结合性
    4加法运算符+双目运算符,具有左结合性
    4减法运算符-双目运算符,具有左结合性
    • 注意事项
      • 如果参与运算的两个操作数皆为整数, 那么结果也为整数
      • 如果参与运算的两个操作数其中一个是浮点数, 那么结果一定是浮点数
      • 求余运算符, 本质上就是数学的商和余"中的余数
      • 求余运算符, 参与运算的两个操作数必须都是整数, 不能包含浮点数
      • 求余运算符, 被除数小于除数, 那么结果就是被除数
      • 求余运算符, 运算结果的正负性取决于被除数,跟除数无关, 被除数是正数结果就是正数,被除数是负数结果就是负数
      • 求余运算符, 被除数为0, 结果为0
      • 求余运算符, 除数为0, 没有意义(不要这样写)
    #include <stdio.h>
    int main(){
        int a = 10;
        int b = 5;
        // 加法
        int result = a + b;
        printf("%i\n", result); // 15
        // 减法
        result = a - b;
        printf("%i\n", result); // 5
        // 乘法
        result = a * b;
        printf("%i\n", result); // 50
        // 除法
        result = a / b;
        printf("%i\n", result); // 2
        
        // 算术运算符的结合性和优先级
        // 结合性: 左结合性, 从左至右
        int c = 50;
        result = a + b + c; // 15 + c;  65;
        printf("%i\n", result);
        
        // 优先级: * / % 大于 + -
        result = a + b * c; // a + 250; 260;
        printf("%i\n", result);
    }
    
    #include <stdio.h>
    int main(){
        // 整数除以整数, 结果还是整数
        printf("%i\n", 10 / 3); // 3
    
        // 参与运算的任何一个数是小数, 结果就是小数
        printf("%f\n", 10 / 3.0); // 3.333333
    }
    
    #include <stdio.h>
    int main(){
        // 10 / 3 商等于3, 余1
        int result = 10 % 3;
        printf("%i\n", result); // 1
    
        // 左边小于右边, 那么结果就是左边
        result = 2 % 10;
        printf("%i\n", result); // 2
    
        // 被除数是正数结果就是正数,被除数是负数结果就是负数
        result = 10 % 3;
        printf("%i\n", result); // 1
        result = -10 % 3;
        printf("%i\n", result); // -1
        result = 10 % -3;
        printf("%i\n", result); // 1
    }
    

    赋值运算符

    优先级名称符号说明
    14赋值运算符=双目运算符,具有右结合性
    14除后赋值运算符/=双目运算符,具有右结合性
    14乘后赋值运算符 (模运算符)*=双目运算符,具有右结合性
    14取模后赋值运算符%=双目运算符,具有右结合性
    14加后赋值运算符+=双目运算符,具有右结合性
    14减后赋值运算符-=双目运算符,具有右结合性
    • 简单赋值运算符
    #include <stdio.h>
    int main(){
        // 简单的赋值运算符 =
        // 会将=右边的值赋值给左边
        int a = 10;
        printf("a = %i\n", a); // 10
    }
    
    • 复合赋值运算符
    #include <stdio.h>
    int main(){
         // 复合赋值运算符 += -= *= /= %=
         // 将变量中的值取出之后进行对应的操作, 操作完毕之后再重新赋值给变量
         int num1 = 10;
         // num1 = num1 + 1; num1 = 10 + 1; num1 = 11;
         num1 += 1;
         printf("num1 = %i\n", num1); // 11
         int num2 = 10;
         // num2 = num2 - 1; num2 = 10 - 1; num2 = 9;
         num2 -= 1;
         printf("num2 = %i\n", num2); // 9
         int num3 = 10;
         // num3 = num3 * 2; num3 = 10 * 2; num3 = 20;
         num3 *= 2;
         printf("num3 = %i\n", num3); // 20
         int num4 = 10;
         // num4 = num4 / 2; num4 = 10 / 2; num4 = 5;
         num4 /= 2;
         printf("num4 = %i\n", num4); // 5
         int num5 = 10;
         // num5 = num5 % 3; num5 = 10 % 3; num5 = 1;
         num5 %= 3;
         printf("num5 = %i\n", num5); // 1
    }
    
    • 结合性和优先级
    #include <stdio.h>
    int main(){
        int number = 10;
        // 赋值运算符优先级是14, 普通运算符优先级是3和4, 所以先计算普通运算符
        // 普通运算符中乘法优先级是3, 加法是4, 所以先计算乘法
        // number += 1 + 25; number += 26; number = number + 26; number = 36;
        number += 1 + 5 * 5;
        printf("number = %i\n", number); // 36
    }
    

    自增自减运算符

    • 在程序设计中,经常遇到“i=i+1”和“i=i-1”这两种极为常用的操作。
    • C语言为这种操作提供了两个更为简洁的运算符,即++和–
    优先级名称符号说明
    2自增运算符(在后)i++单目运算符,具有左结合性
    2自增运算符(在前)++i单目运算符,具有右结合性
    2自减运算符(在后)i–单目运算符,具有左结合性
    2自减运算符(在前)–i单目运算符,具有右结合性

    • 自增
      • 如果只有***单个***变量, 无论++写在前面还是后面都会对变量做+1操作
    #include <stdio.h>
    int main(){
        int number = 10;
        number++;
        printf("number = %i\n", number); // 11
        ++number;
        printf("number = %i\n", number); // 12
    }
    
    • 如果出现在一个表达式中, 那么++写在前面和后面就会有所区别
      • 前缀表达式:++x, --x;其中x表示变量名,先完成变量的自增自减1运算,再用x的值作为表达式的值;即“先变后用”,也就是变量的值先变,再用变量的值参与运算
      • 后缀表达式:x++, x–;先用x的当前值作为表达式的值,再进行自增自减1运算。即“先用后变”,也就是先用变量的值参与运算,变量的值再进行自增自减变化
    #include <stdio.h>
    int main(){
        int number = 10;
        // ++在后, 先参与表达式运算, 再自增
        // 表达式运算时为: 3 + 10;
        int result = 3 + number++;
        printf("result = %i\n", result); // 13
        printf("number = %i\n", number); // 11
    }
    
    #include <stdio.h>
    int main(){
        int number = 10;
        // ++在前, 先自增, 再参与表达式运算
        // 表达式运算时为: 3 + 11;
        int result = 3 + ++number;
        printf("result = %i\n", result); // 14
        printf("number = %i\n", number); // 11
    }
    
    • 自减
    #include <stdio.h>
    int main(){
        int number = 10;
        // --在后, 先参与表达式运算, 再自减
        // 表达式运算时为: 10 + 3;
        int result = number-- + 3;
        printf("result = %i\n", result); // 13
        printf("number = %i\n", number); // 9
    }
    
    #include <stdio.h>
    int main(){
        int number = 10;
        // --在前, 先自减, 再参与表达式运算
        // 表达式运算时为: 9 + 3;
        int result = --number + 3;
        printf("result = %i\n", result); // 12
        printf("number = %i\n", number); // 9
    }
    
    • 注意点:
      • 自增、自减运算只能用于单个变量,只要是标准类型的变量,不管是整型、实型,还是字符型变量等,但不能用于表达式或常量
        • 错误用法: ++(a+b); 5++;
      • 企业开发中尽量让++ – 单独出现, 尽量不要和其它运算符混合在一起
    int i = 10;
    int b = i++; // 不推荐
    或者
    int b = ++i; // 不推荐
    或者
    int a = 10;
    int b = ++a + a++;  // 不推荐
    
    • 请用如下代码替代
    int i = 10;
    int b = i; // 推荐
    i++;
    或者;
    i++;
    int b = i; // 推荐
    或者
    int a = 10;
    ++a;
    int b = a + a; // 推荐
    a++;
    
    • C语言标准没有明确的规定,同一个表达式中同一个变量自增或自减后如何运算, 不同编译器得到结果也不同, 在企业开发中千万不要这样写
        int a = 1;
        // 下列代码利用Qt运行时6, 利用Xcode运行是5
        // 但是无论如何, 最终a的值都是3
       //  在C语言中这种代码没有意义, 不用深究也不要这样写
       // 特点: 参与运算的是同一个变量, 参与运算时都做了自增自减操作, 并且在同一个表达式中
        int b = ++a + ++a;
        printf("b = %i\n", b); 
    

    sizeof运算符

    • sizeof可以用来计算一个变量或常量、数据类型所占的内存字节数

      • 标准格式: sizeof(常量 or 变量);
    • sizeof的几种形式

      • sizeof( 变量\常量 );
        • sizeof(10);
        • char c = 'a'; sizeof(c);
      • sizeof 变量\常量;
        • sizeof 10;
        • char c = 'a'; sizeof c;
      • sizeof( 数据类型);
        • sizeof(float);
        • 如果是数据类型不能省略括号
    • sizeof面试题:

      • sizeof()和+=、*=一样是一个复合运算符, 由sizeof和()两个部分组成, 但是代表的是一个整体
      • 所以sizeof不是一个函数, 是一个运算符, 该运算符的优先级是2
    #include <stdio.h>
    int main(){
        int a = 10;
        double b = 3.14;
        // 由于sizeof的优先级比+号高, 所以会先计算sizeof(a);
        // a是int类型, 所以占4个字节得到结果4
        // 然后再利用计算结果和b相加, 4 + 3.14 = 7.14
        double res = sizeof a+b;
        printf("res = %lf\n", res); // 7.14
    }
    

    逗号运算符

    • 在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把多个表达式连接起来组成一个表达式,称为逗号表达式
    • 逗号运算符会从左至右依次取出每个表达式的值, 最后整个逗号表达式的值等于最后一个表达式的值
    • 格式: 表达式1,表达式2,… …,表达式n;
      • 例如: int result = a+1,b=3*4;
    #include <stdio.h>
    int main(){
        int a = 10, b = 20, c;
        // ()优先级高于逗号运算符和赋值运算符, 所以先计算()中的内容
        // c = (11, 21);
        // ()中是一个逗号表达式, 结果是最后一个表达式的值, 所以计算结果为21
        // 将逗号表达式的结果赋值给c, 所以c的结果是21
        c = (a + 1, b + 1);
        printf("c = %i\n", c); // 21
    }
    

    关系运算符

    • 为什么要学习关系运算符
      • 默认情况下,我们在程序中写的每一句正确代码都会被执行。但很多时候,我们想在某个条件成立的情况下才执行某一段代码
      • 这种情况的话可以使用条件语句来完成,但是学习条件语句之前,我们先来看一些更基础的知识:如何判断一个条件是否成立

    • C语言中的真假性
      • 在C语言中,条件成立称为“真”,条件不成立称为“假”,因此,判断条件是否成立,就是判断条件的“真假”
      • 怎么判断真假呢?C语言规定,任何数值都有真假性,任何非0值都为“真”,只有0才为“假”。也就是说,108、-18、4.5、-10.5等都是“真”,0则是“假”

    • 关系运算符的运算结果只有2种:如果条件成立,结果就为1,也就是“真”;如果条件不成立,结果就为0,也就是“假”
    优先级名称符号说明
    6大于运算符>双目运算符,具有左结合性
    6小于运算符<双目运算符,具有左结合性
    6大于等于运算符>=双目运算符,具有左结合性
    6小于等于运算符<=双目运算符,具有左结合性
    7等于运算符==双目运算符,具有左结合性
    7不等于运算符!=双目运算符,具有左结合性
    #include <stdio.h>
    int main(){
        int result = 10 > 5;
        printf("result = %i\n", result); // 1
        result = 5 < 10;
        printf("result = %i\n", result); // 1
        result = 5 > 10;
        printf("result = %i\n", result); // 0
        result = 10 >= 10;
        printf("result = %i\n", result); // 1
        result = 10 <= 10;
        printf("result = %i\n", result); // 1
        result = 10 == 10;
        printf("result = %i\n", result); // 1
        result = 10 != 9;
        printf("result = %i\n", result); // 1
    }
    
    • 优先级和结合性
    #include <stdio.h>
    int main(){
        // == 优先级 小于 >, 所以先计算>
        // result = 10 == 1; result = 0;
        int result = 10 == 5 > 3;
        printf("result = %i\n", result); // 0
    }
    
    #include <stdio.h>
    int main(){
        // == 和 != 优先级一样, 所以按照结合性
        // 关系运算符是左结合性, 所以从左至右计算
        // result = 0 != 3; result = 1;
        int result = 10 == 5 != 3;
        printf("result = %i\n", result); // 1
    }
    
    • 练习: 计算result的结果
    int result1 = 3 > 4 + 7
    int result2 = (3>4) + 7
    int result3 = 5 != 4 + 2 * 7 > 3 == 10
    
    • 注意点:
      • 无论是float还是double都有精度问题, 所以一定要避免利用==判断浮点数是否相等
    #include <stdio.h>
    int main(){
        float a = 0.1;
        float b = a * 10 + 0.00000000001;
        double c = 1.0 + + 0.00000000001;
        printf("b = %f\n", b);
        printf("c = %f\n", c);
        int result = b == c;
        printf("result = %i\n", result); // 0
    }
    

    逻辑运算符

    优先级名称符号说明
    2逻辑非运算符!单目运算符,具有右结合性
    11逻辑与运算符&&双目运算符,具有左结合性
    12逻辑或运算符\|\|双目运算符,具有左结合性
    • 逻辑非
      • 格式: ! 条件A;
      • 运算结果: 真变假,假变真
      • 运算过程:
        • 先判断条件A是否成立,如果添加A成立, 那么结果就为0,即“假”;
        • 如果条件A不成立,结果就为1,即“真”
      • 使用注意:
        • 可以多次连续使用逻辑非运算符
        • !!!0;相当于(!(!(!0)));最终结果为1
    #include <stdio.h>
    int main(){
        // ()优先级高, 先计算()里面的内容
        // 10==10为真, 所以result = !(1);
        // !代表真变假, 假变真,所以结果是假0
        int result = !(10 == 10);
        printf("result = %i\n", result); // 0
    }
    

    • 逻辑与
      • 格式: 条件A && 条件B;
      • 运算结果:一假则假
      • 运算过程:
        • 总是先判断"条件A"是否成立
        • 如果"条件A"成立,接着再判断"条件B"是否成立, 如果"条件B"也成立,结果就为1,即“真”
        • 如果"条件A"成立,"条件B"不成立,结果就为0,即“假”
        • 如果"条件A"不成立,不会再去判断"条件B"是否成立, 因为逻辑与只要一个不为真结果都不为真
      • 使用注意:
        • "条件A"为假, "条件B"不会被执行
    #include <stdio.h>
    int main(){
        //               真     &&    真
        int result = (10 == 10) && (5 != 1);
        printf("result = %i\n", result); // 1
        //          假     &&    真
        result = (10 == 9) && (5 != 1);
        printf("result = %i\n", result); // 0
        //          真     &&    假
        result = (10 == 10) && (5 != 5);
        printf("result = %i\n", result); // 0
        //          假     &&    假
        result = (10 == 9) && (5 != 5);
        printf("result = %i\n", result); // 0
    }
    
    #include <stdio.h>
    int main(){
        int a = 10;
        int b = 20;
        // 逻辑与, 前面为假, 不会继续执行后面
        int result = (a == 9) && (++b);
        printf("result = %i\n", result); // 1
        printf("b = %i\n", b); // 20
    }
    

    • 逻辑或
      • 格式: 条件A || 条件B;
      • 运算结果:一真则真
      • 运算过程:
        • 总是先判断"条件A"是否成立
        • 如果"条件A"不成立,接着再判断"条件B"是否成立, 如果"条件B"成立,结果就为1,即“真”
        • 如果"条件A"不成立,"条件B"也不成立成立, 结果就为0,即“假”
        • 如果"条件A"成立, 不会再去判断"条件B"是否成立, 因为逻辑或只要一个为真结果都为真
      • 使用注意:
        • "条件A"为真, "条件B"不会被执行
    #include <stdio.h>
    int main(){
        //               真     ||    真
        int result = (10 == 10) || (5 != 1);
        printf("result = %i\n", result); // 1
        //          假     ||    真
        result = (10 == 9) || (5 != 1);
        printf("result = %i\n", result); // 1
        //          真     ||    假
        result = (10 == 10) || (5 != 5);
        printf("result = %i\n", result); // 1
        //          假     ||    假
        result = (10 == 9) || (5 != 5);
        printf("result = %i\n", result); // 0
    }
    
    #include <stdio.h>
    int main(){
        int a = 10;
        int b = 20;
        // 逻辑或, 前面为真, 不会继续执行后面
        int result = (a == 10) || (++b);
        printf("result = %i\n", result); // 1
        printf("b = %i\n", b); // 20
    }
    
    • 练习: 计算result的结果
    int result = 3>5 || 2<4 && 6<1;
    

    三目运算符

    • 三目运算符,它需要3个数据或表达式构成条件表达式

    • 格式: 表达式1?表达式2(结果A):表达式3(结果B)

      • 示例: 考试及格 ? 及格 : 不及格;
    • 求值规则:

      • 如果"表达式1"为真,三目运算符的运算结果为"表达式2"的值(结果A),否则为"表达式3"的值(结果B)
    示例:
        int a = 10;
        int b = 20;
        int max = (a > b) ? a : b;
        printf("max = %d", max);
        输出结果: 20
    等价于:
        int a = 10;
        int b = 20;
        int max = 0;
        if(a>b){
          max=a;
        }else {
           max=b;
        }
        printf("max = %d", max);
    
    • 注意点
      • 条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符
      • 条件运算符?和:是一个整体,不能分开使用
    #include <stdio.h>
    int main(){
        int a = 10;
        int b = 5;
        // 先计算 a > b
        // 然后再根据计算结果判定返回a还是b
        // 相当于int max= (a>b) ? a : b;
        int max= a>b ? a : b;
        printf("max = %i\n", max); // 10
    }
    
    #include <stdio.h>
    int main(){
        int a = 10;
        int b = 5;
        int c = 20;
        int d = 10;
        // 结合性是从右至左, 所以会先计算:后面的内容
        // int res = a>b?a:(c>d?c:d);
        // int res = a>b?a:(20>10?20:10);
        // int res = a>b?a:(20);
        // 然后再计算最终的结果
        // int res = 10>5?10:(20);
        // int res = 10;
        int res = a>b?a:c>d?c:d;
        printf("res = %i\n", res);
    }
    

    类型转换

    强制类型转换(显示转换)自动类型转换(隐式转换)
    (需要转换的类型)(表达式)1.算数转换 2.赋值转换
    • 强制类型转换(显示转换)
    // 将double转换为int
    int a = (int)10.5;
    
    • 算数转换
      • 系统会自动对占用内存较少的类型做一个“自动类型提升”的操作, 先将其转换为当前算数表达式中占用内存高的类型, 然后再参与运算
    // 当前表达式用1.0占用8个字节, 2占用4个字节
    // 所以会先将整数类型2转换为double类型之后再计算
    double b = 1.0 / 2;
    
    • 赋值转换
    // 赋值时左边是什么类型,就会自动将右边转换为什么类型再保存
    int a = 10.6;
    
    • 注意点:
      • 参与计算的是什么类型, 结果就是什么类型
    // 结果为0, 因为参与运算的都是整型
    double a = (double)(1 / 2);
    // 结果为0.5, 因为1被强制转换为了double类型, 2也会被自动提升为double类型
    double b = (double)1 / 2;
    
    • 类型转换并不会影响到原有变量的值
    #include <stdio.h>
    int main(){
        double d = 3.14;
        int num = (int)d;
        printf("num = %i\n", num); // 3
        printf("d = %lf\n", d); // 3.140000
    }
    

    阶段练习

    • 从键盘输入一个整数, 判断这个数是否是100到200之间的数
    • 表达式 6==6==6 的值是多少?
    • 用户从键盘上输入三个整数,找出最大值,然后输入最大值
    • 用两种方式交换两个变量的保存的值
    交换前
    int a = 10; int b = 20;
    交换后
    int a = 20; int b = 10;
    

    流程控制基本概念

    • 默认情况下程序运行后,系统会按书写顺序从上至下依次执行程序中的每一行代码。但是这并不能满足我们所有的开发需求, 为了方便我们控制程序的运行流程,C语言提供3种流程控制结构,不同的流程控制结构可以实现不同的运行流程。

    • 这3种流程结构分别是顺序结构、选择结构、循环结构

    • 顺序结构:

      • 按书写顺序从上至下依次执行
    • 选择结构

      • 对给定的条件进行判断,再根据判断结果来决定执行代码

    • 循环结构

      • 在给定条件成立的情况下,反复执行某一段代码


    选择结构

    • C语言中提供了两大选择结构, 分别是if和switch
      ##选择结构if
    • if第一种形式
      • 表示如果表达式为真,执行语句块1,否则不执行
    if(表达式) {
      语句块1;
    }
    后续语句;
    
    if(age >= 18) {
      printf("开网卡\n");
    }
    printf("买烟\n");
    
    • if第二种形式
      • 如果表达式为真,则执行语句块1,否则执行语句块2
      • else不能脱离if单独使用
    if(表达式){
      语句块1;
    }else{
      语句块2;
    }
    后续语句;
    
    if(age > 18){
      printf("开网卡\n");
    }else{
      printf("喊家长来开\n");
    }
    printf("买烟\n");
    
    • if第三种形式
      • 如果"表达式1"为真,则执行"语句块1",否则判断"表达式2",如果为真执行"语句块2",否则再判断"表达式3",如果真执行"语句块3", 当表达式1、2、3都不满足,会执行最后一个else语句
      • 众多大括号中,只有一个大括号中的内容会被执行
      • 只有前面所有添加都不满足, 才会执行else大括号中的内容
    if(表达式1) {
      语句块1;
    }else if(表达式2){
      语句块2;
    }else if(表达式3){
      语句块3;
    }else{
      语句块4;
    }
    后续语句;
    
    if(age>40){
      printf("给房卡");
    }else if(age>25){
      printf("给名片");
    }else if(age>18){
       printf("给网卡");
    }else{
      printf("给好人卡");
    }
    printf("买烟\n");
    
    • if嵌套
      • if中可以继续嵌套if, else中也可以继续嵌套if
    if(表达式1){
        语句块1;
       if(表达式2){
          语句块2;
      }
    }else{
       if(表达式3){
          语句块3;
      }else{
          语句块4;
      }
    }
    

    • if注意点
      • 任何数值都有真假性
    #include <stdio.h>
    int main(){
        if(0){
            printf("执行了if");
        }else{
            printf("执行了else"); // 被执行
        }
    }
    
    • 当if else后面只有一条语句时, if else后面的大括号可以省略
        // 极其不推荐写法
        int age = 17;
        if (age >= 18)
            printf("开网卡\n");
        else
            printf("喊家长来开\n");
    
    • 当if else后面的大括号被省略时, else会自动和距离最近的一个if匹配
    #include <stdio.h>
    int main(){
        if(0)
        if(1)
        printf("A\n");
        else // 和if(1)匹配
        printf("B\n");
        else // 和if(0)匹配, 因为if(1)已经被匹配过了
        if (1)
        printf("C\n"); // 输出C
        else // 和if(1)匹配
        printf("D\n");
    }
    
      • 如果if else省略了大括号, 那么后面不能定义变量
    #include <stdio.h>
    int main(){
        if(1)
            int number = 10; // 系统会报错
        printf("number = %i\n", number);
    }
    
    #include <stdio.h>
    int main(){
        if(0){
            int number = 10; 
        }else
            int value = 20; // 系统会报错
        printf("value = %i\n", value);
    }
    
    • C语言中分号(;)也是一条语句, 称之为空语句
    // 因为if(10 > 2)后面有一个分号, 所以系统会认为if省略了大括号
    // if省略大括号时只能管控紧随其后的那条语句, 所以只能管控分号
    if(10 > 2);
    {
    printf("10 > 2");
    }
    // 输出结果: 10 > 2
    
    • 但凡遇到比较一个变量等于或者不等于某一个常量的时候,把常量写在前面
    #include <stdio.h>
    int main(){
        int a = 8;
    //    if(a = 10){// 错误写法, 但不会报错
        if (10 == a){
          printf("a的值是10\n");
        }else{
         printf("a的值不是10\n");
        }
    }
    

    • if练习

      • 从键盘输入一个整数,判断其是否是偶数,如果是偶数就输出YES,否则输出NO;
      • 接收用户输入的1~7的整数,根据用户输入的整数,输出对应的星期几
      • 接收用户输入的一个整数month代表月份,根据月份输出对应的季节
      • 接收用户输入的两个整数,判断大小后输出较大的那个数
      • 接收用户输入的三个整数,判断大小后输出较大的那个数
      • 接收用户输入的三个整数,排序后输出
    • 实现石头剪刀布

    剪刀石头布游戏:
    1)定义游戏规则
      剪刀 干掉 布
      石头 干掉 剪刀
      布 干掉石头
    2)显示玩家开始猜拳
    3)接收玩家输入的内容
    4)让电脑随机产生一种拳
    5)判断比较
    (1)玩家赢的情况(显示玩家赢了)
    (2)电脑赢的情况(显示电脑赢了)
    (3)平局(显示平局)
    




    选择结构switch

    • 由于 if else if 还是不够简洁,所以switch 就应运而生了,他跟 if else if 互为补充关系。switch 提供了点的多路选择
    • 格式:
    switch(表达式){
        case 常量表达式1:
            语句1;
            break;
        case 常量表达式2:
            语句2; 
            break;
        case 常量表达式n:
            语句n;
            break;
        default:
            语句n+1;
            break;
    }
    
    • 语义:
      • 计算"表达式"的值, 逐个与其后的"常量表达式"值相比较,当"表达式"的值与某个"常量表达式"的值相等时, 即执行其后的语句, 然后跳出switch语句
      • 如果"表达式"的值与所有case后的"常量表达式"均不相同时,则执行default后的语句
    • 示例:
    #include <stdio.h>
    
    int main() {
    
        int num = 3;
        switch(num){
        case 1:
            printf("星期一\n");
            break;
        case 2:
            printf("星期二\n");
            break;
        case 3:
            printf("星期三\n");
            break;
        case 4:
            printf("星期四\n");
            break;
        case 5:
            printf("星期五\n");
            break;
        case 6:
            printf("星期六\n");
            break;
        case 7:
            printf("星期日\n");
            break;
        default:
            printf("回火星去\n");
            break;
        }
    }
    

    • switch注意点
      • switch条件表达式的类型必须是整型, 或者可以被提升为整型的值(char、short)
    #include <stdio.h>
    
    int main() {
    
        switch(1.1){ // 报错
        case 1:
            printf("星期一\n");
            break;
        case 2:
            printf("星期二\n");
            break;
        default:
            printf("回火星去\n");
            break;
        }
    }
    
    • +case的值只能是常量, 并且还必须是整型, 或者可以被提升为整型的值(char、short)
    #include <stdio.h>
    
    int main() {
    
        int num = 3;
        switch(1){ 
        case 1:
            printf("星期一\n");
            break;
        case 'a':
            printf("星期二\n");
            break;
        case num: // 报错
            printf("星期三\n");
            break;
        case 4.0: // 报错
            printf("星期四\n");
            break;
        default:
            printf("回火星去\n");
            break;
        }
    }
    
    • case后面常量表达式的值不能相同
    #include <stdio.h>
    
    int main() {
        switch(1){ 
        case 1: // 报错
            printf("星期一\n");
            break;
        case 1: // 报错
            printf("星期一\n");
            break;
        default:
            printf("回火星去\n");
            break;
        }
    }
    
    • case后面要想定义变量,必须给case加上大括号
    #include <stdio.h>
    
    int main() {
        switch(1){
        case 1:{
            int num = 10;
            printf("num = %i\n", num);
            printf("星期一\n");
            break;
            }
        case 2:
            printf("星期一\n");
            break;
        default:
            printf("回火星去\n");
            break;
        }
    }
    
    • switch中只要任意一个case匹配, 其它所有的case和default都会失效. 所以如果case和default后面没有break就会出现穿透问题
    #include <stdio.h>
    
    int main() {
    
        int num = 2;
        switch(num){
        case 1:
            printf("星期一\n");
            break;
        case 2:
            printf("星期二\n"); // 被输出
        case 3:
            printf("星期三\n"); // 被输出
        default:
            printf("回火星去\n"); // 被输出
            break;
        }
    }
    
    • switch中default可以省略
    #include <stdio.h>
    
    int main() {
        switch(1){
        case 1:
            printf("星期一\n");
            break;
        case 2:
            printf("星期一\n");
            break;
        }
    }
    
    • switch中default的位置不一定要写到最后, 无论放到哪都会等到所有case都不匹配才会执行(穿透问题除外)
    #include <stdio.h>
    
    int main() {
        switch(3){
        case 1:
            printf("星期一\n");
            break;
        default:
            printf("Other,,,\n");
            break;
        case 2:
            printf("星期一\n");
            break;
        }
    }
    

    • if和Switch转换
    • 看上去if和switch都可以实现同样的功能, 那么在企业开发中我们什么时候使用if, 什么时候使用switch呢?
      • if else if 针对于范围的多路选择
      • switch 是针对点的多路选择
    • 判断用户输入的数据是否大于100
    #include <stdio.h>
    
    int main() {
        int a = -1;
        scanf("%d", &a);
        if(a > 100){
            printf("用户输入的数据大于100");
        }else{
            printf("用户输入的数据不大于100");
        }
    }
    
    #include <stdio.h>
    
    int main() {
        int a = -1;
        scanf("%d", &a);
        // 挺(T)萌(M)的(D)搞不定啊
        switch (a) {
            case 101:
            case 102:
            case 103:
            case 104:
            case 105:
                printf("大于\n");
                break;
            default:
                printf("不大于\n");
                break;
        }
    }
    

    • 练习
      • 实现分数等级判定
    要求用户输入一个分数,根据输入的分数输出对应的等级
    A 90~100  
    B 80~89
    C 70~79
    D 60~69
    E 0~59
    
    • 实现+ - * / 简单计算器

    循环结构

    • C语言中提供了三大循环结构, 分别是while、dowhile和for
    • 循环结构是程序中一种很重要的结构。
      • 其特点是,在给定条件成立时,反复执行某程序段, 直到条件不成立为止。
      • 给定的条件称为"循环条件",反复执行的程序段称为"循环体"

    循环结构while

    • 格式:
    while (  循环控制条件 ) {
        循环体中的语句;
        能够让循环结束的语句;
        ....
    }
    
    • 构成循环结构的几个条件

      • 循环控制条件
        • 循环退出的主要依据,来控制循环到底什么时候退出
      • 循环体
        • 循环的过程中重复执行的代码段
      • 能够让循环结束的语句(递增、递减、真、假等)
        • 能够让循环条件为假的依据,否则退出循环
    • 示例:

    int count = 0;
    while (count < 3) { // 循环控制条件
        printf("发射子弹~哔哔哔哔\n"); // 需要反复执行的语句
        count++; // 能够让循环结束的语句
    }
    
    • while循环执行流程
      • 首先会判定"循环控制条件"是否为真, 如果为假直接跳到循环语句后面
      • 如果"循环控制条件"为真, 执行一次循环体, 然后再次判断"循环控制条件"是否为真, 为真继续执行循环体,为假跳出循环
      • 重复以上操作, 直到"循环控制条件"为假为止
    #include <stdio.h>
    int main(){
        int count = 4;
        // 1.判断循环控制条件是否为真,此时为假所以跳过循环语句
        while (count < 3) { 
            printf("发射子弹~哔哔哔哔\n"); 
            count++; 
        }
        // 2.执行循环语句后面的代码, 打印"循环执行完毕"
        printf("循环执行完毕\n");
    }
    
    #include <stdio.h>
    int main(){
        int count = 0;
        // 1.判断循环控制条件是否为真,此时0 < 3为真
        // 4.再次判断循环控制条件是否为真,此时1 < 3为真
        // 7.再次判断循环控制条件是否为真,此时2 < 3为真
        // 10.再次判断循环控制条件是否为真,此时3 < 3为假, 跳过循环语句
        while (count < 3) { 
            // 2.执行循环体中的代码, 打印"发子弹"
            // 5.执行循环体中的代码, 打印"发子弹"
            // 8.执行循环体中的代码, 打印"发子弹"
            printf("发射子弹~哔哔哔哔\n"); 
            // 3.执行"能够让循环结束的语句" count = 1
            // 6.执行"能够让循环结束的语句" count = 2
            // 9.执行"能够让循环结束的语句" count = 3
            count++; 
        }
        // 11.执行循环语句后面的代码, 打印"循环执行完毕"
        printf("循环执行完毕\n");
    }
    

    • while循环注意点
      • 任何数值都有真假性
    #include <stdio.h>
    int main(){
        while (1) { // 死循环
             printf("发射子弹~哔哔哔哔\n");
             // 没有能够让循环结束的语句
        }
    }
    
    • 当while后面只有一条语句时,while后面的大括号可以省略
    #include <stdio.h>
    int main(){
        while (1)  // 死循环
             printf("发射子弹~哔哔哔哔\n");
             // 没有能够让循环结束的语句
    }
    
    • 如果while省略了大括号, 那么后面不能定义变量
    #include <stdio.h>
    int main(){
        while (1)  // 死循环
             int num = 10; // 报错
             // 没有能够让循环结束的语句
    }
    
    • C语言中分号(;)也是一条语句, 称之为空语句
    #include <stdio.h>
    int main(){
        int count = 0;
        while (count < 3);{ // 死循环
           printf("发射子弹~哔哔哔哔\n"); 
           count++; 
        }
    }
    
    • 最简单的死循环
    // 死循环一般在操作系统级别的应用程序会比较多, 日常开发中很少用
    while (1);
    

    • while练习
      • 计算1 + 2 + 3 + …n的和
      • 获取1~100之间 7的倍数的个数

    循环结构do while

    • 格式:
    do {
        循环体中的语句;
        能够让循环结束的语句;
        ....
    } while (循环控制条件 );
    
    • 示例
    int count = 0;
    do {
       printf("发射子弹~哔哔哔哔\n");
       count++;
    }while(count < 10);
    
    • do-while循环执行流程

      • 首先不管while中的条件是否成立, 都会执行一次"循环体"
      • 执行完一次循环体,接着再次判断while中的条件是否为真, 为真继续执行循环体,为假跳出循环
      • 重复以上操作, 直到"循环控制条件"为假为止
    • 应用场景

      • 口令校验
    #include<stdio.h>
    int main()
    {
        int num = -1;
        do{
            printf("请输入密码,验证您的身份\n");
            scanf("%d", &num);
        }while(123456 != num);
        printf("主人,您终于回来了\n");
    }
    
    • while和dowhile应用场景
      • 绝大多数情况下while和dowhile可以互换, 所以能用while就用while
      • 无论如何都需要先执行一次循环体的情况, 才使用dowhile
      • do while 曾一度提议废除,但是他在输入性检查方面还是有点用的

    循环结构for

    • 格式:
    for(初始化表达式;循环条件表达式;循环后的操作表达式) {
        循环体中的语句;
    }
    
    • 示例
    for(int i = 0; i < 10; i++){
        printf("发射子弹~哔哔哔哔\n");
    }
    
    • for循环执行流程

      • 首先执行"初始化表达式",而且在整个循环过程中,***只会执行一次***初始化表达式
      • 接着判断"循环条件表达式"是否为真,为真执行循环体中的语句
      • 循环体执行完毕后,接下来会执行"循环后的操作表达式",然后再次判断条件是否为真,为真继续执行循环体,为假跳出循环
      • 重复上述过程,直到条件不成立就结束for循环
    • for循环注意点:

      • 和while一模一样
      • 最简单的死循环for(;;);
    • for和while应用场景

      • while能做的for都能做, 所以企业开发中能用for就用for, 因为for更为灵活
      • 而且对比while来说for更节约内存空间
    int count = 0; // 初始化表达式
    while (count < 10) { // 条件表达式
          printf("发射子弹~哔哔哔哔 %i\n", count);
          count++; // 循环后增量表达式
    }
    // 如果初始化表达式的值, 需要在循环之后使用, 那么就用while
    printf("count = %i\n", count);
    
    // 注意: 在for循环初始化表达式中定义的变量, 只能在for循环后面的{}中访问
    // 所以: 如果初始化表达式的值, 不需要在循环之后使用, 那么就用for
    // 因为如果初始化表达式的值, 在循环之后就不需要使用了 , 那么用while会导致性能问题
    for (int count = 0; count < 10; count++) {
         printf("发射子弹~哔哔哔哔 %i\n", count);
    }
    //     printf("count = %i\n", count);
    
    // 如果需要使用初始化表达式的值, 也可以将初始化表达式写到外面
    int count = 0;
    for (; count < 10; count++) {
         printf("发射子弹~哔哔哔哔\n", count);
    }
    printf("count = %i\n", count);
    

    四大跳转

    • C语言中提供了四大跳转语句, 分别是return、break、continue、goto

    • break:

      • 立即跳出switch语句或循环
    • 应用场景:

      • switch
      • 循环结构

    • break注意点:

      • break离开应用范围,存在是没有意义的
    if(1) {
      break; // 会报错
    }
    
    • 在多层循环中,一个break语句只向外跳一层
    while(1) {
      while(2) {
        break;// 只对while2有效, 不会影响while1
      }
      printf("while1循环体\n");
    }
    
    • break下面不可以有语句,因为执行不到
    while(2){
      break;
      printf("打我啊!");// 执行不到
    }
    

    • continue
      • 结束***本轮***循环,进入***下一轮***循环
    • 应用场景:
      • 循环结构
    • continue注意点:
      • continue离开应用范围,存在是没有意义的
    if(1) {
      continue; // 会报错
    }
    

    • goto
      • 这是一个不太值得探讨的话题,goto 会破坏结构化程序设计流程,它将使程序层次不清,且不易读,所以慎用
      • goto 语句,仅能在本函数内实现跳转,不能实现跨函数跳转(短跳转)。但是他在跳出多重循环的时候效率还是蛮高的
    #include <stdio.h>
    int main(){
        int num = 0;
    // loop:是定义的标记
    loop:if(num < 10){
            printf("num = %d\n", num);
            num++;
            // goto loop代表跳转到标记的位置
            goto loop;
        }
    }
    
    #include <stdio.h>
    int main(){
        while (1) {
            while(2){
                goto lnj;
            }
        }
        lnj:printf("跳过了所有循环");
    }
    

    • return
      • 结束当前函数,将结果返回给调用者
      • 不着急, 放一放,学到函数我们再回头来看它

    循环的嵌套

    • 循环结构的循环体中存在其他的循环结构,我们称之为循环嵌套
      • 注意: 一般循环嵌套不超过三层
      • 外循环执行的次数 * 内循环执行的次数就是内循环总共执行的次数
    • 格式:
    while(条件表达式) {
        while循环结构 or dowhile循环结构 or for循环结构
    }
    
    for(初始化表达式;循环条件表达式;循环后的操作表达式) {
        while循环结构 or dowhile循环结构 or for循环结构
    }
    
    do {
         while循环结构 or dowhile循环结构 or for循环结构
    } while (循环控制条件 );
    
    • 循环优化
      • 在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少 CPU 跨切循环层的次数
    for (row=0; row<100; row++) {
      // 低效率:长循环在最外层
      for ( col=0; col<5; col++ ) {
        sum = sum + a[row][col];
      }
    }
    
    for (col=0; col<5; col++ ) {
      // 高效率:长循环在最内层
      for (row=0; row<100; row++) {
        sum = sum + a[row][col];
      }
    }
    
    • 练习
      • 打印好友列表
    好友列表1
        好友1
        好友2
    好友列表2
        好友1
        好友2
    好友列表3
        好友1
        好友2
    
    for (int i = 0; i < 4; i++) {
        printf("好友列表%d\n", i+1);
        for (int j = 0; j < 4; j++) {
            printf("    角色%d\n", j);
        }
    }
    

    图形打印

    • 一重循环解决线性的问题,而二重循环和三重循环就可以解决平面和立体的问题了
    • 打印矩形
    ****
    ****
    ****
    
    // 3行4列
    //  外循环控制行数
    for (int i = 0; i < 3; i++) {
    //        内循环控制列数
        for (int j = 0; j < 4; j++) {
            printf("*");
        }
        printf("\n");
    }
    
    • 打印三角形
      • 尖尖朝上,改变内循环的条件表达式,让内循环的条件表达式随着外循环的i值变化
      • 尖尖朝下,改变内循环的初始化表达式,让内循环的初始化表达式随着外循环的i值变化
    *
    **
    ***
    ****
    *****
    
    /*
    最多打印5行
    最多打印5列
    每一行和每一列关系是什么? 列数<=行数
    */
    for(int i = 0; i< 5; i++) {
        for(int j = 0; j <= i; j++) {
            printf("*");
        }
        printf("\n");
    }
    
    *****
    ****
    ***
    **
    *
    
    for(int i = 0; i< 5; i++) {
        for(int j = i; j < 5; j++) {
            printf("*");
        }
        printf("\n");
    }
    
    • 练习
      • 打印特殊三角形
    1
    12
    123
    
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j <= i; j++) {
            printf("%d", j+1);
        }
        printf("\n");
    }
    
    • 打印特殊三角形
    1
    22
    333
    
    for (int i = 1; i <= 3; i++) {
        for (int j = 1; j <= i; j++) {
            printf("%d", i);
        }
        printf("\n");
    }
    
    • 打印特殊三角形
    --*
    -***
    *****
    
    for (int i = 0; i <= 5; i++) {
        for (int j = 0; j < 5 - i; j++) {
            printf("-");
        }
        for (int m = 0; m < 2*i+1; m++) {
            printf("*");
        }
        printf("\n");
    }
    
    • 打印99乘法表
    1 * 1 = 1
    1 * 2 = 2     2 * 2 = 4
    1 * 3 = 3     2 * 3 = 6     3 * 3 = 9
    
    for (int i = 1; i <= 9; i++) {
        for (int j = 1; j <= i; j++) {
            printf("%d * %d = %d \t", j, i, (j * i));
        }
        printf("\n");
    }
    

    函数基本概念

    • C源程序是由函数组成的
      • 例如: 我们前面学习的课程当中,通过main函数+scanf函数+printf函数+逻辑代码就可以组成一个C语言程序
    • C语言不仅提供了极为丰富的库函数, 还允许用户建立自己定义的函数。用户可把自己的算法编写成一个个相对独立的函数,然后再需要的时候调用它
      • 例如:你用C语言编写了一个MP3播放器程序,那么它的程序结构如下图所示
    • 可以说C程序的全部工作都是由各式各样的函数完成的,所以也把C语言称为函数式语言

    函数的分类

    • 在C语言中可从不同的角度对函数分类
    • 从函数定义的角度看,函数可分为库函数和用户定义函数两种
      • 库函数: 由C语言系统提供,用户无须定义,也不必在程序中作类型说明,只需在程序前包含有该函数原型的头文件即可在程序中直接调用。在前面各章的例题中反复用到printf、scanf、getchar、putchar等函数均属此类
      • ***用户定义函数:***由用户按需编写的函数。对于用户自定义函数,不仅要在程序中定义函数本身,而且在主调函数模块中还必须对该被调函数进行类型说明,然后才能使用
    • 从函数执行结果的角度来看, 函数可分为有返回值函数和无返回值函数两种
      • 有返回值函数: 此类函数被调用执行完后将向调用者返回一个执行结果,称为函数返回值。(必须指定返回值类型和使用return关键字返回对应数据)
      • 无返回值函数: 此类函数用于完成某项特定的处理任务,执行完成后不向调用者返回函数值。(返回值类型为void, 不用使用return关键字返回对应数据)
    • 从主调函数和被调函数之间数据传送的角度看,又可分为无参函数和有参函数两种
      • 无参函数: 在函数定义及函数说明及函数调用中均不带参数。主调函数和被调函数之间不进行参数传送。
      • 有参函数: 在函数定义及函数说明时都有参数,称为形式参数(简称为形参)。在函数调用时也必须给出参数,称为实际参数(简称为实参)

    函数的定义

    • 定义函数的目的

      • 将一个常用的功能封装起来,方便以后调用
    • 自定义函数的书写格式

    返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…) {
        函数体;
        返回值;
    }
    
    • 示例
    int main(){
        printf("hello world\n");
        retrun 0;
    }
    
    • 定义函数的步骤
      • 函数名:函数叫什么名字
      • 函数体:函数是干啥的,里面包含了什么代码
      • 返回值类型: 函数执行完毕返回什么和调用者

    • 无参无返回值函数定义
      • 没有返回值时return可以省略
      • 格式:
      void 函数名() {
          函数体;
      }
      
      • 示例:
      // 1.没有返回值/没有形参
      // 如果一个函数不需要返回任何数据给调用者, 那么返回值类型就是void
      void printRose() {
          printf(" {@}\n");
          printf("  |\n");
          printf(" \\|/\n"); // 注意: \是一个特殊的符号(转意字符), 想输出\必须写两个斜线
          printf("  |\n");
        // 如果函数不需要返回数据给调用者, 那么函数中的return可以不写
      }
      

    • 无参有返回值函数定义
      • 格式:
      返回值类型 函数名() {
          函数体;
          return 值;
      }
      
      • 示例:
      int getMax() {
          printf("请输入两个整数, 以逗号隔开, 以回车结束\n");
          int number1, number2;
          scanf("%i,%i", &number1, &number2);
          int max = number1 > number2 ? number1 : number2;
          return max;
      }
      

    • 有参无返回值函数定义
      • 形式参数表列表的格式: 类型 变量名,类型 变量2,......
      • 格式:
      void 函数名(参数类型 形式参数1,参数类型 形式参数2,…) {
          函数体;
      }
      
      • 示例:
      void printMax(int value1, int value2) {
          int max = value1 > value2 ? value1 : value2;
          printf("max = %i\n", max);
      }
      

    • 有参有返回值函数定义
      • 格式:
      返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…) {
          函数体;
          return 0;
      }
      
      • 示例:
       int printMax(int value1, int value2) {
          int max = value1 > value2 ? value1 : value2;
          return max;
      }
      

    • 函数定义注意
      • 函数名称不能相同
      void test() {
      }
      void test() { // 报错
      }
      

    函数的参数和返回值

    • 形式参数
      • 在***定义函数***时,函数名后面小括号()中定义的变量称为形式参数,简称形参
      • 形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。
      • 因此,形参只有在函数内部有效,函数调用结束返回主调函数后则不能再使用该形参变量
    int max(int number1, int number2) //  形式参数
    {
        return number1 > number2 ? number1 : number2;
    }
    

    • 实际参数
      • 在***调用函数***时, 传入的值称为实际参数,简称实参
      • 实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参
      • 因此应预先用赋值,输入等办法使实参获得确定值
    int main() {
        int num = 99;
        // 88, num, 22+44均能得到一个确定的值, 所以都可以作为实参
        max(88, num, 22+44); // 实际参数
        return 0;
    }
    

    • 形参、实参注意点
      • 调用函数时传递的实参个数必须和函数的形参个数必须保持一致
      int max(int number1, int number2) { //  形式参数
          return number1 > number2 ? number1 : number2;
      }
      int main() {
          // 函数需要2个形参, 但是我们只传递了一个实参, 所以报错
          max(88); // 实际参数
          return 0;
      }
      
    • 形参实参类型不一致, 会自动转换为形参类型
    void change(double number1, double number2) {//  形式参数
       // 输出结果: 10.000000, 20.000000
       // 自动将实参转换为double类型后保存
       printf("number1 = %f, number2 = %f", number1, number2);
    }
    int main() {
        change(10, 20);
        return 0;
    }
    
    • 当使用基本数据类型(char、int、float等)作为实参时,实参和形参之间只是值传递,修改形参的值并不影响到实参函数可以没有形参
      void change(int number1, int number2) { //  形式参数
          number1 = 250; // 不会影响实参
          number2 = 222;
      }
      int main() {
          int a = 88;
          int b = 99;
          change(a, b);
          printf("a  = %d, b = %d", a, b); // 输出结果: 88, 99
          return 0;
      }
      

    • 返回值类型注意点
      • 如果没有写返回值类型,默认是int
      max(int number1, int number2) {//  形式参数
          return number1 > number2 ? number1 : number2;
      }
      
    • 函数返回值的类型和return实际返回的值类型应保持一致。如果两者不一致,则以返回值类型为准,自动进行类型转换
    int height() {
        return 3.14; 
    }
    int main() {
      double temp = height();
      printf("%lf", temp);// 输出结果: 3.000000
    }
    
    • 一个函数内部可以多次使用return语句,但是return语句后面的代码就不再被执行
      int max(int number1, int number2) {//  形式参数
          return number1 > number2 ? number1 : number2;
          printf("执行不到"); // 执行不到
          return 250; // 执行不到
      }
      

    函数的声明

    • 在C语言中,函数的定义顺序是有讲究的:
      • 默认情况下,只有后面定义的函数才可以调用前面定义过的函数
    • 如果想把函数的定义写在main函数后面,而且main函数能正常调用这些函数,那就必须在main函数的前面进行函数的声明, 否则
      • 系统搞不清楚有没有这个函数
      • 系统搞不清楚这个函数接收几个参数
      • 系统搞不清楚这个函数的返回值类型是什么
    • 所以函数声明,就是在函数调用之前告诉系统, 该函数叫什么名称, 该函数接收几个参数, 该函数的返回值类型是什么
    • 函数的声明格式:
      • 将自定义函数时{}之前的内容拷贝到调用之间即可
      • 例如: int max( int a, int b );
      • 或者: int max( int, int );
    // 函数声明
    void getMax(int v1, int v2);
    int main(int argc, const char * argv[]) {
        getMax(10, 20); // 调用函数
        return 0;
    }
    // 函数实现
    void getMax(int v1, int v2) {
        int max = v1 > v2 ? v1 : v2;
        printf("max = %i\n", max);
    }
    
    • 函数的声明与实现的关系
      • 声明仅仅代表着告诉系统一定有这个函数, 和这个函数的参数、返回值是什么
      • 实现代表着告诉系统, 这个函数具体的业务逻辑是怎么运作的
    • 函数声明注意点:
      • 函数的实现不能重复, 而函数的声明可以重复
      // 函数声明
      void getMax(int v1, int v2);
      void getMax(int v1, int v2);
      void getMax(int v1, int v2); // 不会报错
      int main(int argc, const char * argv[]) {
          getMax(10, 20); // 调用函数
          return 0;
      }
      // 函数实现
      void getMax(int v1, int v2) {
          int max = v1 > v2 ? v1 : v2;
          printf("max = %i\n", max);
      }
      
    • 函数声明可以写在函数外面,也可以写在函数里面, 只要在调用之前被声明即可
      int main(int argc, const char * argv[]) {
          void getMax(int v1, int v2); // 函数声明, 不会报错
          getMax(10, 20); // 调用函数
          return 0;
      }
      // 函数实现
      void getMax(int v1, int v2) {
          int max = v1 > v2 ? v1 : v2;
          printf("max = %i\n", max);
      }
      
    • 当被调函数的函数定义出现在主调函数之前时,在主调函数中也可以不对被调函数再作声明
    // 函数实现
    void getMax(int v1, int v2) {
        int max = v1 > v2 ? v1 : v2;
        printf("max = %i\n", max);
    }
    int main(int argc, const char * argv[]) {
        getMax(10, 20); // 调用函数
        return 0;
    }
    
    • 如果被调函数的返回值是整型时,可以不对被调函数作说明,而直接调用
      int main(int argc, const char * argv[]) {
          int res = getMin(5, 3); // 不会报错
          printf("result = %d\n", res );
          return 0;
      }
      int getMin(int num1, int num2) {// 返回int, 不用声明
          return num1 < num2 ? num1 : num2;
      }
      

    main函数分析

    • main的含义:
      • main是函数的名称, 和我们自定义的函数名称一样, 也是一个标识符
      • 只不过main这个名称比较特殊, 程序已启动就会自动调用它
    • return 0;的含义:
      • 告诉系统main函数是否正确的被执行了
      • 如果main函数的执行正常, 那么就返回0
      • 如果main函数执行不正常, 那么就返回一个非0的数
    • 返回值类型:
      • 一个函数return后面写的是什么类型, 函数的返回值类型就必须是什么类型, 所以写int
    • 形参列表的含义
      • int argc :
        • 系统在启动程序时调用main函数时传递给argv的值的个数
      • const char * argv[] :
        • 系统在启动程序时传入的的值, 默认情况下系统只会传入一个值, 这个值就是main函数执行文件的路径
        • 也可以通过命令行或项目设置传入其它参数


    • 函数练习
      • 写一个函数从键盘输入三个整型数字,找出其最大值
      • 写一个函数求三个数的平均值

    递归函数(了解)

    • 什么是递归函数?
      • 一个函数在它的函数体内调用它自身称为递归调用
      void function(int x){
          function(x);
      }
      
    • 递归函数构成条件
      • 自己搞自己
      • 存在一个条件能够让递归结束
      • 问题的规模能够缩小
    • 示例:
      • 获取用户输入的数字, 直到用户输入一个正数为止
    void getNumber(){
        int number = -1;
        while (number < 0) {
            printf("请输入一个正数\n");
            scanf("%d", &number);
        }
    
        printf("number = %d\n", number);
    }
    
    void getNumber2(){
        int number = -1;
        printf("请输入一个正数abc\n");
        scanf("%d", &number);
        if (number < 0) {
    //        负数
            getNumber2();
        }else{
    //        正数
           printf("number = %d\n", number);
        }
    }
    
    • 递归和循环区别

      • 能用循环实现的功能,用递归都可以实现
      • 递归常用于"回溯", “树的遍历”,"图的搜索"等问题
      • 但代码理解难度大,内存消耗大(易导致栈溢出), 所以考虑到代码理解难度和内存消耗问题, 在企业开发中一般能用循环都不会使用递归
    • 递归练习

      • 有5个人坐在一起,问第5个人多少岁?他说比第4个人大两岁。问 第4个人岁数,他说比第3个人大两岁。问第3个人,又说比第2个 人大两岁。问第2个人,说比第1个人大两岁。最后问第1个人, 他说是10岁。请问第5个人多大?
      • 用递归法求N的阶乘
      • 设计一个函数用来计算B的n次方

    进制基本概念

    • 什么是进制?

      • 进制是一种计数的方式,数值的表示形式
    • 常见的进制

      • 十进制、二进制、八进制、十六进制
    • 进制书写的格式和规律

      • 十进制 0、1、2、3、4、5、6、7、8、9 逢十进一
      • 二进制 0、1 逢二进一
        • 书写形式:需要以0b或者0B开头,例如: 0b101
      • 八进制 0、1、2、3、4、5、6、7 逢八进一
        • 书写形式:在前面加个0,例如: 061
      • 十六进制 0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F 逢十六进一
      • 书写形式:在前面加个0x或者0X,例如: 0x45
    • 练习

      • 1.用不同进制表示如下有多少个方格
      • 2.判断下列数字是否合理
      00011  0x001  0x7h4  10.98  0986  .089-109
      +178  0b325  0b0010  0xffdc 96f 96.0f 96.oF  -.003
      

    进制转换

    • 10 进制转 2 进制
      • 除2取余, 余数倒序; 得到的序列就是二进制表示形式
      • 例如: 将十进制(97) 10转换为二进制数

    • 2 进制转 10 进制
      • 每一位二进制进制位的值 * 2的当前索引次幂; 再将所有位求出的值相加
      • 例如: 将二进制01100100转换为十进制
      01100100
      索引从右至左, 从零开始
      第0位: 0 * 2^0 = 0;
      第1位: 0 * 2^1 = 0;
      第2位: 1 * 2^2 = 4;
      第3位: 0 * 2^3 = 0;
      第4位: 0 * 2^4 = 0;
      第5位: 1 * 2^5 = 32;
      第6位: 1 * 2^6 = 64;
      第7位: 0 * 2^7 = 0;
      最终结果为: 0 + 0 + 4 + 0 + 0 + 32 + 64 + 0 = 100
      

    • 2 进制转 8 进制
      • 三个二进制位代表一个八进制位, 因为3个二进制位的最大值是7,而八进制是逢8进1
      • 例如: 将二进制01100100转换为八进制数
      从右至左每3位划分为8进制的1位, 不够前面补0
      001 100 100
      第0位: 100 等于十进制 4
      第1位: 100 等于十进制 4
      第2位: 001 等于十进制 1
      最终结果: 144就是转换为8进制的值
      

    • 2 进制转 16 进制
      • 四个二进制位代表一个十六进制位,因为4个二进制位的最大值是15,而十六进制是逢16进1
      • 例如: 将二进制01100100转换为十六进制数
      从右至左每4位划分为16进制的1位, 不够前面补0
      0110 0100
      第0位: 0100 等于十进制 4
      第1位: 0110 等于十进制 6
      最终结果: 64就是转换为16进制的值
      

    • 其它进制转换为十进制
      • 系数 * 基数 ^ 索引 之和
          十进制           -->          十进制
         12345   =  10000 + 2000 + 300 + 40 + 5
                 =  (1 * 10 ^ 4)  + (2 * 10 ^ 3) + (3 * 10 ^ 2) + (4 * 10 ^ 1) + (5 * 10 ^ 0)
                 =  (1 * 10000) + (2 + 1000) + (3 * 100) + (4 * 10) + (5 * 1)
                 =  10000 + 2000 + 300 + 40 + 5
                 =  12345
         
         规律:
         其它进制转换为十进制的结果 = 系数 * 基数 ^ 索引 之和
         
         系数: 每一位的值就是一个系数 
         基数: 从x进制转换到十进制, 那么x就是基数
         索引: 从最低位以0开始, 递增的数
      
         二进制        -->      十进制
         543210
         101101 = (1 * 2 ^ 5) + (0 * 2 ^ 4) + (1 * 2 ^ 3) + (1 * 2 ^ 2) + (0 * 2 ^ 1) + (1 * 2 ^ 0)
                = 32 + 0 + 8 + 4 + 0 + 1
                = 45
         
         八进制        -->     十进制
         016  =   (0 * 8 ^ 2) + (1 * 8 ^ 1) + (6 * 8 ^ 0)
              =    0  + 8 + 6
              =    14
         
         十六进制      -->      十进制
         0x11f =  (1 * 16 ^ 2) + (1 * 16 ^ 1) + (15 * 16 ^ 0)
               =   256  + 16 + 15
               =   287
      

    • 十进制快速转换为其它进制
      • 十进制除以基数取余, 倒叙读取
         十进制        -->     二进制
         100          -->    1100100
         100 / 2   = 50     0
         50  / 2   = 25     0
         25  / 2   = 12     1
         12  / 2   = 6      0
         6   / 2   = 3      0
         3   / 2   = 1      1
         1   / 2   = 0      1
         
         
         十进制        -->     八进制
         100          -->     144
         100 / 8    = 12    4
         12  / 8    = 1     4
         1   / 8    = 0     1
         
         十进制        -->     十六进制
         100          --> 64
         100 / 16   =  6    4
         6   / 16   =  0    6
      

    十进制小数转换为二进制小数

    • 整数部分,直接转换为二进制即可
    • 小数部分,使用"乘2取整,顺序排列"
      • 用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,直到积中的小数部分为零,或者达到所要求的精度为止
      • 然后把取出的整数部分按顺序排列起来, 即是小数部分二进制
    • 最后将整数部分的二进制和小数部分的二进制合并起来, 即是一个二进制小数
    • 例如: 将12.125转换为二进制
    // 整数部分(除2取余)
      12
    /  2
    ------
       6    // 余0
    /  2
    ------
       3    // 余0
    /  2
    ------
       1   // 余1
    /  2
    ------
      0   // 余1
    //12 --> 1100
      
    // 小数部分(乘2取整数积)
      0.125
    *     2
      ------
       0.25  //0
       0.25
    *     2
      ------
        0.5  //0
        0.5
    *     2
      ------
        1.0  //1
        0.0
    // 0.125 --> 0.001
    
    // 12.8125 --> 1100.001
    

    二进制小数转换为十进制小数

    • 整数部分按照二进制转十进制即可
    • 小数部分从最高位开始乘以2的负n次方, n从1开始
    • 例如: 将 1100.001转换为十进制
    // 整数部分(乘以2的n次方, n从0开始)
    0 * 2^0 = 0
    0 * 2^1 = 0
    1 * 2^2 = 4
    1 * 2^3 = 8
     // 1100 == 8 + 4 + 0 + 0 == 12
    
    // 小数部分(乘以2的负n次方, n从0开始)
    0 * (1/2) = 0
    0 * (1/4) = 0
    1 * (1/8) = 0.125
    // .100 == 0 + 0 + 0.125 == 0.125
    
    // 1100.001  --> 12.125
    
    • 练习:
      • 将0.8125转换为二进制
      • 将0.1101转换为十进制
      0.8125
    *      2
    --------
       1.625  // 1
       0.625
    *      2
    --------
        1.25 // 1
        0.25
    *      2
    --------
         0.5 // 0
    *      2
    --------
        1.0 // 1
        0.0
    
    // 0. 8125  --> 0.1101
    
    1*(1/2) = 0.5
    1*(1/4)=0.25
    0*(1/8)=0
    1*(1/16)=0.0625
    
    //0.1101 --> 0.5 + 0.25 + 0 + 0.0625 == 0.8125
    

    原码反码补码

    • 计算机只能识别0和1, 所以计算机中存储的数据都是以0和1的形式存储的
    • 数据在计算机内部是以补码的形式储存的, 所有数据的运算都是以补码进行的
    • 正数的原码、反码和补码
      • 正数的原码、反码和补码都是它的二进制
      • 例如: 12的原码、反码和补码分别为
        • 0000 0000 0000 0000 0000 0000 0000 1100
        • 0000 0000 0000 0000 0000 0000 0000 1100
        • 0000 0000 0000 0000 0000 0000 0000 1100
    • 负数的原码、反码和补码
      • 二进制的最高位我们称之为符号位, 最高位是0代表是一个正数, 最高位是1代表是一个负数
      • 一个负数的原码, 是将该负数的二进制最高位变为1
      • 一个负数的反码, 是将该数的原码除了符号位以外的其它位取反
      • 一个负数的补码, 就是它的反码 + 1
      • 例如: -12的原码、反码和补码分别为
        0000 0000 0000 0000 0000 0000 0000 1100 // 12二进制
        1000 0000 0000 0000 0000 0000 0000 1100 // -12原码
        1111 1111 1111 1111 1111 1111 1111 0011  // -12反码
        1111 1111 1111 1111 1111 1111 1111 0100 // -12补码
      
    • 负数的原码、反码和补码逆向转换
      • 反码 = 补码-1
      • 原码= 反码最高位不变, 其它位取反
        1111 1111 1111 1111 1111 1111 1111 0100 // -12补码
        1111 1111 1111 1111 1111 1111 1111 0011  // -12反码
        1000 0000 0000 0000 0000 0000 0000 1100 // -12原码
      

    • 为什么要引入反码和补码
      • 在学习本节内容之前,大家必须明白一个东西, 就是计算机只能做加法运算, 不能做减法和乘除法, 所以的减法和乘除法内部都是用加法来实现的
        • 例如: 1 - 1, 内部其实就是 1 + (-1);
        • 例如: 3 * 3, 内部其实就是 3 + 3 + 3;
        • 例如: 9 / 3, 内部其实就是 9 + (-3) + (-3) + (-3);
      • 首先我们先来观察一下,如果只有原码会存储什么问题
        • 很明显, 通过我们的观察, 如果只有原码, 1-1的结果不对
          // 1 + 1
           0000 0000 0000 0000 0000 0000 0000 0001 // 1原码
          +0000 0000 0000 0000 0000 0000 0000 0001 // 1原码
           ---------------------------------------
           0000 0000 0000 0000 0000 0000 0000 0010  == 2
        
           // 1 - 1; 1 + (-1);
           0000 0000 0000 0000 0000 0000 0000 0001 // 1原码
          +1000 0000 0000 0000 0000 0000 0000 0001 // -1原码
           ---------------------------------------
           1000 0000 0000 0000 0000 0000 0000 0010 == -2
        
    • 正是因为对于减法来说,如果使用原码结果是不正确的, 所以才引入了反码
      • 通过反码计算减法的结果, 得到的也是一个反码;
      • 将计算的结果符号位不变其余位取反,就得到了计算结果的原码
      • 通过对原码的转换, 很明显我们计算的结果是-0, 符合我们的预期
        // 1 - 1; 1 + (-1);
        0000 0000 0000 0000 0000 0000 0000 0001 // 1反码
        1111 1111 1111 1111 1111 1111 1111 1110   // -1反码
        ---------------------------------------
        1111 1111 1111 1111 1111 1111 1111 1111 // 计算结果反码
        1000 0000 0000 0000 0000 0000 0000 0000 // 计算结果原码 == -0
      
    • 虽然反码能够满足我们的需求, 但是对于0来说, 前面的负号没有任何意义, 所以才引入了补码
      • 由于int只能存储4个字节, 也就是32位数据, 而计算的结果又33位, 所以最高位溢出了,符号位变成了0, 所以最终得到的结果是0
        // 1 - 1; 1 + (-1);
        0000 0000 0000 0000 0000 0000 0000 0001 // 1补码
        1111 1111 1111 1111 1111 1111 1111 1111   // -1补码
        ---------------------------------------
       10000 0000 0000 0000 0000 0000 0000 0000 // 计算结果补码
        0000 0000 0000 0000 0000 0000 0000 0000 //  == 0
      

    位运算符

    • 程序中的所有数据在计算机内存中都是以二进制的形式储存的。
    • 位运算就是直接对整数在内存中的二进制位进行操作
    • C语言提供了6个位操作运算符, 这些运算符只能用于整型操作数
    符号名称运算结果
    &按位与同1为1
    |按位或有1为1
    ^按位异或不同为1
    ~按位取反0变1,1变0
    <<按位左移乘以2的n次方
    >>按位右移除以2的n次方

    • 按位与:
      • 只有对应的两个二进位均为1时,结果位才为1,否则为0
      • 规律: 二进制中,与1相&就保持原位,与0相&就为0
    9&5 = 1
    
     1001
    &0101
    ------
     0001
    

    • 按位或:
      • 只要对应的二个二进位有一个为1时,结果位就为1,否则为0
    9|5 = 13
    
     1001
    |0101
    ------
     1101
    

    • 按位异或
      • 当对应的二进位相异(不相同)时,结果为1,否则为0
      • 规律:
        • 相同整数相的结果是0。比如55=0
        • 多个整数相^的结果跟顺序无关。例如: 567=576
        • 同一个数异或另外一个数两次, 结果还是那个数。例如: 577 = 5
    9^5 = 12
    
     1001
    ^0101
    ------
     1100
    

    • 按位取反
      • 各二进位进行取反(0变1,1变0)
    ~9 =-10
    0000 0000 0000 0000 0000 1001 // 取反前
    1111 1111 1111 1111 1111 0110 // 取反后
    
    // 根据负数补码得出结果
    1111 1111 1111 1111 1111 0110 // 补码
    1111 1111 1111 1111 1111 0101 // 反码
    1000 0000 0000 0000 0000 1010 // 源码 == -10
    

    • 位运算应用场景:
      • 判断奇偶(按位或)
         偶数: 的二进制是以0结尾
         8   -> 1000
         10  -> 1010
         
         奇数: 的二进制是以1结尾
         9   -> 1001
         11  -> 1011
      
         任何数和1进行&操作,得到这个数的最低位
         1000
        &0001
         -----
         0000  // 结果为0, 代表是偶数
      
         1011
        &0001
         -----
         0001 // 结果为1, 代表是奇数
      
      • 权限系统
        enum Unix {
          S_IRUSR = 256,// 100000000 用户可读
          S_IWUSR = 128,//  10000000 用户可写
          S_IXUSR = 64,//    1000000 用户可执行
          S_IRGRP = 32,//     100000 组可读
          S_IWGRP = 16,//      10000 组可写
          S_IXGRP = 8,//        1000 组可执行
          S_IROTH = 4,//         100 其它可读
          S_IWOTH = 2,//          10 其它可写
          S_IXOTH = 1 //           1 其它可执行
         };
      // 假设设置用户权限为可读可写
      printf("%d\n", S_IRUSR | S_IWUSR); // 384 // 110000000
      
      • 交换两个数的值(按位异或)
       a = a^b;
       b = b^a;
       a = a^b;
      

    • 按位左移
      • 把整数a的各二进位全部左移n位,高位丢弃,低位补0
        • 由于左移是丢弃最高位,0补最低位,所以符号位也会被丢弃,左移出来的结果值可能会改变正负性
      • 规律: 左移n位其实就是乘以2的n次方
    2<<1; //相当于 2 *= 2 // 4
      0010
    <<0100
    
    2<<2; //相当于 2 *= 2^2; // 8
      0010
    <<1000
    
    • 按位右移
      • 把整数a的各二进位全部右移n位,保持符号位不变
        • 为正数时, 符号位为0,最高位补0
        • 为负数时,符号位为1,最高位是补0或是补1(取决于编译系统的规定)
      • 规律: 快速计算一个数除以2的n次方
    2>>1; //相当于 2 /= 2 // 1
      0010
    >>0001
    4>>2; //相当于 4 /= 2^2 // 1
      0100
    >>0001
    
    • 练习:
      • 写一个函数把一个10进制数按照二进制格式输出
    #include <stdio.h>
    void printBinary(int num);
    int main(int argc, const char * argv[]) {
        printBinary(13);
    }
    void printBinary(int num){
        int len = sizeof(int)*8;
        int temp;
        for (int i=0; i<len; i++) {
            temp = num; //每次都在原数的基础上进行移位运算
            temp = temp>>(31-i); //每次移动的位数
            int t = temp&1; //取出最后一位
            if(i!=0&&i%4==0)printf(" "); printf("%d",t);
        }
    }
    

    变量内存分析

    • 内存模型
      • 内存模型是线性的(有序的)
      • 对于 32 机而言,最大的内存地址是2^32次方bit(4294967296)(4GB)
      • 对于 64 机而言,最大的内存地址是2^64次方bit(18446744073709552000)(171亿GB)

    • CPU 读写内存
      • CPU 在运作时要明确三件事
        • 存储单元的地址(地址信息)
        • 器件的选择,读 or 写 (控制信息)
        • 读写的数据 (数据信息)
    • 如何明确这三件事情
      • 通过地址总线找到存储单元的地址
      • 通过控制总线发送内存读写指令
      • 通过数据总线传输需要读写的数据
    • 地址总线: 地址总线宽度决定了CPU可以访问的物理地址空间(寻址能力)
      • 例如: 地址总线的宽度是1位, 那么表示可以访问 0 和 1的内存
      • 例如: 地址总线的位数是2位, 那么表示可以访问 00、01、10、11的内存
    • 数据总线: 数据总线的位数决定CPU单次通信能交换的信息数量
      • 例如: 数据总线:的宽度是1位, 那么一次可以传输1位二进制数据
      • 例如: 地址总线的位数是2位,那么一次可以传输2位二进制数据
    • 控制总线: 用来传送各种控制信号
    • 写入流程

      • CPU 通过地址线将找到地址为 FFFFFFFB 的内存
      • CPU 通过控制线发出内存写入命令,选中存储器芯片,并通知它,要其写入数据。
      • CPU 通过数据线将数据 8 送入内存 FFFFFFFB 单元中
    • 读取流程

      • CPU 通过地址线将找到地址为 FFFFFFFB 的内存
      • CPU 通过控制线发出内存读取命令,选中存储器芯片,并通知它,将要从中读取数据
      • 存储器将 FFFFFFFB 号单元中的数据 8 通过数据线送入 CPU寄存器中
    • 变量的存储原则

      • 先分配字节地址大内存,然后分配字节地址小的内存(内存寻址是由大到小)
      • 变量的首地址,是变量所占存储空间字节地址(最小的那个地址 )
      • 低位保存在低地址字节上,高位保存在高地址字节上
      10的二进制: 0b00000000 00000000 00000000 00001010
                 高字节←                        →低字节
      

    char类型内存存储细节

    • char类型基本概念
      • char是C语言中比较灵活的一种数据类型,称为“字符型”
      • char类型变量占1个字节存储空间,共8位
      • 除单个字符以外, C语言的的转义字符也可以利用char类型存储
    字符意义
    \b退格(BS)当前位置向后回退一个字符
    \r回车(CR),将当前位置移至本行开头
    \n换行(LF),将当前位置移至下一行开头
    \t水平制表(HT),跳到下一个 TAB 位置
    \0用于表示字符串的结束标记
    \代表一个反斜线字符 \
    \"代表一个双引号字符"
    \’代表一个单引号字符’
    • char型数据存储原理
      • 计算机只能识别0和1, 所以char类型存储数据并不是存储一个字符, 而是将字符转换为0和1之后再存储
      • 正是因为存储字符类型时需要将字符转换为0和1, 所以为了统一, 老美就定义了一个叫做ASCII表的东东
      • ASCII表中定义了每一个字符对应的整数
        char ch1 = 'a'; 
        printf("%i\n", ch1); // 97
    
        char ch2 = 97;
        printf("%c\n", ch2); // a
    
    • char类型注意点
      • char类型占一个字节, 一个中文字符占3字节(unicode表),所有char不可以存储中文
      char c = '我'; // 错误写法
      
      • 除转义字符以外, 不支持多个字符
      char ch = 'ab'; // 错误写法
      
      • char类型存储字符时会先查找对应的ASCII码值, 存储的是ASCII值, 所以字符6和数字6存储的内容不同
      char ch1 = '6'; // 存储的是ASCII码 64
      char ch2 = 6; //  存储的是数字 6
      
    • 练习
      • 定义一个函数, 实现输入一个小写字母,要求转换成大写输出

    类型说明符

    • 类型说明符基本概念
      • C语言提供了说明长度说明符号位的两种类型说明符, 这两种类型说明符一共有4个:
        • short 短整型 (说明长度)
        • long 长整型 (说明长度)
        • signed 有符号型 (说明符号位)
        • unsigned 无符号型 (说明符号位)
    • 这些说明符一般都是用来修饰int类型的,所以在使用时可以省略int
    • 这些说明符都属于C语言关键字

    short和long

    • short和long可以提供不同长度的整型数,也就是可以改变整型数的取值范围。
      • 在64bit编译器环境下,int占用4个字节(32bit),取值范围是-2^31 ~ 2^31-1;
      • short占用2个字节(16bit),取值范围是-2^15 ~ 2^15-1;
      • long占用8个字节(64bit),取值范围是-2^63 ~ 2^63-1
    • 总结一下:在64位编译器环境下:
      • short占2个字节(16位)
      • int占4个字节(32位)
      • long占8个字节(64位)。
      • 因此,如果使用的整数不是很大的话,可以使用short代替int,这样的话,更节省内存开销。
    • 世界上的编译器林林总总,不同编译器环境下,int、short、long的取值范围和占用的长度又是不一样的。比如在16bit编译器环境下,long只占用4个字节。不过幸运的是,ANSI \ ISO制定了以下规则:
      • short跟int至少为16位(2字节)
      • long至少为32位(4字节)
      • short的长度不能大于int,int的长度不能大于long
      • char一定为为8位(1字节),毕竟char是我们编程能用的最小数据类型
    • 可以连续使用2个long,也就是long long。一般来说,long long的范围是不小于long的,比如在32bit编译器环境下,long long占用8个字节,long占用4个字节。不过在64bit编译器环境下,long long跟long是一样的,都占用8个字节。
    #include <stdio.h>
    
    int main()
    {
        // char占1个字节, char的取值范围 -2^7~2^7
        char num = 129;
        printf("size = %i\n", sizeof(num)); // 1
        printf("num = %i\n", num); // -127
        // short int 占2个字节, short int的取值范围 -2^15~2^15-1
        short int num1 = 32769;// -32767
        printf("size = %i\n", sizeof(num1)); // 2
        printf("num1 = %hi\n", num1);
    
        // int占4个字节, int的取值范围 -2^31~2^31-1
        int num2 = 12345678901;
        printf("size = %i\n", sizeof(num2)); // 4
        printf("num2 = %i\n", num2);
    
        // long在32位占4个字节, 在64位占8个字节
        long int num3 = 12345678901;
        printf("size = %i\n", sizeof(num3)); // 4或8
        printf("num3 = %ld\n", num3);
    
        // long在32位占8个字节, 在64位占8个字节 -2^63~2^63-1
        long long int num4 = 12345678901;
        printf("size = %i\n", sizeof(num4)); // 8
        printf("num4 = %lld\n", num4);
        
        // 由于short/long/long long一般都是用于修饰int, 所以int可以省略
        short num5 = 123;
        printf("num5 = %lld\n", num5);
        long num6 = 123;
        printf("num6 = %lld\n", num6);
        long long num7 = 123;
        printf("num7 = %lld\n", num7);
        return 0;
    }
    

    signed和unsigned

    • 首先要明确的:signed int等价于signed,unsigned int等价于unsigned
    • signed和unsigned的区别就是它们的最高位是否要当做符号位,并不会像short和long那样改变数据的长度,即所占的字节数。
      • signed:表示有符号,也就是说最高位要当做符号位。但是int的最高位本来就是符号位,因此signed和int是一样的,signed等价于signed int,也等价于int。signed的取值范围是-2^31 ~ 2^31 - 1
      • unsigned:表示无符号,也就是说最高位并不当做符号位,所以不包括负数。
      • 因此unsigned的取值范围是:0000 0000 0000 0000 0000 0000 0000 0000 ~ 1111 1111 1111 1111 1111 1111 1111 1111,也就是0 ~ 2^32 - 1
    #include <stdio.h>
    
    int main()
    {
        // 1.默认情况下所有类型都是由符号的
        int num1 = 9;
        int num2 = -9;
        int num3 = 0;
        printf("num1 = %i\n", num1);
        printf("num2 = %i\n", num2);
        printf("num3 = %i\n", num3);
    
        // 2.signed用于明确说明, 当前保存的数据可以是有符号的, 一般情况下很少使用
        signed int num4 = 9;
        signed int num5 = -9;
        signed int num6 = 0;
        printf("num4 = %i\n", num4);
        printf("num5 = %i\n", num5);
        printf("num6 = %i\n", num6);
    
        // signed也可以省略数据类型, 但是不推荐这样编写
        signed num7 = 9;
        printf("num7 = %i\n", num7);
       
    
        // 3.unsigned用于明确说明, 当前不能保存有符号的值, 只能保存0和正数
        // 应用场景: 保存银行存款,学生分数等不能是负数的情况
        unsigned int num8 = -9;
        unsigned int num9 = 0;
        unsigned int num10 = 9;
        // 注意: 不看怎么存只看怎么取
        printf("num8 = %u\n", num8);
        printf("num9 = %u\n", num9);
        printf("num10 = %u\n", num10);
        return 0;
    }
    
    • 注意点:
      • 修饰符号的说明符可以和修饰长度的说明符混合使用
      • 相同类型的说明符不能混合使用
        signed short int num1 = 666;
        signed unsigned int num2 = 666; // 报错
    

    数组的基本概念

    • 数组,从字面上看,就是一组数据的意思,没错,数组就是用来存储一组数据的

      • 在C语言中,数组属于构造数据类型
    • 数组的几个名词

      • 数组:一组相同数据类型数据的有序的集合
      • 数组元素: 构成数组的每一个数据。
      • 数组的下标: 数组元素位置的索引(从0开始)
    • 数组的应用场景

      • 一个int类型的变量能保存一个人的年龄,如果想保存整个班的年龄呢?
        • 第一种方法是定义很多个int类型的变量来存储
        • 第二种方法是只需要定义一个int类型的数组来存储
    #include <stdio.h>
    
    int main(int argc, const char * argv[]) {
        /*
        // 需求: 保存2个人的分数
        int score1 = 99;
        int score2 = 60;
        
        // 需求: 保存全班同学的分数(130人)
        int score3 = 78;
        int score4 = 68;
        ...
        int score130 = 88;
        */
        // 数组: 如果需要保存`一组``相同类型`的数据, 就可以定义一个数组来保存
        // 只要定义好一个数组, 数组内部会给每一块小的存储空间一个编号, 这个编号我们称之为 索引, 索引从0开始
        // 1.定义一个可以保存3个int类型的数组
        int scores[3];
        
        // 2.通过数组的下标往数组中存放数据
        scores[0] = 998;
        scores[1] = 123;
        scores[2] = 567;
       
        // 3.通过数组的下标从数组中取出存放的数据
        printf("%i\n", scores[0]);
        printf("%i\n", scores[1]);
        printf("%i\n", scores[2]);
        return 0;
    }
    

    定义数组

    • 元素类型 数组名[元素个数];
    // int 元素类型
    // ages 数组名称
    // [10] 元素个数
    int ages[10];
    

    初始化数组

    • 定义的同时初始化
    • 指定元素个数,完全初始化
      • 其中在{ }中的各数据值即为各元素的初值,各值之间用逗号间隔
    int ages[3] = {4, 6, 9};
    
    • 不指定元素个数,完全初始化
      • 根据大括号中的元素的个数来确定数组的元素个数
    int nums[] = {1,2,3,5,6};
    
    • 指定元素个数,部分初始化
      • 没有显式初始化的元素,那么系统会自动将其初始化为0
    int nums[10] = {1,2};
    
    • 指定元素个数,部分初始化
    int nums[5] = {[4] = 3,[1] = 2};
    
    • 不指定元素个数,部分初始化
    int nums[] = {[4] = 3};
    
    • 先定义后初始化
    int nums[3];
    nums[0] = 1;
    nums[1] = 2;
    nums[2] = 3;
    
    • 没有初始化会怎样?
      • 如果定义数组后,没有初始化,数组中是有值的,是随机的垃圾数,所以如果想要正确使用数组应该要进行初始化。
    int nums[5];
    printf("%d\n", nums[0]);
    printf("%d\n", nums[1]);
    printf("%d\n", nums[2]);
    printf("%d\n", nums[3]);
    printf("%d\n", nums[4]);
    输出结果:
    0
    0
    1606416312
    0
    1606416414
    
    • 注意点:
    • 使用数组时不能超出数组的索引范围使用, 索引从0开始, 到元素个数-1结束
    • 使用数组时不要随意使用未初始化的元素, 有可能是一个随机值
    • 对于数组来说, 只能在定义的同时初始化多个值, 不能先定义再初始化多个值
    int ages[3];
    ages = {4, 6, 9}; // 报错
    

    数组的使用

    • 通过下标(索引)访问:
    // 找到下标为0的元素, 赋值为10
    ages[0]=10;
    // 取出下标为2的元素保存的值
    int a = ages[2];
    printf("a = %d", a);
    

    数组的遍历

    • 数组的遍历:遍历的意思就是有序地查看数组的每一个元素
        int ages[4] = {19, 22, 33, 13};
        for (int i = 0; i < 4; i++) {
            printf("ages[%d] = %d\n", i, ages[i]);
        }
    

    数组长度计算方法

    • 因为数组在内存中占用的字节数取决于其存储的数据类型和数据的个数
      • 数组所占用存储空间 = 一个元素所占用存储空间 * 元素个数(数组长度)
    • 所以计算数组长度可以使用如下方法
      数组的长度 = 数组占用的总字节数 / 数组元素占用的字节数
        int ages[4] = {19, 22, 33, 13};
        int length =  sizeof(ages)/sizeof(int);
        printf("length = %d", length);
    输出结果: 4
    

    练习

    • 正序输出(遍历)数组
        int ages[4] = {19, 22, 33, 13};
        for (int i = 0; i < 4; i++) {
            printf("ages[%d] = %d\n", i, ages[i]);
        }
    
    • 逆序输出(遍历)数组
        int ages[4] = {19, 22, 33, 13};
        for (int i = 3; i >=0; i--) {
            printf("ages[%d] = %d\n", i, ages[i]);
        }
    
    • 从键盘输入数组长度,构建一个数组,然后再通过for循环从键 盘接收数字给数组初始化。并使用for循环输出查看

    数组内部存储细节

    • 存储方式:

      • 1)内存寻址从大到小, 从高地址开辟一块连续没有被使用的内存给数组
      • 2)从分配的连续存储空间中, 地址小的位置开始给每个元素分配空间
      • 3)从每个元素分配的存储空间中, 地址最大的位置开始存储数据
      • 4)用数组名指向整个存储空间最小的地址
    • 示例

    #include <stdio.h>
    int main()
    {
        int num = 9;
        char cs[] = {'l','n','j'};
        printf("cs = %p\n", &cs);       // cs = 0060FEA9
        printf("cs[0] = %p\n", &cs[0]); // cs[0] = 0060FEA9
        printf("cs[1] = %p\n", &cs[1]); // cs[1] = 0060FEAA
        printf("cs[2] = %p\n", &cs[2]); // cs[2] = 0060FEAB
    
        int nums[] = {2, 6};
        printf("nums = %p\n", &nums);      // nums = 0060FEA0
        printf("nums[0] = %p\n", &nums[0]);// nums[0] = 0060FEA0
        printf("nums[1] = %p\n", &nums[1]);// nums[1] = 0060FEA4
        
        return 0;
    }
    

    • 注意:字符在内存中是以对应ASCII码值的二进制形式存储的,而非上述的形式。

    数组的越界问题

    • 数组越界导致的问题
      • 约错对象
      • 程序崩溃
        char cs1[2] = {1, 2};
        char cs2[3] = {3, 4, 5};
        cs2[3] = 88; // 注意:这句访问到了不属于cs1的内存
        printf("cs1[0] = %d\n", cs1[0] );
    输出结果: 88
    

    为什么上述会输出88, 自己按照"数组内部存储细节"画图脑补


    数组注意事项

    • 在定义数组的时候[]里面只能写整型常量或者是返回整型常量的表达式
     int ages4['A'] = {19, 22, 33};
     printf("ages4[0] = %d\n", ages4[0]);
    
      int ages5[5 + 5] = {19, 22, 33};
      printf("ages5[0] = %d\n", ages5[0]);
    
      int ages5['A' + 5] = {19, 22, 33};
      printf("ages5[0] = %d\n", ages5[0]);
    
    • 错误写法
    // 没有指定元素个数,错误
    int a[];
    
    // []中不能放变量
    int number = 10;
    int ages[number]; // 老版本的C语言规范不支持
    printf("%d\n", ages[4]);
    
    int number = 10;
    int ages2[number] = {19, 22, 33} // 直接报错
    
    // 只能在定义数组的时候进行一次性(全部赋值)的初始化
    int ages3[5];
    ages10 = {19, 22, 33};
    
    // 一个长度为n的数组,最大下标为n-1, 下标范围:0~n-1
    int ages4[4] = {19, 22, 33}
    ages4[8]; // 数组角标越界
    
    • 练习
      • 从键盘录入当天出售BTC的价格并计算出售的BTC的总价和平均价(比如说一天出售了10个比特币)

    数组和函数

    • 数组可以作为函数的参数使用,数组用作函数参数有两种形式:
      • 一种是把数组元素作为实参使用
      • 一种是把数组名作为函数的形参和实参使用

    数组元素作为函数参数

    • 数组的元素作为函数实参,与同类型的简单变量作为实参一样,如果是基本数据类型, 那么形参的改变不影响实参
    void change(int val)// int val = number
    {
        val = 55;
    }
    int main(int argc, const char * argv[])
    {
        int ages[3] = {1, 5, 8};
        printf("ages[0] = %d", ages[0]);// 1
        change(ages[0]);
        printf("ages[0] = %d", ages[0]);// 1
    }
    
    • 用数组元素作函数参数不要求形参也必须是数组元素

    数组名作为函数参数

    • 在C语言中,数组名除作为变量的标识符之外,数组名还代表了该数组在内存中的起始地址,因此,当数组名作函数参数时,实参与形参之间不是"值传递",而是"地址传递"
    • 实参数组名将该数组的起始地址传递给形参数组,两个数组共享一段内存单元, 系统不再为形参数组分配存储单元
    • 既然两个数组共享一段内存单元, 所以形参数组修改时,实参数组也同时被修改了
    void change2(int array[3])// int array = 0ffd1
    {
        array[0] = 88;
    }
    int main(int argc, const char * argv[])
    {
        int ages[3] = {1, 5, 8};
        printf("ages[0] = %d", ages[0]);// 1
        change(ages);
        printf("ages[0] = %d", ages[0]);// 88
    }
    

    数组名作函数参数的注意点

    • 在函数形参表中,允许不给出形参数组的长度
    void change(int array[])
    {
        array[0] = 88;
    }
    
    • 形参数组和实参数组的类型必须一致,否则将引起错误。
    void prtArray(double array[3]) // 错误写法
    {
        for (int i = 0; i < 3; i++) {
            printf("array[%d], %f", i, array[i]);
        }
    }
    int main(int argc, const char * argv[])
    {
        int ages[3] = {1, 5, 8};
        prtArray(ages[0]);
    }
    
    • 当数组名作为函数参数时, 因为自动转换为了指针类型,所以在函数中无法动态计算除数组的元素个数
    void printArray(int array[])
    {
        printf("printArray size = %lu\n", sizeof(array)); // 8
        int length = sizeof(array)/ sizeof(int); // 2
        printf("length = %d", length);
    }
    
    • 练习:
      • 设计一个函数int arrayMax(int a[], int count)找出数组元素的最大值
      • 从键盘输入3个0-9的数字,然后输出0~9中哪些数字没有出现过
      • 要求从键盘输入6个0~9的数字,排序后输出

    计数排序(Counting Sort)

    • 计数排序是一个非基于比较的排序算法,该算法于1954年由 Harold H. Seward 提出。它的优势在于在对一定范围内的整数排序时,快于任何比较排序算法。

    • 排序思路:

      • 1.找出待排序数组最大值
      • 2.定义一个索引最大值为待排序数组最大值的数组
      • 3.遍历待排序数组, 将待排序数组遍历到的值作新数组索引
      • 4.在新数组对应索引存储值原有基础上+1
    • 简单代码实现:

    int main()
    {
        // 待排序数组
        int nums[5] = {3, 1, 2, 0, 3};
        // 用于排序数组
        int newNums[4] = {0};
        // 计算待排序数组长度
        int len = sizeof(nums) / sizeof(nums[0]);
        // 遍历待排序数组
        for(int i = 0; i < len; i++){
            // 取出待排序数组当前值
            int index = nums[i];
            // 将待排序数组当前值作为排序数组索引
            // 将用于排序数组对应索引原有值+1
            newNums[index] = newNums[index] +1;
        }
        
        // 计算待排序数组长度
        int len2 = sizeof(newNums) / sizeof(newNums[0]);
        // 输出排序数组索引, 就是排序之后结果
        for(int i = 0; i < len2; i++){
            for(int j = 0; j < newNums[i]; j++){
                printf("%i\n", i);
            }
        }
        /*
        // 计算待排序数组长度
        int len2 = sizeof(newNums) / sizeof(newNums[0]);
        // 还原排序结果到待排序数组
        for(int i = 0; i < len2; i++){
            int index = 0;
            for(int i = 0; i < len; i++){
                for(int j = 0; j < newNums[i]; j++){
                    nums[index++] = i;
                }
            }
        }
        */
        return 0;
    }
    

    选择排序

    • 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾。以此类推,直到所有元素均排序完毕。

    • 排序思路:

      • 假设按照升序排序
      • 1.用第0个元素和后面所有元素依次比较
      • 2.判断第0个元素是否大于当前被比较元素, 一旦小于就交换位置
      • 3.第0个元素和后续所有元素比较完成后, 第0个元素就是最小值
      • 4.排除第0个元素, 用第1个元素重复1~3操作, 比较完成后第1个元素就是倒数第二小的值
      • 以此类推, 直到当前元素没有可比较的元素, 排序完成
    • 代码实现:

    
    // 选择排序
    void selectSort(int numbers[], int length) {
        
        // 外循环为什么要-1?
        // 最后一位不用比较, 也没有下一位和它比较, 否则会出现错误访问
        for (int i = 0; i < length; i++) {
            for (int j = i; j < length - 1; j++) {
                // 1.用当前元素和后续所有元素比较
                if (numbers[i] < numbers[j + 1]) {
                    //  2.一旦发现小于就交换位置
                    swapEle(numbers, i, j + 1);
                }
            }
        }
    }
    // 交换两个元素的值, i/j需要交换的索引
    void swapEle(int array[], int i, int j) {
        int temp = array[i];
        array[i] = array[j];
        array[j] = temp;
    }
    

    冒泡排序

    • 冒泡排序(Bubble Sort)是一种简单的排序算法。它重复 地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
    • 排序思路:
      • 假设按照升序排序
      • 1.从第0个元素开始, 每次都用相邻两个元素进行比较
      • 2.一旦发现后面一个元素小于前面一个元素就交换位置
      • 3.经过一轮比较之后最后一个元素就是最大值
      • 4.排除最后一个元素, 以此类推, 每次比较完成之后最大值都会出现再被比较所有元素的最后
      • 直到当前元素没有可比较的元素, 排序完成
    • 代码实现:
    // 冒泡排序
    void bubbleSort(int numbers[], int length) {
        for (int i = 0; i < length; i++) {
            // -1防止`角标越界`: 访问到了不属于自己的索引
            for (int j = 0; j < length - i - 1; j++) {
               //  1.用当前元素和相邻元素比较
                if (numbers[j] < numbers[j + 1]) {
                    //  2.一旦发现小于就交换位置
                    swapEle(numbers, j, j + 1);
                }
            }
        }
    }
    // 交换两个元素的值, i/j需要交换的索引
    void swapEle(int array[], int i, int j) {
        int temp = array[i];
        array[i] = array[j];
        array[j] = temp;
    }
    

    插入排序

    • 插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
    • 排序思路:
      • 假设按照升序排序
      • 1.从索引为1的元素开始向前比较, 一旦前面一个元素大于自己就让前面的元素先后移动
      • 2.直到没有可比较元素或者前面的元素小于自己的时候, 就将自己插入到当前空出来的位置
    • 代码实现:
    int main()
    {
        // 待排序数组
        int nums[5] = {3, 1, 2, 0, 3};
        // 0.计算待排序数组长度
        int len = sizeof(nums) / sizeof(nums[0]);
    
        //  1.从第一个元素开始依次取出所有用于比较元素
        for (int i = 1; i < len; i++)
        {
            // 2.取出用于比较元素
            int temp = nums[i];
            int j = i;
            while(j > 0){
                // 3.判断元素是否小于前一个元素
                if(temp < nums[j - 1]){
                    // 4.让前一个元素向后移动一位
                    nums[j] = nums[j - 1];
                }else{
                    break;
                }
                j--;
            }
            // 5.将元素插入到空出来的位置
            nums[j] = temp;
        }
    }
    
    int main()
    {
        // 待排序数组
        int nums[5] = {3, 1, 2, 0, 3};
        // 0.计算待排序数组长度
        int len = sizeof(nums) / sizeof(nums[0]);
    
        //  1.从第一个元素开始依次取出所有用于比较元素
        for (int i = 1; i < len; i++)
        {
            // 2.遍历取出前面元素进行比较
            for(int j = i; j > 0; j--)
            {
                // 3.如果前面一个元素大于当前元素,就交换位置
                if(nums[j-1] > nums[j]){
                    int temp = nums[j];
                    nums[j] = nums[j - 1];
                    nums[j - 1] = temp;
                }else{
                    break;
                }
            }
        }
    }
    

    希尔排序

    • 1959年Shell发明,第一个突破O(n2)的排序算法,是简单插入排序的改进版。它与插入排序的不同之处在于,它会优先比较距离较远的元素。希尔排序又叫缩小增量排序。
    • 排序思路:
      • 1.希尔排序可以理解为插入排序的升级版, 先将待排序数组按照指定步长划分为几个小数组
      • 2.利用插入排序对小数组进行排序, 然后将几个排序的小数组重新合并为原始数组
      • 3.重复上述操作, 直到步长为1时,再利用插入排序排序即可
    • 代码实现:
    int main()
    {
        // 待排序数组
        int nums[5] = {3, 1, 2, 0, 3};
        // 0.计算待排序数组长度
        int len = sizeof(nums) / sizeof(nums[0]);
    
    // 2.计算步长
        int gap = len / 2;
        do{
            //  1.从第一个元素开始依次取出所有用于比较元素
            for (int i = gap; i < len; i++)
            {
                // 2.遍历取出前面元素进行比较
                int j = i;
                while((j - gap) >= 0)
                {
                    printf("%i > %i\n", nums[j - gap], nums[j]);
                    // 3.如果前面一个元素大于当前元素,就交换位置
                    if(nums[j - gap] > nums[j]){
                        int temp = nums[j];
                        nums[j] = nums[j - gap];
                        nums[j - gap] = temp;
                    }else{
                        break;
                    }
                    j--;
                }
            }
            // 每个小数组排序完成, 重新计算步长
            gap = gap / 2;
        }while(gap >= 1);
    }
    

    江哥提示:
    对于初学者而言, 排序算法一次不易于学习太多, 咋们先来5个玩一玩, 后续继续讲解其它5个


    折半查找

    • 基本思路
    • 在有序表中,取中间元素作为比较对象,若给定值与中间元素的要查找的数相等,则查找成功;若给定值小于中间元素的要查找的数,则在中间元素的左半区继续查找;
    • 若给定值大于中间元素的要查找的数,则在中间元素的右半区继续查找。不断重复上述查找过 程,直到查找成功,或所查找的区域无数据元素,查找失败

    • 实现步骤

    • 在有序表中,取中间元素作为比较对象,若给定值与中间元素的要查找的数相等,则查找成功;

    • 若给定值小于中间元素的要查找的数,则在中间元素的左半区继续查找;

    • 若给定值大于中间元素的要查找的数,则在中间元素的右半区继续查找。

    • 不断重复上述查找过 程,直到查找成功,或所查找的区域无数据元素,查找失败。

    • 代码实现

    int findKey(int values[], int length, int key) {
        // 定义一个变量记录最小索引
        int min = 0;
        // 定义一个变量记录最大索引
        int max = length - 1;
        // 定义一个变量记录中间索引
        int mid = (min + max) * 0.5;
        
        while (min <= max) {
            // 如果mid对应的值 大于 key, 那么max要变小
            if (values[mid] > key) {
                max = mid - 1;
                // 如果mid对应的值 小于 key, 那么min要变
            }else if (values[mid] < key) {
                min = mid + 1;
            }else {
                return mid;
            }
            // 修改完min/max之后, 重新计算mid的值
            mid = (min + max) * 0.5;
        }
        return -1;
    }
    

    进制转换(查表法)

    • 实现思路:
      • 将二进制、八进制、十进制、十六进制所有可能的字符都存入数组
      • 利用按位与运算符和右移依次取出当前进制对应位置的值
      • 利用取出的值到数组中查询当前位输出的结果
      • 将查询的结果存入一个新的数组, 当所有位都查询存储完毕, 新数组中的值就是对应进制的值
    • 代码实现
    #include <stdio.h>
    void toBinary(int num)
    {
        total(num, 1, 1);
    }
    void toOct(int num)
    {
        total(num, 7, 3);
    }
    void toHex(int num)
    {
        total(num, 15, 4);
    }
    
    void total(int num , int base, int offset)
    {
        //    1.定义表用于查询结果
        char cs[] = {
            '0', '1', '2', '3', '4', '5',
            '6', '7', '8', '9', 'a', 'b',
            'c', 'd', 'e', 'f'
        };
        //    2.定义保存结果的数组
        char rs[32];
        //    计算最大的角标位置
        int length = sizeof(rs)/sizeof(char);
        int pos = length;//8
    
        while (num != 0) {
            int index = num & base;
            rs[--pos] = cs[index];
            num = num >> offset;
        }
    
        for (int i = pos; i < length; i++) {
            printf("%c", rs[i]);
        }
        printf("\n");
    }
    int main()
    {
        toBinary(9);
        return 0;
    }
    

    二维数组

    • 所谓二维数组就是一个一维数组的每个元素又被声明为一 维数组,从而构成二维数组. 可以说二维数组是特殊的一维数组。
    • 示例:
      • int a[2][3] = { {80,75,92}, {61,65,71}};
      • 可以看作由一维数组a[0]和一维数组a[1]组成,这两个一维数组都包含了3个int类型的元素

    二维数组的定义

    • 格式:
      • 数据类型 数组名[一维数组的个数][一维数组的元素个数]
      • 其中"一维数组的个数"表示当前二维数组中包含多少个一维数组
      • 其中"一维数组的元素个数"表示当前前二维数组中每个一维数组元素的个数

    二维数组的初始化

    • 二维数的初始化可分为两种:

      • 定义的同时初始化
      • 先定义后初始化
    • 定义的同时初始化

    int a[2][3]={ {80,75,92}, {61,65,71}};
    
    • 先定义后初始化
    int a[2][3];
    a[0][0] = 80;
    a[0][1] = 75;
    a[0][2] = 92;
    a[1][0] = 61;
    a[1][1] = 65;
    a[1][2] = 71;
    
    • 按行分段赋值
    int a[2][3]={ {80,75,92}, {61,65,71}};
    
    • 按行连续赋值
    int a[2][3]={ 80,75,92,61,65,71};
    
    • 其它写法
      • 完全初始化,可以省略第一维的长度
    int a[][3]={{1,2,3},{4,5,6}};
    int a[][3]={1,2,3,4,5,6};
    
    • 部分初始化,可以省略第一维的长度
    int a[][3]={{1},{4,5}};
    int a[][3]={1,2,3,4};
    
    • 注意: 有些人可能想不明白,为什么可以省略行数,但不可以省略列数。也有人可能会问,可不可以只指定行数,但是省略列数?其实这个问题很简单,如果我们这样写:
      int a[2][] = {1, 2, 3, 4, 5, 6}; // 错误写法
      大家都知道,二维数组会先存放第1行的元素,由于不确定列数,也就是不确定第1行要存放多少个元素,所以这里会产生很多种情况,可能1、2是属于第1行的,也可能1、2、3、4是第一行的,甚至1、2、3、4、5、6全部都是属于第1行的
    • 指定元素的初始化
    int a[2][3]={[1][2]=10};
    int a[2][3]={[1]={1,2,3}}
    

    二维数组的应用场景



    二维数组的遍历和存储

    二维数组的遍历

    • 二维数组a[3][4],可分解为三个一维数组,其数组名分别为:
      • 这三个一维数组都有4个元素,例如:一维数组a[0]的 元素为a[0][0],a[0][1],a[0][2],a[0][3]。
      • 所以遍历二维数组无非就是先取出二维数组中得一维数组, 然后再从一维数组中取出每个元素的值
    • 示例
        char cs[2][3] = {
            {'a', 'b', 'c'},
            {'d', 'e', 'f'}
        };
        printf("%c", cs[0][0]);// 第一个[0]取出一维数组, 第二个[0]取出一维数组中对应的元素
    
        char cs[2][3] = {
            {'a', 'b', 'c'},
            {'d', 'e', 'f'}
        };
        for (int i = 0; i < 2; i++) { // 外循环取出一维数组
            // i
            for (int j = 0; j < 3; j++) {// 内循环取出一维数组的每个元素
                printf("%c", cs[i][j]);
            }
            printf("\n");
        }
    

    注意: 必须强调的是,a[0],a[1],a[2]不能当作下标变量使用,它们是数组名,不是一个单纯的下标变量


    二维数组的存储

    • 和以为数组一样
      • 给数组分配存储空间从内存地址大开始分配
      • 给数组元素分配空间, 从所占用内存地址小的开始分配
      • 往每个元素中存储数据从高地址开始存储
    #include <stdio.h>
    int main()
    {
        char cs[2][3] = {
            {'a', 'b', 'c'},
            {'d', 'e', 'f'}
        };
        // cs == &cs == &cs[0] == &cs[0][0]
        printf("cs = %p\n", cs);                // 0060FEAA
        printf("&cs = %p\n", &cs);              // 0060FEAA
        printf("&cs[0] = %p\n", &cs[0]);        // 0060FEAA
        printf("&cs[0][0] = %p\n", &cs[0][0]);  // 0060FEAA
        return 0;
    }
    

    二维数组与函数

    • 值传递
    #include <stdio.h>
    
    // 和一位数组一样, 只看形参是基本类型还是数组类型
    // 如果是基本类型在函数中修改形参不会影响实参
    void change(char ch){
        ch = 'n';
    }
    int main()
    {
        char cs[2][3] = {
            {'a', 'b', 'c'},
            {'d', 'e', 'f'}
        };
        printf("cs[0][0] = %c\n", cs[0][0]); // a
        change(cs[0][0]);
        printf("cs[0][0] = %c\n", cs[0][0]); // a
        return 0;
    }
    
    • 地址传递
    #include <stdio.h>
    
    // 和一位数组一样, 只看形参是基本类型还是数组类型
    // 如果是数组类型在函数中修改形参会影响实参
    void change(char ch[]){
        ch[0] = 'n';
    }
    int main()
    {
        char cs[2][3] = {
            {'a', 'b', 'c'},
            {'d', 'e', 'f'}
        };
        printf("cs[0][0] = %c\n", cs[0][0]); // a
        change(cs[0]);
        printf("cs[0][0] = %c\n", cs[0][0]); // n
        return 0;
    }
    
    #include <stdio.h>
    
    // 和一位数组一样, 只看形参是基本类型还是数组类型
    // 如果是数组类型在函数中修改形参会影响实参
    void change(char ch[][3]){
        ch[0][0] = 'n';
    }
    int main()
    {
        char cs[2][3] = {
            {'a', 'b', 'c'},
            {'d', 'e', 'f'}
        };
        printf("cs[0][0] = %c\n", cs[0][0]); // a
        change(cs);
        printf("cs[0][0] = %c\n", cs[0][0]); // n
        return 0;
    }
    

    二维数组作为函数参数注意点

    • 形参错误写法
    void test(char cs[2][]) // 错误写法
    {
        printf("我被执行了\n");
    }
    
    void test(char cs[2][3]) // 正确写法
    {
        printf("我被执行了\n");
    }
    
    void test(char cs[][3]) // 正确写法
    {
        printf("我被执行了\n");
    }
    
    • 二维数组作为函数参数,在被调函数中不能获得其有多少行,需要通过参数传入
    void test(char cs[2][3])
    {
        int row = sizeof(cs); // 输出4或8
        printf("row = %zu\n", row);
    }
    
    • 二维数组作为函数参数,在被调函数中可以计算出二维数组有多少列
    void test(char cs[2][3])
    {
        size_t col = sizeof(cs[0]); // 输出3
        printf("col = %zd\n", col);
    }
    

    作业

    • 玩家通过键盘录入 w,s,a,d控制小人向不同方向移动,其中w代表向上移动,s代表向 下移动,a代表向左移动,d 代表向右移动,当小人移动到出口位置,玩家胜利

    • 思路:

    • 1.定义二维数组存放地图

         ######
         #O #
         # ## #
         #  # #
         ##   #
         ######
    
    • 2.规定地图的方向
    • 3.编写程序控制方向
      • 当输入w或者W, 小人向上移动. x-1
      • 当输入s 或者S, 小人向下. x+1
      • 当输入a或者A, 小人向左. y-1
      • 当输入d或者D, 小人向右. y+1
    • 4.移动小人
      • 用变量记录小人当前的位置
        • 1)如果小人将要移动的位置是墙,则无法移动
        • 2)如果小人将要移动的位置是路,则可以移动
    • 5.判断是否走出迷宫

    字符串的基本概念

    • 字符串是位于双引号中的字符序列
      • 在内存中以“\0”结束,所占字节比实际多一个

    字符串的初始化

    • 在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。
      • 当把一个字符串存入一个数组时,会把结束符‘\0’存入数组,并以此作为该字符串是否结束的标志。
      • 有了‘\0’标志后,就不必再用字符数组 的长度来判断字符串的长度了
    • 初始化
        char name[9] = "lnj"; //在内存中以“\0”结束, \0ASCII码值是0
        char name1[9] = {'l','n','j','\0'};
        char name2[9] = {'l','n','j',0};
        // 当数组元素个数大于存储字符内容时, 未被初始化的部分默认值是0, 所以下面也可以看做是一个字符串
        char name3[9] = {'l','n','j'};
    
    • 错误的初始化方式
        //省略元素个数时, 不能省略末尾的\n
        // 不正确地写法,结尾没有\0 ,只是普通的字符数组
        char name4[] = {'l','n','j'};
    
         //   "中间不能包含\0", 因为\0是字符串的结束标志
         //    \0的作用:字符串结束的标志
        char name[] = "c\0ool";
         printf("name = %s\n",name);
    输出结果: c
    

    字符串输出

    • 如果字符数组中存储的是一个字符串, 那么字符数组的输入输出将变得简单方便。
      • 不必使用循环语句逐个地输入输出每个字符
      • 可以使用printf函数和scanf函数一次性输出输入一个字符数组中的字符串
    • 使用的格式字符串为“%s”,表示输入、输出的是一个字符串 字符串的输出

    • 输出
      • %s的本质就是根据传入的name的地址逐个去取数组中的元素然后输出,直到遇到\0位置
    char chs[] = "lnj";
    printf("%s\n", chs);
    
    • 注意点:
      • \0引发的脏读问题
    char name[] = {'c', 'o', 'o', 'l' , '\0'};
    char name2[] = {'l', 'n', 'j'};
    printf("name2 = %s\n", name2); // 输出结果: lnjcool
    

    • 输入
    char ch[10];
    scanf("%s",ch);
    
    • 注意点:
      • 对一个字符串数组, 如果不做初始化赋值, 必须指定数组长度
      • ch最多存放由9个字符构成的字符串,其中最后一个字符的位置要留给字符串的结尾标示‘\0’
      • 当用scanf函数输入字符串时,字符串中不能含有空格,否则将以空格作为串的结束符

    字符串常用方法

    • C语言中供了丰富的字符串处理函数,大致可分为字符串的输入、输出、合并、修改、比较、转 换、复制、搜索几类。
      • 使用这些函数可大大减轻编程的负担。
      • 使用输入输出的字符串函数,在使用前应包含头文件"stdio.h"
      • 使用其它字符串函数则应包含头文件"string.h"

    • 字符串输出函数:puts
      • 格式: puts(字符数组名)
      • 功能:把字符数组中的字符串输出到显示器。即在屏幕上显示该字符串。
    • 优点:
      • 自动换行
      • 可以是数组的任意元素地址
    • 缺点
      • 不能自定义输出格式, 例如 puts(“hello %i”);
    char ch[] = "lnj";
    puts(ch); //输出结果: lnj
    
    • puts函数完全可以由printf函数取代。当需要按一定格式输出时,通常使用printf函数

    • 字符串输入函数:gets
      • 格式: gets (字符数组名)
      • 功能:从标准输入设备键盘上输入一个字符串。
    char ch[30];
    gets(ch); // 输入:lnj
    puts(ch); // 输出:lnj
    
    • 可以看出当输入的字符串中含有空格时,输出仍为全部字符串。说明gets函数并不以空格作为字符串输入结束的标志,而只以回车作为输入结束。这是与scanf函数不同的。
    • 注意gets很容易导致数组下标越界,是一个不安全的字符串操作函数

    • 字符串长度
    • 利用sizeof字符串长度
      • 因为字符串在内存中是逐个字符存储的,一个字符占用一个字节,所以字符串的结束符长度也是占用的内存单元的字节数。
        char name[] = "it666";
        int size = sizeof(name);// 包含\0
        printf("size = %d\n", size); //输出结果:6
    

    • 利用系统函数
      • 格式: strlen(字符数组名)
      • 功能:测字符串的实际长度(不含字符串结束标志‘\0’)并作为函数返回值。
        char name[] = "it666";
        size_t len = strlen(name2);
        printf("len = %lu\n", len); //输出结果:5
    

    • 以“\0”为字符串结束条件进行统计
    /**
     *  自定义方法计算字符串的长度
     *  @param name 需要计算的字符串
     *  @return 不包含\0的长度
     */
    int myStrlen2(char str[])
    {
        //    1.定义变量保存字符串的长度
        int length = 0;
        while (str[length] != '\0')
        {
            length++;//1 2 3 4
        }
        return length;
    }
    /**
     *  自定义方法计算字符串的长度
     *  @param name  需要计算的字符串
     *  @param count 字符串的总长度
     *  @return 不包含\0的长度
     */
    int myStrlen(char str[], int count)
    {
    //    1.定义变量保存字符串的长度
        int length = 0;
    //    2.通过遍历取出字符串中的所有字符逐个比较
        for (int i = 0; i < count; i++) {
    //        3.判断是否是字符串结尾
            if (str[i] == '\0') {
                return length;
            }
            length++;
        }
        return length;
    }
    

    • 字符串连接函数:strcat
      • 格式: strcat(字符数组名1,字符数组名2)
      • 功能:把字符数组2中的字符串连接到字符数组1 中字符串的后面,并删去字符串1后的串标志 “\0”。本函数返回值是字符数组1的首地址。
    char oldStr[100] = "welcome to";
    char newStr[20] = " lnj";
    strcat(oldStr, newStr);
    puts(oldStr); //输出: welcome to lnj"
    
    • 本程序把初始化赋值的字符数组与动态赋值的字符串连接起来。要注意的是,字符数组1应定义足 够的长度,否则不能全部装入被连接的字符串。

    • 字符串拷贝函数:strcpy
      - 格式: strcpy(字符数组名1,字符数组名2)- 功能:把字符数组2中的字符串拷贝到字符数组1中。串结束标志“\0”也一同拷贝。字符数名2, 也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。
    char oldStr[100] = "welcome to";
    char newStr[50] = " lnj";
    strcpy(oldStr, newStr);
    puts(oldStr); // 输出结果:  lnj // 原有数据会被覆盖
    
    • 本函数要求字符数组1应有足够的长度,否则不能全部装入所拷贝的字符串。

    • 字符串比较函数:strcmp
      • 格式: strcmp(字符数组名1,字符数组名2)
      • 功能:按照ASCII码顺序比较两个数组中的字符串,并由函数返回值返回比较结果。
        • 字符串1=字符串2,返回值=0;
        • 字符串1>字符串2,返回值>0;
        • 字符串1<字符串2,返回值<0。
        char oldStr[100] = "0";
        char newStr[50] = "1";
        printf("%d", strcmp(oldStr, newStr)); //输出结果:-1
        char oldStr[100] = "1";
        char newStr[50] = "1";
        printf("%d", strcmp(oldStr, newStr));  //输出结果:0
        char oldStr[100] = "1";
        char newStr[50] = "0";
        printf("%d", strcmp(oldStr, newStr)); //输出结果:1
    

    练习

    • 编写一个函数char_contains(char str[],char key), 如果字符串str中包含字符key则返回数值1,否则返回数值0

    字符串数组基本概念

    • 字符串数组其实就是定义一个数组保存所有的字符串
      • 1.一维字符数组中存放一个字符串,比如一个名字char name[20] = “nj”
      • 2.如果要存储多个字符串,比如一个班所有学生的名字,则需要二维字符数组,char names[15][20]可以存放15个学生的姓名(假设姓名不超过20字符)
      • 如果要存储两个班的学生姓名,那么可以用三维字符数组char names[2][15][20]
        ##字符串数组的初始化
    char names[2][10] = { {'l','n','j','\0'}, {'l','y','h','\0'} };
    char names2[2][10] = { {"lnj"}, {"lyh"} };
    char names3[2][10] = { "lnj", "lyh" };
    

    指针基本概念

    • 什么是地址

      • 生活中的地址:
      • 内存地址:
    • 地址与内存单元中的数据是两个完全不同的概念

      • 地址如同房间编号, 根据这个编号我们可以找到对应的房间
      • 内存单元如同房间, 房间是专门用于存储数据的
    • 变量地址:

      • 系统分配给"变量"的"内存单元"的起始地址
    int num = 6; // 占用4个字节
    //那么变量num的地址为: 0ff06
    
    char c = 'a'; // 占用1个字节
    //那么变量c的地址为:0ff05
    


    什么是指针

    • 在计算机中所有数据都存储在内存单元中,而每个内存单元都有一个对应的地址, 只要通过这个地址就能找到对应单元中存储的数据.

    • 由于通过地址能找到所需的变量单元,所以我们说该地址指向了该变量单元。将地址形象化的称为“指针”

    • 内存单元的指针(地址)和内存单元的内容是两个不同的概念。

    什么是指针变量

    • 在C语言中,允许用一个变量来存放其它变量的地址, 这种专门用于存储其它变量地址的变量, 我们称之为指针变量
    • 示例:
        int age;// 定义一个普通变量
        num = 10;
        int *pnAge; // 定义一个指针变量
        pnAge = &age;
    

    定义指针变量的格式

    • 指针变量的定义包括两个内容:
      • 指针类型说明,即定义变量为一个指针变量;
      • 指针变量名;
    • 示例:
    char ch = 'a';
    char *p; // 一个用于指向字符型变量的指针
    p = &ch;  
    int num = 666;
    int *q; // 一个用于指向整型变量的指针
    q = &num;  
    
    • 其中,*表示这是一个指针变量
    • 变量名即为定义的指针变量名
    • 类型说明符表示本指针变量所指向的变量的数据类型

    指针变量的初始化方法

    • 指针变量初始化的方法有两种:定义的同时进行初始化和先定义后初始化
      • 定义的同时进行初始化
    int a = 5;
    int *p = &a;
    
    • 先定义后初始化
    int a = 5;
    int *p;
    p=&a;
    
    • 把指针初始化为NULL
    int *p=NULL;
    int *q=0;
    
    • 不合法的初始化:
      • 指针变量只能存储地址, 不能存储其它类型
    int *p;
    p =  250; // 错误写法
    
    • 给指针变量赋值时,指针变量前不能再加“*”
    int *p;
    *p=&a; //错误写法
    
    • 注意点:

      • 多个指针变量可以指向同一个地址
    • 指针的指向是可以改变的

    int a = 5;
    int *p = &a;
    int b = 10;
    p = &b; // 修改指针指向
    
    • 指针没有初始化里面是一个垃圾值,这时候我们这是一个野指针
      • 野指针可能会导致程序崩溃
      • 野指针访问你不该访问数据
      • 所以指针必须初始化才可以访问其所指向存储区域

    访问指针所指向的存储空间

    • C语言中提供了地址运算符&来表示变量的地址。其一般形式为:
      • &变量名;
    • C语言中提供了*来定义指针变量和访问指针变量指向的内存存储空间
      • 在定义变量的时候 * 是一个类型说明符,说明定义的这个变量是一个指针变量
    int *p=NULL; // 定义指针变量
    
    • 在不是定义变量的时候 *是一个操作符,代表访问指针所指向存储空间
    int a = 5;
    int *p = &a;
    printf("a = %d", *p); // 访问指针变量
    

    指针类型

    • 在同一种编译器环境下,一个指针变量所占用的内存空间是固定的。

    • 虽然在同一种编译器下, 所有指针占用的内存空间是一样的,但不同类型的变量却占不同的字节数

      • 一个int占用4个字节,一个char占用1个字节,而一个double占用8字节;
      • 现在只有一个地址,我怎么才能知道要从这个地址开始向后访问多少个字节的存储空间呢,是4个,是1个,还是8个。
      • 所以指针变量需要它所指向的数据类型告诉它要访问多少个字节存储空间

    二级指针

    • 如果一个指针变量存放的又是另一个指针变量的地址,则称这个指针变量为指向指针的指针变量。也称为“二级指针”
        char c = 'a';
        char *cp;
        cp = &c;
        char **cp2;
        cp2 = &cp;
        printf("c = %c", **cp2);
    

    • 多级指针的取值规则
    int ***m1;  //取值***m1
    int *****m2; //取值*****m2
    

    练习

    • 定义一个函数交换两个变量的值
    • 写一个函数,同时返回两个数的和与差

    ##数组指针的概念及定义

    • 数组元素指针
      • 一个变量有地址,一个数组包含若干元素,每个数组元素也有相应的地址, 指针变量也可以保存数组元素的地址
      • 只要一个指针变量保存了数组元素的地址, 我们就称之为数组元素指针
        printf(%p %p”, &(a[0]), a); //输出结果:0x1100, 0x1100
    
    • 注意: 数组名a不代表整个数组,只代表数组首元素的地址。
    • “p=a;”的作用是“把a数组的首元素的地址赋给指针变量p”,而不是“把数组a各元素的值赋给 p”

    指针访问数组元素

        int main (void)
    {
          int a[5] = {2, 4, 6, 8, 22};
          int *p;
          // p = &(a[0]); 
          p = a;
          printf(%d %d\n”,a[0],*p); // 输出结果: 2, 2
    }
    
    
    • 在指针指向数组元素时,允许以下运算:
      • 加一个整数(用+或+=),如p+1
      • 减一个整数(用-或-=),如p-1
      • 自加运算,如p++,++p
      • 自减运算,如p–,--p

    • 如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素,p-1指向同 一数组中的上一个元素。
    • 结论: 访问数组元素,可用下面两种方法:
      • 下标法, 如a[i]形式
      • 指针法, *(p+i)形式

    • 注意:
      • 数组名虽然是数组的首地址,但是数组名所所保存的数组的首地址是不可以更改的
        int x[10];
    	x++;  //错误
    	int* p = x;
    	p++; //正确
    

    指针与字符串

    • 定义字符串的两种方式
      • 字符数组
    char string[]=”I love lnj!”;
    printf("%s\n",string);
    
      • 字符串指针指向字符串
    // 数组名保存的是数组第0个元素的地址, 指针也可以保存第0个元素的地址
    char *str = "abc"
    

    • 字符串指针使用注意事项
      • 可以查看字符串的每一个字符
    har *str = "lnj";
    for(int i = 0; i < strlen(str);i++)
    {
      printf("%c-", *(str+i)); // 输出结果:l-n-j
    }
    
      • 不可以修改字符串内容
    //   + 使用字符数组来保存的字符串是保存栈里的,保存栈里面东西是可读可写,所有可以修改字符串中的的字符
    //   + 使用字符指针来保存字符串,它保存的是字符串常量地址,常量区是只读的,所以我们不可以修改字符串中的字符
    char *str = "lnj";
    *(str+2) = 'y'; // 错误
    
      • 不能够直接接收键盘输入
    // 错误的原因是:str是一个野指针,他并没有指向某一块内存空间
    // 所以不允许这样写如果给str分配内存空间是可以这样用 的
    char *str;
    scanf("%s", str);
    

    指向函数指针

    • 为什么指针可以指向一个函数?
      • 函数作为一段程序,在内存中也要占据部分存储空间,它也有一个起始地址
      • 函数有自己的地址,那就好办了,我们的指针变量就是用来存储地址的。
      • 因此可以利用一个指针指向一个函数。其中,函数名就代表着函数的地址。
    • 指针函数的定义
      • 格式: 返回值类型 (*指针变量名)(形参1, 形参2, ...);
        int sum(int a,int b)
        {
            return a + b;
        }
    
        int (*p)(int,int);
        p = sum;
    
    • 指针函数定义技巧

      • 1、把要指向函数头拷贝过来
      • 2、把函数名称使用小括号括起来
      • 3、在函数名称前面加上一个*
      • 4、修改函数名称
    • 应用场景

      • 调用函数
      • 将函数作为参数在函数间传递
    • 注意点:

      • 由于这类指针变量存储的是一个函数的入口地址,所以对它们作加减运算(比如p++)是无意义的
      • 函数调用中"(指针变量名)"的两边的括号不可少,其中的不应该理解为求值运算,在此处它 只是一种表示符号

    什么是结构体

    • 结构体和数组一样属于构造类型
    • 数组是用于保存一组相同类型数据的, 而结构体是用于保存一组不同类型数组的
      • 例如,在学生登记表中,姓名应为字符型;学号可为整型或字符型;年龄应为整型;性别应为字符型;成绩可为整型或实型。
      • 显然这组数据不能用数组来存放, 为了解决这个问题,C语言中给出了另一种构造数据类型——“结构(structure)”或叫“结构体”。

    定义结构体类型

    • 在使用结构体之前必须先定义结构体类型, 因为C语言不知道你的结构体中需要存储哪些类型数据, 我们必须通过定义结构体类型来告诉C语言, 我们的结构体中需要存储哪些类型的数据
    • 格式:
    struct 结构体名{
         类型名1 成员名1;
         类型名2 成员名2;
         ……
         类型名n 成员名n;
     };
    
    • 示例:
    struct Student {
        char *name; // 姓名
        int age; // 年龄
        float height; // 身高
    };
    

    定义结构体变量

    • 定好好结构体类型之后, 我们就可以利用我们定义的结构体类型来定义结构体变量

    • 格式: struct 结构体名 结构体变量名;

    • 先定义结构体类型,再定义变量

    struct Student {
         char *name;
         int age;
     };
    
     struct Student stu;
    
    • 定义结构体类型的同时定义变量
    struct Student {
        char *name;
        int age;
    } stu;
    
    • 匿名结构体定义结构体变量
    struct {
        char *name;
        int age;
    } stu;
    
    • 第三种方法与第二种方法的区别在于,第三种方法中省去了结构体类型名称,而直接给出结构变量,这种结构体最大的问题是结构体类型不能复用

    结构体成员访问

    • 一般对结构体变量的操作是以成员为单位进行的,引用的一般形式为:结构体变量名.成员名
    struct Student {
         char *name;
         int age;
     };
     struct Student stu;
     // 访问stu的age成员
     stu.age = 27;
     printf("age = %d", stu.age);
    

    结构体变量的初始化

    • 定义的同时按顺序初始化
    struct Student {
         char *name;
         int age;
     };
    struct Student stu = {“lnj", 27};
    
    • 定义的同时不按顺序初始化
    struct Student {
         char *name;
         int age;
     };
    struct Student stu = {.age = 35, .name = “lnj"};
    
    • 先定义后逐个初始化
    struct Student {
         char *name;
         int age;
     };
     struct Student stu;
    stu.name = "lnj";
    stu.age = 35;
    
    • 先定义后一次性初始化
    struct Student {
         char *name;
         int age;
     };
    struct Student stu;
    stu2 = (struct Student){"lnj", 35};
    

    结构体类型作用域

    • 结构类型定义在函数内部的作用域与局部变量的作用域是相同的
      • 从定义的那一行开始, 直到遇到return或者大括号结束为止
    • 结构类型定义在函数外部的作用域与全局变量的作用域是相同的
      • 从定义的那一行开始,直到本文件结束为止
    //定义一个全局结构体,作用域到文件末尾
    struct Person{
        int age;
        char *name;
    };
    
    int main(int argc, const char * argv[])
    {
        //定义局部结构体名为Person,会屏蔽全局结构体
        //局部结构体作用域,从定义开始到“}”块结束
        struct Person{
            int age;
        };
        // 使用局部结构体类型
        struct Person pp;
        pp.age = 50;
        pp.name = "zbz";
    
        test();
        return 0;
    }
    
    void test() {
    
        //使用全局的结构体定义结构体变量p
        struct Person p = {10,"sb"};
        printf("%d,%s\n",p.age,p.name);
    }
    

    结构体数组

    • 结构体数组和普通数组并无太大差异, 只不过是数组中的元素都是结构体而已
    • 格式: struct 结构体类型名称 数组名称[元素个数]
    struct Student {
        char *name;
        int age;
    };
    struct Student stu[2]; 
    
    • 结构体数组初始化和普通数组也一样, 分为先定义后初始化和定义同时初始化
      • 定义同时初始化
    struct Student {
        char *name;
        int age;
    };
    struct Student stu[2] = {{"lnj", 35},{"zs", 18}}; 
    
      • 先定义后初始化
    struct Student {
        char *name;
        int age;
    };
    struct Student stu[2]; 
    stu[0] = {"lnj", 35};
    stu[1] = {"zs", 18};
    

    结构体指针

    • 一个指针变量当用来指向一个结构体变量时,称之为结构体指针变量
    • 格式: struct 结构名 *结构指针变量名
    • 示例:
          // 定义一个结构体类型
          struct Student {
              char *name;
              int age;
          };
    
         // 定义一个结构体变量
         struct Student stu = {“lnj", 18};
    
         // 定义一个指向结构体的指针变量
         struct Student *p;
    
        // 指向结构体变量stu
        p = &stu;
    
         /*
          这时候可以用3种方式访问结构体的成员
          */
         // 方式1:结构体变量名.成员名
         printf("name=%s, age = %d \n", stu.name, stu.age);
    
         // 方式2:(*指针变量名).成员名
         printf("name=%s, age = %d \n", (*p).name, (*p).age);
    
         // 方式3:指针变量名->成员名
         printf("name=%s, age = %d \n", p->name, p->age);
    
         return 0;
     }
    
    • 通过结构体指针访问结构体成员, 可以通过以下两种方式
      • (*结构指针变量).成员名
      • 结构指针变量->成员名(用熟)
    • (pstu)两侧的括号不可少,因为成员符“.”的优先级高于“”。
    • 如去掉括号写作pstu.num则等效于(pstu.num),这样,意义就完全不对了。

    结构体内存分析

    • 给结构体变量开辟存储空间和给普通开辟存储空间一样, 会从内存地址大的位置开始开辟
    • 给结构体成员开辟存储空间和给数组元素开辟存储空间一样, 会从所占用内存地址小的位置开始开辟
    • 结构体变量占用的内存空间永远是所有成员中占用内存最大成员的倍数(对齐问题)

    +多实际的计算机系统对基本类型数据在内存中存放的位置有限制,它们会要求这些数据的起始地址的值是 某个数k的倍数,这就是所谓的内存对齐,而这个k则被称为该数据类型的对齐模数(alignment modulus)。

    • 这种强制的要求一来简化了处理器与内存之间传输系统的设计,二来可以提升读取数据的速度。比如这么一种处理器,它每次读写内存的时候都从某个8倍数的地址开始,一次读出或写入8个字节的数据,假如软件能 保证double类型的数据都从8倍数地址开始,那么读或写一个double类型数据就只需要一次内存操作。否则,我们就可能需要两次内存操作才能完成这个动作,因为数据或许恰好横跨在两个符合对齐要求的8字节 内存块上

    结构体变量占用存储空间大小

        struct Person{
            int age; // 4
            char ch; // 1
            double score; // 8
        };
        struct Person p;
        printf("sizeof = %i\n", sizeof(p)); // 16
    
    • 占用内存最大属性是score, 占8个字节, 所以第一次会分配8个字节
    • 将第一次分配的8个字节分配给age4个,分配给ch1个, 还剩下3个字节
    • 当需要分配给score时, 发现只剩下3个字节, 所以会再次开辟8个字节存储空间
    • 一共开辟了两次8个字节空间, 所以最终p占用16个字节
        struct Person{
            int age; // 4
            double score; // 8
            char ch; // 1
        };
        struct Person p;
        printf("sizeof = %i\n", sizeof(p)); // 24
    
    • 占用内存最大属性是score, 占8个字节, 所以第一次会分配8个字节
    • 将第一次分配的8个字节分配给age4个,还剩下4个字节
    • 当需要分配给score时, 发现只剩下4个字节, 所以会再次开辟8个字节存储空间
    • 将新分配的8个字节分配给score, 还剩下0个字节
    • 当需要分配给ch时, 发现上一次分配的已经没有了, 所以会再次开辟8个字节存储空间
    • 一共开辟了3次8个字节空间, 所以最终p占用24个字节

    结构体嵌套定义

    • 成员也可以又是一个结构,即构成了嵌套的结构
    struct Date{
         int month;
         int day;
         int year;
    }
    struct  stu{
         int num;
        char *name;
        char sex;
        struct Date birthday;
        Float score;
    }
    
    • 在stu中嵌套存储Date结构体内容
    • 注意:
    • 结构体不可以嵌套自己变量,可以嵌套指向自己这种类型的指针
    struct Student {
        int age;
        struct Student stu;
    };
    
    • 对嵌套结构体成员的访问
      • 如果某个成员也是结构体变量,可以连续使用成员运算符"."访问最低一级成员
    struct Date {
           int year;
           int month;
           int day;
      };
    
      struct Student {
          char *name;
          struct Date birthday;
     };
    
     s