若a为int变量,则执行以下语句后的结果为( )

a=5;

do{
printf(“%2d\n”,a--);
}while (!a);
A. 5 B. 不打印任何内容 C. 4 D. 陷入死循环

A
do while语句先执行DO后面的语句,之后判断while后的条件,
a--要先执行输出命令,在自减,所以执行完do后面的语句后的结果是输出了5,之后判断while后条件,条件为!a即!5即0,所以不符合条件,跳出循环,最终结果即为5
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-11
a=5;
do{ printf(“%2d\n”,a--);
}while (!a);

do....while 的意思是至少执行一次,再判断while后的条件是否为真,若为真继续执行,若为假就跳出去,不管怎样都会执行至少一次,然后我们再看看while的条件语句!a :a==5,所有非0数都是真,那!a就是0那就是假,当while后面的值是假时就会跳出循环。那就是会执行一次printf语句。a--的值是4,所以输出结果是4.本回答被网友采纳
第2个回答  2013-04-11
A
先执行 后判断条件
a--是先输出 后减
--a 是先减 后输出

!a是0 不执行 只循环一次
第3个回答  2013-04-12
选a,a--没关系,先用在减,第一次输出为: 5
!a为0,所以只执行一次即可
第4个回答  2013-04-14
main()
{
int a=5;
do{
printf("%2d\n",a--);
}
while(!a);
}
这是程序 输出时5 不知道原因

若a为int型变量,则执行以下语句后,a的值为() a=5;a+=a-=a*a;求做法...
a+=-20 -> a=-40

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

若a、b、c均为int型变量,则执行以下程序段后的输出结果为( )。 b=...
逗号表达式 是按从左往右运算,以最右边的表达式的值最为整个表达式的值

若a是int型变量、且a的初值为6,则执行下面表达式后,a的值为【 】。a+...
最后算a+=-30即a=a+(-30)所以a=-60

若a是int型变量,且a的初值为6,则执行下面表达式后a的值为【 】。 a+...
-= 、+=、=是从右往左结合的,故式子等价于 a = a - a*a; a = a + a;即-60

若a为int型的变量,执行语句a=5,a+10;后,变量a的值为
若a为int型的变量,执行语句a=5,a+10;后,变量a的值为5。因为a+10并没有改变a的值。a=a+10才改变了a的值。所以答案是5。

若a是int型变量,则执行表达式a=25\/3*3后a的值为()
若a是int型变量,则执行表达式a=25/3*3后a的值为24。int是一种数据类型,在编程语言中,是用于定义整数类型变量的标识符。因为a是int型变量,所以25/3=8.333。又因为当运算符,函数或流程控制需要一个int型参数时,值会自动转换,同时会丢失精度。所以8.333不保留小数位精度,即为8,因此a...

若a是int型变量,则下列表达式的值为___。
若a是int型变量,则下列表达式的值为 (a=4*5,a*2),a+6 执行步骤: 1:a=4*5, a=20; 2: a*2 ,a任然为20,; 3:a+6,得26 4:逗号运算符的结果是最后一个逗号之后的表达式的值,所以结果为26,此时a=26 希望对你有帮助!若a是int型变量,则表达式(a=4*5,a*2),a...

若变量a为int类型,执行a='A'+1.6;则结果为()
d 'A'.ascll= 65 a = 66.6 a为int类型,强制类型转换后,a=66

若变量a是int类型,并执行了语句: a='A' 1.6?
a='A' 1.6;'A'与1.6不知道关系;你给的题目不明确;但B选项 提到相加,我就暂且认为他们是相加;那么答案是: C;为什么呢?字符'A'在整型运算式中由他的ASCII码(65)代替;65+1.6=66.5;又因为a的定义是(int)整型;a==66;最后还是整型;不过'A’与1.6是什么运算关系已经不重要了...

相似回答