永发信息网

求C语言中一题详解

答案:6  悬赏:50  手机版
解决时间 2021-01-15 13:04
  • 提问者网友:蓝琪梦莎
  • 2021-01-15 04:17
求C语言中一题详解
最佳答案
  • 五星知识达人网友:夜风逐马
  • 2021-01-15 05:40
答案为B
无论你返回什么类型  主调中赋值为什么类型
在你不定义返回类型时 C/C++编译器都会默认为int
测试程序如下
#include 
test()
{
float a =  1;
return a;

}

int main()
{
double k = test();
printf("k = %lf
", k);
printf("return : %%d=%d %%f:%f
", test(), test());
}打印结果为
k = 1.000000
return : %d=1 %f:-0.000000


过程分析
函数test的默认返回值int 所以在返回float型时 实际上做了一个强制转换 即return (int) a;
所以test 的实际返回值为int型 这一点从

printf("return : %%d=%d %%f:%f
", test(), test());打印上可以看出来按照%d打印结果正确 按照%f打印错误
而double k = test();实际上是把int型再次做了一次强制转换 即等同于
double k = (double)test();
所以 应该是B才对

全部回答
  • 1楼网友:毛毛
  • 2021-01-15 10:16
选a........
  • 2楼网友:行雁书
  • 2021-01-15 09:42
函 数定义中没有函数类型说明默认为int,返回值为float类型,两者不一致!应该选D吧!
  • 3楼网友:何以畏孤独
  • 2021-01-15 08:22
默认是int,但是你在外面接的是double,会将返回值转换为double追问主调函数的类型会影响到被调函数的返回值吗追答相当于被调函数返回了一个int。
但是你在外面调用的时候,对这个int又作了类型转换,改变的不是被调函数内部的返回值。函数返回的是不受外部调用限制的~追问再麻烦你一题 36.C语言规定,函数返回值的类型 是()。 A)return语句中的表达式类型所 决定的 B)调用该函数时 的主调 | 路桥 问题补充:C)调用该函数时系统临时决定的 D )数组元素的个数再麻烦你一题 36.C语言规定,函数返回值的类型 是()。 A)return语句中的表达式类型所 决定的 B)调用该函数时 的主调 C)调用该函数时系统临时决定的 D )数组元素的个数再麻烦你一题 36.C语言规定,函数返回值的类型 是()。 A)return语句中的表达式类型所 决定的 B)调用该函数时 的主调 C)调用该函数时系统临时决定的 D )数组元素的个数
  • 4楼网友:千杯敬自由
  • 2021-01-15 07:23
选A,被调用函数的类型与返回值的类型相同,就是return语句中的表达式类型
  • 5楼网友:妄饮晩冬酒
  • 2021-01-15 07:10
B,默认int
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