C++ 以下程序执行的结果为?能详细解释一下吗?谢谢!

(36)以下程序执行的结果为()intf(inti){return++i;}intg(int&i){return++i}intmain(){inta(0),b(0);a+... (36)以下程序执行的结果为()
int f(int i){return ++i;}
int g(int &i){return ++i}
int main() {
int a(0),b(0);
a+=f(g(a));
b+=f(f(b));
cout<<a<<”\t”<<b;
return 0;
}
A. 3 2 B. 2 3 C.3 3 D . 2 2

(37)以下程序执行的结果为()。
int& max(int& x,int& y){return(x>y?x:y);}
int main(){
int m(3),n(4);
max(m,n)--;
cout<<m<<"\t"<<n;
return 0;
}、
A.3 2 B。2 3 C。 3 4 D。 3 3
(38)若定义结构体
struct st {
int no;
char name[15];
float score;}s1;
则结构体变量所占内存空间为()。
A.15
B.sizeof(int)+sizeof(char[15])+sizeof(float)
C. sizeof(s1)
D. max(sizeof(int),sizeof(char[15]),sizeof(float))
(39)若定义联合体
union{int no;
char name [15];
float score;}u1;
则联合体变量所占的空间为()。
A.15
B.sizeof(int)+sizeof(char[15])+sizeof(float)
C.sizeof(u1)
D.max(sizeof(int),sizeof(char[15],sizeof9float))
展开
 我来答
lateha
2013-01-04
知道答主
回答量:26
采纳率:0%
帮助的人:14.3万
展开全部
36A,37D 38B 39D
36题考的是对函数形参引用的理解,形参中不加引用号,则形参的值是实参值的复制,f(a)执行后,实参a的大小没有变,变的是他的复制值。形参中加了引用号,函数体中的形参就是实参,所以g(a)执行后a会自增。
37考的是函数返回值引用的理解。如果max函数返回值没有引用,说明返回的是复制值,对max函数的自减就不会改变m,n的大小,最后结果就是3,4.这里返回值是引用,说明返回的就是m,n的较大值,对max函数自减,m,n的较大值就会减小,所以结果是3,3.
38,39就是联合体和结构体的基本性质。联合体变量所占内存长度是各最长的成员占的内存长度。 而结构体变量时各个成员所占的内存长度的总和。所以联合体的有点之一是所占内存比结构体少。
Seneal
2013-01-04 · 超过22用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:63.1万
展开全部
36,A
37,D
38,C
39,C
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式