首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有以下程序: 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
26
问题
有以下程序: 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全国计算机二级
相关试题推荐
(1)在考生文件夹下有一个工程文件sjt3.vbp,窗体上有一个矩形和一个圆,还有垂直和水平滚动条各一个。程序运行时,移动某个滚动条的滚动块,可使圆做相应方向的移动。滚动条刻度值的范围是圆可以在矩形中移动的范围。以水平滚动条为例,滚动块在最左边时,圆靠在矩
以下自定义数据类型的语句中,正确的是
已知a=6,b=15,c=23,则语句PrintSgn(a+b.Mod6-c\a)&a+b的输出结果为
一个工作人员可使用多台计算机,而一台计算机被多个人使用,则实体工作人员与实体计算机之间的联系是
数据流程图(DFD图)是
在考生目录下有一个工程文件sjt3.vbp,窗体文件中已给出所有控件和部分程序,如图2-118所示。要求:①利用属性窗口设置适当的属性,使Textl、Text2中数据右对齐;②请编写适当的程序完成以下功能:在Textl中输入40(度数),选择一个单选按
数据库设计中反映用户对数据要求的模式是( )。
表达式Sgn(0.25)的值是( )。
学生选课成绩表的关系模式SC(S#,C#,G),其中S#为学号,C#为课号.G为成绩.关系表达式πS#,C#(SC)/S表示()。
窗体上有名称为List1的列表框。以下能够将列表框当前选定的列表项替换为字符串"Basic"的语句是
随机试题
肛管排气时肛管插入的深度是()cm,保留灌肠是肛管插入的深度为()cm。
水泥混凝土加热型填缝料有()。
不能反映网络技术的不完善性的是()。
按图案和施釉特点,釉面内墙砖可分为()
下列信用流通工具中,属于我国广义货币供应量M2的有()。
下列关于会计核算和会计监督关系的表述,正确的有()。
任何商品的价格都是由()共同决定的。
业主大会、业主委员会作出的决定违反法律法规的,物业所在地的()应当责令限期改正或者撤销其决定,并通告全体业主。
在特洛伊战争中,足智多谋的()想出了木马计,帮助希腊联军攻破了特洛伊城。
NextmonthBritonswillhaveyetmoresmartphonestochoosefrom,whendevicesfromWiko,atwo-year-oldFrenchcompany,goons
最新回复
(
0
)