这道题怎么做?. main() { int a=1,b=10; do {b-=a;a++;}while(b--<0); printf(″a=%d,b=%d\n″,a,b); }

作者&投稿:冶影 (若有异议请与网页底部的电邮联系)
# include " stdio.h "void main ( ){ int a = 1 , b = 10do { b - = a ; a + + ; }while ( b - -~

while ( b - - < 0 )

是先执行判断b是否<0,判断过后就执行b减1;再根据判断结果,不满足条件就退出循环。
所以a的值是2,b的值是8。
正确答案是D。

do{}while() 循环的运行过程是:先运行 {} 里面的语句,然后再进行条件判断 。
所以,上面的代码是先执行
b-=a ; // b = 9 ;
a++ ; // a = 2 ;
然后再执行判断while(b--<0)
这句话执行完后,b = 8 ;

是这样的,int a=1,b=10;此时a是1,b是10.然后do b=b-a,a++,如果b<0,继续循环,否则跳出。每判断一次b要减1,最后输出a,b的值。按照这个思路第一次while循环b是9,a是2。此时b不小于0,跳出循环,但是b--还是要执行的,也就是说b为8,输出a=2,b=8

do之后b=9,a=2
然后while,b=9不小于0,然后自减1为8,跳出循环
执行printf,a=2,b=8

用编译器做呀!难道要自己用脑袋做吗?
首先a=1,b=10,然后do{}while();
b=9,a=2;b=8
b=6,a=3;b=5
b=2,a=4;b=1
b=-3,b=-4跳出循环
printf:a=4,b=-4
你用编译器检查一下吧

a=2 b=8;
//while 的条件 b--<0 先执行一次do while条件不满足 跳出 b--


天祝藏族自治县13526261328: 这道题怎么做?. main() { int a=1,b=10; do {b - =a;a++;}while(b--<0); printf(″a=%d,b=%d\n″,a,b); } -
林复东药: do之后b=9,a=2 然后while,b=9不小于0,然后自减1为8,跳出循环 执行printf,a=2,b=8

天祝藏族自治县13526261328: 这道题要怎么做呀? -
林复东药: main ( ) { int p[7] = { 11, 13, 14, 15, 16, 17, 18}, i = 0, k = 0; while (i < 7 && p[i ]% 2 )//循环条件i<7并且p[i]是奇数 ,就是说遇到p[i]是奇数了就停止了.{ k = k + p[i]; i++;//看看k,是个累加器,看来是加了p中第一个偶数之前所有的奇数. } printf(" %d \n", k); } 那么最后输出的就是11+13=24喽..

天祝藏族自治县13526261328: main() { int x=1; do { printf("%d",x -- ); }while(!x); }这题怎么做 -
林复东药: 分析如下: main(){ int x=1;do{printf("%d",x--); /*先输出1,然后x--,x变成0 */}while(!x); /* !0就是-1,然后再循环,输出0,x变成-1,!(-1)就是0 */ } 循环共进行2轮. 第1次输出1,第2次输出0(连在一起,就是10),然后退出循环.

天祝藏族自治县13526261328: 怎么做这道题有以下程序:main(){inti,n=0;for(
林复东药: i=2 2除3取余数=2不为0 则n+1=1 n+1=2 3/3取余=0 n+1=3 输出3 选c 可能不对 忘了do while 语句了 回去了在查查. 说的不够有顺序,最好画个流程框图

天祝藏族自治县13526261328: 这道C语言题目该怎么做? -
林复东药: #include<stdio.h> main() { int x=8,y=6,z=4; /* x,y,z分别表示长,宽,高 */ int c,s,v; /* c,s,v分别表示长方体的周长,面积,体积 */ c=4*(x+y+z); s=2*(x*y+y*z+x*z); v=x*y*z; printf("c=%d,s=%d,v=%d",c,s,v); }

天祝藏族自治县13526261328: C语言高手进来解释一下这道题!main(){inti=010,j
林复东药: 以0开头的是表示8进制,8进制的10肯定是8了 第2个不用说了吧 以0x开头的是表示16进制,结果为16也很明显

天祝藏族自治县13526261328: C语言请详细讲解一下这道题,谢谢有以下程序:main(intar
林复东药: 运行结果是 6 你的程序中有中文引号,我改了一下,并介绍一下程序流程 int fun(); //这个地方要有个函数声明 main(int argc,char*argv[]) { int n,i=0; //定义n、i,初始化i...

天祝藏族自治县13526261328: 这道C语言编程题怎么做? -
林复东药: 都是浮云,我给你正确答案:#include"stdio.h"void main(){ float x , y; printf("please input x:\n"); scanf("%f",&x); if (x <1) y= x * x; else{ if ( x >=1 && x<=10) y= 3*x-1; else y=x/5; } printf("x = %f, y =%f\n", x , y);}

天祝藏族自治县13526261328: C语言程序题
林复东药: 1 4 3 2 8 6 5 7 3 7 2 5 4 8 6 1二维数组第一次循环K=1 i=0 是a[0][0]与a[1][1]比较大小,如果a[1][1]>a[0][0]两者交换位置,显然a[1][1]>a[0][0]则两者位置交换,第二次循环a[1][1]与a[2][2]重复上面的算法第三次循环a[2][2]和a[3][3]重复上面算法.得到新的二维数组. 6 4 3 2 8 2 5 7 3 7 1 5 4 8 6 1 再输入第一行. 不知道这样说你明不明白. PS; 是 输出第一行不是输入.

天祝藏族自治县13526261328: 这道题c语言选择题怎么做的 -
林复东药: 执行main:调用fun,传参(4、变量x地址) 首层fun :形参n=4,*s=x的地址(值0).执行else{......} 首先函数递归调用自己,传参(4-1,首层变量f的地址),(*s=f这句要等前面递归完成才会执行) 递归1fun:形参n=3,*s=首层变量f的地址....

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网