代码改变世界

2017-2018-1 20179226 《从问题到程序》第2周学习总结

2017-12-02 09:08  20179226任逸飞  阅读(257)  评论(1编辑  收藏  举报

教材学习知识点总结

1.基本字符包括:数字、大小写拉丁字母、可打印字符还有一些特殊字符。
2.一个合法标识符是由字母和数字字符构成的一个连续序列,要求第一个字符必须是字母,序列中不能有空白字符。下划线字符“_”也当作字母看待。
3.字符是一对单引号括起的单个字符。字符串书写形式是双引号括起的一系列字符。
4.写程序时特别注意表达式的结果类型,格式串中的转换描述必须与之对应,否则就是错误。
5.出现下溢时通常把结果归为0。

教材学习中的问题和解决过程

  • 问题1:练习中“——”算合法的标识符么?
  • 问题1解决方案:查了资料发现并不是“——”而是多个下划线连起来的形式“____”,是合法的标识符。
  • 问题2:如果程序里要用标准库里的数学函数,程序前面要另写一行:#include <math.h>什么才是标准库里的数学函数?什么时候需要调用这个头文件?
  • 问题2解决方案:数学函数库,一些数学计算的公式的具体实现是放在math.h里,具体有:
    1、 三角函数
    double sin(double);正弦
    double cos(double);余弦
    double tan(double);正切
    2 、反三角函数
    double asin (double); 结果介于[-PI/2,PI/2]
    double acos (double); 结果介于[0,PI]
    double atan (double); 反正切(主值),结果介于[-PI/2,PI/2]
    double atan2 (double,double); 反正切(整圆值),结果介于[-PI,PI]
    3 、双曲三角函数
    double sinh (double);
    double cosh (double);
    double tanh (double);
    4 、指数与对数
    double frexp(double value,int exp);这是一个将value值拆分成小数部分f和(以2为底的)指数部分exp,并返回小数部分f,即f2^exp。其中f取值在0.5~1.0范围或者0。
    double ldexp(double x,int exp);这个函数刚好跟上面那个frexp函数功能相反,它的返回值是x2^exp
    double modf(double value,double iptr);拆分value值,返回它的小数部分,iptr指向整数部分。
    double log (double); 以e为底的对数
    double log10 (double);以10为底的对数
    double pow(double x,double y);计算x的y次幂
    float powf(float x,float y); 功能与pow一致,只是输入与输出皆为单精度浮点数
    double exp (double);求取自然数e的幂
    double sqrt (double);开平方根
    5 、取整
    double ceil (double); 取上整,返回不比x小的最小整数
    double floor (double); 取下整,返回不比x大的最大整数,即高斯函数[x]
    6 、绝对值
    int abs(int i); 求整型的绝对值
    double fabs (double);求实型的绝对值
    double cabs(struct complex znum);求复数的绝对值
    7 、标准化浮点数
    double frexp (double f,int p); 标准化浮点数,f = x 2^p,已知f求x,p (x介于[0.5,1])
    double ldexp (double x,int p); 与frexp相反,已知x,p求f
    8 、取整与取余
    double modf (double,double*); 将参数的整数部分通过指针回传,返回小数部分
    double fmod (double,double); 返回两参数相除的余数
    9 、其他
    double hypot(double x,double y);已知直角三角形两个直角边长度,求斜边长度
    double ldexp(double x,int exponent);计算x(2的exponent次幂)
    double poly(double x,int degree,double coeffs []);计算多项式
    int matherr(struct exception e);数学错误计算处理程序
    source: 《C & C++ Code Capsules》