1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > c语言基础 —— 程序结构

c语言基础 —— 程序结构

时间:2019-08-22 09:45:57

相关推荐

c语言基础 —— 程序结构

5、程序结构

在C语言程序里,一共有三种程序结构:顺序结构、选择结构(分支结构)、循环结构

顺序结构:按照实物本身特性,必须一个接着一个来完成。

选择结构:到某个节点后,会根据一次判断结果来决定之后走哪一个分支。

循环结构:循环结构有一个循环体,循环体是一段代码。对于循环结构来说,关键在于根据判断的结果,来决定循环体执行多少次。

总结:对于顺序结构来说,不需判断,因为下一句指令就是你要执行的。对与循环与选择结构来说,都需要进行判断。然后根据判断结果来决定怎么办。

逻辑上有一种类型,叫bool类型(又写作boolean类型,中文叫布尔类型)。布尔类型只有两个值,真和假。

C语言中有以下一些判断运算符

== 等于

!= 不等于

> 大于

< 小于

>= 大于等于

<= 小于等于

使用这些判断运算符,可以写出一个判断表达式,这个判断表达式最终的值就是一个bool类型。这个判断表达式的bool值就决定了选择结构如何选择,循环结构如何循环。

5.1、选择结构详解:

C语言中选择结构一共有两种:

第一种:if else

引入关键字:if else else if

if (bool值) // 如果bool值为真,则执行代码段1,否则执行代码段2

{

代码段1

}

else

{

代码段2

}

if (bool值1) // 如果bool值1为真,则执行代码段1

{ // 否则则判断bool值2是否为真,若为真则执行代码段2

代码段1 // 否则直接执行代码段3

}

else if (bool值2) // 开头的if和结尾的else都只能有一个,但是中间的

{ // else if可以有好多个。

代码段2

}

else

{

代码段3

}

逻辑问题,要考虑相等的情况

正确的逻辑:

**调试方法:

第二种:switch case

涉及到的C语言关键字:switch case break default

switch (变量) // 执行到这一句时,变量的值已经知道了

{ // switch case语句执行时,会用该变量的值一次与各个

case 常数1: // case后的常数去对比,试图找到第一个匹配项。

代码段1; // 找到匹配的项目后,就去执行该case对应的代码段

break; // 如果没找到则继续下一个case,直到default。

case 常数2: // 如果前面的case都未匹配,则default匹配。

代码段2;

break;

.....default:如果前面都不匹配,就这个了代码段n;break;

}

注意:

1、**case中必须是常数,而且必须是整形(不能是float double,可以是int char)

2、一般来说,每个case中代码段后都必须有一个break;如果没有,结果可能会让你大吃一惊

3、case之后一般都会有default。语法上允许没有default,但是建议写代码时一定要写。

switch case和if else对比:

1、**if else适合对比条件比较复杂,但是分支比较少的情况;switch case适合那种对比条件不复杂,但是分支数很多的情况。

2、所有的选择结构,其实都可以用if else来实现。但是只有部分才可以用switch case实现。

一般的做法是:在适合使用switch case的情况下会优先使用switch case,如果不适合使用switch case,则不得不使用if else。

5.2、C语言中的循环结构

C语言中常用的循环结构有三个:for循环、while循环、do while循环。

5.2.1、for循环

for (循环控制变量初始化; 循环终止条件; 循环控制变量增量)

{

循环体

}

for循环的执行步骤:

1、先进行循环控制变量初始化

2、执行循环终止条件,如果判断结果为真,则进入第3步;如果为假则循环终止,退出。

3、执行循环体。

4、执行循环控制变量增量,转入第2步。

注意:

1、for循环中()中三部分可不可以省略?

**标准的for循环,应该把循环控制变量的初始化,增量都放在()当中,并且在循环体中绝对不应该更改循环控制变量(可以引用它的值,但不应该改变它)。

**三部分最好写在里面

for后面空一格,分号后面空一格

下面这种情况就是改变了控制变量

无控制条件:死循环

无初始化:i无定义时是随机值 初始化可以有两个变量

**如果变量只和循环体有关放里面,而不只是和里面有关,放外面

i=0 放在外面是可以的,只初始化一次

无终止条件:死循环

5.2.2、while循环(写的格式比较简单)

i = 1;

sum = 0; // 循环初始化

while (i < 100) // 终止条件

{

printf(“i = %d.\n”, i);

sum += i; // 循环体

i += 2; // 循环控制增量,属于循环体的一部分

}

while循环的执行步骤:

0、首先是循环初始化。这一部分其实不属于while循环本身。

1、先判断终止条件是否满足。如果是真,则进入第2步;否则直接退出。

2、执行循环体,然后转入第1步。

5.2.3、do while循环

i = 1;

sum = 0; // 初始化条件

do

{

printf(“i = %d.\n”, i);

sum += i;

i += 2; // 增量,循环体的一部分

}while (i < 100); // 终止条件 **(注意有个分号)

(一般不用)

do while循环的执行步骤:

0、首先是循环初始化。这一部分其实不属于do while循环本身。

1、执行循环体(循环控制变量的增量是循环体的一部分)

2、判断终止条件。若成立,则转入1;若不成立则退出

总结:不管哪种循环结构,都不能缺少一些要素:

循环控制条件初始化,终止条件,循环控制变量增量,循环体。

不同的循环方式(for和while和do while)都有这些,只是格式不同,表现形式不同,放的地方不同,可读性不同,看起来和设计起来难度不同。

**while循环和do while循环哪里不同?

while循环是先判断后执行,do while循环是先执行后判断,等循环开始转了之后,其实是一样的。

**while循环有没有可能循环1次就不执行了?有

dowhile … 不可能,至少会循环一次

基础知识:

当我们定义了一个局部变量,但是没有初始化的时候,这个值是随机的。

当我们定义了一个全局变量,但是没有初始化的时候,这个值是0;

理解和记忆是相互促进的。如果看不懂,就去记,记住了自然就明白了。如果记不住,就去理解,理解了自然就记住了。

重点while,for,ifelse

题目:

1、给三个数,打印出其中最大的数

2、规则:90分及以上为优,80分及以上为良,60分及以上为及格,以下为不及格,然后输入一个学生分数,然后printf打印“you” “liang” “jige” “bujige”

把概率大的写在前面,提高效率

3、计算100以内所有奇数的和

4、算一下10!(10987····1)

5、打印一张ASCII码表(提示:数字用%d,字符用%c打印)

出现乱码,说明对应的字符是不可见的

注意代码格式

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。