执行以下程序段后,a的值是

25.执行以下程序段后,a的值是
int a []={5,3,7,2,1,5,4,10};
int a =0,k;
for(k=0;k<8;k+=2)
a+=*(a+k);

第1个回答  2009-01-22
结果为17

for(k=0;k<8;k+=2)
a+=*(a+k);

这个循环是指的取a数组中下标为0,2,4,6的成员值累加,
得到的结果为5+7+1+4=17

不过,应该将数组a和变量a的名字定义成不同的,否则编译会报错本回答被提问者采纳
第2个回答  2009-01-23
int a []={5,3,7,2,1,5,4,10};
int a =0,k;
for(k=0;k<8;k+=2)
a+=*(a+k);
改为:
int b[]={5,3,7,2,1,5,4,10};
int a=0,k;
for(k=0;k<8;k+=2)
a+=*(b+k);
数组名跟变量名不要同名,得到的结果是:a=0+5+7+1+4=17。(注意c语言中对于数组元素的引用其实是转换为指针的,故b[4]即相当于*(b+4)了)。

执行以下程序段后a 的值是___ int a, b; for (b=1,a=1; b<=50; b+...
所以 a就是10 了

若a为int类型变量,则执行以下程序段后a的值为多少啊? a=5; a*=a\/=...
再a自相加 所以a等于2 因为a++是后+,所以完成整个表达式后才自加

当a=1,b=2,c=3时,执行以下程序段后a的值为:___。
所以最终结果是a=3,b=2,c=2.

c语言运行以下程序段后变量a的值是:( ) int a=0, b=3;
条件a+b&&a++&&b-a&&a是这样执行的,a+b=3,a++先判断在自增,判断为0,自增后为1,因为判断为0,所以逻辑短路,后面的也就不判断了 switch里面是0,所以case 0执行成功,也就是说从case 0后面的语句都要执行,知道遇到break a++;case 1:b++;case 2:a+=b;也就是这些都有执行 所以是...

执行下列程序段后,(A)=___,(CY)=___。 MOV A,#C5H RL A
应该是:(A)= 8BH ,(CY)=(CY)。楼上回答有误,这两条指令均不影响标志位,CY原来是什么,执行完后依然是什么。如果是MOV A,#0C5H RLC A,则CY=1,而(A) 可能是8AH,也可能是8BH,取决于原来的CY是0或是1。另外#C5H应写为#0C5,至少KEIL编译器中有此要求。

...c=256;int a=c;",则执行该程序后a的值是 A,256 B,65536 C,0 D,-1...
256 整数的二进制表示是 0000 0001 0000 0000, 转成char会被截断, 只保留低8位, 也就是0;

下列程序段执行后累加器a中的内容是
答案是 A=62H DA A 是BCD加法后的调整 两个BCD码相加 35+27 =62 ADD A,#27后 A=5BH DA A ;进行调整就成了 62H 一定是两个BCD码相加,DA A 要紧跟在 ADD 之后

假设变量A=2,B=3,T为整型变量,执行以下程序段后a和b的值分别为( )。
假设变量A=2,B=3,T为整型变量,执行以下程序段后a和b的值分别为3,2。这道题目伪代码一开始A=2,B=3通过第一个if后A<B成立所以执行下边语句,使用第三个变量T来把A中的值赋值给T,此时A的值是空的,再让A等于B的值,最后让B的值等于T,也就是此时A的值等于B的初始值,B的值等于A的...

执行以下的程序段后,a= ,b= 。 int x
先判断x==y++ 先取值 再自加. 于是是判断 3==2 不成立. y自加为3.执行后面一个y++; 先取值, 表达式值是3. y自加为4.b=x++;先取值, b=3, x自加为4.于是 a=3, b=3

...a=1,b=2,c=3;则执行以下程序段后a,b,c的值分别为( )
第一步c=a;这里c的值就被赋值为1了,所以第三步的b=c;,b被赋值的是1

相似回答
大家正在搜