循环1
一、单项选择题
1、以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是__A____。
A. if((a>b)&&(b>c)) k=1; B. if((a>b)||(b>c)) k=1
else k=0; else k=0;
C. if(a<=b) k=0; D. if(a>b) k=1;
else if(b<=c) k=1; else if(b>c) k=1;
else k=0;
2、C语言的do_while循环中,循环由do开始,用while结束;而且在while表达式后面的___B___不能丢,它表示do_while循环的结束。
A. \n B. “;” C. “%” D. “,”
3、执行程序段: x=-1; do { x=x*x;} while(!x); 的结果是__C____。
A. 死循环 B. 循环执行2次
C. 循环执行一次 D. 有语法错误
4、下面程序段的输出结果是__D____。
int i,sum;
for(i=1;i<=10;i++)sum+=sum;
printf("%d\n",i);
A. 10 B. 9 C. 15 D.不确定
5、以下叙述正确的是___C___。
A. for循环中设置for(条件)break,当条件成立时中止程序执行。
B. for循环中设置for(条件)continue,当条件成立时中止本层循环。
C. for循环中设置for(条件)break,当条件成立时中止本层循环。
D. for循环中设置for(条件)break,当条件成立时暂停本次循环。
6、下面有关for循环的正确描述是__D____。
A. for循环只能用于循环次数已经确定的情况。
B. for循环是先执行循环体语句,后判断表达式。
C. 在for循环中,不能用break语句跳出循环体。
D. for循环的循环体语句中,可以包含多条语句。
7、以下能正确计算1×2×3×4...×10的程序段是__C____。
A. do {i=1; s=1; s=s*i; i++; } while(i<=10);
B. do {i=1; s=0; s=s*i; i++; } while(i<=10);
C. i=1; s=1; do {s=s*i; i++; } while(i<=10);
D. i=1; s=0; do {s=s*i; i++; } while(i<=10);
8、有以下程序 B
#include
void main()
{ int a=5,b=4,c=3,d=2;
if (a>b>c) printf("%d\n", d);
else if ( (c-1>=d) ==1) printf("%d\n", d+1);
else printf("%d\n", d+2);
}
执行后输出结果是__B____。
A. 2 B. 3
C. 4 D. 编译时有错,无结果
9、以下程序段的输出结果是__D____。
int x,i;
for (i=1;i<=100;i++)
{ x=i; if (++x%2==0) if (++x%3==0) if (++x%7==0) printf("%d ",x); }
A. 39 81 B. 42 84 C. 26 68 D. 28 70
10、设有程序段: int k=10; while(k=0) k=k-1; ,则下面描述正确的是___C___。
A. while 循环执行10次 B.循环是无限循环
C. 循环体语句一次也不执行 D.循环体语句执行一次
11、有以下程序:
#include
void main() { while(putchar(getchar())!='?'); }
当输入"china?"时,程序的执行结果是_D_____。
A. china B. dijob C.