实在是没办法,刚来这里玩,不懂。我就再问了,谢谢你们帮忙回答啊。

有问题的程序是:
double area(double,double);
main()
{double x,y,z;
x=1.2;
y=2.4;
z=area(x,y);
printf("%d\n",z);

}
double area(double a,double b)
{double s;
s=a*b;
return s;

}
你们帮忙看一下看看,谢谢啊。

这是一个关于函数调用的程序,解释如下:
double area(double,double); //这是函数说明,在函数调用中,如果其内容放在main之 前 则可以不用函数说明,这里area函数放在啦main函数之后,就需要 先说明以便在执行main函数时知道这是函数调用。函数说明时要有 函数的返回值类型,这里为double,括号里为形参的类型及个数,这 里为两个double类型的;
main( ) //主函数,任何程序都是从这里开始执行;
{double x,y,z; //定义啦三个double类型的变量;
x=1.2; //给变量赋值;
y=2.4;
z=area(x,y); //函数调用,调用时包括函数名及对应类型及个数的实参(个数不相等再议),这个 时候计算机调用area函数,把x、y传给area函数的对应形参(这里是传数值,有传 递地址的情况,这时结果会大不一样,这也是二级的考点);
printf("%d\n",z); //打印出z的值并换行(注意“%d”这也是一个考点,各种类型的输出控制符对应 的输出不同,尤其注意“%c”与“%s”,前者控制字符输出,后再控制字符串输出)

}

double area(double a,double b) //自定义的函数,在做程序时记住一句话,计算机只会一句一句 逐条去执行程序,c语言中,开始于main函数,结束于main函数 ,为了使函数简单清晰,模块化,才定义不同功能的函数,这样 在main函数中只需调用就能完成相应功能。这里的形参a接啦 主函数中调用时传来的x,故其值为1.2。同理,b为2.4;
{double s; //定义一个double类型的变量s
s=a*b; //将s赋值成a与b的乘积
return s; / /返回s的值,函数调用的关键点是一句话:从哪里调用,返回哪。因此返回后s的值就赋 给啦z。最终打印出的z就是x*y的值。

关于上面提到的函数调用时传地址与传值得情况,一般传值时,在被调用的函数里面对传过去的变量不论如何改变,回到main函数中它都不变,而如果是用数组名或者指针作为实参传递给调用函数时,在里面就行的操作会影响main函数中的对应值。大家可以找相应例题看看。
二级的另外一个常考陷阱在switch语句的执行时,加没加continue或者break的情况,如果没有加会一直往下执行,直到遇见“}”。
当然,for循环、do-while循环、条件表达式、句号表达式等常考。数组、指针也很重要,特别是机试时。
二级最主要是陷阱太多,大家做时感觉成竹在胸,不过往往会发现还是栽啦,所以关键是要三思啊。不过还是要有信心,相信会过的,我也考拉两次,刚从归来不久啊!
希望对大家有所帮助,也希望这周末大家考个好成绩!追问

我的财富值已经没了,所以给了个无财富值的题目去问。谢谢你还这么详细的回答。其实这个程序我大概还是看懂了,但就是在我的电脑上的C编程编出来的结果不是我们认定的那样。你帮我在你的电脑上做一下看看,看答案有没有问题。还是感谢你这么详细的回答,又没得任何报酬。

追答

不好意思,这几天有事,晚啦。在我的机器上做时编译时警告说" 'printf' undefined; assuming extern returning int",结果是:1889785610。结果错误是因为输出的控制符不对,z是double类型的,故不能用%d而是用%lf,而编译警告是因为调用啦系统的printf函数却没有加头文件,加上#include 就好了。那天解释时没有注意细节,不好意思啦。哈哈,不用报酬的。

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网