scanf("%d",&a);
}
printf("%d",max);}
A.a==0B.aC.!
a==1D.!
a
9.下面程序的运行结果是()。
#include
main()
{intnum=0;
while(num<=2)
{num++;
printf("%d\n",num);
}
}
A.1B.1C.1D.1
222
33
4
10.下面程序的功能是计算1~10之间的奇数之和和偶数之和。
请选择填空。
#include
main()
{inta,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{a+=i;
();
c+=b;
}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11);
}
A.b=i--B.b=i+1C.b=i++D.b=i-1
11.设有以下程序段
intx=0,s=0;
while(!
x!
=0)s+=++x;
printf("%d",s);
则()。
A.运行程序段后输出0B.运行程序段后输出1
C.循环的控制表达式不正确D.程序段执行无限次
12.语句while(!
E);中的!
E等价于()。
A.E==0B.E!
=1C.E!
=0D.E==1
13.下面程序段的运行结果是()。
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
14.下面程序段的运行结果是()。
x=y=0;
while(x<15)
y++,x+=++y;
printf("%d,%d",y,x);
A.20,7B.6,12C.20,8D.8,20
15.下面程序段的运行结果是()。
intn=0;
while(n++<=2);
printf("%d",n);
A.2B.3C.4D.语法错误
16.以下能正确计算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);
17.以下程序段()。
x=-1;
do
{x=x*x;}while(!
x);
A.是死循环B.循环执行两次C.循环执行一次D.有语法错误
18.若有语句如下,则程序段的输出是()。
intx=3;
do{printf("%d",x-=2);}while(!
(--x));
A.1B.1和-2C.3和0D.死循环
19.下面程序的功能是计算正整数2345的各位数字平方和。
#include"stdio.h"
main()
{intn,sum=0;
n=2345;
do{sum=sum+();
n=n/10;
}while(n);
printf("sum=%d",sum);}
A.n%10B.(n%10)*(n%10)C.n/10D.(n/10)*(n/10)
20.下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除。
请选择填空。
#include
main()
{inti=0,j,k;
do{i++;k=316-13*i;}while();
j=k/11;
printf("316=13*%d+11*%d",i,j);
}
A.k/11B.k%11C.k/11==0D.k/11==0
21.下面程序的运行结果是()。
#include
main()
{inty=10;
do{y--;}while(--y);
printf("%d\n",y--);
}
A.-1B.1C.8D.0
22.下面程序的运行结果是()。
#include
main()
{inta=1,b=10;
do
{b-=a;a++;}while(b--<0);
printf("a=%d,b=%d\n",a,b);
}
A.a=3,b=11B.a=2,b=8C.a=1,b=-1D.a=4,b=9
23.若运行以下程序时,从键盘输入Total<回车>,则下面程序的运行结果是()。
#include
main()
{charc;
intv1=0,v2=0;
do{
switch(c=getchar())
{case'a':
v1+=1;
case't':
case'T':
v2+=1;
default:
v1+=1;v2+=1;
}
}while(c!
='\n');
printf("v1=%d,v2=%d\n",v1,v2);
}
A.v1=3,v2=4B.v1=4,v2=4C.v1=6,v2=8D.v1=7,v2=9
24.以下不是无限循环的语句为()。
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;
25.以下是死循环的程序段是()。
A.for(i=1;;)B.i=32767;
{if(++i%2==0)continue;do{if(i<0)break;}while(++i);
if(++i%3==0)break;}
C.for(i=1;;)if(++i<10)continue;D.i=1;
while(i--);
26.下面程序段的运行结果是()。
for(y=1;y<10;)y=((x=3*y,x+1),x-1);
printf("x=%d,y=%d",x,y);
A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y=27
27.下面程序段的运行结果是()。
for(x=3;x<6;x++)printf((x%2)?
("**%d"):
("##%d\n"),x);
A.**3B.##3C.##3D.**3##4
##4**4**4##5**5
**5##5
28.有一堆零件(100到200之间),如果分成4个零件一组则多出2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多出5个零件。
下面程序是求这堆零件总数,请选择填空。
#include
main()
{inti;
for(i=100;i<200;i++)
if((i-2)%4==0)
if(!
((i-3)%7))
if()
printf("%d",i);
}
A.i%9=5B.i%9!
=5C.(i-5)%9!
=0D.i%9==5
29.下面程序的运行结果是()。
#include
main()
{intx,i;
for(i=1;i<=100;i++)
{x=i;
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
printf("%3d",x);
}
}
A.3981B.4284C.2668D.2870
30.下面程序的功能是求算式xyz+yzz=532中x,y,z的值(其中xyz和yzz分别表示一个三位数),请选择填空。
#include
main()
{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(i==result)
printf("x=%d,y=%d,z=%d\n",x,y,z);
}
}
A.z=xB.z=1C.z=0D.z=y
31.下面程序段()。
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个非负整数
32.与下面程序段等价的是()。
for(n=100;n<=200;n++)
{if(n%3==0)continue;
printf(“%4d”,n);
}
A.for(n=100;(n%3&&n<=200;n++)printf(“%4d”,n);
B.for(n=100;(n%3)||n<=200;n++)printf(“%4d”,n);
C.for(n=100;n<=200;n++)if(n%3!
=0)printf(“%4d”,n);
D.for(n=100;n<=200;n++)
{if(n%3)printf(“%4d”,n);
elsecontinue;
break;
}
33.下面程序的运行结果是()。
#include
main()
{inti,j,x=0;
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=4B.x=8C.x=6D.x=12
34.下面程序的运行结果是()。
main()
{inti,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.4B.5C.6D.7
35.下面程序的运行结果是()。
#include
main()
{inti;
for(i=1;i<=5;i++)
{if(i%2)printf(“*”);
elsecontinue;
printf(“#”);}
printf(“$\n”);
}
A.*#*#*#$B.#*#*#*$C.*#*#$D.#*#*$
36.下面程序的运行结果是()。
#include
main()
{inti,b,k=0;
for(i=1;i<=5;i++)
{b=i%2;
while(b-->=0)k++;
}
printf("%d,%d",k,b);
}
A.3,-1B.8,-1C.3,0D.8,-2
37.下面程序段()。
x=3;
do
{y=x--;
if(!
y){printf(“*”);continue;}
printf(“#”);
}while(1<=x<=2);
A.将输出##B.将输出##*C.是死循环D.含有不合法的控制表达式
38.若运行以下程序时,从键盘输入3.62.4<回车>,则下面程序的运行结果是()。
#include
#include
main()
{floatx,y,z;
scanf(“%f%f”,&x&y);
z=x/y;
while
(1)
if(fabs(z)>1.0){x=y;y=z;z=x/y}
elsebreak;
printf(“%f\n”,y);
}
A.1.500000B.1.600000C.2.000000D.2.400000
39.若运行以下程序时,从键盘输入2473<回车>,则下面程序的运行结果是()。
#include"stdio.h"
{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
40.有以下程序:
#include
main()
{inta1=0,a2=0,a3=0;
charch;
while((ch=getchar())!
=’\n’)
switch(ch)
{case’A’:
a1++;
case’B’:
a2++;
default:
a3++;}
printf(“%d,%d,%d”,a1,a2,a3);
}
现从键盘上输入AAAAABBBC<回车>,则程序执行后的输出结果是()。
A.5,8,9B.5,3,1C.5,3,9D.5,8,1
二、填空题
1.下面程序段的运行结果是。
x=2;
do{printf("*");x--;}while(!
x==0);
2.鸡兔共有30只,脚共有90只,下面程序段是计算鸡兔各有多少只。
请填空。
for(x=0;x<=30;x++)
{y=30-x;
if()printf("%d%d\n",x,y);
}
3.若for循环用以下形式表示:
for(表达式1;表达式2;表达式3)循环体语句
则执行语句for(i=0;i<3;i++)printf("*");时,表达式1执行1次,表达式3执行
次。
4.下面程序的功能是打印100以内个位数为6且能被3整除的所有数。
请填空。
#include
main()
{inti,j;
for(i=0;i<=9;i++)
{j=i*10+6;
if()continue;
printf("%d",j);
}
}
5.下面程序的运行结果是。
#include
main()
{inti=1;
while(i<=15)
if(++i%3!
=2)continue;
elseprintf("%d",i);
printf("\n");
}
6.当运行下列程序时,从键盘键入”right?
<回车>“,则下面程序的运行结果是。
#include
main()
{charc;
while((c=getchar())!
=’?
’)putchar(++c);
}
7.下面程序的运行结果是。
#include
main()
{inta,s,n,count;
a=2;s=0;n=1;count=1;
while(count<=7){n=n*a;s=s+n;++count;}
printf("s=%d",s);
}
8.执行下面程序段后,k的值是。
k=1,n=263;
do{k*=n%10;n/=10;}while(n);
9.下面程序段中循环体的执行次数是。
a=10;b=0;
do{b+=2;a-=2+b;}while(a>=0);
10.等差数列的第一项a=2,公差d=3,下面程序的功能是在前n项和中,输出能被4整除的所有数的和。
请填空。
#include
main()
{inta,d,sum;
a=2;d=3;sum=0;
do
{sum+=a;
a+=d;
if()printf("%d\n",sum);
}while(sum<200);
}
11.当运行以下程序时,从键盘输入”12345-1<回车>“,则下面程序的运行结果是。
#include
main()
{intk=0,n;
do
{scanf("%d",&n);k+=n;
}while(n!
=-1);
printf("k=%d,n=%d\n",k,n);
}
12.下面程序的运行结果是。
#include
main()
{inti,t,sum=0;
for(t=i=1;i<=10;)
{sum+=t;++i;
if(i%3==0)t=-1;
elset=i;
}
printf("sum=%d",sum);
}
13.下面程序的运行结果是。
#include
main()
{inti,j=4;
for(i=j;i<=2*j;i++)
switch(i/j)
{case0:
case1:
printf("*");break;
case2:
printf("#");}
}
14.下面程序的功能是从键盘输入的10个整数中,找出第一个能被7整除的数。
若找到,输出出此数;若未找到,打印notexit。
请填空。
#include
main()
{inti,a;
for(i=1;i<=10;i++)
{scanf(“%d”,&a);
if(a%7==0);
}
if(i<=10)printf("%d\n",a);
elseprintf("notexit\n");
}
15.下面程序的运行结果是。
i=1;s=3;
do
{s+=i++;
if(s%7==0)continue;
else++i;
}while(s<15);
printf("%d",i);
16.下面程序的功能是求1000以内的所有完全数。
请填空。
(说明:
一个数如果恰好等于它的因子之和(除自身外),则称该数为完全数。
例如:
6=1=2+3,6是完全数)
#include
main()
{inta,i,m;
for(a=1;a<=1000;a++)
{for(m=0,i=1;i<=a/2;i++)if(!
(a%i));
if(m==a)printf("%4d",a);
}
}
17.下面程序的运行结果是。
#include
main()
{inti,x,y;
i=x=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);
}
18.若从键盘输入6514<回车>,则下面程序的运行结果是。
#include
main()
{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);
}
19.下面程序的功能是计算100——1000之间有多少个数其各位数字之和是5。
请填空。
#include
main()
{inti,s,k,count=0;
for(i=100;i<=1000;i++)
{s=0;k=i;
While(k){s=s+k%10;k=k/10;}
if(s!
=5);
elsecount++;
}
printf("%d",count);
}
20.下面程序的运行结果是。
#include
main()
{inta,y;
a=10;y=0;
do
{a+=2;y+=a;
if(y>50)break;
}while(a=14);
printf("a=%d,y=%d\n",a,y);
}
三、编程题
1.编写程序,计算1~50中7的倍数的数值之和。
2.编写程序,用辗转相除法求两个正整数的最大公约数。
3.编写程序,输入一个正整数,找出并输出该正整数的所有因子。
4.编写程序,计算1-3+5-7+…-99+101的值。
5.编写程序,求1~1000之间满足”用3除余2,用5除余3,用7除余2”的数,且一行只输出5个数。
6.编写程序,用公式:
π2/6≈1/12+1/22+1/32+...+1/n2求π的近似值,直到最后一项的值小于10-6为止。
7.编写程序,找出1~99之间的全部同构数,同构数是这样一组数:
该数出现在其平方数的右边。
例如:
5是25右边的数,