单选题
以下四个程序中不能对两个整型值进行交换的是______。
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=&h;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/n", *a, *b);
}
swap(int*p, int*q)
{ int t;
t=*p; *p=*q; *q=t;
}
提交答案
关闭