Linux C编程第四章的10个问题以及解决方案

来源:互联网 发布:好易网络电视apk 编辑:程序博客网 时间:2024/06/04 19:09

1、从程序流程的角度看,程序分为哪3种基本结构?

顺序结构、分支结构、循环结构

 

2语句的分类有哪些?

空语句、基础语句(表达式语句、函数调用语句)、语句if、跳转语句goto、循环语句(do-while、for语句)、break、continue、switch

 

3、什么是空语句?

只有分号“;”组成的语句称为空语句,空语句是什么也不执行的语句,在程序中空语句可以用作空循环体。

 

4怎样提高循环语句的效率?

程序要简短,程序的效率本质是执行可执行代码(汇编指令)的次数,程序越简短,其可执行代码就越少,就越有效率。因此,在编写程序时,要尽量改进我们的算法,让语句最少,源程序语句可以导致可执行代码减少。

减少循环内操作,首先要尽可能减少循环次数,减少循环次数,可以减少程序运行时间,第二,尽量减少循环内无用操作,能在循环外执行的语句,就在循环外执行,第三,尽量减少嵌套循环,因为循环中的循环是两循环次数相乘的关系。

 

5、什么是布尔变量?

布尔型变量是有两种逻辑状态的变量,它包含两个值:真和假。如果在表达式中使用了布尔型变量,那么将根据变量型的真假而赋予整型值10.要把一个整型变量转换成布尔型变量,如果整型值为0,则其布尔型值为假,反之如果整型值为非0,则其布尔型值为真。

 

6什么是switch语句?

switch是多分支语句,而if语句只有两个分支可供选择。虽然可以用嵌套的if语句来实现多分支选择,但是那样的程序冗长难读,这就是switch语句存在的理由。

格式为:switchvariable

{case value1

{

break

}

case value2

{

break

}

default

{

break

}

}

每个分之后要加上break语句,否则会顺序执行所有的分支。

 

7跳转语句goto是什么?

goto语句也称为无条件转移语句,其一般格式如下: goto 语句标号; 其中语句标号是按标识符规定书写的符号,放在某一语句行的前面,标号后加冒号(:)。语句标号起标识语句的作用,与goto 语句配合使用。

如: label: i++;

loop: while(x<7);

C语言不限制程序中使用标号的次数,但各标号不得重名。goto语句的语义是改变程序流向,转去执行语句标号所标识的语句。

goto语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。

但是,在结构化程序设计中一般不主张使用goto语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难

 

8break和continue   的注意点有哪些?

break:其对if-else的条件语句不起作用并且在多层循环中,一个break语句只向外跳一层。

continue;跳过本次循环强制执行下一次循环,常与if来加速循环

break语句还可以用在switch语句中,用来跳出switch语句。

 

9if语句的注意事项  

(1)在三种形式的if语句中,在if关键字之后均为表达式。 该表达式通常是逻辑表达式或关系表达式,但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。例如:
    if(a=5) 语句;
    if(b) 语句;
都是允许的。只要表达式的值为非0,即为“真”。如在:
    if(a=5)…;
中表达式的值永远为非0,所以其后的语句总是要执行的,当然这种情况在程序中不一定会出现,但在语法上是合法的。
又如,有程序段:

if(a=b)

    printf("%d",a);

else

    printf("a=0");

本语句的语义是,把b值赋予a,如为非0则输出该值,否则输出“a=0”字符串。这种用法在程序中是经常出现的。

(2)在if语句中,条件判断表达式必须用括号括起来,在语句之后必须加分号。

(3)在if语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。但要注意的是在}之后不能再加分号。

 

10goto该如何谨慎使用?

 C语言中不推荐使用goto,会造成混乱,但goto在有些情况使用是很好的。在多重循环时需要退出循环时,而使用goto可以直接跳出;作为一种条件,直接跳转。

 原则上是最好不要用,因为程序要讲究结构性,可读性,goto语句会破坏这一点。

 

原创粉丝点击