k:
z;
A、1 B、2 C、3 D、4
55、下面程序段所表示的数学函数关系是____
x=-1;
if (a!
=0)
if (a>0) x=1;
else x=0;1 (a>0) 0 (a>0)
C、0 (a<0) D、-1 (a<0)
x= -1 (a=0) x= 1 (a=0)
1 (a>0) 0 (a>0)
56、以下关于switch语句和break语句的描述中正确的是__D__
A、在switch语句中必须使用break语句
B、break语句只能用于switch语句体中
C、break语句只能用于循环语句中
D、在switch语句中使用break语句或continue语句的作用相同
57、设有说明:
inta=1,b=0;则执行以下语句后的输出结果是__C__
switch(a)
{case1:
switch(b)
{case0:
printf("**0**\n");break;
case1:
printf("**1**\n");break;
}
case2:
printf("**2**\n");break;
}C、**0** D、switch语句中存在语法错误
**1**
**2**
58、设有程序段__C__
intx=10;
while(x=0)
x=x-1;
A、while循环执行10次 B、循环是无限循环
C、循环体语句一次也不执行 D、循环体语句只执行一次
59、语句while(!
y)中的表达式!
y等价于_C_
A、y==0 B、y!
=1 C、y!
=0 D、y==1
60、以下关于do-while循环不正确的描述是_C_
A、d0-while的循环体至少执行一次
B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C、在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作
D、do-while的循环体可以是复合语句
61、设x、y均是int类型变量,x值为100,则关于以下for循环的正确判断是_C_
for (y=100;x!
=y;++x,y++)
printf("****\n");
A、循环体只执行一次 B、是无限循环
C、循环体一次都不执行D、for语句中存在语法错误
62、以下程序段中的do-while循环_C_
m=-1;
do
{m=m*m;
}while(!
m);
A、是死循环 B、执行二次 C、执行一次 D、有语法错误
63、以下关于for循环的正确描述是_D_
A、for循环只能用于循环次数已经确定的情况
B、for循环是先执行循环体语句,后判断表达 for (k=2;k==0; )
C、在for循环中,不能用break语句跳出循环体
D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
66、以下程序段的执行结果是_A_
int x=-3;
do
{printf("%d\n",x++);
}while(!
x);
A、-3 D、-3
B、-2 -2
C、陷入死循环 -1
67、执行以下程序段后,y的值是_E_,x的值是_E_
int x=1,y=10;
do
{ y-=x;for(b=1,a=1;b<=50;b++)
{if(a>=10) break;
if(a%2==1)
{a+=5;
continue;
}
a-=3; x++;
}while(y--<0);
A、10 B、6 C、7 D、8 E、4
69、以下程序段的执行结果是_A_
int a,b;
for(a=1;a<5;a+=2)
{for(b=1;b<5;b++)
printf("%2d",a*b);
if(b==5)
printf("\n");
}
A、1 2 3 4 B、1 2 3 4D、2 3 4
3 6 9 12 6 9 12 156 9 12
C、2 3 4 6 9 1210 15 20
70、以下程序段中是死循环的是__
x++;
}while(y--<0);
A、9 B、8 C、-2 D、2 E、4 F、3
68、执行以下程序段后a的值是__,b的值是__
int a,b;
式
64、语句for(表达式1; ;表达式3)等价于_B_
A、for(表达式1;0;表达式3)
B、for(表达式1;1;表达式3)
C、for(表达式1;表达式1;表达式3)
D、for(表达式1;表达式3;表达式3)
65、若k为整型变量,则以下for循环的执行次数是_B_
for (k=2;k==0; )
printf("%d",k--);
A、无限次 B、0次 C、1次 D、2次
66、以下程序段的执行结果是_A_
int x=-3;
do
{printf("%d\n",x++);
}while(!
x);
A、-3 D、-3
B、-2 -2
C、陷入死循环 -1
67、执行以下程序段后,y的值是__,x的值是____
int x=1,y=10;
do
{ y-=x;
x++;
}while(y--<0);
A、9 B、8 C、-2 D、2 E、4 F、3
68、执行以下程序段后a的值是_B_,b的值是_A_
int a,b;for(b=1,a=1;b<=50;b++)
{if(a>=10) break;
if(a%2==1)
{a+=5;
continue;
}
a-=3; }
A、10 B、6 C、7 D、8 E、4
69、以下程序段的执行结果是_A_
int a,b;
for(a=1;a<5;a+=2)
{for(b=1;b<5;b++)
printf("%2d",a*b);
if(b==5)
printf("\n");
}
A、1 2 3 4 B、1 2 3 4C、2 3 4
3 6 9 12 6 9 12 156 9 12
D、2 3 4 6 9 1210 15 20
70、以下程序段中是死循环的是_C_
A、int n=1; B、int n=1;
while(!
n) do{n--;
n++; }while(n);
C、int n=1; D、for(n=5;n<1; );
do{n++;
}while(n);
71、下面程序的运行结果是_C_
main( )
{ int m=0;
while(m<=2)
{m++;
printf("%d\n",m);
}
}
A、1 B、1
2
C、1 D、1
2 2
3 3
4
72、以下能正确计算1×2×3×…×10的程序段是_C_
A、do B、do
{k=1;n=1; {k=1;n=0;
n=n*k; n=n*k;
k++; k++;
}while(k<=10); }while(k<=10);
C、k=1;n=1; D、k=1;n=0;
do do
{n=n*k; {n=n*k;
k++; k++;
}while(k<=10); }while(k<=10);
73、下面程序的功能是计算1至10之间的奇数之和以及偶数之和。
请选择填空。
main( )
{ intx,y,z,k;
x=z=0;
for(k=0;k<=10;k+=2)
{x+=k;
_D_;
z+=y;
}
printf("偶数之和=%d\n",x);
printf("奇数之和=%d\n",_B_);
}
①、A、y=k-- B、y=k+1 C、y=k++ D、y=k-1
②、A、z-10 B、z C、z-11 D、z-y
74、下面程序段的功能是计算1000!
的末尾含有多少个零。
请选择填空。
(提示:
只要算出1000!
中含有因数5的个数即可。
)
for(m=0,n=5;n<=1000;n+=5)
{t=n;
while(_C_)
{ m++; t=t/5; }
}
A、t%5 B、t=t%5==0 C、t%5==0 D、t%5!
=0
75、若有以下程序段:
for(m=1;m<=100;m++)
{scanf("%d",&y);
{scanf("%d",&y);
if(y<0)
continue;
printf("%3d",m); }
正确的描述是_C_
A、当y<0时整个循环结束 B、y>=0时什么也不输出
C、printf函数永远也不执行 D、最多允许输出100个非负整数
76、以下程序段等价于_C_
for(k=100;k<=200;k++)
{ if(k%3==0)
continue;
printf("%4d",k);
}
A、for(k=100;(k%3)&&k<=200;k++)
printf("%4d",k);
B、for(k=100;(k%3)||k<=200;k++)
printf("%4d",k);
C、for(k=100;k<=200;k++)
if(k%3!
=0) printf("%4d",k);
D、for(k=100;k<=200;k++)
{if(k%3)
printf("%4d",k);
else
continue;
break;
}
二、填空题
20、以下程序的功能是:
输入三个整数n1、n2、n3,按从大到小的顺序进行输出。
请填空。
main( )
{int n1,n2,n3,temp;
scanf("%d%d%d",&n1,&n2,&n3);
if (___n2 {temp=n2; n2=n3; n3=temp; }
if (___n1 {temp=n1; n1=n2; n2=temp; }
printf("%d,%d,%d\n",n1,n2,n3);
}
21、以下程序的功能是:
输入一个小写字母,按字母排列顺序后移5个位置后输出(如把'a'变为'f','w'变成'b')。
请填空。
#include "stdio.h"
main( )
{char c1;
c1=getchar( );
if(c1>='a'&&c1<='u')
_c1=c1+5_;
elseif(c1>='v'&&c1<='z')
_c1=c1-21_;
putchar(c1);
}
22、输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其它字符不变。
请填空。
main( )
{char ch1;
scanf("%c",ch1);
if(_(ch1>=’A’&&ch1<=’Z’_)
ch1=ch1+32;
else if(ch1>='a'&&ch1<='z')
_ch1=ch1-32_;
printf("%c",ch1);
}
23、阅读下面的程序并回答问题。
main( )
{int m,n,x,y;
scanf("%d,%d",&x,&y);
m=1;
n=1;
if(x>0)
m=m+1;
if(x>y)
n=m+n;
else if(x==y)
n=5;
else
n=2*m;
printf("m=%d,n=%d",m,n); }
问题:
为了使输出n=4,x的输入值应当为_一个大于零的数_,y的输入值应当为_一个小于x的数_。
24、以下程序的功能是:
根据输入的三条边的值判断是否能组成三角形,若能组成则输出三角形的面积和三角形的类型。
请填空。
#include"math.h"
main( )
{float a1,a2,a3;
float s,area;
scanf("%f%f%f",&a1,&a2,&a3);
if(_a1+a2>a3&&a2+a3>a1&&a3+a1>a2_)
{s=(a1+a2+a3)/2;
area=sqrt(s*(s-a1)*(s-a2)*(s-a3));
printf("%f",area);
if(_a1==a2&&a2==a3&&a3==a1_)
printf("等边三角形");
elseif(_a1==a2||a2==a3||a3==a1_)
printf("等腰三角形");
elseif((a1*a1+a2*a2==a3*a3)
||(a1*a1+a3*a3==a2*a2)
||(a2*a2+a3*a3==a1*a1))
printf("直角三角形");
else
printf("一般三角形");
}
else
printf("不能组成三角形");
}
25、以下程序的功能是判断输入的年份是否是闰年。
请填空。
main( )
{int year,yes;
scanf("%d",&year);
if(year%400==0)
yes=1;
elseif(_year%4==0_)
yes=1;
else
_yes=0_;
if(yes)
printf("%dis",year);
else
printf("%disnot",year);
printf(" aleapyear.\n");
}
26、以下程序段根据输入的截止日期(年:
yend,月:
mend,日:
dend)和出生日期(byear,bmonth,bday),计算出实际年龄。
请填空。
int yend,mend,dend,byear,bmonth,bday,age;
age=yend-byear;
if(mend_<_bmonth)
age--;
elseif(mend_==_bmonth&&dend_<_bday)
age--;
……
27、如果运行以下程序段时输入字符“t”,则程序段的运行结果是_T_
main( )
{char c1;
scanf("%c",&c1);
c1=(c1>='A'&&c1<='Z')?
(c1+32):
c1;
c1=(c1>='a'&&c1<='z')?
(c1-32):
c1;
printf("%c",c1);
}
28、以下程序的功能是找出x、y、z三个数中的最小值。
请填空。
main( )
{int x=4,y=5,z=8;
int u,v;
u=x_x:
y_;
v=u_u:
z_;
printf("%d",v);
}
29、若运行以下程序时,输入下面指定数据,则运行结果为_4455675_
#include
main( )
{int ch;
while((ch=getchar( ))!
='\n')
{switch(ch-'1')
{case 0:
case 1:
putchar(ch+3);
case 2:
putchar(ch+3);break;
case 3:
putchar(ch+3);
default:
putchar(ch+1);break;
}
}
printf("\n");
}
输入数据(从第一列开始):
1234<回车>
30、将以下嵌套的if语句改写成对应的switch语句,使其完成相同的功能。
请填空。
(假设mark的取值在1至100之间。
)
if语句:
if(mark<60) k=1;
elseif(mark<70) k=2;
elseif(mark<80) k=3;
elseif(mark<90) k=4;
elseif(mark<=100) k=5;
switch语句:
switch(_mark_)
{_case:
5_ k=1;break;
case 6:
k=2;break;
case 7:
k=3;break;
case 8:
k=4;break;
_default_ k=5;
}
31、将以下含有switch语句的程序段改写成对应的含有非嵌套if语句的程序段,请填空。
含有switch语句的程序段:
int s,t,m;
t=(int)(s/10);
switch(t)
{case 10:
m=5;break;
case 9:
m=4;break;
case 8