for循环控制结构的执行过程如图4.3所示。②C语言的for循环控制结构不仅提供在其控制部分的exp3中修改循环控制变量的值,而且还允许在for循环的循环体中存在能改变循环控制条件的语句,使用时需特别注意。图4.3for控制结构的执行过程③无论exp1和exp3的取值如何,只要exp2是一个非0值常量表达式,则构成了死循环。......
2023-11-20
已经确定要学习C语言,现在开始正式进入程序的世界。先了解一下什么是编程。
“编程”是“编写程序”的简称,术语称为“程序设计”。程序是计算机的主宰,控制着计算机该去做什么事。所有托付给计算机去做的事情都要被编成程序。假如没有程序,那么计算机什么事情都干不了。如果程序是“好”程序,那么计算机在它的指挥下可以又快又好地完成工作;如果程序有错误,那么计算机也会严格按照错误的指令去工作,造成的后果都不是我们所期望的。
如果想让计算机做一件事情,但是没有现成的程序可用,就需要编程。编程的第一步是“需求分析”,就是要弄清楚我们到底要让计算机做什么。这个过程貌似无甚复杂,也确实让不少人对它不屑一顾。但忽视它的结果就像考试时审题审得不对,后面的解题再漂亮,也拿不到分数,必须从头返工。所以有经验的程序员都会对需求分析相当谨慎。需求分析中最难的事情是开发者和用户之间的交流。用户不懂开发,开发者不懂用户的专业和业务,使双方都会有对牛弹琴的感觉,导致需求分析的过程可能要持续好几个月,甚至数年。如果开发者之前对专业就有所了解,或者用户懂一点开发,这件事就好办得多了。这也是非计算机专业的学生学习程序设计的好处。
编程的第二步是“设计”,就是搞明白计算机该怎么做这件事。设计的内容主要包括两方面:一方面是设计算法、数学建模,用数学方法对问题进行求解;另一方面是设计程序的代码结构,使程序更易于修正、扩充、维护等。数学部分往往属于非计算机专业范畴,程序设计部分则属于计算机专业范畴,两者的配合非常重要。并不是所有的数学模型都能用程序高效实现,而有些数学中难以处理的问题,却可以利用计算机的特点巧妙解决。计算思维就体现在这里。(www.chuimin.cn)
编程的第三步才是真正“编写程序”,即把设计的结果变成一行行代码,输入程序编辑器中。虽然Windows内置的记事本也可用来编写程序,但一个顺手的编辑器可让编码的过程充满惬意。有经验的程序员喜欢使用VIM或Emacs,如果有钻研精神,可以试试。新手一般会选择更容易入门的集成开发环境(IDE),如Code::Blocks、Microsoft visual Studio等。
编程的第四步是“调试程序”,就是将源代码编译,变成可执行的程序,然后运行之,看看能否满足第一步的要求。如果不满足,就要查找问题,修改代码,再重新编译、运行,直到满意为止。用到的主要工具是编译器和调试器,它们一般都已经内置在IDE中。如果不使用IDE,只使用编辑器,则需要单独安装。推荐使用gcc编译器和gdb调试器。两者占据UNIX/Linux平台的主流,在Windows平台上亦可使用。
这个过程说起来简单,但每一个环节都有很多学问在里面。本书主要讲述的是第三步和第四步。前两步虽然也有涉及,但因为程序的规模较小,所以体现得并不多。但读者必须知道,待将来编写大规模的程序时,前两步的重要性是超过后两步的。
有关C语言程序设计基础(第3版)的文章
for循环控制结构的执行过程如图4.3所示。②C语言的for循环控制结构不仅提供在其控制部分的exp3中修改循环控制变量的值,而且还允许在for循环的循环体中存在能改变循环控制条件的语句,使用时需特别注意。图4.3for控制结构的执行过程③无论exp1和exp3的取值如何,只要exp2是一个非0值常量表达式,则构成了死循环。......
2023-11-20
图5.7两层函数嵌套调用示意图函数的嵌套调用即一个函数在被调用的过程中又调用了另外的一个函数。函数fac和powers的返回值类型均被设计为double型,其主要目的是为了避免n!x:0.5//0.5从键盘输入的数据0.50 powers of e=1.648721//程序执行结果......
2023-11-20
针对不同的实际应用,数据排序方法有很多种。本节介绍两种常用排序方法的基本思想和实现方法,帮助读者初步理解排序方法的计算机解决思路。②不考虑已排好序的数据,将剩下的数据作为待排序列。编写程序实现冒泡排序算法,对随机生成的10个3位整数按升序进行排序并输出。......
2023-11-20
一个函数直接或间接地调用自己,称为函数的递归调用。所以函数递归调用的实现必须依靠系统提供一个特殊部件(堆栈)存放未完成的操作,以保证当递归调用结束回溯时不会丢失任何应该执行而没有执行的操作。为了理解函数递归调用的特性,参照例5.9的程序讨论函数递归调用的执行过程,为了讨论方便为程序加上行号。函数递归调用示例。......
2023-11-20
例如,有如下所示的C语句序列:则结构体指针变量p1指向结构体数组元素a[2],其关系如图10.2所示。此时应该注意到被指针变量p1指向的结构体数组元素本身是不能作为整体操作的,所以*p1也不能作为整体操作。......
2023-11-20
函数fwrite的功能则是将内存储器中指定区域的数据块写入与文件指针stream相关联的文件中。将一个5×10的整型二维数组数据存入指定文件中。编写程序实现功能:将例7.10所创建文件中的数据读出,并将数据按5行10列的矩阵形式进行显示。由于要接收从文件中读出的二维数组数据,程序中需要定义构成方式与之对应的二维数组。......
2023-11-20
在进行C语言程序设计时,合理使用库函数有以下好处:①对于某些功能的实现已经存在标准化的函数代码,这时直接使用库函数,可以避免重复编制,简化程序设计过程,提高程序设计的效率。②库函数在开发时充分考虑了各种影响因素,经过了长期使用的考验,使用标准库函数可以使程序的健壮性得到足够的保证,从而提高编程的质量。使用标准库函数时要注意函数的功能、参数的个数与类型、函数值的类型。......
2023-11-20
C语言把括号、赋值、强制类型转换等都作为运算符处理,灵活使用各种运算符可以实现在其他高级语言中难以实现的运算,功能强大。另外,C语言还把括号、下标、强制类型转换、取地址等都作为运算符处理,并通过与算数运算符的组合达到不同的目的,从而使程序更加简洁明了。C语言具有超强的可移植性。总之,C语言在运算符方面是比较容易让人混淆的。......
2023-11-18
相关推荐