参考答案和解析
正确答案:C
在“r=P;p=q;q=r;”三个语句是表示P与q交换,经过交换后P指向b的地址,q指向a的地址,因此最后输出为8,7,7,8,故选择C选项。
更多“以下程序的输出结果是( )。main{ int a=7,b=8,*P,*q,*r;p=&a;q=&b;r=P;P=q;q=r;printf("%d,% ”相关问题
  • 第1题:

    有以下程序:include main( ) { int a=7,b=8,* p,*q, *r; p=&a;q=&b; r=p; p=

    有以下程序:#include <stdio.h> main( ) { int a=7,b=8,* p,*q, *r; p=&a;q=&b; r=p; p=q;q=r; printf(" % d,% d,% d,% d \n", * p, * q.a,b);程序运行后的输出结果是( )。

    A.8,7,8,7

    B.7,8,7,8

    C.8,7,7,8

    D.7,8,8,7


    正确答案:C
    解析:程序中P和q是指针变量,它们分别存放了变量a和L的地址,执行P=&a;q=&b;语句后,*p和*q的值就分别为7和8,执行r=P;P=q;q=r;实际上是进行指针变量p和q的交换,即将其存放的a和b的地址进行了交换,也就是P指向了b,q指向了a,此时a,b的值并没有改变,所以输出的*P,*q的值为8,7,而a,b的值仍为7,8。

  • 第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题:

    有以下程序 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,该函数的功能,是返回x和y指向的变量中值较小的那个指针变量。主函数中定义了两个指针变量p和q,井让它们指向了变量a和b,调用函数f(),返回指向的变量值较小的指针变量,r的值为指针变量p的值(变量a的地址),因此最后输出的*p、*q和*r的值是7、8和7。

  • 第6题:

    有以下程序: 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,该函数的功能,是返回x和y指向的变量中值较小的那个指针变量。主函数中定义了两个指针变量p和q,并让它们指向变量a和b,调用函数f(),返回指向的变量值较小的指针变量,r的值为指针变量p的值(变量a的地址),因此最后输出的*p、*q和*r的值是7,8和7。所以,B选项为所选。