首页 > 计算机 > 计算机二级 正文

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

时间:2021-07-13 03:23:12 解答: 177 次

问题:

[单选] 有以下程序

#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。

请充值VIP继续使用(未注册用户支付后会自动注册登录)

×

95元 29元

VIP截止日期:2024-12-31 03:41:21

←请使用支付宝扫码支付

95元 29元

VIP截止日期:2024-12-31 03:41:21

←请使用微信扫码支付