写出结果 void foo(int p1[]) { *p1 += 5; } void bar(int p2[]) { p2[1] = 15; }

题目

写出结果

void foo(int p1[])

{

*p1 += 5;

}

void bar(int p2[])

{

p2[1] = 15;

}

void main()

{

int a[]={3,4,5};

int b[]={3,4,5};

int *p2;

p2=&a[1];

bar(p2);

printf("%i %i %i\n",a[0],a[1],a[2]);

p2=&b[0];

p2++;

foo(p2);

bar(p2);

printf("%i %i %i\n",b[0],b[1],b[2]);

}

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

第1题:

写出下列程序的输出结果 #include <stdio.h> int main() { int *p1,*p2,*p,a,b; a=10; b=15; p1=&a; p2=&b; if(a<b) {p=p1;p1=p2;p2=p;} printf("a=%d,b=%dn",a,b); printf("%d,%dn",*p1,*p2); return 0; }


20 0 20 0

第2题:

分析下面函数,以下说法正确的是 。 swap(int *p1,int *p2) { int *p; *p=*p1; *p1=*p2; *p2=*p; }

A.交换*p1和*p2的值

B.正确,但无法改变*p1和*p2的值

C.交换*p1和*p2的地址

D.可能造成系统故障,因为使用了空指针


可能造成系统故障,因为使用了空指针

第3题:

分析下面函数,以下说法正确的是 swap(int *p1,int *p2) { int *p; *p=*p1; *p1=*p2; *p2=*p; }

A.交换*p1和*p2的值

B.正确,但无法改变*p1和*p2的值

C.交换*p1和*p2的地址

D.可能造成系统故障,因为使用了空指针


A

第4题:

要定义两个指针变量,下面代码正确的是

A.int *p1,*p2;

B.int *p1, int *p2;

C.int* p1,p2;

D.int *(p1,p2);


FILE *fp

第5题:

若有如下程序: sub(int * t,int n) {int *p1, *p2; for(p1=t,p2=t;p1-t<n;p1++) if(*p1<*p2) p2=p1; return(*p2);} main() {int a[9]={9,36,19,39,26,5,6,33,15}; printf("%d\n",sub(a,9));} 则程序运行后的输出结果是( )

A.5

B.9

C.15

D.39


正确答案:A

第6题:

分析下列程序: include main() {int*p1,*p2,*p; inta=6,b=9; p1=&a;p2=&b; if

分析下列程序:

#include<stdio.h>

main()

{ int*p1,*p2,*p;

inta=6,b=9;

p1=&a;p2=&b;

if(a<B) {p=p1;p1=p2;p2=p;}

printf("%d,%d",*p1,*p2) ;

printf("%d,%d",a,B) ;

}

程序的输出结果为( )。

A.9,6 6,9

B.6,9 9,6

C.6,9 6,9

D.9,6 9,6


正确答案:A
解析:通过p1=&a,p2=&b分别将a、b的地址赋给指针p1、p2,接着执行if语句,发现ab成立,则通过交换p1、p2的值,即交换a、b所在存储单元的地址,但是a、b的值并没有发生变化。

第7题:

分析下列程序:includemain(){int*p1,*p2,*p;int a=6,b=9;p1=&a;p2=&b;if(a

分析下列程序: #include<stdio.h> main() { int*p1,*p2,*p; int a=6,b=9; p1=&a;p2=&b; if(a<b){p=p1;p1=p2;p2=p;} printf("%d,%d",*p1,*p2); printf("%d,%d",a,b); } 程序的输出结果为( )。

A.9,6 6,9

B.6,9 9,6

C.6,9 6,9

D.9,6 9,6


正确答案:A
解析: 通过p1=&a,p2=&b分别将a、b的地址赋给指针p1、p2,接着执行if语句,发现ab成立,则通过交换p1、p2的值,即交换a、b所在存储单元的地址,但是a、b的值并没有发生变化。

第8题:

下列程序的输出结果是______。 main() {int a=2,b=4,c=6; int*p1=&a,*p2=&b,*p; *(p=&

下列程序的输出结果是______。

main()

{ int a=2,b=4,c=6;

int*p1=&a,*p2=&b,*p;

*(p=&C) =*p1*(*p2);

printf("%d\n",c);

}


正确答案:8
8 解析:本程序定义了3个指针变量p1、p2、p,并且将a、b的地址分别赋给p1、p2,则*p1=a=2,*p2=b=4,所以表达式*p1*(*p2)的值是8。在赋值语句的左边是 *(p=&c),即使指针p指向了变量c,因而*(p)代表了c的存储单元,赋值语句“*(p=&c)=*p1*(*p2);”是把整数 8赋给了变量c。

第9题:

写出下列程序的执行结果。 swap(p1,p2) int*p1,*p2; {int p; p=*p1;*p1=*p2;*p2=p; } main() {int a,b,*p1,*p2; scanf("%d%d",&a,&B); p1=&a;p2=&b; if(a<B)swap(p1,p2); printf("\na=%d,b=%d\n",a,B); } 若a=7,b=8,则程序的运行结果为( )。


正确答案:a=8b=7
a=8,b=7