Linux C编程第四章的10个问题以及解决方案
2017-10-09 18:53
176 查看
1、从程序流程的角度看,程序分为哪3种基本结构?
顺序结构、分支结构、循环结构
2、语句的分类有哪些?
空语句、基础语句(表达式语句、函数调用语句)、语句if、跳转语句goto、循环语句(do-while、for语句)、break、continue、switch
3、什么是空语句?
只有分号“;”组成的语句称为空语句,空语句是什么也不执行的语句,在程序中空语句可以用作空循环体。
4、怎样提高循环语句的效率?
程序要简短,程序的效率本质是执行可执行代码(汇编指令)的次数,程序越简短,其可执行代码就越少,就越有效率。因此,在编写程序时,要尽量改进我们的算法,让语句最少,源程序语句可以导致可执行代码减少。
减少循环内操作,首先要尽可能减少循环次数,减少循环次数,可以减少程序运行时间,第二,尽量减少循环内无用操作,能在循环外执行的语句,就在循环外执行,第三,尽量减少嵌套循环,因为循环中的循环是两循环次数相乘的关系。
5、什么是布尔变量?
布尔型变量是有两种逻辑状态的变量,它包含两个值:真和假。如果在表达式中使用了布尔型变量,那么将根据变量型的真假而赋予整型值1或0.要把一个整型变量转换成布尔型变量,如果整型值为0,则其布尔型值为假,反之如果整型值为非0,则其布尔型值为真。
6、什么是switch语句?
switch是多分支语句,而if语句只有两个分支可供选择。虽然可以用嵌套的if语句来实现多分支选择,但是那样的程序冗长难读,这就是switch语句存在的理由。
格式为:switch(variable)
{case value1:
{
break;
}
case value2:
{
break;
}
default:
{
break;
}
}
每个分之后要加上break语句,否则会顺序执行所有的分支。
7、跳转语句goto是什么?
goto语句也称为无条件转移语句,其一般格式如下: goto 语句标号; 其中语句标号是按标识符规定书写的符号,
放在某一语句行的前面,标号后加冒号(:)。语句标号起标识语句的作用,与goto 语句配合使用。
如: label: i++;
loop: while(x<7);
C语言不限制程序中使用标号的次数,但各标号不得重名。goto语句的语义是改变程序流向,转去执行语句标号所标识的语句。
goto语句通常与条件语句配合使用。可用来实现条件转移,
构成循环,跳出循环体等功能。
但是,在结构化程序设计中一般不主张使用goto语句,
以免造成程序流程的混乱,使理解和调试程序都产生困难
8、break和continue 的注意点有哪些?
break:其对if-else的条件语句不起作用并且在多层循环中,一个break语句只向外跳一层。
continue;跳过本次循环强制执行下一次循环,常与if来加速循环
break语句还可以用在switch语句中,用来跳出switch语句。
9、if语句的注意事项
(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语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。但要注意的是在}之后不能再加分号。
10、goto该如何谨慎使用?
在C语言中不推荐使用goto,会造成混乱,但goto在有些情况使用是很好的。1 在多重循环时需要退出循环时,而使用goto可以直接跳出;2 作为一种条件,直接跳转。
原则上是最好不要用,因为程序要讲究结构性,可读性,goto语句会破坏这一点。
顺序结构、分支结构、循环结构
2、语句的分类有哪些?
空语句、基础语句(表达式语句、函数调用语句)、语句if、跳转语句goto、循环语句(do-while、for语句)、break、continue、switch
3、什么是空语句?
只有分号“;”组成的语句称为空语句,空语句是什么也不执行的语句,在程序中空语句可以用作空循环体。
4、怎样提高循环语句的效率?
程序要简短,程序的效率本质是执行可执行代码(汇编指令)的次数,程序越简短,其可执行代码就越少,就越有效率。因此,在编写程序时,要尽量改进我们的算法,让语句最少,源程序语句可以导致可执行代码减少。
减少循环内操作,首先要尽可能减少循环次数,减少循环次数,可以减少程序运行时间,第二,尽量减少循环内无用操作,能在循环外执行的语句,就在循环外执行,第三,尽量减少嵌套循环,因为循环中的循环是两循环次数相乘的关系。
5、什么是布尔变量?
布尔型变量是有两种逻辑状态的变量,它包含两个值:真和假。如果在表达式中使用了布尔型变量,那么将根据变量型的真假而赋予整型值1或0.要把一个整型变量转换成布尔型变量,如果整型值为0,则其布尔型值为假,反之如果整型值为非0,则其布尔型值为真。
6、什么是switch语句?
switch是多分支语句,而if语句只有两个分支可供选择。虽然可以用嵌套的if语句来实现多分支选择,但是那样的程序冗长难读,这就是switch语句存在的理由。
格式为:switch(variable)
{case value1:
{
break;
}
case value2:
{
break;
}
default:
{
break;
}
}
每个分之后要加上break语句,否则会顺序执行所有的分支。
7、跳转语句goto是什么?
goto语句也称为无条件转移语句,其一般格式如下: goto 语句标号; 其中语句标号是按标识符规定书写的符号,
放在某一语句行的前面,标号后加冒号(:)。语句标号起标识语句的作用,与goto 语句配合使用。
如: label: i++;
loop: while(x<7);
C语言不限制程序中使用标号的次数,但各标号不得重名。goto语句的语义是改变程序流向,转去执行语句标号所标识的语句。
goto语句通常与条件语句配合使用。可用来实现条件转移,
构成循环,跳出循环体等功能。
但是,在结构化程序设计中一般不主张使用goto语句,
以免造成程序流程的混乱,使理解和调试程序都产生困难
8、break和continue 的注意点有哪些?
break:其对if-else的条件语句不起作用并且在多层循环中,一个break语句只向外跳一层。
continue;跳过本次循环强制执行下一次循环,常与if来加速循环
break语句还可以用在switch语句中,用来跳出switch语句。
9、if语句的注意事项
(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语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。但要注意的是在}之后不能再加分号。
10、goto该如何谨慎使用?
在C语言中不推荐使用goto,会造成混乱,但goto在有些情况使用是很好的。1 在多重循环时需要退出循环时,而使用goto可以直接跳出;2 作为一种条件,直接跳转。
原则上是最好不要用,因为程序要讲究结构性,可读性,goto语句会破坏这一点。
相关文章推荐
- Linux C编程第二章的10个问题以及解决方案
- Linux C编程第三章的10个问题以及解决方案
- Hadoop YARN常见问题以及解决方案
- 机器学习中的过拟合问题以及解决方案
- Jquery 获取checkbox的checked问题以及解决方案
- Multidex机制,以及实现原理,产生的问题和解决方案
- Unity3d 和 3dmax轴向问题以及快速解决方案
- es配置项解释以及脑裂问题的解决方案
- es配置项解释以及脑裂问题的解决方案
- Tomcat于Eclipse集成开发问题以及解决方案
- 关于IOS7上导航栏遮盖状态栏的问题,以及解决方案
- 项目中遇到的一些需要重构的问题以及解决方案1-应该尽量减少缩进层次
- bootstrap常用功能快速入门以及常见问题解决方案
- 浏览器的跨域问题以及解决方案
- 安装zookeeper遇到的问题以及解决方案
- 三个兼容性问题 ,以及解决方案
- IOS开发中遇到的各种问题以及解决方案集锦
- ScrollView中嵌套的viewPager,viepager高度设置为wrap_content时内容不显示问题以及与scrollview冲突的解决方案
- C程序访问hadoop运行时遇到的各种问题以及解决方案(环境变量不被sudo继承)