c语言选择题,要过程,详细

1.有以下程序:#include <stdio.h> int a=3;main() { int s=0; { inta=5; s+=a++; } s+=a++;printf("%d\n",s);}程序运行后输出的结果是()A,8 B,10 C,7 D,112.执行下面程序片段的结果是() int x=23 do { printf(“%d”,x--); }while(!x);A打印出321 B打印出23 C不打印出任何内容 D陷入死循环 3.下面的程序的输出结果是()#include (stdio.h)main(){ int x=10,y=10,i; for (i=0;x>8;y=++i) printf("%d%d,x--,y);}A10 1 9 2B9 8 7 6C10 9 9 0D10 10 9 14.下面程序的输出结果是() a=1;b=2;c=2 while(a<b<c) {t=a;a=b;b=t;c--} printf ("%d,%d,%d",a,b,c);A1,2,oB2,1,0C1,2,1

第1个回答  2012-07-26
第一题:D
第一次s+=a++就是s=s+(a++)=0+5=5,然后a自加1变为6,第二个 s+=a++就变成了s=5+6=11,a自加过后变成了7;
第二题:B
do while循环最少都要执行一次循环,先执行do里面的循环体,所以x--=23,x=22,!x=0,退出循环
第三题:D
进入for循环,x=10,i=0,x>8为真,执行循环体,x--=10,y=10,此时x=9,然后回去执行y=++i之后,y=1 i=1,继续回到for循环的开始,i=1,x=9,x>8为真,进入循环体,x--=9,y=1,此时x=8,回去y=++i,y=2,i=2,继续回到for循环的开始,i=2,x=8,x>8为假,退出循环。
第四题:A
“<”“>”属于是逻辑运算,运算出来的值只能是0或1,a=1;b=2;c=2,先判定while循环的条件语句,(a<b<c)从左往右运算,a<b为真,表达式的值为1,然后1<c为真,整个条件语句就为真,进入循环体,(t=a;a=b;b=t;就是做a与b值的交换)此时a=2,b=1,c--=2,c=1;回到条件判定,a<b为假,表达是的值为0,然后0<c为真,整个条件表达式为真,执行循环体中的语句过后,a=1,b=2,c--=1,c=0,回到条件判定,a<b为真,表达式的值为1,然后1<c为假,整个条件语句就为假,退出while循环,打印出最后a b c的值。
第2个回答  2012-07-26
1.D a++是先原值计算后加1。在第一个S+=a++(即S=S+a)中,a++为5,s=5+0=5,计算后,a++自动加1,后面同理。

2.B 循环语句中,当!x为真时循环,即x为真则停止。x--同样先计算后减1,打印出来应该是原值,即23。判断x时,此时x--即,x为22,为真(只有为0时才假),停止循环

3.D ,++i跟i++不同,++i则是先自加1后计算

4.A,a<b<c分成两部分来看,即(a<b)<c。。a<b为真,则它(a<b)的值为1,a<b<c,即1<c,此时也为真,所以进入循环。 进入循环后,a跟b对调,c减1,此时a<b不成立,即为0,而C自减1后为1,此时0<1,仍然为真,继续进入循环,a跟b再次对调,c--,此刻a=1,b=2,c=0,再次判断a<b<c,此时已不成立,退出循环,打印abc,即120
第3个回答  2012-07-26
1. D 运算过程中a 为局部变量 外面的全局变量a不起作用 第一个s+= 的时候 a=5 ,s=5 结 束
此 次加法后 a=6,第二次加的时候s=11,故D正确
2. B 当x为非0时 !x 为假 故只会执行一次打印操作
3. D 同1,注意++i和,i++的区别,前者是本次运算结束之前就进行了自加1,后者是本次运 算 结束之后才进行自加1
4.答案是 1 2 2 while 一次也没有运行本回答被网友采纳
第4个回答  2019-06-10
答案选择:D
主要原理是在C语言中,break是指跳出该循环结构,执行后面的语句;
而continue是指跳出本次循环,直接执行下次循环,再该题目中,当i=0的时候进入while循环,由于i<1,所以不执行后面的语句,直接进入下次循环,而i的值让然是0,后面就一直这样执行,i++的增值过程根本不会执行到。
第5个回答  2020-02-05
当循环体遇到continue时,不再执行后面的代码从头开始执行循环,所以循环一直在执行这两句
while(i<10)
{
if
(i<1)
continue;
有于没有执行到break和i++所以永远也不能结束循环答案是D
相似回答