万能百科  > 计算机   > 

有以下程序 #include <stdio.h>#include

2021-07-13   

问题:

[单选] 有以下程序

#include <stdio.h>

#include <stdlib.h>

fun(int *p1,int *p2,int *s)

{ s=(int*)malloc(sizeof(int));

*s=*p1+*p2;

free(s);

}

void main()

{ int a=1,b=40,*q=&a;

fun(&a,&b,q);

printf("%d",*q);

}

程序运行后的输出结果是

A . 42

B . 0

C . 1

D . 41

正确答案:

C

参考解析:

执行fun(&a,&b,q);语句时,在内存中开辟了一块内存空间,存放变量a 与b 的和,并用指针变量q 引用它,但是当这条语句执行结束,这块内存空间又释放了,指针这量q 仍然引用的是变量a的地址,所以输出结果为1。

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。

标签