Linux C编程第四章的10个问题以及解决方案
来源:互联网 发布:好易网络电视apk 编辑:程序博客网 时间:2024/06/04 19:09
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语句会破坏这一点。
- Linux C编程第四章的10个问题以及解决方案
- Linux C编程第二章的10个问题以及解决方案
- Linux C编程第三章的10个问题以及解决方案
- Linux操作以及c编程规范 、附带个问题
- Linux C编程一站式学习第四章
- C语言编程的十六个问题
- Linux C编程第四回 - 字符串相关
- 【linux】ubuntu11.10下各种问题以及解决方案
- exceptional c++:47个c++工程难题、编程问题和解决方案(中文版)
- linux驱动学习--第四天:第三章 linux内核以及内核编程 之 在Linux内核中新增程序的方法
- linux c编程问题
- Linux下的c编程 出现问题
- Linux下C语言编程的问题
- 股市编程问题的解决方案
- 《C Primer Plus》第四章编程题
- c.p.p第四章编程训练
- C和指针第四章编程练习
- C++Primer 第四版的代码问题
- 前端冷知识(四):文件上传、线程、ajax
- Yii2安装高级模板
- 51nod 1220 约数之和
- dfs学习之扫雷问题
- 数人云|使微服务、容器趋向完美——Serverless架构你应当知道的二三事
- Linux C编程第四章的10个问题以及解决方案
- 树莓派进行socket掉线重连出现的问题
- bzoj1499 [NOI2005]瑰丽华尔兹 (单调队列优化DP)
- 如何如何引领一名普通程序员走向优秀?
- 神经网络梯度下降优化算法及初始化方法小结
- 《数据库系统概念》学习笔记
- sass相关介绍
- C语言语句
- upD79F8513A(NEC)或upD78F0511A(NEC)之电源电压检测