首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有下列程序: 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
63
问题
有下列程序:
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://kaotiyun.com/show/YlRp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下列与队列结构有关联的是
有以下程序:#includevoidfunl(char*p){char*q;q=P;while(*q!=’\0’){(*q)++;q++;}
有以下程序:#includevoidfun(inta,intb){intt;t=a;a:b;b=t;}main(){intc[10]={1,2,
设有以下语句:inta=1,b=2,c;13=a^(b
请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。例如,原来的字符串为CEAedca,排序后输出为CedcEAa。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和
给定程序MODI1.C中函数fun的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。注意:字符串的长度最长允许为79。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或
下列选项中不符合良好程序设计风格的是
下列选项中不属于结构化程序设计方法的是
下面选项中合法的字符常量是
在医院,每个医生只属于某一个诊疗科,医生同一天可为多位患者看病,而一名患者可在多个科室治疗,则实体医生和患者之间的联系是()。
随机试题
下列选项中,属于位置平均数的有()
五阴煎加味适用于急性白血病的哪种证型
(共用备选答案)A.超剂量用药B.非适应证用药C.有目的联合用药D.超适应证用药E.过度治疗用药高血压患者应用抗高血压药+利尿剂属于
大型建设工程项目总进度目标论证的核心工作是通过( )。
计算机病毒的检测有以下哪几种方法?()
税收征管流程的基本环节。
关于茶文化,说法不正确的是()。
强化物
“桃李不言,下自成蹊”,这句话体现的德育方法是榜样示范法。()
A、Shewasopenandfrank.B、Shewasnotwillingtosaymuch.C、Somethingwaswrongwithherlips.D、Shetotallyrefusedtotalk
最新回复
(
0
)