首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有下列程序: 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++; }
有下列程序: 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++; }
admin
2019-08-18
67
问题
有下列程序:
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、28
B、24
C、32
D、36
答案
A
解析
程序中定义了全局整型变量a=4。在int f(int n)函数中定义了局部静态整型变量并进行了初始化即static int a=5。在int f(int n)函数中对n是否是偶数进行判断,如果n是奇数,则函数的返回值为11,局部静态整型变量a=6;如果n是偶数,则函数的返回值为12,局部静态整型变量a=6。所以在main()函数中循环首先执行s+=f(0)语句,而f(0)返回值12,所以第一次循环结束s的值等于4+12=16:第二次开始执行f(1)时,在f(1)中执行if(n%2){int a=6;t+=a++;}和return t+a++;这两条语句,这时t=6, a=6(静态局部变量第一次循环后其值加1值不释放,执行第二次循环量,其值仍有效),所以f(1)的返回值等于12。再在主函数中执行s+=f(1)语句,即16+12=28。
转载请注明原文地址:https://www.kaotiyun.com/show/YlRp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
若有定义语句:chars[10]="1234567\0\0":则strlen(s)的值是()。
以下叙述中正确的是()。
已知字符’A’的ASCII代码值是65,字符变量c1的值是’At,c2的值是’D’。则执行语句printf("%d,%d",c1,c2-2);的输出结果是
下列叙述中错误的是
有以下程序#includemain(){inta=7;while(a--);printf("%dkn",a);}程序运行后的输出结果是
以下语句中存在语法错误的是
若有定义语句:intx=10;则表达式x=x+x的值为
给定程序中,函数fun的功能是将不带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。请在程序的下划线处填入正确的内容并把下划线
下面对对象概念描述正确的是
下面不属于软件测试实施步骤的是
随机试题
夏尔.迪潘是哪个国家的工业教育的先行者?
加压蒸汽灭菌法,通常在多大压力下达121.3℃
普鲁卡因不宜用于哪种麻醉
最容易导致股骨头无菌性坏死的药物是
医师在执业活动中享有的权利之一是
下列指标用以评定土基承载能力的指标是()
项目经理的素质主要表现在品格与知识两个方面,其中包括()。
下列选项中,按照满族、朝鲜族、蒙古族、回族的顺序排列的民族饮食是()。
下列属于过错责任原则的有()。
Accordingtotheauthor,Britishbusinesses______.Thetradeunionistsseemtobeonthesideof______.
最新回复
(
0
)