单选题
698.以下选项中,不能对主函数中变量i和j的值进行交换的程序是( )。
A
#include void swap(int *p, int *q) { int *t; *t = *p; *p = *q; *q = *t; } main() { int i=10, j=20,*a=&i,*b=&j; swap(a,b); printf("i=%d j=%d\n",i,j); }
B
#include void swap(int *p, int *q) { int t; t = *p; *p = *q; *q = t; } main() { int i=10,j=20,*a=&i,*b=&j; swap(a,b); printf("i=%d j=%d\n",i,j); }
C
#include #include void swap(int *p, int *q) { int *t; t = (int *)malloc(sizeof(int)); *t = *p; *p = *q; *q = *t; free(t); } main() { int i=10,j=20; swap(&i,&j); printf("i=%d j=%d\n",i,j); }
D
#include void swap( int *p, int *q) { int t; t = *p; *p = *q; *q = t; } main() { int i=10,j=20,*x=&i,*y=&j; swap(x,y); printf("i=%d j=%d\n",i,j); }
答案解析
正确答案:A
解析:
选项A中,swap函数中的指针t没有初始化,会导致未定义的行为,无法正确交换变量i和j的值。
相关知识点:
函数交换变量值程序
题目纠错
二级C语言知识练习
