问题 单项选择题

以下程序运行后的输出结果是
#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。

填空题
单项选择题