中易网

c语言问题!!!

答案:4  悬赏:50  
解决时间 2021-01-30 04:04
(1)有以下程序
#include
#include
struct A
{int a; char b[10];double c;};
void f(struct A t);
main()
{struct A a={1001,"zhangDa",1098.0};
f(a); pringt("%d,%s,%6.1f\n",a.a,a.b,a.c);
}
void f(struct A t)
{t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;}
程序运行后的输出结果是
A)1001,zhangDa,1098.0 B)1002,ChangRong,1202.0
C)1001,ChangRong,1098.0 D)1002,ZhangDa,1202.0
(2)有以下程序
#include
#include
struct A
{ int a; char b[10]; double c;};
struct A f(struct A t);
main()
{ struct A a={1001,”ZhangDa”,1098.0};
a=f(a);jprintf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);
}
struct A f(struct A t)
( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; )
程序运行后的输出结果是
A)1001,ZhangDa,1098.0
B)1002,ZhangDa,1202.0
C)1001,ChangRong,1098.0
D)1002,ChangRong,1202.0
答案分别为A D。这两题不一样吗????求解释
最佳答案
这两题一样吗???呵呵。首先,还有studio.h这样的头文件啊???如果没有的话,还是别这样写,编译会出错的。这两道题的不一样之处是f函数的返回值类型不同。第一道题中,f函数的返回值类型为空类型,即没有返回值。而第二道题中的f函数有返回值,并且返回值类型为结构体A类型。在(1)中,当执行语句f(a)时,将实参a的值传递给形参t,计算机将分配出一段内存来存放t的内容,在子函数中操作的都是形参t的内容,而结构体变量a中的内容并不发生变化,执行完f(a)后,存放t的那段内存将留给别的用,因此执行完后a中的值不发生变化。
在(2)中,当执行语句a=f(a)时,同样将实参a的值传递给形参t,然后对形参t进行操作,由于f函数的返回值为结构体A类型,故执行到子函数最后一条语句时,会将t的值返回并赋给a,因此a的值发生了变化。
所以选择AD。所以这两道题不一样!!!
全部回答
第二题 a=f(a) 用返回的结构体直接赋给结构体a,值就改变了
这两题当然不一样,问题主要出在f函数上,第一个f函数没有任何返回值,而参数也只是普通的值传递而已,并不是指针, 所以f函数中对对象a中作不了任何修改,因为修改的是对象t,而t是对a没有任何影响的(除非它是指针). 而第二个中f函数有返回值,并且返回值赋值给了main函数中的对象a,这也就导致第二个main函数中的对象a发生了改变,因为重新赋值的原因。

结果是22

7+7+8=22

你可以将

(++i)+(++i)+(++i)

++i是先+1再计算,还有这里的运算顺序是从左到右,所以应该是

7+7+(++i)=14+8=22(前两个相加时,i先加1,加了两次,所以是7,因为第三个++i还没运算到,所以保持不变)

我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有没有更多辩论赛中类似于“一行白鹭上青天—
北斗星1.0不踩油门转速表突然达到3000转
为什么二氧化氯除甲醛没有被广泛运用
如何进行简易记账
请问中央电视台一个招聘的节目叫什么名字
2000毫升的纯酒精怎么配成75%的医用酒精
法院档案室说因为法院搬家判决书找不到了,怎
一个九位数最高位上是4百位上是8千位上是2其
吡啶型氮与石墨型氮有什么区别
求三字经儿童朗读版mp3音频
求解签。君问中间次原因,看看禄马拱前程,求得
羡慕别人有漂亮的女朋友怎么办。。
本田威武110—19摩托车怎么驾驶
想买个24寸拉杆箱,麻烦大家推荐一下 500块钱
跪求大佬做个CSGO自动FRFR的CFG
推荐资讯
为什么警察不能用违法手段破案
母猪到下小猪的时候没下是好还是不好
现在移动青春套餐是不给联通发短信也不要钱?
3.4除以3.2竖式
善良讲故事谈感受
判断。甲物体比乙物体重1/5千克,乙物体就比
剑三可以到其它门派走动吗
21世纪的材料之星是(  )A.半导体材料B.
去聊城大学怎么走
现在的社会上有好人吗
我要当兵,我现在人在长春,户口所在地在内蒙
我刚刚交了一千元保证金,想开淘宝店,请问淘
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?