首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序 #include <stdio.h> int* sum(int data) { static int init = 0; init += data; return &init; } main() { int i
有如下程序 #include <stdio.h> int* sum(int data) { static int init = 0; init += data; return &init; } main() { int i
admin
2021-04-28
36
问题
有如下程序
#include <stdio.h>
int* sum(int data)
{
static int init = 0;
init += data;
return &init;
}
main()
{
int i, *p;
for (i=1; i<=4; i++) sum(i);
p = sum(0);
printf("%d\n", *p);
}
程序运行后的输出结果是
选项
A、15
B、0
C、1
D、10
答案
D
解析
static变量又称为静态变量,编译时,将其分配在内存的静态存储区中,在整个程序运行期间都不释放这些存储单元,即使退出函数,下次再进入该函数时,静态局部变量仍使用原来的存储单元,值是上一次函数调用结束时的值。若定义时未赋初值,在编译时,系统自动赋初值为0;若定义时赋初值,则仅在编译时赋初值一次,程序运行后不再给变量赋初值。程序执行过程为:执行for循环,i=1,调用函数sum(1),data=1,init=0,init=init+data=1;i=2,调用函数sum(2),data=2,init=1,init=init+data=3;i=3,调用函数sum(3),data=3,init=3,init=init+data=6;i=4,调用函数sum(4),data=4,init=6,init=init+data=10;i=5退出for循环。调用函数sum(0),data=0,init=10,init=init+data=10,返回指向init的指针,输出init=10。D选项正确。
转载请注明原文地址:https://kaotiyun.com/show/DFtp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
符有定义语句:doublex,y,*px,*py;执行px=&x;py=&y;正确的输入语句是
有以下程序:#i13clude<stdio.h>main(){inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的运行结果是()。
结构化程序所要求的基本结构不包括
以下叙述中正确的是
有以下程序#includemain(){intfindmax(int,int,int),m;┋m=findmax(a,b,c);┋}intfindmax(intx,inty,intz){…}则以下叙述正确的是()。
设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:□代表空格字符)
下面对“对象”概念描述正确的是()。
有以下程序(strcpy为字符串复制函数,strcat为字符串连接函数)#include#includemain(){chara[10]="abc",b[10]="012",c[10]="xyz";
设表的长度为n。下列算法中,最坏情况下比较次数小于n的是
下列结构中属于线性结构链式存储的是
随机试题
引起急性出血性结膜炎的病原体是
治疗产后血虚身痛的代表方剂是
下列不属于正治法的治疗方法是
根据《建设工程安全生产管理条例》,施工企业的主要负责人对本单位安全生产工作负有的主要职责有()。
一般审计目标包括()。
下列各项中,不确认收入计入当年应纳税所得额征收企业所得税的是()。
为了实现网页之间相互跳转,可以在网页中插入()。
签约式
在信号量P、V操作中,对信号量执行一次P操作,意味着要求______。
Parentswillbeabletorunanofficialcheekonthestatusofchildmindersforthefirsttimefromtoday.Ofsted,theeducation
最新回复
(
0
)