首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有以下程序: int a=4; int f(int n) { int t=0; static int a=5; if(n%2) {int a=6; t+=a++;} else {int a=7; t+=a++;}
有以下程序: int a=4; int f(int n) { int t=0; static int a=5; if(n%2) {int a=6; t+=a++;} else {int a=7; t+=a++;}
admin
2009-01-15
23
问题
有以下程序: int a=4; int f(int n) { int t=0; static int a=5; if(n%2) {int a=6; t+=a++;} else {int a=7; t+=a++;} return t+a++; } main() { int s=a,i=0; for(;i<2; i++) s+=f(i); printf("%d\n",s); } 程序运行后的输出结果是( )。
选项
A、24
B、28
C、32
D、36
答案
2
解析
题目中第1行声明了一个全局变量a,在函数f()中,也声明了一个静态变量a,这时全局变量被屏蔽,即在f()函数中用到的a是其内部定义的这个静态变量a,而不是全局变量。但f()函数的if子句和else子句又分别了局部变量a,这时静态变量a又被屏蔽,即在if子句中使用的是if子句自己定义的a,else子句也是这样。在主函数中,通过for语句连续执行了2次f()函数,并将返回值累加到s中,且s被全局变量a初始化,即初始值是4。第1次调用f(),参数值为0,0能被2整除,执行if子句,t被自增6,a增1不会影响外面的变量a。函数返回t和静态变量a的和,即11,此时,静态变量a被增1,这次对a的改变会带入到下一次f()函数的调用小去。第2次调用f(),参数值为1,1不能被2整除,执行else子句,t被自增7,a增1不会影响外面的变量a。函数返回t和静态变量a的和,此时a的值为上次调用f()时增1后的值6,即返回7+6=13。所以,主函数中s现在的值为4+11+13=28。故应该选择B。
转载请注明原文地址:https://jikaoti.com/ti/V5K0FFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
设有如下声明语句OptionBase1Dimart(2,一1To5)AsInteger则数组art中数组元素的个数是
在窗体上画一个名称为Commandl的命令按钮,并编写如下程序:PrivateTypeRecordIDAsInteger:NameAsString*20EndTypePrivateSubComm
下列叙述中正确的是
设窗体上有一个标签Labell和一个计时器Timerl,Timerl的Interval属性被设置为1000,Enabled属性被设置为True。要求程序运行时每秒在标签中显示一次系统当前时间。以下可以实现上述要求的事件过程是
考生文件夹下的工程文件sjt3.vbp中有一个初始内容为空、且带有垂直滚动条的文本框,其名称为Textl;两个标题分别为”读数据”和”查找”的命令按钮,其名称分别为Cmdl、Cmd2。请画一个标题为”查找结果”的标签Labell,再画一个名称为Text2,
数据流程图(DFD图)是
在考生文件夹下,存在一个数据库文件“samp2.accdb”,里而已经设计好表对象“tDoctor”、“tOffice”、“tPatient”和“tSubscribe”,同时还设计出窗体对象“fQuery”。试按以下要求完成设计。(1)创建一个查
在考生文件夹下有一个工程文件sjt3.vbp,运行情况如图3-113所示。程序的功能是计算表达式的值:z=(x一2)!+(x一3)!+(x一4)!+…+(x—N)!其中的N和x值通过键盘分别输入到两个文本框Text1、Text2中。单击名称为Co
下列事件的事件过程中,参数是输入字符ASCII码的是
设:a=12,b=5,c=7,表达式x=(a\c+aModb)+Int(13/5)的值是( )。
随机试题
下列环境污染对健康影响的特点,除外
A、K+外流B、Na+内流C、Ca2+内流D、Cl-内流E、H+外流产生抑制性突触后电位的主要离子流是
我国第一家专业性证券公司是南方证券公司。()
简述教学活动的本质。
“呈现实例,确认概念,强化练习,发展思维技巧”是()。(2016·天津)
货币:价值与()在内在逻辑关系上最为相似。
沾衣欲湿杏花雨,【88】。
道德通过评价等方式,指导和纠正人们的行为和实际活动,协调人们之间的关系。这指的是道德的()
Wherewastheletterprobablyplacedmanyyearsago?
A、TheDailyStar.B、TheTimes.C、TheDailyTelegraph.D、TheDailyMinor.A根据文中"theDailyStar...whicharetabloids"可找到答案。
最新回复
(
0
)