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