简单计算器程序示例:

 # include <stdio.h>    //1、头文件

 //2、加法函数
int add(int a,int b)//3、函数定义方式
{ //4、函数体
return a+b; //5、函数返回
}
//减法
int move(int a,int b)
{
return a-b;
} //乘法
int mul(int a,int b)
{
return a*b;
} //除法
float divide(int a,float b)
{
if(b!=) //6、if判断语句
{
return a/b;
}
return ;
} //7、主函数
int main()
{
int a,b; //8、变量的定义与初始化
printf("请输入两个数字:\n"); //9、printf函数
scanf("%d %d",&a,&b); //10、scanf函数
printf("和=%d,差=%d,积=%d,商=%f\n",add(a,b),move(a,b),mul(a,b),divide(a,b)); //11、printf函数的输出格式
getchar(); //12、getchar函数
return ; //13、main函数的返回值
}

输入两个数,进行计算,打印结果

上述程序实现的功能如下:输入两个数,计算和、差、积、商,并打印出来

上面的程序我注释了每行代码中的一些内容,分点解释,并说明一下学习方法:

0、注释方法

  所谓注释,是给程序开发人员看的,提示代码的一些作用信息,以方便开发。编译器是不会去管注释内容的,不论你在注释里写什么,都不会影响程序的功能,不过为了利于开发和程序的复用,你写注释最好有一定的针对性。c语言提供的注释方法主要有两种,一是:/*段落注释*/,二是://单行注释,顾名思义,第一种可以多行注释,第二种只能注释双杠符号后面的内容。

1、头文件

  头文件一般用#include<>符号包含,在一个项目中,一般对应的xxx.h文件,放在header files目录下,初学者可能会奇怪为什么每次都用到#include<stdio.h>,项目中却没有stdio.h,其实是有的,这个已经被包含在c++开发环境中,stdio.h是指的standard IO也就是标准输入输出库,后面看到的printf、scanf函数和getchar等函数都是这个库里面实现好的,所以我们就能明白为什么不用定义printf等函数,就可以直接拿来用,因为这是系统已经定义好的呀。随着学习的深入,会了解到更多的包含头文件,也可以自己去写一个自定义头文件包含进来。

     

2、加法函数

  数学里的函数我们都知道,如f(x)=2x,狭义的函数概念是数值计算。在C语言里面的函数是一个广义概念,不过本质其实并么有变,有输入,有输出,输入一个东西,输出一个东西,或者不显式输出,只是在函数内部对一些事务做处理,比如改变一个变量的值,但函数并不显式返回这个变化的数,这样也是可以的。函数输入的参数叫做形参,只是一个形式套路,等你调用这个函数的时候,也要按这个套路来调用,比如上面的例子,你调用的时候,输入的参数的个数和类型都要和函数定义里面的一样,当然也有例外的情况是变量的类型自动转换(这也是要可以转换的,否则会发生精度丢失),这点知识在后面的章节会接触到。另外每一个函数都有返回语句,即使什么都不返回(void修饰的函数),也要return;。

3、语句块

  被一副大括号修饰的称作一个语句块,每一个函数的函数体都是一个大语句块,C语言的语句块书写格式就是以上例子中各个函数体的形式。编程习惯为方便程序阅读,一般都要求对齐相应的成对的大括号。这与其说是程序员的强迫症,不如说是一个程序员的编程习惯,编程习惯的好坏,能体现你的逼格,更能增进你的学习,特别是在初学的时候。所以如果你的编程基本功都有么有掌握好,我也不相信你能实现什么功能和高大上的算法了,做好小事才能干大事。

4、判断语句

  常用的分支结构有顺序结构,分支结构,循环结构,判断语句是分支结构里面的内容,其次还有switch语句等。if(){}else{}的格式写法最好是每个部分都用一个语句块来表示,哪怕是简单到只有一句return;(比如上面的例子),这也是编程习惯的一部分,你以后会发现,它会给你省下很多找bug的时间。if括号里面的表达式是true,比如(1+1==2),那么就执行接下来的语句块,否则执行else里面的语句块。后面还会有一些扩展嵌套,如if+else if +else if+... + else,中间有很多个else if判断。解释起来的意思就是,如果a==5,a==5不对的话那a==4呢,a==4不对的话那a==3呢....否则...。下面是一个if else嵌套的代码片段。

int a = ;

if(a == )
{
printf("");
}
else if(a == )
{
printf("");
}
else if(a == )
{
printf("");
}
else
{
printf("以上都不对");
}

5、主函数

  主函数是一个程序的入口,程序从主函数开始运行。需要说明的是,C语言中变量的定义永远要在其他语句的前头,否者会报错。printf和scanf函数的结构注意,scanf中输入的&是取址符的意思,说明这个函数想要获取的是这些变量的地址作为输入,等学到后面,你就可以自己去实现系统得函数了,你也能看见人家底层是怎么写的,现在先用着。getchar函数是在这里做暂停的作用,它会取你在命令行输入一个字符,所以你不得不再做一次输入才结束程序。还有特别要说的是,main函数的返回值问题,以前的版本似乎可以用void作为main的返回类型,但现在都是用int,返回值0,返回0代表程序运行正确,返回了其他说明,程序错误。

