作业帮 > 综合 > 作业

提问几个C语言的问题,关于函数概念的

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/13 16:43:15
提问几个C语言的问题,关于函数概念的
第一个:
int fun(int *p)
{
return *p;
}
fun函数返回值是什么?答案是一个整数,顺带问问*p代表啥,我以为*p是字符串首地址
第二个:
int fun1(double a)
{
return a*=a;
}
int fun2(double x,double y)
{
double a=0,b=0;
a=fun1(x);b=fun1(y);return(int)(a+b);
}
main()
{
double w;
w=fun2(1.1,2.0);
}
提问执行后变量w的值是多少?初始值a,b均为0,无论乘什么都不应该是0嘛?答案为什么是5.
第三个:
void fun(char ch,float x){...}
如果调用这个函数,在声明的时候fun(32,32);正确么?fun("abchina",32.0)这正确么?忘牛人答疑解惑,我实在有些困惑,书看了半天有些东西没说就没看明白,
提问几个C语言的问题,关于函数概念的
1、返回值是int,还有,你的指针概念不明确,这里稍微跟你讲一下,具体详细的还是看一下书吧
例如有如下定义:int * p;int a = 10;表示定义了一个int型的指针变量p和一个int型的变量a,并且a的值为10,使用时,要给p赋值,并且赋值应该是一个地址,即p = &a;现在p的值就是a的地址,所以p就相当于a了,取出a的值就相当于取出p指向地址的值,所以*p就表示10这个值.
2、这里涉及到了强制类型转换,因为在fun2里的return 用了(int)把a+b的结果强制转化成了int型变量,例如:double a = 1.6; 执行了(int)a;之后,a的值就为1了,小数部分被省略.
3、fun(32,32)正确,而fun("abchina",32.0)不正确,在函数的形参里面定义的是一个char型和一个float型变量,而“abchina”是一个字符串,与函数中变量类型不同.