首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有以下程序: int a=3; main() { int s=0; { int a=5; s+=a++; ) s+=a++; printf(’%d\n’,s); } 程序运行后的输出结
有以下程序: int a=3; main() { int s=0; { int a=5; s+=a++; ) s+=a++; printf(’%d\n’,s); } 程序运行后的输出结
admin
2013-02-23
21
问题
有以下程序: int a=3; main() { int s=0; { int a=5; s+=a++; ) s+=a++; printf(’%d\n’,s); } 程序运行后的输出结果是( )。
选项
A、8
B、10
C、7
D、11
答案
1
解析
本题中定义一个全局变量a和一个局部变量a。局部变量和全局变量的不同在于,局部变量的存储单元都是在进入这些局部变量所在的函数体(或复合语句)时生成,退出其所在的函数体(或复合语句)时消失,而全局变量是在函数外部任意位置上定义的变量,它的作用域从变量定义开始,到整个源文件结束为止。若全局变量和某一函数中的局部变量同名,则在该函数中,此全局变量被屏蔽,在该函数内,起作用的将是局部变量,与同名的全局变量不发生任何关系。在程序中首先定义了变量s并赋值为0,接着在嵌套的复合语句{}中定义了变量a并赋初值为5,接着执行语句“s+=a++;”在这条语句中a加1,但表达式a++还是原来的值,故s=s+5,s为5,程序执行到外层,此时{}内定义的变量a不再有效,变量a为 {}之前定义的且初值为3,接着执行{}后面的语句“s+=a++;”,相当于执行语句“s=s+(a++);”即s=5+3,最后值为8,所以输出的 s值为8。故4个选项中A正确。
转载请注明原文地址:https://jikaoti.com/ti/hYB0FFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
执行下面的程序段intx=40;charz=’B’;intB;B=((x&0xff)&&(z>’a’));后,B的值为()
若有如下程序:main(){intm=-1;printf("%d,%u,%0,%x",m,m,m,m);}则程序运行后的输出结果是()
为了合理组织数据,应遵循的设计原则是()
阅读下面语句,则执行后的输出结果为【】。#include"stdio.h"main(){chara,b;for(a=’0’,b=’9’;a<b;a++,b--)printf("%c%c",
若在以下定义和赋值语句,则才s数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的合法引用为ints[2][3]={0},(*p)[3];p=s;
若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是______。
设下面程序段中调用fun函数传送实参a和b,main(){chara[10],b[10]┇fun(a,b);┇}则在fun函数首部中,对形参错误的定义是()
【】是一种信息隐蔽技术,目的在于将对象的使用者和对象的设计者分开。
下列不属于软件调试技术的是______。
在计算机系统中,可执行程序是______。
随机试题
巴黎公社文学的代表人物有____________、____________、____________、____________。
如何更改当前账户密码?
根据“子母补泻法”,肾经实证应取()
根据《宪法》和法律的规定,关于立法权权限和立法程序,下列选项正确的是:(2013年试卷一第89题)
[2009年,第91题]模拟信号放大量是完成对输入模拟量()。
经处理后的地基,当按地基承载力确定基础底面积及埋深而需要对地基承载力标准值进行修正时,按《建筑地基处理技术规范》(JGJ79—2002),下列()种取值方法是正确的。
一式几联的发票和收据,必须用双面复写纸套写,并连续编号,作废时不必归档。()
运营期自由现金流量的用途包括( )。
WhichofthefollowingisaSuprasegmentalfeature?
反映了唯心主义本质的教育目的是()。
最新回复
(
0
)