首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有以下程序: #include<stdio.h> int f(int n); main() {int a=3,s; S=f(a);s=s+f(a);printf("%d\n",s); } int f(int n) {statie int a=1; n+=a
有以下程序: #include<stdio.h> int f(int n); main() {int a=3,s; S=f(a);s=s+f(a);printf("%d\n",s); } int f(int n) {statie int a=1; n+=a
admin
2021-07-09
54
问题
有以下程序:
#include<stdio.h>
int f(int n);
main()
{int a=3,s;
S=f(a);s=s+f(a);printf("%d\n",s);
}
int f(int n)
{statie int a=1;
n+=a++:
return n;
}
程序运行后的输出结果是( )。
选项
A、7
B、8
C、9
D、10
答案
C
解析
首先main函数中的局部变量a和f()函数中的静态局部变量a的作用域都只限在其所在的函数中,相互之间不影响,看作两个小同的变量即可。另外,f()函数中的静态局部变量a只在第一次调用f()函数时初始化一次,其他调用都会保留上一次渊用结束时的值。分析main函数可知,第一次调用时将f(a)的返回值赋给s,所以语句可以改写为:s=f(a)+f(a),即main函数中调用两次f(a),传入的参数a取值都为3,第一次调用时,静态局部变量初始化为1,所以n=4并返回,a自增为2;第二次调用时静态局部变量a取上一次调用结束时的值2,所以n=5并返回,a自增为3,所以在main()函数中,s=4+5=9,所以函数执行完输出结果为9,答案为C。
转载请注明原文地址:https://www.kaotiyun.com/show/V4tp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下程序段中,与其他三个功能不同的程序段是
设有如下函数定义:#include<stdio.h>intfun(intk){if(k<1)returm0;elseif(k==1)retum1:elsereturnfun(k-1)+1:}若执行调用语句“n=fun(3);”,则函
C语言中,最基本的数据类型包括()。
关于字符串处理的叙述中正确的是()。
以下选项中合法的实型常量是()。
下列选项中,不属于模块间耦合的是()。
关于算法,以下叙述中错误的是
在数据库管理技术发展的三个阶段中,没有专门的软件对数据进行管理的是()。
下面不属于软件需求规格说明书内容的是()。
设序列长度为n,在最坏情况下,时间复杂度为O(log2n)的算法是
随机试题
You’vealreadymissedtoomanyclassesthisterm.You______twoclassesjustlastweek.
一些药物可引起消化性溃疡,因此预防非甾体抗炎药所致的溃疡首选药物是
A.普通处方B.药师处方C.法定处方D.麻醉药品和第一类精神药品处方E.第二类精神药品处方只限于计算机开具、传递的处方是()。
地震是地球上的主要自然灾害之一。下列关于地震的说法,错误的是()。
采用二灰碎石作路面底基层时应验算层底拉应力。( )
存货的成本就是存货的采购成本。()
下列关于数字出版产品策划工作的说法中,错误的是()。
依照民法理论,物权的核心是()。
以下叙述中正确的是
Lookatthetenstatementsforthispart.Youwillhearapassageabout"GreatTransformation".Youwilllistentoittwice
最新回复
(
0
)