• 关于自学C语言开始时应该注意的问题分享—未完待续......


    ---恢复内容开始---

    自学C语言编程总结

    第1章C语言概述

    1、     如果用户将主函数的返回值类型定义为了void,则不需要返回任何值;

    2、     C语言的基本结构包括主函数和程序体两部分,主函数是程序的入口函数main()。

    3、     对于C语言的头文件如果是系统定义的,一般用尖括号<>

    括起来,如果为自己定义的,那必须用双引号《》括起来。                                        ——2018.1.1

    第2章 变量和常量

    1、     在C语言编程中如果需要输出数据的ASCII码,则可以用数据输出格式为printf(“ %d ”,数据名);

    2、     在输出变量中的数据时,如果输出整型数据应将printf中的“格式化字符串”修改为“%c”如果输出单个字符或者字符串时应将其修改为“%c”或者“%s”,如果输出单精度或者双精度数据时应将其修改为“%f”或者“%1f”;

    3、     注意在变量的命名中不能使用特殊字符号(#、*、/、等),也不能使用C语言中的关键字。

    ——2018.1.3

    第三章    C语言运算符

    1、C语言里的运算符主要有赋值运算符、算术运算符、逻辑运算符、关系运算符、三目运算符、位运算符以及单目运算符。

    2、在加法算数运算符里面其数据类型必须一致,另外对于两个不同类型的数据类型若要进行相加减,那么必须要使用强制转换,其格式举例如下:

    Num=(int)f1+f2

       在上述的加法中,作用是将f1的数据类型强制转换为整数型,与f2进行相加。

    3、加法和减法运算符不能够用在单个或者多个字符型数据的运算当中。

    4、在编程时一定要记得不要将除法运算符/和混淆,否则,会出现编程错误。

    5、C语言的编程当中,逻辑运算符主要有逻辑与(&&),逻辑或(II),逻辑非(!)三种逻辑运算符,不过逻辑运算的结果只有两个:真(1)或假(0)。

    6、利用数据逻辑运算符,可以很方便的判断两个数据是否相同。

    7、在C语言里面,三目运算符是唯一一个具有三个变量同时参与运算的运算符。其具体的格式如下:

    <关系式1>?<表达式2>:<表达式3>

    其中,表达式1是运算条件,如果它为真,则运算结果为表达式2,否则结果就是表达式3。

                                            ——2018.1.6

    8、在编程过程中,应该注意关系运算符里的等于(==)和赋值运算符里面的等于(=)不要搞混,一个表示的是关系,一个是赋予结果,含义不同。一般在表示判断的语句当中,用的是关系运算符(==)。

    9、位运算符主要有按位与(&)、按位或(|)、按位异或(^)、左移(<<),右移(>>)等。                                 

    10、对于自加和自减表达式,前缀和后缀的运算符对于参与运算的变量而言,计算的数据没有区别,二者的区别在于得到的表达式的值不一样,例如:

    a=5,b=++a;等价于a=a+1;b=a;最后的结果为a=6,b=6;

    a=5,b=a++;等价于b=a;a=a+1;最后的结果为a=6,b=5.

    11、对于单目运算符++和—的运算对象只能是整变量或运算结果是变量的表达式,不能够是常量或者运算结果为数值的表达式,例如:5++,(a+2)++,float f=0;(int)f++,这些都是不合理的。

                                                 ——2018.1.9

    第四章    标准输入/输出

    1、对于C语言的标准输入函数为scanf()(输出为printf()),其具体的函数原型是:

       Int scanf ( const  char *format ,ch);

    (Int printf ( const  char *format ,ch);)

    1)参数format表示了格式控制符,主要用于控制获取数据的类型,当然,也可以是一个格式控制符的组合字符串。常用的有以下几种:

    %d(获取输入流中的十进制数据),%c(获取输入流中的单个字符数据),%s(获取输入流中的字符串数据),%o(获取输入流中的八进制数据),%u(获取无符号的十进制数据),%x(获取输入流中的十六进制数据),%i(获取输入流中的各种进制数据)。

       2)参数ch,它标识了一个已经定义的变量,即将获取的数据放到该参数所指向的变量在地址中进行保存,那么,用户就需要使用取址运算符“&”。

       3)对于输出函数printf()函数在输出的时候用户不需要使用地址运算符“&”。

    2、单个字符的输入与输出函数:

    对于单个字符的输入和输出来说,我们可以使用getchar()和putchar()函数,它们也会是一组相互对应的输入输出函数,不过只能够获取到单个输入和输出单个数据。

    例如;对于getchar()在用户输入一串字符数据时,该函数只能够获取到它的第一个字符数据,而后面的直接省略,其原型是:

    int  getchar ( void )

    其输出函数与之类似。

    3、对于C语言编程中字符串的输出,并没有专门的输出函数,不过可以采用整体的思路进行输出,在输出时可以根据不同的情况进行修饰性输出:

    1)%s表示直接输出全部的字符串;

    2)%ms(m>0)表示输出字符串的宽度定义为m,此时若m大于实际字符串的宽度,那么它会全部输出,并且按照右侧对齐,左侧采用空格补齐。若m小于实际字符串的宽度,则会正常全部输出。

    3)%-ms(m>0)表示输出字符串的宽度定义为m,此时若m大于实际字符串的宽度,那么它会全部输出,并且按照左侧对齐,右侧采用空格补齐。若m小于实际字符串的宽度,则会正常全部输出。

    4)%m.ns(m>n)表示的是输出字符串的宽度为m,但是按照右侧对齐的方式取其中n位,左侧不足之处采用空格补齐。

    5)%-m.ns(m>n)表示的是输出字符串的宽度为m,但是按照左侧对齐的方式取其中n位,右侧不足之处采用空格补齐。

    例如:输出字符串“Hello c world”程序段,以下采用五种方式输出:

    #include <stdio.h>

    int main ()

    {

       char ch[]="Hello c world";

       printf("%s ",ch);

       printf("%20s ",ch);

       printf("%-20s ",ch);

       printf("%8.7s ",ch);

       printf("%-8.7s ",ch);

       return 0;

    }

    其运行结果为:

    Hello c world

       Hello c world

    Hello c world

    Hello c

    Hello c

    ——2018.1.10

    第5章 C语言控制结构

    1、如果if语句里面的判断语句为判断赋值语句,那么其括号里面的等于应该为双等号,而不是单等号。

    2、C语言控制结构主要包括条件编译结构、循环结构、选择结构以及嵌套使用结构等几大类。                            

    3、在C语言的编程中,输入一个字符串类型的数据以及对其的输出,应该遵循以下的数据形式:

    Char name[]=“0”

    scanf(“%s”,&name)

    printf(“%s”,name)

    4、     对于do…while语句,不论其参数的是不true,其功能代码都会至少被执行一次,根据机构的这个特点,我们可以对某些功能进行试探性地执行,如果发现错误,则会立刻跳出循环即可。

    5、     对于for循环语句,其格式如下:

    For(a;b;c){}

    其中含有三个独立的参数a,b,c.参数a表示的是循环条件的初始值,参数b表示的是循环条件的最大限值,参数c表示的是循环条件的步进值。而循环功能代码则会严格按照用户指定的循环次数执行。

    例如:for(i=1;i<10;i+=2)

    ——2018.1.15

    6、     对于C语言的循环代码,用户如果需要终止的话,可以使用关键字continue以及break,来实现终止循环结构的功能。

    7、     关键字break一般都用在循环代码里,起作用是跳出去并且终止循环结构的运行。

    8、     对于continue终止循环,它只是会跳出本次循环,不再执行本次循环之后的代码,而不会跳出整个循环,它和break终止循环的功能有所不同。

    9、     对于C语言的选择结构,一般又被称为开关语句,一般采用switch…case的结构。

    10、   综合练习实例如下:

    (1)不断地输入一个学生的名字,然后输入他的分数,判断他的分数等级:

    实例代码如下:

    #include <stdio.h>

    int main()

    {

       int i,b;

       char ch;

       char score[]={0};

       for(i=0;i<10000000;i+=2){

       printf("输入学生的姓名为: ");

          scanf("%s",&ch);

          printf("该学生的分数为: ");

          scanf("%d",&score[i]);

       if(score[i]<60)

       {

          b=0;

       }

       else{

          if(score[i]<=80){

             b=1;

          }

          if(score[i]>80){

             b=2;

          }

       }

          switch(b){

             case 0:

                {

                   printf("第%d学生的成绩不及格 ",i);

                   break;

                }

             case 1:

                   {

                      printf("第%d该学生的成绩良好 ",i);  

                      break;     

                   }

             case 2:

                {

                         printf("第%d学生的成绩优秀 ",i);

                         break;

                      }                   

          }

       }

        return 0;}

    (2)输入一个人的姓名及其年龄,可以判断出他是成年人、未成年人还是青年人,另外,可以一直不停地输入和判断。

    实例代码如下:

    #include <stdio.h>

    int main()

    {

       int i;

       char age[]={0};

       char ch;

       for(i=0;i<1000000000000;i++) {

       printf("请输入该用户的姓名为:");

       scanf("%s",&ch) ;

       printf("该用户的年龄为:");

       scanf("%d",&age[i]) ;

       if (age[i]<18){

          printf("该用户为未成年人 ");

       }

       else{

          if(age[i]<30){

             printf("该用户为青年人 ");

          }

          else{

             printf("该用户为成年人 ");

          }

       }

    }

    return 0;

    }

    11、   在switch…case结构语句中,如果它是循环的一小部分,那么一般情况都应该在case语句最后加break来最终这个小的循环。

    12、   在C语言编程中,代码strcmp(sz2,“男”)”表示对于指定的两个字符串的比较,如果两者相同,则该函数返回0,如果两者不同,则该函数返回非零值。如果在程序中需要用到此函数,需要在程序上面添加头文件string.h.

    13、   用户如果将While循环中的条件设置为1,即while(1),它的意思是将循环无限地进行下去,一般很少这样设置,因为这样容易导致程序失控。

    ——2018.1.17

    第6章  函数

    1、C语言的函数包括系统函数及用户自定义函数两大类,对于函数,包括两大部分——参数及其返回值。其中,参数是用来向函数内部传递数据的,而函数的返回值是将函数处理后的结果传递到函数外部。通过函数的返回值,用户可以非常方便地获取到函数处理后的结果。

    2、函数的参数有形式参数和实际参数两大类,形式参数主要是用户在自定义函数时会经常用到。另外,在函数自定义的过程中,也可以只使用数据类型作为函数的形式参数,例如:

    Void add(int a,int b);

    Void add(int,int);

    上面两个式子是等效的。

    3、对于函数两个组成的作用,形象地说,函数返回值是函数内部与外部通信的桥梁,而函数参数是函数外部与内部通信的桥梁。

    4、在C语言函数的调用中,如果需要改变输入的值,那么都必须用到指针或者引用&,才可以实现功能,例如,对于交换两个输入数:

    自定义函数如下:

    void swap(int a,int b){

    int c;

    c=a;

     a=b;

     b=c;}

    若在后面输入两个数据时,需要调换输入数据的顺序,总结采用

    Swap(x,y)是实现不了的,应该采用指针或者引用如下:

    void swap(int *a,int *b){

    int c;

    c=*a;

     *a=*b;

     *b=c;}

    ……

    Scanf(“%d%d”,&x,&y);

    Swap(&x,&y)

    ……

    或者采用引用的形式:

    void swap(int &a,int &b){

    int c;

    c=a;

     a=b;

     b=c;}

    ……

    Scanf(“%d%d”,&x,&y);

    Swap(x,y)

    ……

    ---恢复内容结束---

  • 相关阅读:
    吴裕雄 python深度学习与实践(1)
    吴裕雄 python 机器学习-Logistic(1)
    吴裕雄 python 熵权法确定特征权重
    【Uva 1252】Twenty Questions
    【玲珑杯 round#18 B】图论你先敲完模板
    【Uva 10817】Headmaster's Headache
    【玲珑杯 round#18 A】计算几何你瞎暴力
    【Uva 12128】Perfect Service
    【UVa 12186】Another Crisis
    【Uva 10003】Cutting Sticks
  • 原文地址:https://www.cnblogs.com/Yanjy-OnlyOne/p/9716424.html
Copyright © 2020-2023  润新知