计算机二级

有以下程序: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,7B.7,8,7,8C.8,7,7,8D.7,8,8,7

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

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

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

第3题:

以下程序的输出结果是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。

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

有以下程序includevoid f(int *p,int *q);main(){ int m=1,n=2,*r=&m;f(r, &n

有以下程序 #include<stdio.h> void f(int *p,int *q); main() { int m=1,n=2,*r=&m; f(r, &n); printf("%d,%d",m,n); } void f(int*p,int*q) {p=p+1; *q=*q+1;) 程序运行后的输出结果是______。

A.1,3

B.2,3

C.1,4

D.1,2


正确答案:A
解析:本题主要考查函数实参和形参之间的传递,C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只能由实参传绐形参,而不能由形参传回来给实参。f(r&n)把n的地址传递给q,通过地址传递的函数可以有返回值,因此,n的值为q的返回值3,又因为p是形参变量没有返回值,所以m的值没有改变,因此,选项A是正确的。

第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的两个数中值铰的数的地址,本题输出结果是7,8,7。

第7题:

有以下程序: 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); print("% 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是一个返回值为指针的函数,其功能是比较两个数中的最小值,并返回最小值的存储单元地址。main函数中定义了指针变量p和q,p=&a,q=&b,即*p=7,*q=8,调用函数{后r=p,所以*r=7,printf函数的输出结果为 7,8,7。

第8题:

有以下程序

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);

cout<<*p<<","<<*q<<","<<*r<<endl;

}

执行后输出结果是

A.7,8,8

B.7,8,7

C.8,7,7

D.8,7,8


正确答案:B
解析:value作为类的数据成员在引用时可以通过对象来引用,也可以通过域操作符引入类名来限定。因此选项A和C可以排除,由于选项D中p是指针,它对指针变量的赋值方式是错误的。

第9题:

有以下程序 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()的功能是返回两者中的较大数,且这两个数本身不会改变。