C语言题目,有图,基础比较差,希望过程能详细一些!

18.下面程序的运行结果是()。#include<stdio.h>voidfun(intx,inty,double*cp,double*dp){*op=x/y;*dp=(... 18.下面程序的运行结果是( ) 。
# include <stdio. h>
void fun(int x, int y, double *cp, double *dp)
{*op=x/y; *dp=(double)x/y;}
void main( )
{
inta=1,b=2;
double c=0,d=0;
fun(a,b, &c,&d);
printf("%.1lf# # %.1lf\n",c,d);
}
A.0.0# #0.5
B.5# #0
C.0# #5
D.0.5# #0.0
展开
 我来答
microroom
科技发烧友

2021-02-20 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:7118
采纳率:83%
帮助的人:1547万
展开全部
选A。

fun(a,b,&c,&d);调用时,x=1,y=2,cp指向c,dp指向d。

*cp就是cp指向的变量c,*cp=c=1/2=0,这是因为被除数和除数都是整数,发生的是整除,而*op应该是印刷错误。

*dp就是dp指向的变量d,*dp=d=(double)1/2=0.5,这是因为被除数转换成了double类型,进行的是小数除法。

而%.1lf是以保留1位小数的格式输出一个double类型的变量。所以,c输出为0.0,d输出为0.5,而# #原样输出。

所以,选A。
追问
兄弟那么晚答,谢谢啦
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式