高中数学《循环语句》同步练习1 新人教B版必修3由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“数学必修三循环语句”。
《循环语句》复习班测试题
一.选择题(40分)1.下面程序段 int k=2;while(k=0){printf(“%d”,k);k--;} 则下面描述中正确的是 C。
A)while循环执行10次 B)循环是无限循环
C)循环题语句一次也不执行 D)循环体语句执行一次 2.下列表达式中,(B)不满足“当x的值为偶数时值为真,为奇数时值为假”的要求。
A)x%2==0 B)!x%2!=0 C)(x/2*2-x)==0 D)!(x%2)
3.以下程序段的循环次数是 B。
for(i=2;i==0;)printf(“%d” , i--);
A)无限次 B)0次 C)1次 D)2次
4.下列关于break语句的叙述不正确的是(C)
A break语句可用在循环体中,它将使执行流程跳出本层循环体。
B break语句可用在switch语句中,它将使执行流程跳出当前switch语句。C break语句可用在if语句中,它将使执行流程跳出当前if语句。D break语句在一层循环体中可以多次出现。
5.下面程序的输出结果是。
main(B)
{ int x=9;
for(;x>0;x--){ if(x%3==0){
printf(“%d”,--x);
continue;}
}
}
A)741 B)852 C)963 D)875421
6.以下不是死循环的程序段是。D
A)int i=100;B)for(;;);
while(1){ i=i%100+1;if(i>100)break;
}
C)int k=0;D)int s=36;do { ++k;} while(k>=0);while(s);--s;
7.下述程序段的运行结果是 C。
用心
爱心
专心int a=1,b=2, c=3, t;while(a
A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,1
8.能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是。C
A)(x>=1)&&(x=200)&&(x
B)(x>=1)| |(x=200)| |(x
C)(x>=1)&&(x=200)&&(x
D)(x>=1)| |(x=200)| |(x
9.下述语句执行后,变量k的值是。B int k=1;while(k++
A)10 B)11 C)9 D)无限循环,值不定
10.设:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=c>b)||(n=c>d)后n的值为。C A)1 B)3 C)2 D)4
11.下面for循环语句(B)。
int i,k;
for(i=0, k=-1;k=1;i++, k++)
printf(“***”);
A)判断循环结束的条件非法 B)是无限循环
C)只循环一次 D)一次也不循环
12.语句while(!E);括号中的表达式!E等价于 C。
A)E==0 B)E!=1 C)E!=0 D)E==1
13.下面 B 是错误的if语句(设int x,a,b;)
A)if(a=b)x++;B)if(a=
C)if(a-b)x++;D)if(x)x++;
14.执行语句for(i=1;i++
A)3 B)4 C)5 D)不定
15.以下程序段。C x=-1;do
{ x=x*x;} while(!x);
A)是死循环 B)循环执行2次 C)循环执行1次 D)有语法错误
16.下面程序的功能是在输入的一批正数中求最大者,输入0结束循环,选择 B 填
用心
爱心
专心空。main(){ int a,max=0;
scanf(“%d”,&a);
while(【 】){
if(max
scanf(“%d”,&a);
}
printf(“%d”,max);}
A)a==0 B)a C)!a==1 D)!a
17.以下不是死循环的语句是。A
A)for(y=9,x=1;x>++y;x=i++)i=x;
B)for(;;x++=i);
C)while(1){ x++;}
D)for(i=10;;i--)sum+=i;
18.下面程序段的运行结果是。D x=y=0;while(x
A)20,7 B)6,12 C)20,8 D)4,6
19.以下for循环的执行次数是 C。for(x=0,y=0;(y=123)&&(x
A)无限循环 B)循环次数不定 C)4次 D)3次
20.以下程序输出结果是 B。main(){ int x=1,y=0,a=0,b=0;
switch(x){
case 1:switch(y){
case 0 : a++;break;
case 1 : b++;break;
}
case 2:a++;b++;break;
case 3:a++;b++;}
printf(“a=%d,b=%d”,a,b);}
A)a=1,b=0 B)a=2,b=1 C)a=1,b=1 D)a=2,b=2
用心
爱心
专心
二.填空题(10分)
1.C语言三个基本结构语句分别是 顺序 语句,选择 语句和 循环 语句。
2.至少执行一次循环体的循环语句是 do while ;
3.将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表达式 ___ y%4==0&&y%100!=0||y%400==0 __________
4.计算下列分段函数的 if 语句是_ __。y= 1 x>0 y= 0 x=0 y=-1 x
5.程序段
for(a=1,i=-1;-1
{ a++;printf(“%2d”,a);};
printf(“%2d”,i);的运行结果是。
三.判断题(10分)1.在while循环中允许使用嵌套循环,但只能是嵌套while循环。【x 】 2.在实际编程中,do-while循环完全可以用for循环替换。【 x】 3.continue语句只能用于三个循环语句中。【x】 4.在不得已的情况下(例如提高程序运行效率),才使用goto语句。【 v】 5.语句标号与C语言标识符的语法规定是完全一样的。【v】
6.for循环的三个表达式可以任意省略,while,do-while也是如此。【 x】 7.多个case可以执行相同的程序段。【 v】
8.while的循环控制条件比do-while的循环控制条件严格。【 v 】 9.if语句中的表达式不限于逻辑表达式,可以是任意的数值类型。【x 】 10.do-while循环的while后的分号可以省略。【x 】
四.程序阅读题
1.写出下面程序运行的结果。main(){ int x,i;
for(i=1;i
用心
爱心
专心
x=i;
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
printf(“%d ”,x);
} } 28 70
2.写出下面程序运行的结果。
下面程序将输入的大写字母改写成小写字母输出,其他字符不变;请判断下面程序的正误,如果错误请改正过来。main(){ char c;
c = getchar();c =(c>=’A’ && c
printf(“%c”,c);} 3.写出下面程序运行的结果。main(){ int a,b;
for(a=1,b=1;a
if(b>=20)break;
if(b%3==1){ b+=3;continue;}
b-=5;
}
printf(“%dn”,a);} 8 4.写出下面程序运行的结果。main(){ int k=1,n=263;
do { k*= n%10;n/=10;} while(n);
printf(“%dn”,k);} 36 5.写出下面程序运行的结果。main(){ int i,k=0;
for(i=1;;i++)
用心
爱心
专心{
k++;
while(k
k++;
if(k%3==0)goto loop;
}
} loop:
printf(“%d,%dn”,i,k);} 2,3
六.编程题
1.输入两个正整数m和n,求其最大公约数和最小公倍数。10
2.输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。10
3.求(即求1!+2!+3!+„+19!+20!)。5
4.任意范围内既能被5整除,又能被7整除的数的和5
5.提高题:打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方之和等于该数本身。5
用心
爱心
专心 6