美文网首页
C基础第一天、

C基础第一天、

作者: 横冲直撞摔破了脸 | 来源:发表于2016-11-15 20:47 被阅读0次

    目录:

    简单的操作指令:
    (printf,scanf, \t, \n, getchar, putchar, ASLLCA码)
    简单的运算符:
    (+,-,*,/, %,++,--,)
    简单的位运算符:
    (|,$,~,^,<<,>>)
    赋值运算符:
    (=、+=、-=、/=、%=、|=)
    关系运算符:
    (>, <, =, !=, ==)
    逻辑运算符
    (&&,||,!)
    简单的流程控制,初试 if 断语句,

    正文

    简单计算常识。
    include <stdio.h>
    int main()
    /*
    1.常量:不变的量
    整数常量:1,2,3,4,5
    字符常量:'a','h'
    小数常量:1.2,1.0
    字符串常量:"c" 它代表是两个字符,还有一个字符是'\0'
    地址常量:0xffff ,每一个字节(存储单元)所对应的编号

     计算机内存组成的最小单位是字节,1Byte=8bit
     
     常量特性:
     1>不变
     2>常量不可以作为左值(左值:赋值运算符左边的值)
    
     2.标识符的命名规范
     1>硬性规范
     (1)只能由字母,下划线,数字构成
     (2)不能由数字开头
     (3)不能与C语言关键字相同
     
     2>建议规范
     (1)不能用拼音,多查字典
     (2)使用驼峰命名法,如numOfStudent
     (3)见名知义
    
     3.变量:可以改变的量
     整型变量:(整数变量)
     字符变量:
     实型变量:(小数变量)
    
     4.数据类型
     int:(interger)整数类型
     char:(character)字符类类型
     float:单精度浮点类型
     double:双精度浮点类型
    
     5.变量定义
     数据类型  变量名;
     
     注意点:
     1>变量在同一个代码块不能重名
     2>代码块是指:在同一个{}的区域内部
     3>变量定义出来可以不赋初值
    
     变量的定义
     int a;//代表将来这个a是一个存储整数常量的变量
     /变量的初始化
    int b=4.8;
    char ch;
    char ch1='c';
    float f1;
    double f2=8.9;
    
    printf:

    %d:输出整数类型的数据
    %f:输出浮点数
    %c:字符类型
    %p:输出变量在内存中所占的地址
    %md:m是数字时表示空出几个符号位。
    %mc:
    %ld : ld 表示长整型。

    float和double

    如果是float 类型的数据,精确到7位,有些机器7~8位
    如果是double类型的精确到16位,有些机器15~16位

    转义字符:
    \n:换行字符
    \t:相当于一个tab键
    char ch=‘c’ ;//字符类型实际上就是一个整数类型,
    
    

    小端法:低位上的数存储在地址小的端口
    大端法:低位上的数存储在地址大的端口
    0x01:小端存储
    系统机器的字节区------》网络上的字节序-------》系统机器的字节序

    float a=123456789.0;
    printf("a=%f\n",a);
    
    double b=123456789012345678.0;
    printf("b=%f\n",b);
    //float 和 double 类型的有效小数位只有6位,float整数位可以保存8位,double整数位可以保存17位。
    
    printf("%%%d\n",78);//打印的结果显示%78
    
    char ch1=‘\0’ ;//空字符
    char ch2='   ' ;
    char ch3='0' ;
    char ch4=‘A’ ;
    cahr ch5='5' ;
    //很重要需要熟记!
    printf("ch1=%d\n ch2=%d\n ch3=%d\n ch4=%d\n ch5=%d\n",ch1,ch2,ch3,ch4,ch5);
    
    ASIICA码表:
    ‘\0’ : 0
    ' 空格' :  32
    ' 0 ' :48
    ' A ' :65
    ' a ' :97
    char ch=‘c’ ;//字符类型实际上就是一个整数类型
    
    定义多个变量:
    char ch1='c' ,cha2='  ' ,ch3=,ch4=等等。
    
    scanf的基本用法:

    scanf("%d",&a);//&a:是取某个变量的地址,scanf的用法就是将输入的值,通过地址找到地址所对应的存储单元,然后将值扔到存储单元里
    可以同时输入多个变量
    int a,b ;
    scanf("%d%d",&a,&b)

    注意点:
    1>不要再scanf后面加\n
    2>不要在scanf里面做太多的动作
    3>scanf ""里面的类型,必须要跟后面变量的类型一致

    int a;
    scanf("%d",&a);//&a:是取某个变量的地址,scanf的用法就是将输入的值,通过地址找到地址所对应的存储单元,然后将值扔到存储单元里
    printf(“a=%d\n”,a);

    getchar:

    getchar():从输入缓存流里面取出一个字符
    //可以用来分割字符串前面的部分

    putchar:

    putchar(): c从输出缓存流里面拿一个字符输出到控制台

    putchar 里面可以放置:字符变量,字符常量,整行变量

    怎么拿出输入缓存流里面的换行符?(吸收回车残留)

    1>getchar();
    2>
    char ch;
    scanf ("%c",&ch);
    3>getchar(stdion);//从输入缓存流里面拿出一个字符,stdin:标准输入流
    //写的不完全,以后有待补全。

    运算符:

    计算机是以二进制存储数据,以数据的补码形式存储,以数据的原码形式输出。
    在有符号当中(char): 字符变量-128的二进制就是1000 0000
    最小值~最大值: -128~127
    在无符号当中(unsigned char):字符变量
    最小值最大值:0255
    计算机会进行相同类型的计算,如果类型不同,计算机内部会进行一个隐形的转换。char ------》int ------》float -------》

    强制类型的转换:(数据类型)变量或常量

    注意点:强制类型转换不会改变 变量原本的数据类型

    算术运算符:+ - * / % ++ --
    int a=1,b=3;
    int c=a/b;//+ - * / % 都可以使用
    float c=a/b;
    printf ("c=%f\n",c);

    %:左右两边的数据类型必须是整数类型
    ++:前缀++ //等号左边数先自加 再赋给等号左边 后缀++//等号左边的数先赋给等号左边 自加
    原码 反码

    原码 :没什么好说的 //
    反码:整数的反码与原码相同 负数的反码最高位符号位不变,后面依次取反,0变1,1变0.//
    补码:在反码的基础上 加1.//

    位运算符:

    位或运算符 |: (只要有1就加1)

    案例:
    int a=7;
    int b=8;
    int c=a|b;
    printf ("%d\n",c);

    $ : 相同位的两个数字都为1,则为1;若有一个不为1,则为0。
    ~:按位取反
    ^ : 只要是不同就为1,
    << : 左移二进制数 以0补全

    ,>> : 有移二进制数 以符号位补全

    3赋值运算符:

    =、+=、-=、*=、/=、%=、|=、

    4>逗号
    5> ( )
    6> (type)强制类型转换

    案例:float f=5.75;
    printf ("(int)f=%d,f=%f\n",(int)f,f);
    //结果显示(int)f=5,f=5.75
    (int)(x+y) 把x+y的结果强制转化为整型。

    7> sizeof (数据类型/变量名)

    用法:sizeof

    8 >关系运算符

    < >= <= == !=
    关系运算符,所得的结果是一个逻辑值,在计算机当中,逻辑值分为0和1,如果这事实是真的,那么逻辑结果就是1,否则为0.

    9>逻辑运算符

    &&:并且 事件1并且事件2成立,逻辑才为1
    ||:或 事件1或事件2一个成立,逻辑就成立为1
     !:非 事件不成立的时候,整个运算结果为1
    注意点:事件1&&事件2,当事件1不成立时,就不执行事件2,因为逻辑结果总为0
    注意点:事件1||事件2,当事件1成立时,就没有必要执行事件2,因为逻辑成立结果总为1.

    10>取变量地址运算符&:
    int a;
    scanf("%d",&a);
    
    11.三部运算符:条件?语句1:语句2;

    功能分析:如果条件成立,就执行语句1否则就执行语句2。
    案例一:输入两个整数变量,求其最大值,并输出。
    案例二:
    案例三:输入三个整数,求其最大值,用三部运算符。
    案例四:判断输入的字符,是否是大写字母?如果是大写字母转换成小写字母,并输出。

    11>三大流程控制:

    1 ) 顺序流程控制
    2)选择流程控制
    ,,在计算机当中,如果指定逻辑值,如果为0,才会为假 其他都为真,非0即1
    语法例子:
    ···if(条件)

    ,,,语句1;
    }
    else if(条件)
    {
    ,,,语句2;
    }
    else{
    ,,,语句3;
    }

    ,,条件成立 就执行{ }里面的语句
    有if 就有else 否则 、和else if
    注意点:
    (1)else可有可无,如果有就必须在最下面。
    (2)if 语句只能执行一条

    练习:输入两个整数变量,交换两个变量的值,并打印出来。
    自己试一试!

       输入两个整数变量,交换俩个变量的值,并打印出来
       int a,b;
       printf("输入两个数:");
       scanf("%d%d",&a,&b);
       printf("交换之前a=%d,b=%d\n",a,b);
       int temp=a;
       a=b;
       b=temp;
       printf("交换之后a=%d,b=%d\n",a,b);
       
       2>输入两个整数变量,求其最大值,并输出
       
       3>发钱了,自己输入工资,如果发的钱<=1000,拿到的实际的钱就是所发的钱;如果发的钱>1000,拿到的钱超过1000的部分交%5的税钱,问实际工资拿多少?用三目运算符完成
       
       printf("💰:");
       float money;
       scanf("%f",&money);
       float salary;
       salary=money<=1000?money:(money-(money-1000)*0.05);
       printf("salary=%f\n",salary);
       
       4>求输入的三个整数的最大值,用三目运算符
       printf("请输入三个数:");
       int a,b,c;
       scanf("%d%d%d",&a,&b,&c);
       int max=a>b?(a>c?a:c):(b>c?b:c);
       printf("max=%d\n",max);
       
       
       5>判断输入的字符,是否是大写字母,如果是大写字母转换成小写字母,并输出
       printf("请输入一个字母:");
       char ch;
       ch=getchar();
       if(ch>=65&&ch<=65+25)//if(ch>='A'&&ch<='Z')
       {
           printf("%c\n",ch+32); //ch+'a'-'A'
       }
       
       6>选优秀演员,满分100,自己打一个评分,等级要求:0<xx<60不及格,60<=xx<85 及格 ;85<=xx<90 良好,90<=xx<=100 优秀演员,输出最后的等级
       printf("score:");
       int score;
       scanf("%d",&score);
       if(score>=90&&score<=100)
       {
           printf("优\n");
       }
       else if (score>=85)
       {
           printf("良\n");
       }
       else if (score>=60)
       {
           printf("及格\n");
       }
       else if (score>=0)
       {
           printf("不及格\n");
       }
       ```
    
    
    
    (*)最近开始整理,一遍整理一遍补足。有错误,不对的希望可以指出来。

    相关文章

      网友评论

          本文标题: C基础第一天、

          本文链接:https://www.haomeiwen.com/subject/znhhpttx.html