选择题
以下四个程序中不能对两个整型值进行交换的是______。
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; }
提交答案
关闭