基础C语言 学习总结<2>

【第二章】

 

 

表达式

//*******运算符*********

/*

    [算术运算符]

1 + - * / %(模拟运算符,取余)

2 /(除号)

 

 

 **  [关系运算符]

1==,!=>,<,>=,<=

2,所有关系运算符,运算之后的结果只有真或者假两种情况。

3c语言中,0表示为假,一切非0数字表示真。

4 如果要便是两个变量处于两个数字之间(即1<n<10,那么必须用&&来链接,即n>1&&n<10;

 

 **  [位运算符,逻辑运算符]

   1,(1&&逻辑与(两个都为真才是真),

      2||逻辑或(一个是真就是真),两个条件符合一个就是真。

      3)!逻辑非

         4)按位与按位或左移<<   右移>>

   2,逻辑运算符的两边,只能是真或假

//   printf("%d\n",1&&2);  

 

 

 **  [赋值运算符]

     1 =+=-=*=/=,%=

     2赋值号“=”,把等号右边的数值赋值给左边。

       【注释】两个==才表示判断是否相等,一个=表示赋值运算

      3n+=5;相当于n=n+5,n-=5,两个式子具有相同的作用,但是n+=5的写法具有更好的性能,推荐使用这个方式;

   

 

 ** [单目运算符]

   1++--sizeof*(指针),取地址

   2++  自增运算符,将变量值+1 --自减运算符,将变量值-1

     》》》i++++i的异同

      1)相同点 ,不管是i++还是++i,在执行完代码以后,都会把变量+1

      2)不同点:i++是先用i的值去运算,再把i+1

           ++i是先把i+1,再用i+1以后的值去运算

      》》》eg

     int  i=5,j,k;

     j=i++ +2;//j=7i=6

     k=++i +2;//i=7k=9

 

     printf("%d,%d,%d",i,j,k);

 

    结果:779

 

    int i=5,j,k;

    j=i++ +2;

    k=++j +2;

    printf("%d %d %d",i,j,k);  

 

    结果为  6 8 10

 

   3sizeof:计算长度,返回值类型为long ,单位为字节。

 

    printf("%ld\n",sizeof(int));

     结果:4字节

 

 **  [多目运算符]

     1a>b?true:false,//  当?前面为真的时候执行:前面的代码,当?前面的为假的时候,执行:后面的代码。

     2,功能与if——else类似;

   

     printf("%d\n",1>2?1:0); 

  

   T:int a,b,c,d,e,f;

     printf("请输入四位数字:");

     scanf("%d",&e);

     a=e/1000;

     b=e%1000/100;

     c=e%1000%100/10;    

     d=e%1000%100%10/1;

     f=a+b+c+d;

     printf("%d\n",f);

     printf("%d的个位数字之和为:%d\n",e,f);

     printf("%d",f>20?50:0);

     (让你输入一个四位数,先对各位分解,然后求和,和 大于20  则有返利50,否则显示0)

 **   [if-else]

    if(判断条件){

      //如果条件为真,执行的代码

               }

    else{

    //如果条件为假,执行的代码

        }

   》》》》》

    if(f>20){

     printf("返利50\n");

            }

    else{

 printf("返利0\n");

        }

 

   //T: 输入两个数判断大小

    int x,y,z,w;

    printf("输入两个数:");

    scanf("%d %d",&x,&y);

    z=4*x;

    w=4*y;

    if(x>y)

          {

     printf("%d",z);

          }

    else

        {

     printf("%d",w);

        }

 

 

   判断IP地址是否合法

 //    int x,y,z,w;

 //    printf("输入一个ip地址:\n");

 //    scanf("%d.%d.%d.%d",&x,&y,&z,&w);

 //    

 //    if(x>0&&x<=255,y>=0&&y<=255,z>=0&&z<=255,w>=0&&w<=255)

 //    {printf("是合法的");}

 //    else{

 //        printf("不合法");} 

 

  

输入一个字符是大写  就转化成小写,是小写就转化成大写,非字母不转换

 

 char zimu;

 printf("请输入一个字符:");

 scanf("%c",&zimu);

 if (zimu>=97&&zimu<=122)

 {         

 printf("输出的字符为:%c",zimu-32);

 }

else if (zimu>=65&&zimu<=90)

 {            

 printf("输出的字符为:%c",zimu+32);

 }

 else

 {

 printf("输入的字符不转换");

 } 

 

 运算符实例  输入三种商品的价格,若有一个大于50,或者总额大于100,打折15%,否则折扣率0

 float shangpin1,shangpin2,shangpin3,zonge,fukuan;

 printf("请输入三种商品的价格:");

 scanf("%f %f %f",&shangpin1,&shangpin2,&shangpin3);

 zonge=shangpin1+shangpin2+shangpin3;

 if(shangpin1>50||shangpin2>50||shangpin3>50||zonge>100){

 fukuan=zonge*85/100;

 printf("用户应支付:%.2f",fukuan);

 }else

 {

 fukuan=zonge;

 printf("用户应支付:%.2f",fukuan);

 } 

 

   

十进制  二进制  八进制  

 

 

十进制  10   转换成2进制   除以2   取余数  10/2=0  5/2=1  2/2=0  1

   15>>  1111

  

 8421 码】

  0000

 二进制    转换成十进制

 

 

【运算符的优先级】()》》!,++--sizeof(单目运算符) 》》*%/ 》》 +- 》》 <,<=,>=,> 》》 ==,!=》》&&》》 || 》》 = +=(n+=m  n=n+m)-=/+,%=

 判断是否为闰年:条件   能被4整除但不能被100整除,除非能被400整除

 int nianfen;

 printf("输入一个年份:");

 scanf("%d",&nianfen);

 if(((nianfen/4==0)&&(nianfen/100!=0))&&(nianfen/400==0))

 {

 printf("输入的年份为闰年");}

 

 else{printf("输入的年份不是闰年");}

 

 第一种方法

 

 //int shi,fen,miao;

 //printf("输入一个时间:");

 //scanf("%d:%d:%d",&shi,&fen,&miao);

 //    if(shi==23&&fen==59&&miao==59){

 //        printf("下一秒的时间为%02d:%02d:%02d",00,00,00);

 //    }else if(fen==59&&miao==59){

 //        printf("下一秒的时间为%d:%02d:%02d",shi+1,00,00);

 //    }else if(  miao==59  ){

 //        printf("下一秒的时间为%d:%d:%02d",shi,fen+1,00);

 //    }else{

 //        printf("下一秒的时间为%d:%d:%d",shi,fen,miao+1);

 //    }

 

 

 第二种方法

 

 int shi,fen,miao;

 printf("输入一个时间:");

 scanf("%d:%d:%d",&shi,&fen,&miao);

 if(  miao==59&&fen!=59&&shi!=23){

 printf("下一秒的时间为%d:%d:%02d",shi,fen+1,00); }

 else if(miao==59&&fen==59&&shi!=23){

 printf("下一秒的时间为%d:%02d:%02d",shi+1,00,00);}

 else if(miao==59&&fen==59&&shi==23){

 printf("下一秒的时间为%02d:%02d:%02d",00,00,00);}

 else{

 printf("下一秒的时间为%d:%d:%d",shi,fen,miao+1);

 }

    

 

 int shi,fen,miao;

 print("输入一个时间(xx:xx:xx:");

 scanf("%d:%d:%d",&shi,&fen,&miao);

 if(shi<0||shi>23||fen>59||fen<0||miao<0||miao>59){

 printf("请您输入正确的时间");

 }else if(miao<59){

 printf("下一秒输出的时间为%d:%d:%d",shi,fen,miao+1);

 }else if(fen<59){

 printf("下一秒输出的时间为%d:%d:%d",shi,fen+1.0);

 }else if(shi<23){

 printf("下一秒输出的时间为%d%d%d"shi+1,0,0);

 else{

 printf("下一秒输出的时间为000000");

 }

 

 

   

 

 

 

posted @ 2016-04-21 14:32  梦之寒涯  阅读(295)  评论(0编辑  收藏  举报