首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序 #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
67
问题
有如下程序
#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全国计算机二级
相关试题推荐
设有宏定义:#defineIsDIV(k,n)((k%n==1)?1:0)且变量m已正确定义并赋值,则宏调用:IsDIV(m,5)&&IsDIV(m,7)为真时所要表达的是
以下叙述中错误的是
有以下程序#includemain(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}程序运行后的输出结果是
以下叙述中错误的是
数据库设计中反映用户对数据要求的模式是
由以下while构成的循环,循环体执行的次数是intk=0;while(k=1)k++;
有以下程序structst{intx;int*y;)*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下选项中表达式的值为11的是
设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)0的程序段是
在下列模式中,能够给出数据库物理存储结构与物理存取方法的是
随机试题
片麻岩属于()。
政府债券发行的目的不包括()
存货的仓储费用是存货成本的一个组成部分。()
危险物品出口租船订舱时,托运人在联系单上必须注明的项目包括( )。
凯恩斯把人们持有的金融资产划分为()两类。
下列选项中属于我国在政府体制内的家庭社会工作内容的是哪一项?()
昆特女士教八年级的英语课。一天,刚上课时她就很兴奋地宣布:“我想告诉你们,咱们班出了一位诗人。弗兰克写了一首很美的诗,我想读给大家听听。”昆特女士朗读了那首诗,它的确很美。然而,昆特女士注意到弗兰克的脸红了,看上去非常不安。班上有些同学在窃窃私语。后来,昆
A.始发期B.早期病变期C.进展期D.病损确立期E.静止期结合上皮继续加深,形成深牙周袋,胶原纤维变性溶解,牙槽骨吸收破坏明显的是()。
下列数据结构中,能够按照“先进后出”原则存取数据的是()。
PassageOne.Whatwastheauthor’sneighbormentionedinthelastparagraphmostconcernedabout?
最新回复
(
0
)