计算机二级C语言,画圈的题求详细解答!

如题所述

第一:fun1函数返回的是整形,所以a=1,b=4,因为w是浮点,所以是5.0
第二:if和else中间不能穿插语句,不是连贯语句,所以编译错误
第三:按照正常的理解应该是执行(4+4)*(4+4)/(2+2)*(2+2),但是宏定义里x*x并没有带括号,所以运算方程式把括号全去掉,就是4+4*4+4/2+2*2+2,结果28;
第四:16题:答案是D
17题:函数f传递的是值,并不是指针,所以abc变量没有改变,原来的值是多少就是多少。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-09
第一个,不用看了,int输出不了带精度的数字,这个选择题太恶心了
第二个,C程序if按行执行,前面条件不成立,结果只能执行else了(除非加大括号,不然逻辑是有问题)
第三个,宏定义,等同于参数的2次方,8x8等于64,4x4等于16,然后除法运算
第四个,第一个fun函数就是求两个数的最大数,最后当然是12
第二个F函数是糊弄你的,F不带返回值,也没有改变外部变量,所以你做对了
第2个回答  2013-09-09
3、主函数w=fun2调用子函数并传值(1.1,2.0)给fun2即是x=1.1,y=2.0在fun2中a=fun1
(x);y=fun1(y);调用fun1函数并传值给fun1中的a,fun1返回a的平方值;fun2中(int)(a+b)=int(1.1*1.1+2.0*2.0)=5;w为double类型w=5.000000
2、if(a=1)理解为将1赋给a 那么if(a=1)为真执行相关程序结果为a=1,b=1,c=2,d=0
10、#define为宏定义无括号之类优先运算f(4+4)/f(2+2)=4+4*4+4/2+2*2+2=28;
16、12
17、主函数的赋值在子函数中并没有返回值去改变(函数中赋值作用域仅在本函数中使用)本回答被提问者采纳
第3个回答  2013-09-09
..... c语言