}
A.x=4,y=4,z=1B.x=5,y=4,z=3C.x=5,y=4,z=1D.x=5,y=5,z=1
9.inti=1,s=0;
while(i<100){s+=i++;if(i>100)break;}
执行以上程序段后,s的值是()。
A.1到101的和B.1到100的和C.1到99的和D.以上均不是
10.假定i和j为int型变量,则执行以下语句后i的值为()。
inti=1;
switch(i++){
case1:
for(j=0;j<9;j++)if(i==1)break;
case2:
for(j=1;j<10;j++)if(i==2)break;
case3:
printf(“i=%d\n”,i);
}
A.0B.1C.9D.10
11.假定a和b为int型变量,则执行以下语句后b的值为()。
a=1;b=10;
do{b-=a;a++;}
while(b--<0);
A.9B.-2C.-1D.8
12.设x和y均为int型变量,则执行下面的循环后,y的值为()。
for(y=1,x=1;y<=50;y++){
if(x>=10)break;
if(x%2==1){x+=5;continue;}
x-=3;
}
A.2B.4C.6D.8
13.求整数1至10的和并存入变量s,下列语句中错误的是()。
A、s=0;for(i=1;i<=10;i++)s+=i;B、s=0;i=1;for(;i<=10;i++)s=s+i;
C、for(i=1,s=0;i<=10;s+=i,i=i+1);D、for(i=1;s=0;i<=10;i++)s=s+i;
14.若sizeof(int)为2,计算1至10的乘积,下列语句序列中正确的是()。
A、intjc=1;for(inti=2;i<=10;i++)jc*=i;
B、for(floatjc=1,inti=2;i<=10;i++,jc*=i);
C、floatjc=1;for(inti=2;i<=10;jc*=i,i=i+1);
D、for(floatjc=1;i=2;i<=10;i++)jc*=i;
15.下列语句中,哪一个可以输出26个大写英文字母()。
A、for(a=’A’;a<=’Z’;printf(”%c”,++a));B、for(a=’A’;a<’Z’;a++)printf(”%c”,a);
C、for(a=’A’;a<=’Z’;printf(”%c”,a++));D、for(a=’A’;a<’Z’;printf(”%c”,++a));
16.与语句while(i>=0&&i<=10){if(i++==5)continue;printf(”%f\n”,1.0/(i-5));}
功能相同的是()。
A、for(;i>=0&&i<=10;i++)if(i!
=5)printf(”%f\n”,1.0/(i-5));
B、for(;i>=0&&i<=10;i++)if(i==5)printf(”%f\n”,1.0/(i-5));
C、for(;i>=0&&i<=10;i++)if(i!
=5)printf(”%f\n”,1.0/(i-5));elsebreak;
D、for(;i<=0&&i>=10;i++)if(i!
=5)printf(”%f\n”,1.0/(i-5));
17.下列语句中与语句while
(1){if(i>=100)break;s+=i;i++;}功能相同的是()。
A、for(;i<100;i++)s=s+i;B、for(;i<100;i++;s=s+i);
C、for(;i<=100;i++)s+=i;D、for(;i>=100;i++;s=s+i);
18.在C语言中,下列说法中正确的是()。
A.不能使用“do语句while(条件)”的循环
B.“do语句while(条件)”的循环必须使用“break”语句退出循环
C.“do语句while(条件)”的循环中,当条件为非0时将结束循环
D.“do语句while(条件)”的循环中,当条件为0时将结束循环
19.C语言中while和do-while循环的主要区别是( )。
A)do-while的循环体至少无条件执行一次
B)while的循环控制条件比do-while的循环控制条件严格
C)do-while允许从外部转到循环体内
D)do-while的循环体不能是复合语句
20.以下描述中正确的是( )。
A)若while循环中循环体语句只有一条可执行语句,就可以不使用复合语句
B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C)在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作
D)do-while循环中,根据情况可以省略while
21设有程序段
intk=10;
while(k)k=k-1;
则下面描述中正确的是( )。
A)while循环执行10次B)循环是无限循环
C)循环体语句一次也不执行D)循环体语句执行一次
22.下列循环语句中有语法错误的是()。
A)while(x=y)5;B)while(0);
C)doprintf(“%d”,a);while(a--);D)dox++while(x==10);
23.已知inti=1;执行语句while(i++<4);后,变量i的值为()。
A)3B)4C)5D)6
24、语句while(!
E);中的表达式!
E等价于( ) 。
A)E==0B)E!
=1C)E!
=0D)E==1
25、下面程序段的运行结果是( )。
a=1;b=2;c=2;
while(a
printf(“%d,%d,%d”,a,b,c);
A)1,2,0B)2,1,0C)1,2,1D)2,1,1
26、下面程序的运行结果是( )。
#include
main()
{
intnum=0;
while(num<=2)
{
num++;
printf(“%d\n”,num);
}
}
A)1B)1C)1D)1
222
33
27、以下能正确计算1×2×3×…×10的程序段是( )。
A)do{i=1;s=1;B)do{i=1;s=0;
s=s*i;s=s*i;
i++;i++;
}while(i<=10);}while(i<=10);
C)i=1;s=1;D)i=1;s=0;
do{s=s*i;do{s=s*i;
i++;i++;
}while(i<=10);}while(i<=10);
28、下面程序的运行结果是( )。
#include
main()
{
inty=10;
do{y--;}while(--y);
printf(“%d\n”,y--);
}
A)-1B)1C)8D)0
29、已知inti=1,j=0;执行下面语句后j的值是()。
while(i)
switch(i)
{case1:
i+=1;j++;break;
case2:
i+=2;j++;break;
case3:
i+=3;j++;break;
default:
i--;j++;break;
}
A)1B)2C)3D)死循环
30、若运行以下程序时,从键盘输入2473<回车>,则下面程序的运行结果是( )。
#include
main()
{
intc;
while((c=getchar())!
=‘\n’)
switch(c-‘2’)
{
case0:
case1:
putchar(c+4);
case2:
putchar(c+4);break;
case3:
putchar(c+3);
default:
putchar(c+2);break;
}
printf(“\n”);
}
A)668977B)668966C)66778777D)6688766
31、下面程序的功能是将从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请选择填空。
#include
main()
{
intm=0,n=0;
charc;
while(()!
=‘\n’)
{
if(c>=‘A’&&c<=‘Z’)m++;
if(c>=‘a’&&c<=‘z’)n++;
}
printf(“%d\n”,m);
}
(1)A)c=getchar()B)getchar()C)scanf(“%c”,c)
(2)A)n:
mB)m:
nC)m:
mD)n:
n
32.下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,请选择填空。
#include
main()
{
inta,max=0;
scanf(“%d”,&a);
while()
{
if(maxscanf(“%d”,&a);
}
printf(“%d”,max);
}
A)a==0B)aC)!
a==1D)!
a
33.下面程序的功能是计算正整数2345的各位数字平方和,请选择填空。
#include
main()
{
intn,sum=0;
n=2345;
do{
sum=sum+;
n=;
}while(n);
printf(“sum=%d”,sum);
}
(1)A)n%10B)(n%10)*(n%10)C)n/10D)(n/10)*(n/10)
(2)A)n/1000B)n/100C)n/10D)n%10
34.以下While循环中,循环体执行的次数是。
k=1;
while(--k)k=10;
A.10次B.无限次C.一次也不执行D.1次
35.有以下程序段,其中n为整型变量。
运行结果为
n=2;
while(n--);printf("%d",n);
A.2B.10C.–1D.0
36.若变量已正确定义,以下不能正确计算1+2+3+4+5的程序段是
A.i=1;s=1;do{s=s+i;i++;}while(i<5);
B.i=0;s=0;do{i++;s=s+i;}while(i<5);
C.i=1;s=0;do{s=s+i;i++;}while(i<6);
D.i=1;s=0;do{s=s+i;i++;}while(i<=5);
37.有以下程序段,其中x为整型变量:
x=-1;do{;}while(x++);printf("x=%d",x);
以下选项中叙述正确的是
A.该循环没有循环体,程序错误B.输出:
x=1
C.输出:
x=0D.输出:
x=-1
38.以下程序的输出结果是()
A、10,19,2B、9,87,6C、10,99,0D、10,109,1
main()
{intx=10,y=10,i;
for(i=0;x>8;y=++i)
printf("%d,%d",x--,y);
}
39.以下程序的输出结果是()
A、20B、31C、321D、210
main()
{intn=4;
while(n--)printf("%d",--n);
}
40.以下程序的输出结果是()
A、#*#*#B、#####C、*****D、*#*#*
main()
{inti;
for(i=1;i<6;i++)
{if(i%2){printf("#");continue;}
printf("*");
}
printf("\n");
}
41.以下程序的输出结果是()
A、编译不通过,无输出B、aceg
C、acegiD、abcdefghi
main()
{inti;
for(i='A';i<'I';i++,i++)printf("%c",i+32);
printf("\n");
}
42.以下循环体的执行次数是()
A、3B、2C、1D、0
main()
{inti,j;
for(i=0,j=1;i<=j+1;i+=2,j--) printf("%d\n",i);
}
43.以下程序段的执行结果是()
A、a=12y=12B、a=12y=12
a=14y=16 a=16y=28
a=16y=20 a=18y=24
C、a=12y=12D、a=12y=12
a=14y=26a=14y=44
inta,y;
a=10;y=0;
do
{a+=2;y+=a;
printf("a=%dy=%d\n",a,y);
if(y>20) break;
}while(a=14);
44.有如下程序
main()
{inti,sum;
for(i=1;i<=3;sum++) sum+=i;
printf("%d\n",sum);
}
该程序的执行结果是()
A、6B、3C、死循环D、0
45.有如下程序
main()
{intx=23;
do
{printf("%d",x--);}while(!
x);}
该程序的执行结果是()
A、321B、23C、不输出任何内容D、陷入死循环
46.有如下程序
main()
{intn=9;
while(n>6){n--;printf("%d",n);}
}
该程序段的输出结果是()
A、987B、876C、8765D、9876
47.有以下程序段
intk=0;
while(k=1) k++;
while循环执行的次数是()
A、无限次B、有语法错,不能执行C、一次也不执行D、执行1次
48.以下程序执行后sum的值是()
A、15B、14C、不确定D、0
min()
{inti,sum;
for(i=1;i<6;i++) sum+=i;
printf("%d\n",sum);
}
49.有以下程序段
intx=3;
do
{printf("%d",x-=2);}while(!
(--x));}
其输出结果是()
A、1B、30C、1–2D、死循环
50.t为int类型,进人下面的循环之前,t的值为0()
while(t=l)
{……}
则以下叙述中正确的是
A、循环控制表达式的值为0B、循环控制表达式的值为1
C、循环控制表达式不合法D、以上说法都不对
51.以下循环中,while循环的次数是()
main()
{inti=0;
while(i<10)
{if(i<1)continue;
if(i==5)break;
i++;
}
……
}
A、1B、10C、6D、死循环,不能确定次数
52.以下程序的输出结果是()
main()
{inta=0,j;
for(j=0;j<4;j++)
{switch(j)
{case0:
case3:
a+=2;
case1:
case2:
a+=3;
default:
a+=5;
}
}
printf("%d\n",a);
}
A、36B、13C、10D、20
二、读程序,写运行结果
1.阅读下列程序,写出程序运行的输出结果。
voidmain()
{inty=9;
for(;y>0;y--)
if(y%3==0){printf(“%d”,--y);continue;}
}
2.阅读下列程序,写出程序运行的输出结果。
voidmain()
{inti=5;
do{
switch(i%2){
case4:
i--;break;
case6:
i--;continue;
}
i--;i--;
printf(“i=%d”,i);
}while(i>0);
}
3.阅读下列程序,写出程序运行的输出结果。
#include
voidmain()
{intk=0;charc='A';
do{
switch(c++){
case'A':
k++;break;
case'B':
k--;
case'C':
k+=2;break;
case'D':
k=k%2;break;
case'E':
k=k*10;break;
default:
k=k/3;
}
k++;
}while(c<'G');
printf("k=%d\n",k);
}
4.阅读下列程序,当输入为:
ab*AB%cd#CD$时,写出程序运行的输出结果。
voidmain()
{charc;
while((c=getchar())!
=’$’)
{if(‘A’<=c&&c<’Z’)putchar(c);
elseif(‘a’<=c&&c<=’z’)putchar(c-32);
}
}
5.阅读下列程序,输入数据:
2,4,写出程序运行的输出结果。
#include
voidmain()
{ints=1,t=1,a,n;
scanf("%d%d",&a,&n);
for(inti=1;it=t*10+1;s=s+t;
}
s*=a;printf("SUM=%d\n",s);
}
7.读下列程序,写出程序运行的输出结果.
#include
voidmain()
{inti,j,n;
for(i=0;i<4;i++){
for(j=1;j<=i;j++)printf("");
n=7-2*i;
for(j=1;j<=n;j++)printf("%1d",n);
printf("\n");
}
}
7.main()
{inti,s=0;
for(i=1;i<=100;i++)
{if(i%10!
=0)continue;
s=s+i;
}
printf("i=%d,s=%d\n",i,s);
}
8.main()
{inti,s=0;
for(i=1;i<=100;i++)
{s=s+i;
if(i==10)break;
}
printf("i=%d,s=%d\n",i,s);
}
9.main()
{
inti=1;
while(i<=15)
if(++i%3!
=2)continue;
elseprintf("%d",i);
printf("\n");
}
10.main()
{
inti,j,k;
charspace='';
for(i=0;i<=5;i++)
{for(j=1;j<=i;j++)
printf("%c",space);
for(k=0;