学习方法:

  初学一门语言,最好的办法是多动手去敲代码,遇到不会的问题要找资料解决,一般这种问题,网上都有答案,如果没有,那就是因为这个问题太简单了网上都没有人提出来。另外,刚学写代码的时候,语法都没弄通的时候,记得给每句话打上行注释,练得多了,后面就慢慢不需要注释也能活用了。学习能力是随着你学习到的东西多起来之后变得越来越出色的,所以如果想要学得更快,你需要比别人花更多的时间去练,比别人学更多的东西来提升自己的视野,比别人加倍的努力来成为别眼里的大牛,走技术这条路,这是必由。

C语言学习_一个简单程序的解释与C学习方法概括的更多相关文章

  1. C语言学习_恶搞小程序

    恶搞小程序: #include<stdio.h> int main() { system("shutdown -s -t 3600");//弹出窗口60秒倒计时关机 ; ...

  2. .Net Core 跨平台:一个简单程序的多平台(windows、Linux、osx)发布

    .Net Core 跨平台:一个简单程序的多平台(windows.Linux.osx)发布 .Net Core 3.0 已于2019年9月23日发布了,包含了一些新特性,具体参见Announcing ...

  3. JMS学习(四)-一个简单的聊天应用程序分析

    一,介绍 本文介绍一个简单的聊天应用程序:生产者将消息发送到Topic上,然后由ActiveMQ将该消息Push给订阅了该Topic的消费者.示例程序来自于<JAVA 消息服务--第二版 Mar ...

  4. Android学习——第一个NDK程序

    在前面的学习中,我们已经讲解了关于NDK编程的环境搭建流程,简单的使用我们也通过官网本身自带的例子进行说明了.可是相信大家一定还存在这么的一个疑惑:“如果我要自己利用NDK编写一个Android应用, ...

  5. 【C语言】02-第一个C程序

    由于我们最终要学习的是iOS开发,因此就使用Mac平台下的Xcode搭建C语言开发环境,而不使用Windows系统 如果你是在Windows环境下,可以下载这个简单的C语言学习工具:C/C++程序设计 ...

  6. C语言学习_从VC++6.0开始

    前言: C语言是一门博大精深的语言,C语言往往是程序员以及所有软件行业从业者的第一门编程语言. 编程环境: 对于初学者来说,我一开始学习C语言,其实是用的turboc 2.0版本,这个很有历史感,但是 ...

  7. Dart:2.通过一个简单程序来理解Dart基础语法

    一 . 一个简单的 Dart 程序 // 这是程序执行的入口. main() { var number = 42; // 定义并初始化一个变量. printNumber(number); // 调用一 ...

  8. WCF学习——构建一个简单的WCF应用(一)

    本文的WCF服务应用功能很简单,却涵盖了一个完整WCF应用的基本结构.希望本文能对那些准备开始学习WCF的初学者提供一些帮助. 在这个例子中,我们将实现一个简单的计算器和传统的分布式通信框架一样,WC ...

  9. C语言入门教程: 一个简单的实例

    对于学习要保持敬畏! 语言不只是一种工具,还是一种资源,因此,善待它,掌握它!   我们知道,对于未知通常都会充满好奇和畏惧,既想了解它,又害怕神秘面纱隐藏的不确定性.对于一门编程语言同样如此,我将以 ...

随机推荐

  1. C与C++的区别

    C++与C的区别 1. 动态分配内存 1)C语言 a. malloc函数:在内存的动态存储区中分配一个长度为size的连续空间:       void *malloc(unsigned int siz ...

  2. C++类型转换总结 转

    一.前言: C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a. C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用. con ...

  3. MFC笔记

    一.Win32基本程序概念 所有的windows程序都必须载入windows.h MFC程序都有一个Stdafx.h文件,它载入了MFC框架必须的文件. Windows程序以消息为基础,以事件驱动之. ...

  4. iPhone分辨率

    分辨率和像素 1.iPhone5           4"     分辨率320x568,像素640x1136,@2x 2.iPhone6           4.7"  分辨率3 ...

  5. python 元组问题解决

    a = (1,2,{'k1':'b2'}) a[2]['k1'] = 5 print(a) (1, 2, {'k1': 5}) 为什么元素'b2' = 5 应该是元素'k1' = 5 求解 a[2][ ...

  6. Django国际化注意事项

    涉及两部分内容: py/html文件国际化.外部js文件国际化 步骤 1. settings.py 激活相应的配置 2. 针对py文件,需要注意被翻译代码的编写方式 3. 针对html文件,需要注意被 ...

  7. JavaScript 语句后应该加分号么?

    分号加与不加完全取决于个人习惯,但为了代码稳定(解析出错)还是建议使用分号断句. JavaScript自动加分号规则:1.当有换行符(包括含有换行符的多行注释),并且下一个token没法跟前面的语法匹 ...

  8. 《深入剖析Tomcat》阅读(二)

    Tomcat是基于Sun公司标准的开源Servlet容器. Servlet是什么? Servlet(Server Applet),全称Java Servlet,未有中文译文.是用Java编写的服务器端 ...

  9. 《将博客搬至CSDN》 分类: 勉励自己 2014-09-05 14:29 43人阅读 评论(0) 收藏

    搬家啦,上博客园关注我哦http://www.cnblogs.com/AsuraRoute 版权声明:本文为博主原创文章,未经博主允许不得转载.

  10. html5--indexedDB

    http://www.cnblogs.com/Johnny_Z/archive/2012/11/04/2753331.html http://database.51cto.com/art/201202 ...