高质量嵌入式Linux c编程第四章 语句 精编问题

2019-07-13 06:19发布

第四章:语句
  1. 从程序流程的角度,程序可以分为哪三种基本结构?
       答:顺序结构,分支结构,循环结构
  2. 什么是空语句,以及空语句的作用?
      答:只有“;”组成的语句叫做空语句
          作用:(1).纯粹消耗cpu的时间,起到延时的作用;
               (2).为了程序的结构清楚,可读性好,以后扩充新功能方便。
  3. 布尔变量与零值的比较;
       答:布尔变量的语义是零值为“假”,任何非零值为“真”。
           注明:不可将布尔变量直接与TRUE,FALSE,或者1,0进行比较。
           If(flag)  //表示flag为真
           If(!flag)  //表示flag为假
  4. 整形变量与零值的比较;
      答:应该将整形变量用“==”“!=”直接与 0 比较
        不可模仿布尔变量的风格。
  5. 浮点变量与零值的比较;
      答:不可将浮点变量用“==”“!=”与任何数字比较。
  6. 指针变量与零值的比较;
      答:应当将指针变量用“==”“!=”与NULL比较,指针的零值为“空”(记为NULL),NULL的值与0相同,但表达的意义不同。
  7. 跳转语句 goto 的优缺点。
      答:goto语句是一种无条件转移语句,使用格式为:goto 语句标号;
          缺点:goto语句可以灵活的跳转,如果不加限制,会破坏结构化的设计风格,其次goto语句经常带来错误和隐患,它可以跳过某些对象的构造,变量的初始化,重要的计算等语句;
    优点:它可以从多重循环中一下跳出到循环之外,不需要写多次的 break语句;
    主张少用,慎用goto语句,而不是禁用。
  8. 有哪些不同组合的循环语句?
      答: (1).用goto语句与if语句构成循环;
  1. .while语句;
  2. .for 语句;
  3. .do-while语句。
  1. 如何使循环语句变得更高效?
      答:应当将最长的循环放在最内层,最短的循环放在最外层,以减少cpu跨切循环层的次数;如果循环体内存在逻辑判断,并且循环次数大,宜将逻辑判断移动到循环体外面。
  2. break 与countinue的区别 ?
      答:break语句通常用在循环语句与开关语句中。
          使用break时应注意:(1).break语句对if-else的条件语句不起作用。
  1. .在多层循环中,break只能向外跳一层。
          switch语句需要跟break语句连用,否则将成为一个死循环而无法退出。
        countinue语句的作用 是跳过循环体中剩余的语句,强行执行下一次循环;常与if语句连用,来加速循环。
  1. switch的作用?
      答:是多分支选择语句,虽然if语句通过嵌套也可以实现多分支选择,但是程序会比较冗长,所以switch会比较简洁。
    基本格式为:
               switch (variable);
               {
               case value1;
               {
           break;
       }
       case value2;
       {
           break;
               }
               default:
               {
                    Break;
         }            
               }
       注意:每个case语句结尾要加break,否则会导致多个分支重叠;
             不要忘记最后的defalt分支;