潇组吧 关注:80贴子:1,274

【转载】从零开始学编程---第一步-C语言

只看楼主收藏回复

现在这个贴子的版本是1.0,以后我会逐渐改善的
我也是刚学编程,所以把学过的分享给大家,可能有些理论不对,希望高手出来解释
为什么学编程要学C语言?因为C语言是一切编程的基础
我们主要学算法,算法是核心
我会用我自己的理解来教大家,而不是书本上的死东西
现在我们开始吧


IP属地:上海1楼2013-03-22 18:19回复
    那么开始学吧,C语言来源什么的发明者什么的我就不说了,你们自己可以找到
    开始C语言学习时,你们需要在电脑装Microsoft Visual C++ V6.0,这是编译工具,C语言,C++程序都能编译,直接搜索名字就能找到下载,如果电脑有其他工具可以编译C语言的话,也就
    不需要下载了


    IP属地:上海2楼2013-03-22 18:19
    回复
      首先,让我们看一个C语言程序
      #include <stdio.h>
      main()
      {
      printf("hello world \n");
      return 0;
      }


      IP属地:上海3楼2013-03-22 18:20
      回复
        这里最简单的一个C语言程序
        也是C语言程序组成的基本结构
        下面让我们来分析一下
        #include <stdio.h>
        翻译为#包括 <标准输入输出> h就是英文单词HEAD的第一个字母 这个是头文件,暂时你不需要知道太多,你只需知道暂时我们编程序的时候这个必打,所以背下来吧
        main()
        main是主要的意思,这是个主函数,所有C程序都有这个,这里说的函数并不是数学函数,你可以理解为方法,()括号里面是放参数的,就是数值,现在你先不需要了解,以后会慢慢了解的
        {}大括号里面就放着我们打的程序,记住哦,一定要在大括号里面
        printf() 这是个输出函数,输出它括号里面的东西,但是一定要在引号里面
        \n 这是换行符,用了你就会知道
        return 0 这是返回值,这个我们以后在学,其实现在不写这个程序也能通过,所以我暂时不会让这个出现在程序上,虽然这样不好,但为了大家能更好的了解程序,免得大家为了该不该要return犯迷糊
        所以这样也是可以的
        #include <stdio.h>
        main()
        {
        printf("hello world \n");
        }
        此程序的结果是在屏幕(6.0工具中就是那个黑的)上打印helli world


        IP属地:上海4楼2013-03-22 18:20
        回复
          现在我们暂时编程序的格式就是这样
          #include <stdio.h>
          void main()
          {
          这里面就是我们要编的程序
          }
          viod是返回类型为空,就是不需要return,这个以后你们会了解的
          当当不写void也可以,但是这是为了规范
          还算简单吧,这个格式请大家牢记


          IP属地:上海5楼2013-03-22 18:20
          回复
            C语言程序中,一定会有数据,这个数据就是由数字,单词和字符构成
            数字又分整数和浮点数(浮点数就是小数,数学里也称实数)
            字符就是键盘上所有的
            a b c A B C 这6个是字符
            数字 '1' ' 2' ' 3' 这3个也是字符,但必须得是加了单引号的
            + - */ {}、 这些符号也是字符
            空格键也是字符
            这些都能在ASC表能找到,反之能在ASC表在能找到的就可以是字符 ASC是什么,呵呵,这个上网查一下
            还有就是单词,也可以说是字符串
            就是比如 hello 或者 hello world
            记住:字符用单引号表示,字符串用双引号表示


            IP属地:上海6楼2013-03-22 18:20
            收起回复
              整数不用我说大家也该知道是什么
              123 ,0, -234,1000 这些就是整数
              浮点数(小数)也就是凡是带小数点的数就是浮点数
              12.3 ,0.0,0.23,-7.7 这些就是小数(我还是直接说小数好了,说浮点有点不爽啊)
              浮点数所占字节要比整数大,字节就是内存里的东东,这个暂时不需了解
              你只需知道小数占的字节要比整数大就可以了,后面字节这个概念很重要
              例如123.4和1234
              123.4就必1234所占的字节大


              IP属地:上海7楼2013-03-22 18:21
              回复
                说完数据类型我们说变量
                C语言把数据存放在变量中,变量就是电脑内存里的一个盒子,用来保存数字或字符
                这个盒子里面的东西是变化的,例如我放一个数字1放进这个盒子,这个盒子现在装的是数字1,然后我又放数字2进入,原来的数字1就自动替换成数字2,然后你放什么进去,它就是总是替换,它是可变的
                数据类型就可以用变量来表现
                int 整数的意思 它可以申明变量用于存放整数
                long int 存放大于32767和小于-32768的整型数据(这个我们暂时用不着,可以忽略)
                float 浮点的意思,可以申明变量存放小数
                double 双点,双重的意思,存放更大的小数(这个也暂时用不着,先忽略)
                char 字符的意思 申明变量存放字符


                IP属地:上海8楼2013-03-22 18:21
                回复
                  每个变量都有名字,因为你得知道你存放的是哪个盒子,所有盒子得标个记号
                  变量的名字必须用字母开头,大小写都可以,中间可以带下划线,例如age_cat
                  但绝对不能以数字开头 例如 95age
                  变量名也不能含空格和特殊字符 例如age cat 和 age*cat
                  有了变量名你就定义一个变量了,啥叫定义,也就是申明,或者说建立
                  例如 int a 意思就是说我用一个叫a变量 类型int 存放整数
                  或者说我拿了一个盒子,做个标记a 以后用来存放整数
                  int a
                  float b
                  char c
                  以上的就是定义不同类型的变量
                  但要记住,在一个程序中,变量名字不能重复
                  例如
                  int a
                  int a
                  或者
                  int a;
                  float a;
                  都是错误的
                  变量名有唯一性


                  IP属地:上海9楼2013-03-22 18:21
                  回复
                    定义了一个变量,我们就可以使用这个变量,可以在里面存放数据
                    怎么存放?直接用=号就可以了
                    可以在定义的时候存放
                    int a=1
                    也可以在定义后存放
                    int a;
                    a=1
                    还可以用表达式来存放
                    int a;
                    a=3-2;
                    甚至还可以加入其他变量
                    int a;
                    int b=2
                    a=b-1;
                    另外,定义变量的时候可以连接定义
                    int a,b
                    还有
                    int a=1,b
                    但是不可以这样
                    int a=b=1


                    IP属地:上海10楼2013-03-22 18:21
                    回复
                      让我们来个运用变量的程序
                      #include <stdio.h>
                      viod main()
                      {
                      int a;
                      float b;
                      char c;
                      a=1;
                      b=1.1;
                      c='a';
                      }
                      但是这个程序现在还没有什么实质性的作用,变量赋值以后你无法从电脑中看到
                      所以,接下来我们学习printf()函数,我们把变量的值打印到屏幕上


                      IP属地:上海11楼2013-03-22 18:22
                      回复
                        在开始的时候大家就已看到printf()的功能
                        没错 就是printf("hello world \n");,打印字符串hello world到屏幕上
                        简单来说,printf()就是在屏幕上产生输出,把字符,数字,字符串发送到屏幕上
                        printf()的格式
                        printf(“”);可以直接输出引号里的东西
                        printf(“%d”,a) 这样是直接输出变量int类型a的值
                        %d的意思:d是decimal base(十进制)的开头字母,意思就是按十进制格式输出,也就是按整数格式输出
                        还有%f 按浮点数格式输出
                        %c 按字符格式输出
                        printf(“%d”,a)的逗号后面只能放值,变量名可以,单纯的值也可以,例如这样printf(“%d”,1),也是可以的
                        连续输出值可以这样printf(“%d,%f,%c”,a,b,c),引号里的逗号不打也没关系所以printf(“%d%f%c”,a,b,c)也是可以的,但是这样会挤成一堆,自己试下就知道了,所以建议大家养成打逗号的习惯


                        IP属地:上海12楼2013-03-22 18:22
                        回复
                          printf("hello world \n"); 里面的\n有什么用
                          下面我就来为大家介绍,\n今后我们会经常用的
                          下面看例子
                          #include <stdio.h>
                          main()
                          {
                          printf("hello");
                          printf("world");
                          }
                          输出结果会是
                          hello
                          world
                          吗?
                          结果是NO
                          输入结果是helloworld
                          因为没有回车,printf()只能在一行进行输出
                          那么怎么进行回车?这就需要\n了,\n是转义符,意思就是它能把你不能用字符打出来的东西,换种形式出来,在程序过程,你不可能中途又去按回车键
                          所以,这样
                          main()
                          {
                          printf("hello\n");
                          printf("world");
                          }
                          它就会输出
                          hello
                          world
                          转义符还有很多个,例如\t,\\,\*\a
                          \n只是其中一个,其他的等用的时候在介绍吧,反正常用的也就一两个
                          大家就只要牢记\n这一个,记住是反斜号,n是new-line (新的一行)的开头字母


                          IP属地:上海13楼2013-03-22 18:22
                          回复
                            现在我们来用我们所学的输出几个变量的值
                            #include <stdio.h>
                            viod main()
                            {
                            int a;
                            float b;
                            char c;
                            a=1;
                            b=1.1;
                            c='a';
                            printf("%d\n",a);
                            printf("%f\n",b);
                            printf("%c",c)
                            }
                            结果是
                            1
                            1.100000
                            a
                            为什么1.1变成了1.100000,因为float 定义的变量小数(浮点数)默认小数点后面保留6位数,那怎么让它输出1.1?
                            只让让%f变成%.1f就可以了,反之你想让它输出小数点后两位数就%.2f,三位就%.3f,以此类推
                            程序可以简化为
                            #include <stdio.h>
                            viod main()
                            {
                            int a=1;
                            float b=1.1;
                            char c=‘a’;
                            printf("整数变量为:%d,浮点数变量为:%.1f,字符型变量为:%c\n",a,b,c);
                            }
                            结果为
                            整数变量为:1,浮点数变量为:1.1,字符型变量为: a
                            \n记住一定要在引号里,为了美观,请养成多用\n的习惯,即使整个程序就一个printf()语句(也是也用的)


                            IP属地:上海14楼2013-03-22 18:22
                            回复
                              下面我们来个输入(scanf)输出(printf)的程序
                              #include <stdio.h>
                              void main()
                              {
                              int a;
                              float b;
                              char c;
                              printf("请输入a的值:");
                              scanf("%d",&a);
                              printf("请输入b的值:");
                              scanf("%f",&b);
                              printf("请输入c的值:");
                              scanf("%c",&c);
                              printf("a的值为:%d,b的值为:%f,C的值为:%c\n",a,b,c);
                              }
                              这个是正确的吗?你运行的时候你就会发现,变量c没办法输入了,程序直接结束
                              哪里有问题?
                              下面我们来分析
                              首先程序显示 请输入a的值:
                              我们输入1,在按回车键
                              又会显示 请输入b的值:
                              我们输入1.1 按回车
                              这时候程序就会显示
                              请输入c的值:a的值为:1,b的值为:1.100000,C的值为:
                              这是为什么?别忘了之前说过,空格和回车也是字符
                              开始输入了1到了变量a里,按回车,继续下一个输入
                              又输入了1.1到了变量b里
                              此时再按回车的话,就会被scanf接收了,因为变量c是字符格式,回车也是字符,自动存到变量c里
                              非字符变量,用scanf连续输入,按空格或回车会等待下一个输入
                              但是字符和字符串变量,scanf会直接接收空格和回车
                              怎么解决?在%c前面加一个空格,就是这样scanf(" %c",&c);
                              #include <stdio.h>
                              main()
                              {
                              int a;
                              float b;
                              char c;
                              printf("请输入a的值:");
                              scanf("%d",&a);
                              printf("请输入b的值:");
                              scanf("%f",&b);
                              printf("请输入c的值:");
                              scanf(" %c",&c);
                              printf("a的值为:%d,b的值为:%f,C的值为:%c\n",a,b,c);
                              }
                              这样程序就能正常运行
                              所以不管什么变量类型,最好都在前面加个空格,会是一个好习惯


                              IP属地:上海17楼2013-03-22 18:23
                              回复