选择题
25.
下列四个程序中,不能对两个整型值进行交换的是______。
A、
#include <stdio.h>
void swap(int *p, int *q)
{ int *t, a;
t=&a; *t=*p; *p=*q; *q=*t;
}
main()
{ int a=10, b=20;
swap(&a, &b); printf("%d%d<n",a,b);
}
B、
#include <stdio.h>
void swap (int *p, int *q)
{ int t;
t=*p; *p=*q; *q=t;
}
main()
{ int a=10, b=20;
swap(&a,&b);printf("%d%d<n",a,b);
}
C、
#include <stdio.h>
void swap(int *p,int *q)
{ int t;
t=*p; *p=*q; *q=t;
}
main()
{ int *a, *b;
*a=10, *b=20;
swap(a,b); printf("%d%d<n", *a, *b);
}
D、
#include <stdio.h>
void swap(int *p,int *q)
{ int t;
t=*p; *p=*q; *q=t;
}
main()
{ int a=10,b=20,*x=&a,*y=&b;
swap(x,y);printf("%d%d<n",a,b);
}
【正确答案】
C
【答案解析】
main()
{ int*a=0,*b=0;
*a=10,*b=20; //有错误,a与b没有指向任何对象,但却给对象赋值
swap(a,b);printf("%d%d
}
swap(int*p,int*q)
{
int t;
t=*p;
*p=*q;
*q=t;
}
提交答案
关闭