scanf("%d",&a);
}
printf("%d\n",max);
return0;
}
A.!
a=0B.a!
=0C.a==0D.a=0
9.下面程序的运行结果是。
#include
intmain()
{intnum=0;
while(num<=2)
{num++;
printf("%d",num);
}
return0;
}
A.1B.12C.123D.1234
11.以下程序的功能是计算一个整数的各位数字之和,请选择填空。
#include
intmain()
{intn,m=0;
scanf("%d",&n);
for(;n!
=0;)
{m;
n/=10;
}
printf("%d\n",m);
return0;
}
A.+=n%10B.=n%10C.+=nD.=n/10
13.以下程序段。
x=-1;
do
{x=x*x;}while(!
x);
A.是死循环B.循环执行二次C.循环执行一次D.有语法错误
14.以下描述中正确的是。
A.while、do-while、for循环中的循环体语句都至少被执行一次
B.do-while循环中,while(表达式)后面的分号可以省略
C.while循环体中,一定要有能使while后面表达式的值变为“假”的操作
D.do-while循环中,根据情况可以省略while
15.下面程序的功能是计算正整数2345的各位数字的平方和,请填空。
#include
intmain()
{intn=2345,sum=0;
do
{sum=sum+;
n=;
}while(n);
printf(“sum=%d”,sum);
return0;
}
A.n%10B.(n%10)*(n%10)
C.n/10D.(n/10)*(n/10)
A.n/1000B.n/100C.n/10D.n%10
17.下面程序的运行结果是。
#include
intmain()
{inty=10;
do
{y--;}while(--y);
printf("%d\n",y--);
return0;
}
A.-1B.1C.8D.0
18.下面有关for循环的正确描述是。
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判断表达式
C.for循环中,不能用break语句跳出循环体
D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
19.对for(表达式1;;表达式3)可理解为。
A.for(表达式1;0;表达式3)
B.for(表达式1;1;表达式3)
C.for(表达式1;表达式1;表达式3)
D.or(表达式1;表达式3;表达式3)
20.若i为整型变量,则以下循环执行次数是。
for(i=2;i==0;)printf(“%d”,i--);
A.无限次B.0次C.1次D.2次
21.以下不是无限循环的语句为。
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;
24.下面程序的功能是求算式xyz+yzz=532中的x,y,z的值(其中xyz和yzz分别表示一个三位数),请选择填空。
#include
intmain()
{intx,y,z,I,result=532;
for(x=1;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);
}
return0;
}
A.z=xB.z=1C.z=0D.z=y
A.i/result==1B.i=resultC.i!
=resultD.i==result
25.以下正确的描述是。
A.continue语句的作用是结束整个循环的执行
B.只能在循环体内和switch语句体内使用break语句
C.在循坏体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出,只能使用goto语句
26.在下面的程序中,。
#include
intmain()
{intt,x;
for(t=1;t<=100;t++)
{scanf("%d",&x);
if(x<0)continue;
printf("%3d",t);
}
return0;
}
A.当x<0时整个循环结束
B.x>=0时什么也不输出
C.printf函数永远也不执行
D.最多允许输出100个非负整数
28.下面程序的运行结果是。
#include
intmain()
{inta,b;
for(a=1,b=1;a<=100;a++)
{if(b>=20)break;
if(b%3==1){b+=3;continue;}
b-=5;
}
printf(“%d\n”,a);
return0;
}
A.7B.8C.9D.10
答案:
1.C2.A3.B4.D5.B6.CA7.DC8.B9.C
10.A11.A12.C13.C14.C15.BC16.BD17.D
18.D19.B20.B21.A22.D23.B24.CD25.B
26.D27.C28.B
二、填空题
1.下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。
请填空。
intn=0,c;
c=getchar();
while()
{if()n++;
c=getchar()
}
3.当运行以下程序时,从键盘键入right?
<回车>,则下面程序的运行结果是。
#include
intmain()
{charc;
while((c=getchar())!
='?
')putchar(++c);
putchar('\n');
return0;
}
4.下面程序的运行结果是。
#include
intmain()
{inta=2,s=0,n=1,count=1;
while(count<=7){n=n*a;s=s+n;++count;}
printf("s=%d\n",s);
return0;
}
6.下面程序段中循环体的执行次数是。
a=10;b=0;
do{b+=2;a-=2+b;}while(a>=0);
7.下面程序段的运行结果是。
x=2;
do{printf(“*”);x--;}while(!
x==0);
8.下面的程序的功能是用do-while语句求1—1000之间满足“用3除余2,用5除余3,用7除余2”的数,且一行只打印5个数,请填空。
#include
intmain()
{inti=1,j=0;
do
{if
{printf(“%4d”,i);
j++;
ifprintf(“\n”);
}
i=i+1;
}while(i<1000);
return0;
}
9.当运行以下程序时,从键盘输入“12345-1<回车>”,则下面程序的运行结果是。
#include
intmain()
{intk=0,n;
do
{scanf("%d",&n);k+=n;}while(n!
=-1);
printf("k=%dn=%d\n",k,n);
return0;
}
10.下面程序的运行结果是。
#include
intmain()
{inti=0,x=0,y=0;
do
{++i;
if(i%2!
=0){x=x+i;i++;}
y=y+i++;
}while(i<=7);
printf("x=%d,y=%d\n",x,y);
return0;
}
12.鸡、兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,x代表有多少只鸡,y代表有多少只兔子,请填空完成程序。
for(x=1;x<=30;x++)
{y=30-x;
if()printf(“%d,%d\n”,x,y);
}
13.下面程序段的运行结果是。
for(a=1,i=-1;-1<=i<1;i++)
{a++;printf(“%2d”,a);}
printf(“%2d”,i);
14.下面程序的功能是1-3+5-7+……-99+101的值。
请填空。
#include
intmain()
{inti,t,s=0,q=1;
for(i=1;i<=101;i+=2)
{t=;s=s+t;q=;}
printf("%d\n",s);
return0;
}
16.下面程序的运行结果是。
#include
intmain()
{inti;
for(i=1;i<=5;i++)
switch(i%2)
{case0:
i++;printf("#");break;
case1:
i+=2;printf("*");
default:
printf("\n");
}
return0;
}
17.下面程序的功能是统计用数字0-9可以组成多少个没有重复数位的3位偶数。
请填空。
#include
intmain()
{intn=0,i,j,k;
for(i=1;i<=9;i++)
for(k=0;k<=8;)
if(k!
=i)
for(j=0;j<=9;j++)
if()
{printf("%d\n",i*100+j*10+k);
n++;
}
printf("n=%d\n",n);
return0;
}
18.下面程序的功能是输出1-100之间满足每位数的乘积大于每位数的和的数。
请填空。
#include
intmain()
{intn,k=1,s=0,m;
for(n=1;n<=100;n++)
{k=1;s=0;
;
while()
{k*=m%10;
s+=m%10;
;
}
if(k>s)printf("%5d",n);
}
printf("\n");
return0;
}
20.若从键盘输入6514<回车>,则下面程序的运行结果是。
#include
intmain()
{intm,n;
printf("Enterm,n:
");
scanf("%d%d",&m,&n);
while(m!
=n)
{while(m>n)m-=n;
while(n>m)n-=m;
}
printf("m=%d\n",m);
return0;
}
21.下面程序的功能是计算100-1000之间有多少个数其各位数字之和是5。
请填空。
#include
intmain()
{inti,s,k,count=0;
for(i=100;i<=1000;i++)
{s=0;k=i;
while(){s+=k%10;k=;}
if(s!
=5);
else
{count++;printf("%6d",i);}
if(count%5==0)putchar('\n');
}
putchar('\n');
return0;
}
答案:
1.c!
=’\n’c>=’a’&&c<=’z’||c>=’A’&&c<=’Z’
2.(x1)x1/2-2
3.sjhiu
4.s=254
5.5,5
6.3
7.**
8.(i%3==2&&i%5==3&&i%7==2)(j%5==0)
9.k=14n=-1
10.x=1,y=20
11.i<=x
12.2*x+4*y==90
13.-1
14.q*i-q
15.e=1n>=1e-6
16.*
#
17.k+=2j!
=i&&j!
=k
18.m=nmm/=10
19.j=1k>=0&&k<=6
20.m=1
21.kk/10continue
22.breakk<=10