首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有以下程序: main() { int s=0,a=1,n; scanf("%d",&n); do { s+=1; a=a-2; } while (a!=n); printf("%d\n",s);
有以下程序: main() { int s=0,a=1,n; scanf("%d",&n); do { s+=1; a=a-2; } while (a!=n); printf("%d\n",s);
admin
2013-02-23
16
问题
有以下程序: main() { int s=0,a=1,n; scanf("%d",&n); do { s+=1; a=a-2; } while (a!=n); printf("%d\n",s); } 若要使程序的输出值为2,则应该从键盘给n输入的值是( )。
选项
A、-1
B、-3
C、-5
D、0
答案
2
解析
根据题目要求,最后要使输出的s值为2,在程序中改变s的值的语句只有循环体中的s+=1;语句,而初始s的值为0,显然要使s的值变为2,该语句必须执行两次,即do-while循环中的循环体要执行两次,而在do-while中,首先不执行条件而执行 do后面的循环体语句,然后再判断while循环条件。所以不管循环判断条件是否为真s+=1;语句至少执行一次,根据分析,只需要 while后面括号的循环判断表达式的值为真成立一次且只能为真一次,将4个选项中的内容依次代入该程序中不难得到只有n=-3刚好使循环判断条件a!=n为真一次。故4个选项中选项B符合题意。
转载请注明原文地址:https://kaotiyun.com/show/JaPp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有以下程序:main(){inta[10]={1,2,3,4,5,6,7,8,9,10),*p=&a[3],*q=p+2;printf("%d\n",*p+*q);}程序运行后的输出结果是(
有以下程序;voidf(int*x,int*y){intt;t=*x;*x=*y;*y=t;}main(){inta[8]={1,2,3,4,5,6
以下不合法的用户标识符是()。
以下程序段的输出结果是【】。inta=1234;printf("%2d\n",a);
以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第。列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中的其他数据不变。#defineN4voidro
在软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错直至回归测试的过程称为【】。
不能把字符串"Hello!"赋给数组b的语句是______。
在数据流图(DFD)中,带有名字的箭头表示______。
在设计程序时,应采纳的原则之一是______。
随机试题
盗版音像制品的识别方法有()。
在PLC控制中可以用()替代计数器。
生态系统中的能量沿着食物网循环流动。()
患儿4岁,因肺炎入院治疗。入院时患儿拒绝治疗,并哭闹不止。护士的下列做法,不恰当的是()
女性,30岁,因乏力、头晕、心悸伴注意力不集中、记忆力减退半年就诊,考虑为缺铁性贫血。口服铁剂治疗有效的早期指标是
当地时间2017年6月14日,英国伦敦北肯辛顿区一座高层公寓大楼发生火灾,官方公布的火灾死亡人数为9人,有79人失踪,推定已经遇难。经调查,火灾源于4层一家住户的冰箱起火,并非人为原因,起火后火势迅速蔓延到整栋建筑。在调查火灾迅速蔓延的原因时,调查人员对建
下列关于保证金交易的说法,正确的是()。
下列关于合伙企业清算的说法中,不符合《合伙企业法》规定的是()。
违约责任的承担方式有()。
下列叙述中正确的是
最新回复
(
0
)