选 A , y 定义的是 int 类型, x虽然是 float 类型,并且3 * x - 1 的结果也是 float类型,但 因为 y 是 int类型,最终结果会 舍弃小数位赋值给 y,精度丢失。
int arr[3] = {1,2,3};
int*p = arr;
for(;p!=arr+3;p++){
printf("%d\n",*p);
}
return 0;
}
1、C语言里,定义函数一般形式如:函数类型 函数名(参数类型1 参数名1, 参数类型2 参数名2, …, 参数类型n 参数名n) {...} 。C语言允许函数值类型缺省定义,此时该函数值隐含的类型是int,所以题目里fun() 函数类型就是隐含的 int 类型。
2、C语言函数返回值是由定义函数时所定义的函数类型决定的。也就是说,函数是什么类型,返回值就是什么类型。所以,题目里函数隐含类型为 int ,那么return语句的表达式能转换成函数定义类型,则返回函数定义类型,否则将出错。
3、以上两条,所以答案选 A.