首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有下列程序: int a=4; int f(int n) main() {int t=0;static int a=5; {int s=a,i=0; if(n%2){int a=6;t+=a++;} for(;i<2;i++)s+=f(i); els
有下列程序: int a=4; int f(int n) main() {int t=0;static int a=5; {int s=a,i=0; if(n%2){int a=6;t+=a++;} for(;i<2;i++)s+=f(i); els
admin
2016-12-18
32
问题
有下列程序:
int a=4;
int f(int n) main()
{int t=0;static int a=5; {int s=a,i=0;
if(n%2){int a=6;t+=a++;} for(;i<2;i++)s+=f(i);
else{int a=7;t+=a++;} printf("%d\n",s);
return t+a++;} }
程序运行后的输出结果是
选项
A、28
B、24
C、32
D、36
答案
A
解析
程序中定义了全局整型变量a=4。在int f(int n)函数中定义了局部静态整型变量并进行了初始化即static nt 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/gNDp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
若有定义:intx=0,*p=&x;,则语句printf("%d\n",*p);的输出结果是______。
有以下程序:main(){unsignedchara,b;a=4|3;b=4&3;printf("%d%d\n",a,b);}执行后输出结果是______。
下列程序的输出结果是______。#defineP(a)printf("%d,",(int)(a))#definePRINT(a)P(a);printf("theend")main()
以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是______。
以下选项中非法的表达式是______。
下列程序的运行结果是()。#include<stdiO.h>main(){inta=0,b=4,c=0,d=10,x;if(a)d=d-10;e1seif(!B)if(!C)
若变量已正确定义并赋值,以下符合C语言语法的表达式是
设有定义语句int(*f)(int);,则以下叙述正确的是
软件开发的结构化生命周期方法将软件生命周期划分成
若有下列定义,则对a数组元素地址的正确引用是()。inta[5],*p=a;
随机试题
舍尼通的药理作用机制是:
铣床升降螺母的锁紧螺钉失效,造成螺母与丝杠一起旋转,致使进给电动机旋转,但工作台不能升降。()
通过与原核生物的核蛋白体结合而干扰蛋白质生物合成的抗生素是
骨髓增生异常综合征的转归不包括
乳牙萌出顺序中正确的是
在抗休克过程中应用血管扩张剂必须
下列关于重力沉降室增加粉尘被捕获率的措施,无效的是()^
下列说法正确的有( )。
了解学生可以通过很多方法,以下不属于了解学生的恰当手段的是()。
OpinionpollsrepeatedlytellusthattheonlythingAmericansworryaboutmorethantheenvironmentistheirhealth.Thisis【C1
最新回复
(
0
)