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("这是一个润年");
        }
    }

}

 

posted @ 2013-05-08 22:20  前方辉煌  阅读(223)  评论(0编辑  收藏  举报