以下程序运行后的输出结果是 。inc]udc main(){int x=10.y=20.t=0;if(x==y) t=x;x=y;y=1;printf(“

题目

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

inc]udc

main()

{int x=10.y=20.t=0;

if(x==y) t=x;x=y;y=1;

printf(“%d %d/n”.x,y);

参考答案和解析
正确答案:20 0
20 0
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

以下程序运行后的输出结果是 。 #include<stdio.h> void main() { int x=1,y=20, t=0; if(x= =y) t=x;x=y;y=t; printf("%d %dn",x,y); }


D 本程序中通过DATA语句对数组B赋值的结果为矩阵DO循环语句的功能是将数组B的第2列的元素的值依次赋值给数组A。因此,A(1)=4、A(2)=5、A(3)=6,所以格式输出数组A后输出的结果为456。

第2题:

(10)以下程序运行后的输出结果是 【10】 。

#include <stdio.h>

main()

{ int x=10,y=20,t=0;

if(x==y)t=x;x=y;y=t;

printf("%d %d\n",x,y);

}


正确答案:
(10)20 0

第3题:

有以下程序:include void f(int * x,int * y) int t;t= *x; *x= *y; *y=t;main ( ){in

有以下程序:#include <stdio.h>void f(int * x,int * y) int t; t= *x; *x= *y; *y=t;main ( ){ int a[8] = { 1,2,3,4,5,6,7,8} ,i, * p, * q; p=a;q =&a[7]; while(p<q) { f(p,q) ;p ++ ;q --; } for(i =0;i<8;i ++ ) printf(" % d," ,a[i]); }程序运行后的输出结果是( )。

A.8,2,3,4.,5,6,7,1,

B.5,6,7,8,1,2,3,4,

C.1,2,3,4,5,6,7,8,

D.8,7,6,5,4,3,2,1,


正确答案:D
解析:程序中函数f的作用是交换指针变量x和y所指向的存储单元的值。在main函数中,通过P=a;q=&a[7];指针变量p指向数组的第一个元素,指针变量q指向数组的最后一个元素。通过调用函数f(p,q)进行前后对称位置上的数组元素的交换。当while循环4次(即p=q)后,a数组中各元素的值分别为8,7,6,5,4,3,2,1,所以程序输出的结果为:8,7,6,5,4,3,2,1,

第4题:

下列程序段的输出结果是______。 void fun(int *x,int *y) {printf("%d%d",*x,*y);*x=3;*y=4;} main() { int x=1,y=2; fun(&y,&x); printf("%d%d",x,y); }

A.2 1 4 3

B.1 2 1 2

C.1 2 3 4

D.2 1 1 2


正确答案:A
解析:本题中函数传递的是变量的地址,如果形参在函数中发生改变,相对应的实参也就有了改变。

第5题:

以下程序运行后的输出结果是void fun(int x,int y){ x=x+y;y=x-y;x=x-y; printf("%d,%d,",x,y);}main(){ int x=2,y=3; fun(x,y); printf("%d,%d\n",x,y);}


正确答案:3,2,2,3
被调用函数fun()实现的功能是交换变量x和y的值并打印,由于该函数无返回值,所以在主函数中打印出的x和y的值仍然为2,3。

第6题:

下列程序段的输出结果是( )。 void fun(int *x,int *y) { printf("%d%d",*x,*y);*x=3;*y=4; } main() { int x=2,y=1; fun(&y,&x); printf("%d%d",X,y); }

A.1243

B.1212

C.1234

D.2112


正确答案:A
解析:本题主函数中首先定义了两个变量x和y,并初始化为2和1,然后将y和x的地址值,传入函数fun(),函数fun()中的形参x和y分别指向主函数中的变量y和x,所以fun()函数输出的值为1和2,fun()函数在结束之前把形参x所指内容赋为3,把形参y所指内容赋为4,所以返回主函数后,主函数中的x和y已被改写为4和3。故程序输出结果为1243。选项A正确。

第7题:

有以下程序: main() {int a[]={2,4,6,8,10},y=0,x,*p; p=&a(1); for(x=1;x<3;x++) y+=p[x]; printf("%d\n",y); } 程序运行后的输出结果是 ______。

A.10

B.11

C.14

D.15


正确答案:C
解析:本题通过语句“p=&a[1]扩将指针变量p指向了存储单元a[1],即使得p[0]的值为4,然后通过两次for循环,使得y的值分别加上p[1]和p[2],那么y=6+8,所以输出的y的值为14。

第8题:

有以下程序: main() {int a[]={2,4,6,8,10},y=0,x,*p; p=&a[1]; for(x=1;x<3;x++)y+=p[x]; printf("%d\n",y); } 程序运行后的输出,结果是 ______。

A.10

B.11

C.14

D.15


正确答案:C
解析:因为p=&a[1],p[0]=a[1],p[1]=a[2],p[2]=a[3]。for循环是求p[1]+p[2],因此y的值应为:6+8= 14。

第9题:

有以下程序

void f( int y, int *x)

{ y=y+*x; *X=*X+y; }

main()

{ int x=2,y=4;

f(y,&x);

printf("%d %d\n",x,y);

}

执行后输出结果是______。


正确答案:8 4
8 4 解析:本题考核的知识点是函数的调用、值传递和地址传递的区别。“值传递”指实参将值传递给形参后,实参与形参再无联系。也就是说对行参的改变将不影响实参;地址传递是指地址或数组名作为形参时的参数传递,这种情况下对形参的改变将对实参产生影响.函数 f(Y*x)的作用是让y的值加上指针x所指向变量的值,让指针x所指向变量的值加上y的值。由于形参y是传值的,形参x是传地址的,故调用该函数后,作为实参的y的值将不改变,而实参x的值将改变,故最后输出的y的值为4,而x的值为8。