请你们帮我详细点解析这几道简单的C语言题目

7.2已定义了以下函数fff(floatx){printf("%d\n,x*x");}该函数的类型是A与参数x的类型相同Bvoid类型Cint类型D无法确定答案Cint类... 7.2已定义了以下函数
fff(float x)
{ printf("%d\n,x*x");}
该函数的类型是
A 与参数x的类型相同
B void类型
C int类型
D 无法确定
答案 C int类型

7.5 有以下程序:
#include<stdio.h>
int f(int,int);
main()
{ int i=2,p;
p=f(i,i+1); printf("%d\n",p);
}
int f(int a,int b)
{ int c;
c=a;
if(a>b) c=1;
else if(a==b) c=0;
else c=-1;
return(c);
}
程序的输出结果是 -1

7.6有以下程序:
#include<stdio.h>
int fun(int a,int b,int c)
{ c=a*b; }
main()
{ int c;
fun(2,3,c); printf("%d\n",c);
}
程序的输出结果是: 无定值

7.7有以下程序:
#include<stdio.h>
double f(int n)
{ int i; double s;
s=1.0;
for(i=1;i<=n;i++) s+=1.0/i;
return s;
}
main()
{ int i,m=3; double a=0.0;
for(i=0;i<m;i++) a+=f(i);
printf("%f\n",a);
}
程序的输出结果是 5.500000
展开
 我来答
百度网友5b2e74f
2011-03-08 · TA获得超过123个赞
知道答主
回答量:72
采纳率:0%
帮助的人:52.6万
展开全部
7.2该函数虽然输入的X是FLOAT型,但输出是用"%d"来输出,这是可以的,只是输出结果是个4舍5入的整形值;
7.5很简单吧..? 若不会就在程序运行跟踪下你就知道了;主函数带入f函数里的是i和i+1也即使2和3分别赋值给f(int a,int b)的a,b; 而c=a;c值知道吧,就是2了;那后面if应该自己看得懂吧;一步一步来,再不行就跟踪下步骤就可以弄明白了;最后ruturnC的值返回给主函数的 p=f(i,i+1); 的p !
7.6是你自己写的吧?虽然主函数也就是main函数把a,b的值带入了fun(2,3,c); 函数了; 为什么输出的c却不是a*b的值呢, 你再看看7.5那道题,要使用return返回c的值才可以,你看着7.5自己再写下就明白了!
7.7 a的值就是a+f(1)再加f(2)再加f(3); f()里的值的算法是for(i=1;i<=n;i++) s+=1.0/i;自己能看懂的;然后它返回的是s的值,也就是f(1)\f(2)..的值就是s的值;

呼..看来你是刚学C吧,基础要打牢,书看多几遍,看细就可以了,这些问题都是书上里的程序可以找到的,弄明白再做题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xucha00
2011-03-08 · TA获得超过252个赞
知道小有建树答主
回答量:238
采纳率:0%
帮助的人:238万
展开全部
7.2 》c语言在没有显示说明函数返回值的情况下默认为返回int
7.3》
int f(int a,int b)//a=2, b=3
{ int c;
c=a;//c=2
if(a>b) c=1;// 2>3?为假
else if(a==b) c=0;//2==3?为假
else c=-1;//于是c=-1
return(c);//返回了-1,就是p的值了
}
////////////////////////////////////
7.6》c传的是值,而不是地址,因此fun函数不会改变C的值

=============
7.7
a=0.0
a =a+f(1)+f(2)+f(3)
看懂了吧 ,不懂的话继续展开
追问
我是初学C语言的,书上也就讲得很笼统,还请问7.6能再详细点解释吗?   7.7中f(1)=1 但不是f(1)=2吗?
追答
传值意思是吧原来的东西复制一份相同的然后让被调用的函数里使用,当这个副本被改变的时候
原来的那一份不改变
传地址就是把原来的东西直接给了调用函数使用,那么对这个东西的改变原来的那一份就变了

7.7里s的初始值是1.0你看清楚了哈。1.0+1.0/1=2
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xinyangjiaotu
2011-03-08
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
第一题:从printf的输出的类型决定整个函数的类型。
第二题: 从main(),函数开始执行到p时,跳到f(int,int)开始执行;
第三题: c=a*b没有执行。
第四题:a是浮点型输出,a+=f(i);所以我们要执行double f(int n)
{ int i; double s;
s=1.0;
for(i=1;i<=n;i++) s+=1.0/i;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
f_usheng
2011-03-08
知道答主
回答量:12
采纳率:0%
帮助的人:0
展开全部
7.2 int main(int argr,*argc[])
7.5f()是比较大小的,i<i+1,返回-1
7.6值传递c不是指针,内存中c是多少就输出多少
7.7调用了三次f()每次的结果是1+2+2.5=5.5
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dragonskyzhy
2011-03-08 · 超过11用户采纳过TA的回答
知道答主
回答量:30
采纳率:0%
帮助的人:0
展开全部
ls回答的很好
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式