1、14、C语言中while和do-while循环的主要区别是( ) (A) do-while的循环体至少无条件执行一次 (B) while的循环控制条件比do-while的循环控制条件严格 (C) do-while允许从外部转到循环体内 (D) do-while的循环体不能是复合语句 15、以下能正确计算1×2×3×...×10的程序段是( ) (A) do{i=1; s=1; s=s*i; i++; }while(i<=10); (B) do{i=1;s=0; s=s*i; i++; }whil
2、e(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); 16、以下程序段( ) x=-1; do{x=x*x;}while(!x); (A) 是死循环 (B) 循环执行二次 (C) 循环执行一次 (D) 有语法错误 18、若有如下语句 int x=3; do{printf("%d\n",x-=2);}while(!(--x))
3、
则上面程序段( )
(A) 输出的是1
(B) 输出的是1和-2
(C) 输出的是3和0
(D) 是死循环
19、下面程序的功能是计算正整数2345的各位数字平方和,请选择填空。①( )②( )
#include
4、)*(n%10)
(C) n/10
(D) (n/10)*(n/10)
② (A) n/1000
(B) n/100
(C) n/10
(D) n%10
20、下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环。请选择填空。①( )②( )
#include
5、hile( ② );
}
① (A) num%100/10==3
(B) num/100%10==3
(C) num%10/10==3
(D) num/10%10==3
② (A) !num
(B) num>0==0
(C) !num==0
(D) !num!=0
21、等比数列的第一项a=1,公比q=2,下面程序的功能是求满足前n项和小于100的最大n,请选择填空。①( )②( )
#include
6、um=0;
do{ ① ;
++n; a*=q;
}while(sum<100);
② ;
printf("%d\n",n);
}
① (A) sum++
(B) sum+=a
(C) sum*=a
(D) a+=sum
② (A) n=n-2
(B) n=n
(C) n++
(D) n-=1
22、下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除。请选择填空。①( )
#include
7、j,k;
do{i++; k=316-13*i;} while( ① );
j=k/11;
printf("316=13*%d+11*%d",i,j);
}
① (A) k/11
(B) k%11
(C) k/11==0
(D) k%11==0
23、下面程序的运行结果是( )
#include
8、8
(D) 0
24、若运行以下程序时,从键盘输入ADescriptor〈CR〉(〈CR〉表示回车),则下面程序的运行结果是( )
#include
9、 v1+=1;
default: v0+=1; v2+=1;
}
}while(c!='\n');
printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);
}
(A) v0=7,v1=4,v2=7
(B) v0=8,v1=4,v2=8
(C) v0=11,v1=4,v2=11
(D) v0=12,v1=4,v2=12
25、下面程序的运行结果是( )
#include
10、while(b--<0); printf("a=%d,b=%d\n",a,b); } (A) a=3,b=11 (B) a=2,b=8 (C) a=1,b=-1 (D) a=4,b=9 26、下面有关for循环的正确描述是( ) (A) for循环只能用于循环次数已经确定的情况 (B) for循环是先执行循环体语句,后判断表达式 (C) 在for循环中,不能用break语句跳出循环体 (D) for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 27、对for(表达式1; ; 表达式3)可理解为(
11、 ) (A) for(表达式1; 0; 表达式3) (B) for(表达式1; 1; 表达式3) (C) for(表达式1; 表达式1; 表达式3) (D) for(表达式1; 表达式3; 表达式3) 28、若i为整型变量,则以下循环执行次数是( ) for(i=2;i==0;) printf("%d",i--); (A) 无限次 (B) 0次 (C) 1次 (D) 2次 29、以下for循环的执行次数是( ) for(x=0,y=0;(y=123)&&(x<4);x++); (A) 是无限循环
12、 (B) 循环次数不定 (C) 执行4次 (D) 执行3次 30、以下不是无限循环的语句为( ) (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; 31、下面程序段的运行结果是( ) for(y=1;y<10;) y=((x=3*y,x+1),x-1); printf("x=%d,y=%d",x,y); (A) x=27,y=27 (B) x=12,y=13
13、 (C) x=15,y=14 (D) x=y=27 32、下面程序段的运行结果是( ) for(x=3;x<6;x++) printf((x%2)?("**%d"):("##%d\n"),x); (A) **3 ##4 **5 (B) ##3 **4 ##5 (C) ##3 **4##5 (D) **3##4 **5 33、下列程序段不是死循环的是( ) (A) int i=100; while(1)
14、 { i=i%100+1; if(i>100) break; } (B) for( ; ; ); (C) int k=0; do{++k;}while(k>=0); (D) int s=36; while(s); --s; 34、执行语句for(i=1;i++<4; ); 后变量i的值是( ) (A) 3 (B) 4 (C) 5 (D) 不定 35、有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;
15、若分成9个零件一组,则多5个零件。下面程序是求这堆零件总数,请选择填空。①( )
#include
16、 )
#include
17、c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{
a+=i;
① ;
c+=b;
}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n", ② );
}
① (A) b=i--
(B) b=i+1
(C) b=i++
(D) b=i-1
② (A) c-10
(B) c
(C) c-11
(D) c-b
38、下面程序的运行结果是( )
#include
18、 int i; for(i=1;i<=5;i++) switch(i%5) { case 0: printf("*"); break; case 1: printf("#"); break; default: printf("\n"); case 2: printf("&"); } } (A) #&&&* (B) #& & &* (C) # & & & * (D) #& * 3
19、9、下面程序的运行结果是( )
#include
20、因数5的个数即可)①( )
for(k=0,i=5;i<=1000;i+=5)
{
m=i;
while( ① ){k++; m=m/5;}
}
(A) m%5=0
(B) m=m%5==0
(C) m%5==0
(D) m%5!=0
41、下面程序的功能是求算式xyz+yzz=532中x,y,z的值(其中xyz和yzz分别表示一个三位数),请选择填空。①( )②( )
#include
21、 x<10; x++) for(y=1; y<10; y++) for( ① ; z<10; z++) { i=100*x+10*y+z+100*y+10*z+z; if( ② ) printf("x=%d,y=%d,z=%d\n",x,y,z); } } ① (A) z=x (B) z=1 (C) z=0 (D) z=y ② (A) i/result==1 (B) i=result (C) i!=result (D) i==result 42、下面程序是输出一个正整
22、数等差数列的前十项,此数列前四项之和及之积分别是26和880,请选择填空。①( )②( )
#include
23、0;i<10;i++) printf("%3d", ② ); } printf("\n"); } ① (A) d<=a (B) 空 (C) d<=5 (D) d void main() { int i,b,k=0; for(i=1;i<=5;i++) { b=i%2; while(b-->=0) k
24、 } printf("%d,%d",k,b); } (A) 3,-1 (B) 8,-1 (C) 3,0 (D) 8,-2 44、以下正确的描述是( ) (A) continue语句的作用是结束整个循环的执行 (B) 只能在循环体内和switch语句体内使用break语句 (C) 在循环体内使用break语句或continue语句的作用相同 (D) 从多层循环嵌套中退出时,只能使用goto语句 45、下面程序段( ) for(t=1;t<=100;t++) { scanf("%d",&x); if(x<0) continue; printf("%3d",t); } (A) 当x<0时整个循环结束 (B) x>=0时什么也不输出 (C) printf函数永远也不执行 (D) 最多允许输出100个非负整数






