问题 单项选择题

以下程序运行后的输出结果是 #include<stdio.h> #include<stdlib.h> main(){  int *a, *b, *c;  a=b=c(int *) malloc(sizeof(int));  *a=1; *b=2; *c=3;  a=b;  printf("%d, %d, %d\n", *a, *b, *c); }

A.3,3,3

B.2,2,3

C.1,2,3

D.1,1,3

答案

参考答案:A

解析: 本题解题的关键在于:指针a、b、c都指向同一个存储空间。所以当依次执行"*a=1; *b=2; *c=3;"三次赋值后,该存储空间存放的是最后一次赋值的结果3。所以*a、*b、*c的值都为3。

填空题
单项选择题