zoukankan      html  css  js  c++  java
  • C语言学习代码〈二〉

     1 //====================================================
     2 // if练习
     3 //====================================================
     4 
     5 #include<stdio.h>
     6 int main()
     7 {
     8     int num = 0;
     9     printf("请输入一个整数:");
    10     scanf("%d",&num);
    11     if(num > 0)
    12     {
    13         printf("这是一个非负数\n");
    14     }else if(num < 0)
    15     {
    16         printf("这是一个负数\n");
    17     }else if(0==num)//尽量把常量写在==前这样如果写错成=的时候编译器会报错
    18     {
    19         printf("这个数是零");
    20     }
    21     return 0;
    22 }
    //==============================================================
    //        操作符练习
    //===============================
    
    #include<stdio.h>
    int main()
    {
        int num=0,num1=0;
        num =3,7;//输出结果是3
        printf("num是%d\n",num);
        num =(3,7);//输出结果是7
        printf("num是%d\n",num);
        num++;       
        printf("num是%d\n",num);
        num1=++num;
        printf("num是%d,num1是%d\n",num,num1);
        num1=num++;
        printf("num是%d,num1是%d\n",num,num1);
        num1=num++ + ++num;//结果有时候不一定,错误写法。
        printf("num是%d,num1是%d\n",num,num1);
        return 0;
     }
    //====================================
    //地址操作符
    //===================================
    #include<stdio.h>
    int main()
    {
        int num = 0;
        printf("%p\n",&num);
        *(&num)=3;
        printf("num是%d\n",num);
        return 0;
    }
    //======================================================
    //           逻辑操作符练习
    //======================================================
    //
    #include<stdio.h>
    int main()
    {
        int num=0;
        printf("3==5是%d\n",3==5);//输出0代表不等于。
        printf("3 !=5是%d\n",3!=5);//输出1代表不等于成立
        printf("3 <5是%d\n",3<5);//输出0代表不成立
        printf("3 >5是%d\n",3>5);//输出1代表成立
    
        printf("3 <=5是%d\n",3<=5);//输出1代表成立
        printf("3 >=5是%d\n",3>=5);//输出1代表不成立
        printf("3<7<2是%d\n",3<7<2);//计算3<7=1,在计算1<2=1
    
        3 > 5 && ++num;
        printf("num是%d\n",num);//打印现来是0因为与运算的短路特性,只要有一个结果为假就不在往后执行。同理或运算也有短路特性,只要表达式中有一个为真就不在往后执行。
        printf("!6是%d\n",!6);
        return 0;
    }
    //==================================================
    //强制类型转换练习
    //================================================
    
    #include<stdio.h>
    int main()
    {    
        int num=300;
        (unsigned char)num;
        printf("%d\n",(unsigned char)num);//强制转换时丢失掉了数据
        printf("%d\n",num);
        return 0;
    }
    //====================================================
    //三目操作符练习
    //===================================================
    
    #include<stdio.h>
    int main()
    {
        int num=-3;
        num = num>0 ? num : 0-num;//取绝对值
        printf("%d\n",num);
        return 0;
    }
    //====================================================
    //三目操作符练习
    //===================================================
    
    #include<stdio.h>
    int main()
    {
        int num=-3;
        num = num>0 ? num : 0-num;//取绝对值
        printf("%d\n",num);
        return 0;
    }
    //================================
    //移位操作
    //=================================
    #include<stdio.h>
    int main()
    {
       printf("0xabcdef89<<2是0x%x\n",0xabcdef89<<2);
       printf("0xabcdef89>>2是0x%x\n",0xabcdef89>>2);
       printf("(int)0xabcdef89>>2是0x%x\n",(int)0xabcdef89>>2);//对于有符号的数据类型右移左边补原来的符号位。
       return 0;
    }
    //===============================================
    //隐式类型转换练习
    //===============================================
    
    #include<stdio.h>
    int main()
    {
        int num = -10;
        unsigned int num1 = 3;
        num = (num + num1) > 0 ? 1: -1;//隐式转换运算时,会把有符号的转成无符号的在进行运算,所以两个正数相加肯定是大于零的,并非我们所想的结果。
        printf("计算的结果是:%d\n",num);
        printf("大小是%d\n",sizeof(3 < 5 ? 1 : 0.9));//运算中进行了隐式转换,所以sizeof取到的大小是最大数据类型的大小。
        return 0;
    }
    // 要求用户输一个整数,如果用户输的整数是大于等于100的,就把他减去100的差
    //     算出来。如果小于一百就用一百减他。也就是求用户输的数与100的距离,而且>    这个距离必须是正数。
    //
    #include<stdio.h>
    int main()
    {
        int num;
        printf("请输入一个整数:");
        scanf("%d",&num);
        num=100-num;
        num=num>=0 ? num : 0-num;
        printf("结果是%d\n: ",num);
        return 0;
    }
    //==================================================
    //判断一个数是奇数还是偶数,且是否能被5整除!
    //日期:2013-5-7               by:ant
    //==================================================
    #include<stdio.h>
    int main()
    {
        int num;
        printf("请输入一个整数:");
        scanf("%d",&num);
        if(num % 2 != 0)
        {
            if(num%5==0)
            {
                printf("这是一个奇数,且能被5整除");
            }else
            {
                printf("这是一个奇数,但不能被5整除");
            }        
        }else
        {
            if(num%5==0)
            {
                printf("这是一个偶数,且能被5整除");
            }else
            {
                printf("这是一个偶数,但不能被5整除");
            }         
        }
    }
    //===============================================================
    //判数是否为润年:判断条件:被四整除,但不能被100整除的就是润年。
    //能被4整除,也能被100整除,且不能被400整除,就不是润年。
    //日期:2013-5-7                          by:ant
    //!(year % 400) || (!(year % 4) && (year % 100)
    //==============================================================
    
    #include<stdio.h>
    int main()
    {
        int year;
        printf("请输入一个年份");
        scanf("%d",&year);
        if(0==year%4)
        {
            if(0!=year%100)
            {
                printf("这是一个润年");
            }
            if(0==year%100 && 0==year%4 && 0==year%400)
            {
                printf("这是一个润年");
            }
        }
    
    }
  • 相关阅读:
    vmware磁盘空间扩展
    Winrar发现损坏的压缩文件头
    java ASM动态生成类
    使用ffmpeg将任意格式视频转MP4格式
    mongodb导入csv结构化数据
    Vmware黑屏解决方法
    mysql命令行导入结构化数据
    mysql导入慢解决方法
    CategoryPanelGroup动态生成节点
    delphi XE7 判断手机返回键
  • 原文地址:https://www.cnblogs.com/fanghui/p/3067931.html
Copyright © 2011-2022 走看看