首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有下列程序: #include<stdio.h> int a=5: int func(int d) { int b=5; static int c=5; a--;b--;--
有下列程序: #include<stdio.h> int a=5: int func(int d) { int b=5; static int c=5; a--;b--;--
admin
2022-10-25
54
问题
有下列程序:
#include<stdio.h>
int a=5:
int func(int d)
{
int b=5;
static int c=5;
a--;b--;--c;--d;
return a+b+c+d:
}
main()
{
int k,a=4;
for(k=0;k<3;k++)
printf(”%d,”,func(a--));
}
程序执行后的输出结果是( )。
选项
A、15,12,9,
B、15,13,11,
C、15,11,7,
D、15,15,15,
答案
A
解析
程序定义整型的全局变量a,初值为5,main函数定义整型局部变量a,初值为4。所以在main函数中,局部变量a屏蔽全局变量a。func函数中定义局部变量b,初值为5,定义静态变量c,初值为5,并且在func函数中变量a引用的是全局变量a。综上,我们使用a_a代表全局变量a,使用m_a代表main函数中局部变量a。main函数中,当k=0时,a_a-a=5,m_a=4,调用函数func(4),函数func中d的值为4,b的值为5,c的值为5,执行表达式“a_a﹣﹣;b﹣﹣;--c;--d;”后,a_a的值为4,b的值为4,c的值为4,d的值为3,a+b+c+d的值为15,程序输出15。当k=1时,a_a=4,m_a=3,调用函数func(3),函数func中d的值为3,b的值为5,c的值为4(静态变量使用上一次调用结束时的值),执行表达式“a_a--;b﹣﹣;﹣﹣c;﹣﹣d;”后,a—a的值为3,b的值为4,c的值为3,d的值为2,a+b+c+d的值为12,程序输出12。当k=2时,a_a=3,m_a=2,调用函数func(2),函数func中d的值为2,b的值为5,c的值为3,执行表达式“a_a﹣﹣;b﹣﹣;﹣﹣c;﹣﹣d;”后,a_a的值为2,b的值为4,c的值为2,d的值为1,a+b+c+d的值为9,程序输出9。本题答案为A选项。
转载请注明原文地址:https://kaotiyun.com/show/fCkp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组S中,请编写函数fun,它的功能是:把分数最高的学生数据放在h所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。注意:部分源程序在文件PROGl.C中
以下程序段中,循环次数不超过10的是
有以下程序:#includestruetord{intx,y;}dt[2]={1,2,3,4};main(){struetord*p=dt:printf("%d,",++
给定程序MODI1.C中函数fun的功能是:用下面的公式求x的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:例如,程序运行后,输入0.0001,则程序输出3.1414。请改正程序中的错误,使它能输出正确的结果。注意:不要改动smain
有如下程序#include<stdio.h>main(){intx=0x13;if(x=0x18)printf("T");printf("F");printf("\n");}程序运行后的输出
有如下程序段:intx=12;doubley=3.141593;printf("%d%8.6f",x,y);其输出结果是()。
随机试题
我国目前数字出版产业的特征包括()等。
腹满的辨证论治规律怎样?
Internet中实现主机到主机的定位协议是_________。
为合伙经营一餐馆,甲、乙两人共同向丙借款1万元,逾期未还。该还款责任为()。
低钾血症最早出现的临床表现为
A.龈乳头坏死B.呈反波浪状C.龈乳头扁圆形肥大、有蒂D.呈桑葚状E.增生牙龈覆盖全部牙冠妊娠性龈瘤表现是
学校组织特征的独特性表现在()。
社会主义经济制度的基础是()。
[*]
Thatexperiencesinfluencesubsequentbehaviourisevidenceofanobviousbutneverthelessremarkableactivitycalledrememberin
最新回复
(
0
)