目录: 标题| 题干| 答案| 搜索| 相关
问题

有以下程序#include <string.h>struct S


有以下程序#include <string.h>struct STU{ int num; float TotalScore; };void f(struct STU p){ struct STU s[2]={{1047,530},{1048,531}}; p.num = s[1].num; p.TotalScore = s[1].TotalScore;}main(){ struct STU s[2]={{2041,730},{2042,731}}; f(s[0]); printf("%d,%3.0f\n",s[0].num,s[0].TotalScore);}程序的运行结果是A.1047,530 B.1048,531C.2041,730 D.2042,731

  • A1047,530
  • B1048,531
  • C2041,730
  • D2042,731
参考答案
参考解析:

本题中,程序首先定义了一个结构体,该结构体包含一个整型和一个浮点型成员变量。然后定义了一个函数f,该函数无返回类型,函数的形参是已定义的结构体变量。在该函数中,首先定义了一个结构体数组s,并赋了初值,然后试题用结构体数组中各对应成员的值替代形参结构体变量中各成员的值,这里关键的问题还是参数的传递问题,由于结构体成员值的传递方式采用的是传值传递,是单向传递,即形参值的改变不影响实参的结果。在主函数中,同样定义了一个结构体数组s,并赋了初值,然后调用函数f,将s[0]作为函数的参数,输出s[0]中两成员的值,此时实参的值并没有得到改变。因此,最后输出的结果是2041,730。 

分类:其他
相关推荐

1、有以下程序#include <stdio.h>main() {

有以下程序#include <stdio.h>main() { char b=2; printf("%dn", b=b<<3);}程序的运行结果是A.4 B.8 C.16 D.2000A4 B8 C16 D2000

2、有以下程序 #include <stdio.h> main()

有以下程序#include <stdio.h>main(){char c1=&rsquo;1&rsquo;,c2=&rsquo;2&rsquo;;c1=getchar();c2=getchar();putchar(c1);putchar(c2);}当运行时输入:a<回...

3、有以下程序:include<stdio.h>include<

有以下程序:include<stdio.h>include<strin9.h>main( ){printf{"%dn",strlen("%dn",strlen("ATSn012|"));}程序运行后的输出结果是( )。A3B8C4D9

4、有以下程序: #include<stdio.h> int fun

有以下程序: #include<stdio.h> int fun( ) {static int x=1; X*=2;return X; main( ) int i,s=1; for(i=1;i<=2;i++)s=fun( ); printf{¨%d ",s); } 程序运行后的输出结果是( )。A0B1C4D8

5、有下列运算符:~,&,<<,>>, |,^,

有下列运算符:~,&,<<,>>, |,^,则运算的优先顺序是A~,&, |,<<,>>,^B~,<<,>>,&, |,^C~,<<,>>,^, &,|D~,<<,>>,&,^,

6、有以下程序#include <stdio.h>main(){ u

有以下程序#include <stdio.h>main(){ unsigned char a; a=4^6; printf("%d,n", a);}程序的运行结果是A.4, B.2,C.2 D.4A4, B2,C2 D4