若有,正确定义的语句:double x=5.16894语句printf(%f/n,(int)(x *1000+0.5)/(double)1000);输出的结果为什么是5.16900,而不是5.169440?

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/31 03:05:18
若有,正确定义的语句:doublex=5.16894语句printf(%f/n,(int)(x*1000+0.5)/(double)1000);输出的结果为什么是5.16900,而不是5.169440

若有,正确定义的语句:double x=5.16894语句printf(%f/n,(int)(x *1000+0.5)/(double)1000);输出的结果为什么是5.16900,而不是5.169440?
若有,正确定义的语句:double x=5.16894语句printf(%f/n,(int)(x *1000+0.5)/(double)1000);
输出的结果为什么是5.16900,而不是5.169440?

若有,正确定义的语句:double x=5.16894语句printf(%f/n,(int)(x *1000+0.5)/(double)1000);输出的结果为什么是5.16900,而不是5.169440?
这是小数第4位四舍五入算法.
(x *1000+0.5)-- x 移动3 位小数,加0.5,也就是小数第4位加5,若这位大于等于5,则进1到个位.
5.16894 * 1000 -〉5168.94
+0.5 -> 5169.44
接下来:
(int)(x *1000+0.5)取整变 5169
5169 /(double)1000)-〉5.169
所以 printf("%f\n",5.169) 结果 是5.16900

若有,正确定义的语句:double x=5.16894语句printf(%f/n,(int)(x *1000+0.5)/(double)1000);输出的结果为什么是5.16900,而不是5.169440? 若有定义语句:double x,y,*px,*py,执行了px=&x,py=&y;之后,正确的输入语句是若有定义语句:double x,y,*px,*py,执行了px=&x,py=&y;之后,正确的输入语句是B)scanf(“%f%f”,&x,&y);C)scanf(“%lf%le”,px,py);%f (15) 有以下定义语句 double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是 A) a=(15) 有以下定义语句 double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是A) 有下列函数定义:int fun (double a,double b) {return a*b;}有下列函数定义:int fun (double a,double b){return a*b;}若有下列选项中所用变量都已经正确定义并赋值,错误的函数调用是( )z=fun(fun(x,y)x,y) 求详 (26) 若有以下定义和语句:(26) 若有以下定义和语句:double r=99,*p=&r; *p=r; 则以下正确的叙述是 A) 以下两处的*p含义相同,都说明给指针变量p赋值 B) 在double r=99,*p=&r;中,把r的地址赋值给了p 若有定义语句:double a,*p=&a; 以下叙述错误的是A)定义语句:*号是一个简址运算符B)定义语句:*号是一个说明符C)定义语句中的p只能存放double类型变量的地址D) 定义语句中,*p=&a把变量a的地址作 大一基础C语言问题有以下定义语句double a,b; intw; long c;若各变量已正确赋值,则下列选项中正确的表达式是______.D、w=a=b; 错误若变量a已正确定义,合法的语句是______.C、a=a++=5错误若变量已正确 以下选项中正确的定义语句是A.double a;b; B.double a=b=7以下选项中正确的定义语句是A.double a;b; B.double a=b=7 C.double a=7,b=7; D.double,a,b; c++习题 10.下列函数定义中正确的是( ).请解析一下每个选项.还有正确答案A.double fun(double &x,double &y) B.double fun(double &x,double &y){ {double z; return *x/*y;z=x/y; }return z;}C.double fun(double *x,double *y) D.double 以下函数定义中正确的是 ()以下函数定义中正确的是 () .A.double fun(double x,double y){ } B.double fun(double x;double y){ }C.double fun(double x,double y);{ } D.double fun(double x,y){ }A.double fun(double x,double y){ } B 主函数中有语句 double a[15],k; k=fun(a); ...在主函数前定义的fun函数首部的种类double fun(double *a)为什么是对的?为什么double fun(double a)是错的? (一道选择题)有关指针的定义和概念若有以下定义和语句double r=99,*p=&r;*p=r;则以下正确的叙述是________.A)以上两处的*p含义相同,都说明给指针变量p赋值B)在“double r=99,*p=&r; ”中,把r的地 若有以下函数首部int fun(double x[10],int *n)则下面针对此函数的函数声明语句中正确的是 .A)int fun(double x,int *n); B)int fun(double,int);C)int fun(double *x,int n); D)int fun(double *,int*);如果答案没错的话 若有以下函数首部 int fun(double x[10],int *n) 则下面针对此函数的函数声明语句中正确的是()A int fun(double x,int*n);B int fun(double ,int );C int fun(double*x,int n);D int fun(double * ,int *);答案是C为什么不是D, 若定义x为double型变量,则能正确输入x值的语句是.A)scanf(“%f”,x); B)scanf(“%f”,&x); C)scanf(D)scanf(“%5.1f”,&x); C语言 若有定义语句int a,b;double x;则下列选项中没有错误的是?选C?若有定义语句int a,b;double x;则下列选项中没有错误的是?选C?switch(expr1)中,expr1只能是byte short int char类型.其他的类型不行A)swit 若有定义语句:int a=10;double b=3.14;,则表达式‘A’+a+b值得类型是double 为什么呢 分析以下函数的定义形式是否正确,若有错误请说明理由1.double fun(int x,int y)2.dluble fun(int x; int y)3.double fun(int x,y);