}
while(!
x);//当x等于0时判断表达式为真,执行循环体,当x非零时判
断表达死为假,
//终止循环,如果去掉!
那么将陷入死循环
}
21、选B循环执行流程如下:
1>当n=9,9>6成立,执行循环体,
n--
n=8
输出8
2>n=8,8>6成立,执行循环体,
n--
n=7
输出7
3>n=7,7>6成立,执行循环体,
n--
n=6
输出6
4>n=6,6>6不成立,退出循环,
因此输出的结果是:
876
故选B
22、第一个空;i<=9或i<10
第二个空:
j%3或j%3!
=0
注意:
第一个空不能习惯性地填i<100或i<=99,因为for循环体当中,有j=i*10
+6;将会超出100的范围,显然是错误的
第二个空的功能是将不能被3整除的数直接跳过,直接进行下一趟循环,直到
循环终止
23、填b=i+1
首先对于b来说,只进行过定义,没有初始化,因此,所填的空一定是关于b的初始
化,否则下边c+=b语句就会出错,再结合输出流中的奇数之和时c减去11,这11恰好是循环次数,也就是说循环一次,奇数的和多1,因此所要填的空一定和i相关,因此推出要填b=i+1
24、选C
默认情况下,if语句,for语句,while语句都只能控制一个循环语句,若想要控制
多个循环语句,必须用花括号将循环体括起来,形成复合语句。
本题中第二个for语句属于第一个for的循环体,if语句有属于第二个for语句的
真语句,m=1;也属于if条件语句的真语句,也就是说从第二个for语句到m=1语句都是第一个for的循环体,但是n++不是任何一个for语句或if条件语句的真语句,即n++是第一个for语句的下一个语句,因此不管第一个for语句、第二个for语句、if语句怎么样执行,都与n++无关,最终n++语句必然执行,因此输出的n一定是1
故选C
阶段测试2
1、选B
对于本题中的func((expl,exp2),(expl,exp2))中,(expl,exp2)和(expl,exp2)
都是逗号表达式,逗号表达式的
最终值是一个,也就是说(expl,exp2)和(expl,exp2)的最终结果是两个值,因此实
参是两个!
2、选C
要读懂本题,要了解一下几个内容:
1)、本函数执行的顺序(简称程序流程):
大致地讲,本程序先从main函数入口开始执行程序,就是从voidmain()
进入程序,再执行intx=6,y=7,z=8,r;这一句,接下来当然是执行r=func((x--,y++,x+y),z--);这一句,当执行完这一句后,程序不再在主函数中继续往下执行,而是直接跳到被调函数去执行,也就是直接跳去intfunc(inta,intb)中去执行,等执行完被调函数后,程序再回到主函数中接着执行,也就是说主函数既是函数的入口,也是函数的出口。
2)、自增自减在函数调用中作实参:
自增自减在函数中作实参,如果是前自增,那么在执行完整句表达式之前就已经将自增的值发送到相对应的形参了
举例:
#include