读书共享 Primer Plus C-part 5

第五章 运算符、表达式和语句

  1. 关于+- 的一元运算符和二元运算符的区别
    a++:a先创建自身的一个副本,然后a自增1,最后返回副本的值
a+=1: 事实上相当于++a a=a+1: 虽然有点雷同于a+=1,但不同的是此时右值的a和1做相加操作,形成一个副本然后赋值给a,所以有额外操作 ++a:将a自增1并返回a 鉴于a++和++a的差别,C++Primer建议用++a作为for循环的递增量

        2.关于除法四舍五入

       

#include<stdio.h>
#include<string.h>
int main()
{

  int a = 3;
  int b = 4;
  int c = (int)(a/1.0/b+0.5);
  printf("%d \n",c);

  return 0;


}

   /1.0 在保持值不动的情况下。使得结果是浮点数,同时进行+0.5保持四舍五入效果。

  3. 关于运算优先级

     关于运算符的结合从右到左(暂时不清楚可能造成什么误解)

 

 

 

第六章 c控制语句:循环

      1.何为真何为假

        假只有一个0,其他全部是真。

     

#include<stdio.h>


int main()
{
  while(-1.01)
{
  printf("this is true\n");

}



}

    

2.关于昨天遗留问题--大字符串如何输入

    

#include<stdio.h>


int main()
{

  char ch = getchar();
  while(ch != '\n')
{
   putchar(ch);
   ch = getchar() ;

}
putchar(ch);
return 0;
}

读入字符串

#include<stdio.h>


int main()
{

  char ch = getchar();
  char str[1024] = {0};
  int i = 0;
  while(ch != '\n')
{
   str[i++]=ch;
  // putchar(ch);
   ch = getchar() ;

}
str[i]=ch;
putchar(ch);
printf("*%s \n",str);
return 0;
}

 

第七章 C控制语句:分支和跳转

  •      ctype.h

        isalpha() 是否是字幕  isalnum() 是否是数字或者数字

        isdigit()是否是纯数字  isblank()空格

        islower() isupper()大小写 

        tolower() toupper() 大小写互转--  如果不是对应的小写不转最终输出的是全小写或者全大写

  •     switch的存在意义 

           1.代码简洁 2.速度快

第八章 字符串输入/输出确认

 

 

 文件的读取跟显示

#include<stdio.h>

int main()
{

  char ch;
  FILE * fp;
  fp = fopen("./while.c","r");
  if(NULL == fp)
  {

   printf(" open fail\n");

  }
  while((ch=getc(fp))!= EOF)
          {
            putchar(ch);
          }

  fclose(fp);
  return 0;

}

  

    

 

posted @ 2017-06-29 17:28  刘传武  阅读(177)  评论(0编辑  收藏  举报