有以下程序 typedef struct{int b,p;}A; void f(A c)/* 注意:c是结构变量名 */ { int j; c.b+=1;c.p+=2; } main() { int i; A a={1,2}; f(a); printf("%d,%d\n",a.b,a.p); } 程序运行后的输出结果是A.2,3B.2,4C.1,4D.1,2

题目

有以下程序 typedef struct{int b,p;}A; void f(A c)/* 注意:c是结构变量名 */ { int j; c.b+=1;c.p+=2; } main() { int i; A a={1,2}; f(a); printf("%d,%d\n",a.b,a.p); } 程序运行后的输出结果是

A.2,3

B.2,4

C.1,4

D.1,2


相似考题
参考答案和解析
正确答案:D
解析:本题考查的是函数调用时的数据传递问题。因为在调用函数f()时只是进行的值传递,即单向传递,函数的调用及对形参的处理过程并不会引起实参数值的变化。故本题答案为D)。
更多“有以下程序 typedef struct{int b,p;}A; void f(A c)/* 注意:c是结构变量名 */ { int ”相关问题
  • 第1题:

    有以下程序include<stdio.h>int*f(int*p,int*q);main( ){int m=1,n=2,*r=&m;r=f(r,&am

    有以下程序

    include<stdio.h>

    int*f(int*p,int*q);

    main( )

    {int m=1,n=2,*r=&m;

    r=f(r,&n);printf(”%d\n”,*r);

    }

    int-f(int*P,int*q)

    (return(*p>*q)?p:q;)

    程序运行后的输出结果是______。


    正确答案:2
    2 解析:函数f的返回值的类型是int*,作用是返回两个int*型指针所指变量中值大的那个指针的。本题中定义了一个int*型指针r并置初值&m,即指针r指向m。r=f(r,&n),由于m的值小于n值,所以f函数返回值为&n,所以输出为2,即n值。

  • 第2题:

    有以下程序: int*f(int *x,int *y) {if(*x<*y)return x; else return y; } main() { int a=7,b=8,*p,*q,*r; p=&a;q=&b; r=f(p,q); printf("%d,%d,%d\n",*p,*q,*r); } 程序运行后输出结果是______。

    A.7,8,8

    B.7,8,7

    C.8,7,7

    D.8,7,8


    正确答案:B
    解析:f函数的功能是返回地址为x,y的两个数中值较的数的地址,本题输出结果是7,8,7。

  • 第3题:

    以下程序的输出结果是 int a[3][3]={1,2,3,4,5,6,7,8,9,},*p; int main(void) { p=(int*)malloc(sizeof(int)); f(p,a); printf("%d n",*p); return 0; } f(int *s, int p[][3]) { *s=p[1][1]; }

    A.1

    B.4

    C.7

    D.5


    B函数调用时,prt函数的作用是为使m数组中的数自增1,因此数组下标从0开始,每个元素都自加1。

  • 第4题:

    下面程序段中的错误语句是 ______。 class M{ int i; public: void ~AA(int); AA *p; void AA(); void AA(int x){i=x;}; };

    A.AA *p;

    B.void ~AA(int);

    C.void AA(int);

    D.void AA(int x){i=x;};


    正确答案:B

  • 第5题:

    有以下程序: int*f(int*x,int*y) { if(*<*y)return x; else return y; } main() { int a=7,b=8,*p,*q,*r; p=&a;q=&b; r=f(p,q); printf("%d,%d,%d\n",*p,*q,*r); } 程序运行后输出结果是______。

    A.7,8,8

    B.7,8,7

    C.8,7,7

    D.8,7,8


    正确答案:B
    解析:f函数的功能是返回地址为x,y的两个数中值较的数的地址,本题输出结果是7,8,7。

  • 第6题:

    以下哪个函数是不正确的(与能否被编译无关)?

    A.int* f(int *p) { int i; return &i; }

    B.int* f(int *p) { return p; }

    C.int* f(int *p) { return (int*)malloc(sizeof(int)); }

    D.int* f(int *p) { return NULL; }


    int* f(int *p) { int i; return &i; }