[C.C++] C语言(二)C语言程序结构及简单的C程序举例

463 0
Honkers 2025-4-2 11:05:02 来自手机 | 显示全部楼层 |阅读模式

C语言小白报道!和老刘一起开始学习C语言吧!

一、C语言程序的结构

(1)一个程序由一个或多个源程序文件组成。

(2)函数是C程序的主要组成部分。

(3)一个函数包括两个部分。

(4)程序总是从main函数开始执行的。

(5)程序中要求计算机完成的操作是由函数中的C语句完成的。

(6)在每个数据声明和语句的最后必须有一个分号。

(7)C语言本身不提供输入输出语句。

(8)程序应当包含注解。

以下开始细说:

1)①预处理指令 #include(例如还有#define等)C语言能对源程序进行翻译之前,先由一个预处理器(又叫预处理程序、预编译器)对预处理系统进行预处理,对#include指令来说,就是将stdio.h头文件的内容读进来,取代#include。由预处理得到的结果与程序其他部分一起,组成一个完整的、可以用来编译的最后的源程序,然后由编译程序对该源程序正式进行编译,才得到目标程序。

②全局声明 如一会在主程序中见到的 int a,b,sum 放在main函数的前面,这就是全局申明。在函数外面声明的变量称为全局变量。如:在程序开头(定义函数之前)声明的变量,就在整个源程序文件范围内有效。在函数中声明的变量是局部变量,只在函数范围内有效。

  一个C语言程序由一个或多个函数组成,其中必须包含一个main函数(有且仅有一个main函数)。一个小程序只包含一个源程序文件,在一个源程序文件中包含若干个函数(其中有且仅有一个main函数),但是程序规模较大时,所包含的函数就会比较多,这样文件就会很大并且不利于编译和调试。为了方便编译和调试,可以使一个程序包含若干个源程序文件,每个源程序文件又包含若干个函数。一个源程序文件就是一个程序模块,即,将一个程序分成若干个程序模块。C语言的这种特点使得容易实现程序的模块化。

④函数首部

以int max (int a,int b)为例:

第一个int是函数类型,max是函数名,后两个int是函数参数类型,a,b是函数参数名。

一个函数名后面必须跟一对圆括号,括号内写函数的参数名以及类型。若函数没有参数,可以在括号中写void,也可以是空括号。例:int main(void)/int main()

⑤函数体。这是函数首部下面花括号内的部分,若有很多花括号,一般认为最外层的花括号是函数体的范围。

函数体一般包括声明部分和执行部分。

在某些情况下,可以没有声明部分,甚至可以既无声明部分也无执行部分。例:

void dump()

{}                          ————————该例选自《C程序设计》

这是一个空函数,什么也不做但也是合法的。

主函数mian不论放在整个程序中的任意位置均可。

⑦ 注释。注释放在   //     后,或者在      /*     */    之间。

二、开始实例

先来个简单的: 这是最基础的

  1. #include<stdio.h>
  2. int main()
  3. {
  4. printf("This is a c program!\n");
  5. return 0;
  6. }
复制代码

以下两个逐渐复杂,涉及到部分声明、函数调用以及接收输入、打印结果等函数,值得注意的是  \n  是换行的意思,%d  是占位符,就像有个坑用%d先占住,后面的&a(&b)等,是填入前面占位坑的数。 

  1. //求两整数之和
  2. #include<stdio.h>
  3. int main()
  4. {
  5. int a, b, sum;
  6. scanf_s("%d,%d", &a, &b);//输入数字
  7. sum = a + b; //求和
  8. printf("sum is %d\n", sum);//输出
  9. return 0; //结束程序
  10. }
复制代码
  1. //求两整数的较大者
  2. #include<stdio.h>
  3. int main()
  4. {
  5. int max(int x, int y);//调用max函数
  6. int a, b, c; //声明
  7. scanf_s("%d,%d", &a, &b);//接受输入的数
  8. c = max(a, b);
  9. printf("max=%d", c);
  10. return 0;
  11. }
  12. int max(int x, int y)
  13. {
  14. int z;
  15. if (x < y)z = y;
  16. else z = x;
  17. return(z);
  18. }
复制代码

下面我们再复杂点

  1. #include<stdio.h>
  2. #define Height 10//定义用户常量,在之后的程序中遇见Height自动默认为10
  3. int main()
  4. {
  5. int calculate(int Long, int Width);
  6. printf("长方体的高度为:%d\n", Height);//可替换成自主输入
  7. int inlong;
  8. int inwidth;
  9. printf("请输入宽度:");
  10. scanf_s("%d", &inwidth);
  11. printf("请输入长度:");
  12. scanf_s("%d", &inlong);
  13. int result;
  14. result = calculate(inlong, inwidth);
  15. printf("长方体的体积是:%d", result);
  16. return 0;
  17. }
  18. int calculate(int inlong, int inwidth)//自定义计算体系
  19. {
  20. int result;
  21. result = inlong * inwidth * Height;
  22. return result;
  23. }
复制代码

 注意#define此处的含义。我相信,层层理解,这些都已经被大家理解了、并且很有条理。那么,不用预处理Height等于10,而换成用户输入可以做到吗?

  1. #include<stdio.h>
  2. //#define Height 10//定义用户常量,在之后的程序中遇见Height自动默认为10
  3. int main()
  4. {
  5. int calculate(int inlong, int inwidth, int inheight);
  6. //printf("长方体的高度为:%d\n", Height);//可替换成自主输入
  7. int inheight;
  8. printf("请输入高度:");
  9. scanf_s("%d", &inheight);
  10. int inlong;
  11. int inwidth;
  12. printf("请输入宽度:");
  13. scanf_s("%d", &inwidth);
  14. printf("请输入长度:");
  15. scanf_s("%d", &inlong);
  16. int result;
  17. result = calculate(inlong, inwidth,inheight);
  18. printf("长方体的体积是:%d", result);
  19. return 0;
  20. }
  21. int calculate(int inlong, int inwidth,int inheight)//自定义计算体系
  22. {
  23. int result;
  24. result = inlong * inwidth * inheight;
  25. return result;
  26. }
复制代码

PS:scanf在该软件版本只能用scanf_s,不然会说不安全,具体原因不是很清楚欸

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Honkers

荣誉红客

关注
  • 4010
    主题
  • 36
    粉丝
  • 0
    关注
这家伙很懒,什么都没留下!

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行