B) for循环中设置if (条件)continue,当条件成立时中止本层循环。 C) for循环中设置if (条件)break,当条件成立时中止本层循环。 D) for循环中设置if (条件) continue,当条件成立时暂停程序执行。 5.2.22 下面关于for循环的正确描述是(D )。
A) for循环只能用于循环次数已经确定的情况。 B) for循环是先执行循环体语句,后判断表达式。 C) 在for循环中,不能用break语句跳出循环体。 D) for循环的循环体语句中,可以包含多条语句。
5.2.23 循环语句for(i=0,x=0; !x&&i<=5; i++);的执行次数为(B)。
A) 5次 B) 6次 C) 1次 D) 无限 5.2.24 以下程序段的输出结果是( 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 5.2.25 以下描述正确的是( C )。
A) goto语句只能用于退出多层循环 B) switch语句不能出现continue语句 C) 只能用continue语句来终止本次循环 D) 在循环中break语句不能独立出现 5.2.26 以下不是无限循环的语句是( A )
A) for(y=0,x=1;x>++y; x=i++) i=x; B) for(; ; x++=i);
C) while(1) { x++; }
D) for(i=10; ; i- -) sum+=i;
5.2.27 下面程序段的输出结果是( D )。
int i,sum;
for(i=1;i<=10;i++) sum+=sum printf(“%d\\n”, i);
A) 10 B) 9 C) 15 D) 11 5.2.28 下面程序段的运行结果是(D )。
for(x=3; x<6; x++) printf((x%2)?(“**%d”):(“##%d\\n”),x);
A) **3 B)##3 C) ##3 D) **3##4 ##4 **4 **4##5 **5 **5 ##5
5.2.29 执行语句for(i=1; i++<4; );后变量i的值是( C )。
A) 3 B) 4 C) 5 D) 不定 5.2.30 下面程序段运行结果是(C)。
int i,j,k;
for(i=2;i<6;i++,i++) { k=1;
for(j=i; j<6; j++) k+=j; } printf(“%d\\n”,k);
A) 4 B) 5 C) 10 D) 7 5.2.31 下面程序段( D )。
for( t=1; t<=100; t++) { scanf(“%d”, &x); If(x<0) continue; printf(”=”,t); }
A) 当x<0时整个循环结束 B) x>=0时什么也不执行
C) printf函数永远也不执行 D) 最多允许输出100个非负数 5.2.32 下面程序段运行结果是( A)。
int i,j,a=0;
for(i=0;i<2;i++)
{ for(j=0; j<4; j++) {if(j%2) break; a++;} a++; } printf(“%d\\n”,a);
A) 4 B) 5 C) 6 D) 7 5.2.33 下面程序的运行结果是( B)。
#include
for(i=0;i<2;i++) { x++;
for(j=0;j<=3;j++)
{ if(j%2) continue; x++; } x++; }
printf(“x=%d\\n”,x); }
A) x=4 B) x=8 C) x=6 D) x=12 5.2.34 下面程序段运行结果是( A)。
#include
for(i=1; i<=5; i++) { if(i%2) printf(”*”); else continue; printf(“#”); }
printf(“$\\n”);
}
A) *#*#*#$ B) #*#*#*$ C) *#*#$ D) #*#*$
5.2.35 有一堆零件(100~200之间),如果分成4个零件一组的若干组,则多2
个零件;若分成7个零件一组,则多3个零件;若分9个零件一组,则多5个零件。下面程序是求这堆零件的总数,请选择填空。 #include
for(i=100; i<201; i++) if((i-2)%4==0)
if(!(i-3)%7) if( D )
printf(”%d”, i); }
A) i%9=5 B) i%9!=5 C) (i-5)%9!=0 D) i%9==5
5.3编程题
5.3.1 输入一行字符,分别统计出其中字母、数字和其它字符的个数。 #include
while( (ch=getchar() )!=‘\\0’)
{ if(ch>’a’&&ch<‘z’||ch>’A’&&ch<‘Z’ ) i++; //统计字母
else if(ch>’0’&&ch<‘9’) j++; //统计数字
else k++; //统计其它 }
printf(“字母个数:%d,数字个数:%d,其他字符:%d”,i, j, k);
5.3.2 求100~200之间不能被3整除也不能被7整除的数。 #include
for (i=100;i<=200;i++) {
if (i%3==0&&i%7==0) printf(“]”,i); } } 5.3.3 求 1?11111??????23499100。
#include
main() {
int i; float s=0,k=1; for (i=1;i<=100;i++) { s=s+ k / i ; k = -k ; }
printf(\ } 5.3.4 求
111????1?22?3n?(n?1),直到某一项小于0.001时为止。
void main()
{
int i ;
float t=0.5,s=0,i=1; while (t>=0.001) { s=s+t; i++;
t=1/(i*(i+1)); }
printf(\ }
5.3.5 用迭代法求
X?a。迭代公式为:
Xn?1?1?a?Xn??2?Xn????,要求迭代精度满足
。|Xn?1?Xn|?0.00001提示:a
#include
Void main( ) {
由键盘输入,x1=a/2.
float x1,x2,a,k; scanf(\
x1=a/2; x2=(x1+a/x1)/2; while(fabs(x1-x2)>=0.00001) { x1=x2;
x2=(x1+a/x1)/2; } printf(\ %f\}
5.3.6 假设x,y是整数,编写程序求xy的最后3位数,要求x,y从键盘输入。 #include
{ int x. y, i, b, s, g, san; long m=1;
scanf(“%d,%d”,&x, &y); for(i=1; i<=y; i++) m=m*x
san=m00; //求出最后3位数
b=san/100; //求出最后3位数的百位 s=san0/10; //求出最后3位数的十位 g=san; //求出最后3位数的个位 printf(“%d,%d,%d”,b,s,g); }
5.3.7 从键盘上输入10个整数,求其中的最大值和最小值。 #include
{ int x,i,max,min; scanf(“%d”,&x); min=max=x;
for (i=2;i<=10;i=i++) {
scanf(“%d”,&x);
if(x
printf(“%d,%d”,max,min); }
5.3.8 (1)判断一个数是否为素数。(2)输出3-100之间的所有素数。 (1)判断m素数 #include
scanf(“%d”,&m); k=sqrt(m);