itgle.com

有以下程序#include<stdio.h>void f(int*p);main( ){int a[5]={1,2,3,4,5},*r=a;f(r);printf(”%d\n”,*r);}void f(int *P){p=p+3;printf(”%d,”,*p);}程序运行后的输出结果是( )。A.1,4B.4,4C.3,1D.4,1

题目

有以下程序

#include<stdio.h>

void f(int*p);

main( )

{int a[5]={1,2,3,4,5},*r=a;

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

}

void f(int *P)

{p=p+3;printf(”%d,”,*p);}

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

A.1,4

B.4,4

C.3,1

D.4,1


相似考题
更多“有以下程序#include&lt;stdio.h&gt;void f(int*p);main( ){int a[5]={1,2,3,4,5},*r=a;f(r);prin ”相关问题
  • 第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题:

    以下程序的输出结果是include "stdio.h"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);}


    正确答案:7,8,7。
    在本题中,程序首先定义了一个函数f,其结构是int *f(int *x,int *y),这个结构说明函数f的返回类型是指针型,函数f的两个变量分别是指针变量x和y,从程序中我们很容易看出,这个函数的作用是返回形参中值较小的指针值(即地址值),返回的是指针型的结果。
    在主函数中,首先定义了两个整型变量,分别赋初值7和8,并定义了三个指针型变量,接着将指针变量p和q分别指向变量a和b,然后调用函数f,参数分别为指针变量p和q,很显然,p所指向的值小于q所指向的值,那么返回指针变量p的地址值给指针变量r,由于指针变量P的地址值是变量a存储单元的地址值,也就是说,指针变量r指向变量a,因此,最后程序的输出结果是7,8,7。

  • 第3题:

    有以下程序: 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。

  • 第4题:

    有以下程序: 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。

  • 第5题:

    有以下程序: #include<stdio.h> void f(int*p); main {int a[5]={1,2,3,4,5),*r=a; f(r);printf("%d\n",*r); } void f(int*p) {p=p+3;printf("%d,",*p);} 程序运行后的输出结果是( )。

    A.1,4

    B.4,4

    C.3,1

    D.4,1


    正确答案:D
    本题考查参数的按值传递。调用f(r),函数创建一个整型指针P,然后将r的值传给P,即P也指向a,p=p+3,输出P所指变量的值,即数组右移3位,即a[O+3]的值4,然后,函数结束,指针P被销毁,r中的值不变,还指向a[0],所以输出为4,1。