概述
前言
文章中介绍C语言程序执行过程中最基本的三种结构,包括有:顺序结构、分支结构、循环结构。理解和学习程序的执行过程,对于以后学习其他的编程语言,或者程序的调试,程序调Bug都有很好的帮助。
程序是什么?
所谓的程序,就是一系列遵循一定规则和思想并能够正确完成指定工作的代码(也成为指令序列)。
其中,程序的一个部分是描述问题的每一个对象及它们之间的关系,这部分被成为数据结构(我认为程序设计中非常重要的一门课程)。
另外的一个部分是对这些对象进行处理的规则,当然这个就是算法。牛X的人,都是数学好的人~~
因此有这么一种说法:程序=数据结构+算法
程序设计=数据结构+算法+程序设计方法+语言工具和环境
顺序结构
后面介绍的内容,基本上是基于C程序来介绍,通过实例和注释来解释知识点的重难点和用法。
顺序:顾名思义,从上到下、从左到右、从小到大……程序中的顺序结构便是从程序的main()函数入口,一条一条的指令执行,知道遇到程序结束的指令结束程序。
当然第一个程序必须是:“Hello world”
顺序结构程序代码:
//载入头文件 std 标准 io输入输出流
#include<stdio.h>
/*
程序的入口函数 mian()函数 其中()中参数可以省略
agrc参数表示是程序指令的个数
agrv指针类型数组保存的是每一条指令在内存中的地址
*/
int main(int agrc,char *agrv[]){
//定义一个字符串数组 给s初始化的内容是 Hello world!
char s[] = "Hello world!";
//将需要输出的内容输出到console控制台
printf("%s",s);
/*
程序需要返回一个int类型的数据
程序能正常终止 返回值为 0 异常终止 返回值 1
这里正常终止 设置为 0
*/
return 0;
}
程序执行结果
整体看一下这个程序
输出结果可以看到“Hello world!”我们希望输出的内容输出到屏幕上了,可以看到程序执行了0.4415s,最后返回的结果是0,和我们的预期一样。
程序具体的每一句的代码的执行目的代码注释里面有详细解释。其中良好的程序编写人员都会有代码注释的习惯,方便别人阅读和自己回头的理解。这里注释的方式有两种,程序中均有体现。
程序运行流程:从main()入口函数进入程序,按照顺序的执行方式,一句一句的执行,定义char类型的字符串s,输出s,返回return,程序结束。很好理解。
分支结构
分支结构中需要知道if、else、elseif、switch case的用法
分支结构程序代码:
//载入头文件 std 标准 io输入输出流
#include<stdio.h>
/*
程序的入口函数 mian()函数 其中()中参数可以省略
agrc参数表示是程序指令的个数
agrv指针类型数组保存的是每一条指令在内存中的地址
*/
int main(int agrc,char *agrv[]){
/*
顺序结构
*/
//定义一个字符串数组 给s初始化的内容是 Hello world!
char s[] = "Hello world!";
//将需要输出的内容输出到console控制台
printf("%sn",s);
/*
分支结构
*/
int n;
scanf("%d",&n);
//if分支语句 括号内部判断是不是真 若为真 执行if内的语句
//分支语句可以没有else 但有else 一定要有一个if与之对应
//这里的括号内部判断的是一个数字 C语言中非0的数字均为真
if(3)
printf("1:t这是一个真语句!n") ;
//if -else -elseif
//判断输入的n与0的关系并输出
if(n>0)
printf("2:t%d大于0n",n);
else if(n == 0)
printf("2:t%d等于0n",n);
else
printf("2:t%d小于0n",n);
//分支嵌套 switch case
if(n>0)
printf("3:t%d大于0n",n);
else
{
if(n == 0)
printf("3:t%d等于0n",n);
else{
switch(n){
//若n的值是 -1的情况
case -1:
printf("3:t%d小于0n",n);
break;
//若n的值是 -2的情况
case -2:
printf("3:t%d小于0n",n);
break;
//其它情况
default:
printf("3:t%d小于0n",n);
break;
}
}
}
/*
程序需要返回一个int类型的数据
程序能正常终止 返回值为 0 异常终止 返回值 1
这里正常终止 设置为 0
*/
return 0;
}
程序执行的结果:
说明3点:
- 变量的定义位置,C语言会将一个域中用的变量定义到所有程序指令的最前面,这里分支结构这块定义了一个n,程序能正常执行,和编译有关。
用C编译器的情况: gcc text.c;
用C++编译器的情况: g++ test.c 或者 g++ test.cpp 或者 g++ test.c (也就是用g++命令或者源文件后缀是cpp,则默认是用C++编译器)。
因为C++中没有这个说法,所以用g++编译不会出现问题。- switch中的break,break的作用:break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则会从满足条件的地方(即与switch(表达式)括号中表达式匹配的case)开始执行,直到switch结构结束。
- 另外可以注意使用C语言中的唯一的三目运算符:
max = ( x > y ) ? x : y ;
代替了一下的代码,使用非常方便
if(x > y)
max = x;
else
max = y;
循环结构
循环结构一般会结合着分支结构一起使用,完成对问题的求解。
循环结构程序代码:
//载入头文件 std 标准 io输入输出流
#include<stdio.h>
/*
程序的入口函数 mian()函数 其中()中参数可以省略
agrc参数表示是程序指令的个数
agrv指针类型数组保存的是每一条指令在内存中的地址
*/
int main(int agrc,char *agrv[]){
/*
顺序结构
*/
//定义一个字符串数组 给s初始化的内容是 Hello world!
char s[] = "Hello world!";
//将需要输出的内容输出到console控制台
printf("%sn",s);
/*
分支结构
*/
int n;
scanf("%d",&n);
//if分支语句 括号内部判断是不是真 若为真 执行if内的语句
//分支语句可以没有else 但有else 一定要有一个if与之对应
//这里的括号内部判断的是一个数字 C语言中非0的数字均为真
if(3)
printf("1:t这是一个真语句!n") ;
//if -else -elseif
//判断输入的n与0的关系并输出
if(n>0)
printf("2:t%d大于0n",n);
else if(n == 0)
printf("2:t%d等于0n",n);
else
printf("2:t%d小于0n",n);
//分支嵌套 switch case
if(n>0)
printf("3:t%d大于0n",n);
else
{
if(n == 0)
printf("3:t%d等于0n",n);
else{
switch(n){
//若n的值是 -1的情况
case -1:
printf("3:t%d小于0n",n);
break;
//若n的值是 -2的情况
case -2:
printf("3:t%d小于0n",n);
break;
//其它情况
default:
printf("3:t%d小于0n",n);
break;
}
}
}
/*
循环结构
*/
int m;
//只要输入的内容不是文件结尾符 可以一直输入
//循环内部可以控制结束条件
while(scanf("%d",&m) != EOF){
//break
//如果m的值等于0 后面的语句也不执行 或者写为 m==0
//调出while循环 执行循环外部的程序指令
if(!m)
break;
int sum = 0;
for(int i=0;i<m;i++){
//计算 0~m-1的和
sum += i;
}
printf("0~%d的和是%dn",m-1,sum);
//continue
//如果m的值不等于0 后面的语句不执行
//while的头入口继续循环
if(m!=0)
continue;
//执行的结果中可以发现这里从未执行 思考一下 why?
printf("这里执行了吗?n");
}
/*
程序需要返回一个int类型的数据
程序能正常终止 返回值为 0 异常终止 返回值 1
这里正常终止 设置为 0
*/
return 0;
}
程序执行结果:
说明几点:
- for循环使用最多,一般情况可以表示任何循环,和while循环均是当型循环,先判断,后执行。do{}while属于直到型循环,先做循环再判断,程序用应用不多,程序中也没有体现。
- 自增,自减符,++a、–a、a++、a–;符号在前表示的是:先做自增或者自减运算后以运算后的数值进行接下来的程序执行,符号在后表示的是:以当前值进行程序执行,执行结束后做自增自减运算进行下次程序执行。(在程序中可以体现)
- for循环中循环语句可以是单个语句、空语句也可以是复合语句;三个表达式可以是任意类型,其中的分号”;”不能省略。
自增自减程序代码:
#include<stdio.h>
int main(){
int sum = 0;
printf("符号在后自增:%dn",sum++);
printf("符号在前自增:%dn",++sum);
return 0;
}
程序运行结果:
结语
有关C语言程序三种基本结构,顺序结构、分支结构、循环结构的主要内容和知识都已经在程序中有所体现。
文章内容是博主手写,难免出现错误和瑕疵,有错误请指出,有问题请积极留言一起交流。
最后
以上就是疯狂黑夜为你收集整理的C语言程序三种基本结构的全部内容,希望文章能够帮你解决C语言程序三种基本结构所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复