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