项目2:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。图3.15兔子问题输出结果根据以上的分析可以知道,循环次数可以为0,因此该程序是一个条件型循环,可以利用while语句编写程序。熟悉了循环结构在程序设计中的运用,循环结构语句包含了while语句、do…......
2023-11-18
1.3.1.1 程序组成
C语言程序可以由一个或多个源程序文件组成。一个源文件可以由若干个函数和预处理命令以及全局变量声明部分组成,一个函数由数据定义部分和执行语句(函数体)组成。一个源程序不论由多少个文件组成,都有且仅有一个main()函数,即主函数。源程序中可以有预处理命令(include命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面,并且必须以#开头。每一条语句都必须以分号结尾,但预处理命令、函数头和花括号之后不能加分号。
一个函数由两部分组成:函数定义和函数体。
(1)函数定义由函数类型、函数名称、参数类型和参数名组成。
(2)函数体是在函数定义下面包含在花括号{……}内的全部语句。函数内可能有多个花括号,但是花括号都是成对出现的,有左括号就应该有右括号。函数体以第一个花括号开始,最后一个花括号结束。
例1.1 函数调用,交换a,b的值。
本程序包括两个函数:主函数main()和被调用的自定义函数exchange()。在main()函数中定义两个整型变量a,b,并分别赋初值;exchange(a,b)的作用是在调用时将实际参数a,b的值分别传送给后面exchange()中的形式参数x,y;printf是输出交换后a,b的值,右花括号表示主函数体结束。Exchange()函数的作用是将形式参数x,y互换,即将x的值赋给tmp,再将y的值赋给x,最后再将tmp中所保存的x值赋给y,完成交换。printf()函数中双引号内的“x=%d,y=%d\n”,在输出时,x=和y=原样输出,%d将会别被x,y的值代替,“\n”表示换行。
1.3.1.2 基本结构
在C语言程序中,共有四种程序结构:顺序结构、分支结构(选择结构)、循环结构和模块化程序结构。
1.顺序结构
顺序结构指程序在执行过程中按从上到下的顺序依次执行。程序员只需要按照要解决问题的顺序写出相应的语句即可。
例1.2 简单的顺序输出程序。
(www.chuimin.cn)
2.分支结构
分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序,对于要先做判断再选择的问题就要使用分支结构,如图1.2所示。分支结构在执行过程中,会根据带有逻辑或关系比较等条件判断的结果来决定之后向哪一个分支方向执行。
图1.2 分支结构图
3.循环结构
循环结构可以减少源程序重复编写的工作量,提高程序处理复杂数据的能力,这也是程序设计中最能发挥计算机特长的程序结构。循环结构有一个循环体,循环体里是需要达到某种目的的代码。对于循环结构来说,关键在于根据判断的结果,来决定循环体执行多少次。
C语言中提供四种循环,即goto循环、while循环、do…while循环和for循环。我们主要学习while、do…while、for三种循环。
4.模块化程序结构
C语言的模块化程序结构用函数来实现,即将复杂的C程序分为若干模块,每个模块都编写成一个C函数,然后通过主函数调用函数或函数调用函数来实现大型C程序的编写。
C程序结构如图1.3所示。
图1.3 C语言程序结构
有关C语言程序设计 第2版的文章
项目2:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。图3.15兔子问题输出结果根据以上的分析可以知道,循环次数可以为0,因此该程序是一个条件型循环,可以利用while语句编写程序。熟悉了循环结构在程序设计中的运用,循环结构语句包含了while语句、do…......
2023-11-18
单分支if语句的执行过程如图3.3所示。使用if语句实现单分支选择结构程序时还需要注意下面两点:图3.3if语句的执行流程①作为条件的表达式一般来说应该是关系表达式或逻辑表达式,但C语言中允许表达式是任何可以求出0值或非0值的表达式。同时还需要提醒读者,此处分析的关于条件表达的方法在C程序设计的所有控制结构中都是相同的,今后涉及此问题时不再赘述。......
2023-11-20
void类型指针中的数据不能访问,如果非要访问的话,可以通过强制转换将void类型指针转换为与所指向的数据类型相符的类型。所谓“相同存储对齐限制”是指void类型指针所指的数据在内存中所占的长度与显式转换后的指针所指的数据在内存中所占的长度相等。同理,如果是将void类型转换为具有更小存储对齐限制的指针时,也可能引起数值的改变。......
2023-11-18
在程序设计中,许多问题的解“隐藏”在多个可能之中。在一个集合内对集合中的每一个元素进行一一测试的方法称为穷举法。穷举方法的实现主要依赖于以下两个基本要点:·搜寻可能值的范围如何确定。程序设计中应据问题的描述具体分析,确定时应尽量缩小搜索范围,提高程序效率。编写程序找出所有的“水仙花数”。程序可以依次取出区间[100,999]之间的每一个数,然后将该数分解为3个数字,按照判定条件判定即可。......
2023-11-20
C语言中逻辑运算符及其含义见表3.2。表3.2逻辑运算符及其含义逻辑运算符“&&”和“||”是双目运算符,具有左结合性;“!”表3.3逻辑运算真值表C语言中进行逻辑表达式求值运算时,不但要注意逻辑运算符本身的运算规则,而且还必须要遵循下面的两条原则:·对逻辑表达式从左到右进行求解。......
2023-11-20
不带参数的宏定义一般形式是:#define宏名字符串例如:#definePI3.1415926其中,宏名用标识符表示,也就是前面讨论过的符号常量,上面示例中的PI就是宏名。正确使用“宏定义”的关键是宏调用时的“原样替换”。宏定义使用的简单示例。④宏定义不存在类型问题,它的参数也是无类型的。⑦宏定义允许嵌套。如:#defineN100#defineM2*N#defineK5+M⑧可以用#undef或不带替换字符串的宏定义终止宏定义的作用域。......
2023-11-20
C语言把括号、赋值、强制类型转换等都作为运算符处理,灵活使用各种运算符可以实现在其他高级语言中难以实现的运算,功能强大。另外,C语言还把括号、下标、强制类型转换、取地址等都作为运算符处理,并通过与算数运算符的组合达到不同的目的,从而使程序更加简洁明了。C语言具有超强的可移植性。总之,C语言在运算符方面是比较容易让人混淆的。......
2023-11-18
图5.7两层函数嵌套调用示意图函数的嵌套调用即一个函数在被调用的过程中又调用了另外的一个函数。函数fac和powers的返回值类型均被设计为double型,其主要目的是为了避免n!x:0.5//0.5从键盘输入的数据0.50 powers of e=1.648721//程序执行结果......
2023-11-20
相关推荐