c语言习题讲解Word文档下载推荐.docx
《c语言习题讲解Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言习题讲解Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
C.1,3,3,7
D.1,3,3,6
7.以下()有语法错误的if语句。
A.if(3.54)
B.if(a!
=b)printf("
%d"
a)elseprintf("
C.if('
s'
&
s)s++;
D.if(!
a)printf("
a);
8.输入数据:
-1(回车),以下程序的输出是()
A.x=0,y=-1;
B.x=-1,y=0;
C.x=0,y=1;
D.x=1,y=0;
9假设inta,b,c,w;
且a和b均已被赋值,同时满足条件:
a<
b,执行以下程序段后要把c的值赋给w,从键盘上输入c的值不应取得范围是()
Scanf(“%d”,&
c);
W=a;
If(w<
=b)w=b;
=c)printf(“%d”,w);
Elsew=c;
A.b>
cB.b<
=cC.c>
a且c<
bDc<
a或c<
b.
答案:
B
3.18运行一下程序时,输入数据:
abcdabc再回车,输出为()
#include“stdio.h”
Main()
Inta1=0,a2=0,a3=0;
Charc;
While((c=getchar())!
=’\n’)
Switch(c)
{
Case‘a’:
a1++;
Case‘b’:
a2++;
Default:
a3++;
’
Printf(“%d,%d,%d”,a1,a2,a3);
A.2,4,7B.2,2,1C.2,4,1D.2,2,7
答案:
A
3.19对循环语句:
for(表达式1;
表达式2;
表达式3)语句,一下叙述正确的是()
A.for语句中的三个表达式一个都不能少
B.for语句中的循环体至少要被执行一次
C.for语句中的循环体可以是一个复合语句
D.for语句只能用于循环次数已经确定的情况
C
3.20执行完循环语句for(i=1;
i++<
10);
后,变量i的值是多少?
循环体被执行了几次?
A.i的值是8,循环体执行了9次。
B..i的值是9,循环体执行了10次。
C..i的值是10,循环体执行了10次。
D..i的值是11,循环体执行了9次。
D
3.21一下程序段执行后,叙述正确的是()
IntI;
For(i=1;
;
i++);
Printf(“%d”,i++);
A.输出1,B.输出2C.输出3D.死循环
3.22一下程序的输出结果是()
Inty=9;
For(;
y>
0;
y--)
If(y%3==0)
Printf(“%d”,--y);
A.741B.852C.963D.87521
3.23若x,y是int型变量,则执行以下语句后x的值是()
For(y=1,x=1;
y<
=50;
y++)
If(x>
=10)break;
If(x%2==1)
{
X+=5;
continue;
x-=3;
A.1B.6C.7D.10
3.24对一下程序段,描述正确的是()
Intk=10;
While(k=0)k=k-1;
A.循环体执行了10次
B.循环是无限循环
C.循环体语句一次也不执行
D.循环体语句执行了一次
3.25对以下程序段,描述正确的是()
While(k>
0)
Printf(“%d”,k);
K=k-1;
A.循环体被执行了10次
C.循环体一次也不执行
3.26下面程序的运行结果是()
Main()
IntI,j,k,x=0;
For(i=0;
i<
2;
i++)
X++;
For(j=0;
j<
3;
j++)
If(j%2)continue;
X++;
K=i+j;
Printf(“k=%d,x=%d\n”,k,x);
A.K=8,X=4
B.K=5,X=8
C.K=3,X=6
D.K=8,X=12
B.
3.27假设chargrade=’A’;
则以下程序段的执行结果是()
Switch(grade)
Case‘A’;
Case‘B’:
Case‘C’:
printf(“>
=60pass!
\n”);
Case‘D’:
printf(“<
60\n”);
printf(“error!
>
<
60
Error!
3.28以下程序段的运行结果是()
Inta=2,b=7,c=5;
Switch(a>
Case1:
switch(b<
Case1:
printf(“@”);
break;
Case2:
printf(“!
”);
Case0:
switch(c==5)
Case0:
printf(“*”);
break;
printf(“#”);
Default:
printf(“#”);
Default:
printf(“&
Printf(“\n”);
#&
3.29以下程序实现:
输入三个整数,按从大到小的顺序输出,请填空。
Intx,y,z,T;
Scanf(“%d%d%d”,&
x,&
y,&
z);
If(x<
y)
T=x;
x=y;
y=T;
}
If(
)
{
T=x;
x=z;
z=t;
If(y<
z)
Printf(“%d,%d,%d”,x,y,z);
x<
z
t=y;
y=z;
z=t;
3.30为了输出如下图形,请在程序处填入合适的内容。
*****
*****
IntI,j;
For(i=1;
i<
6;
i++)
For(j=1;
j<
j++)
__
__;
printf(”*”)
printf(“\n”)
为了输出如下图形,请在程序处填入合适的内容。
*
***
*****
*******
*********
IntI,j;
10-1;
j++);
Printf(“”);
=___;
Printf(“*”);
Printf(“\n”);
2*i-1
3.32若变量a,i已正确定义,且i已正确赋值,下列合法的语句是()
A.a==1B++I;
C.a=a++=5;
D.a=int(i);
3.36已知:
Intt=0;
While(t=1)
{…….}
则以下叙述正确的是________
A.循环控制表达式的值为0
B.循环控制表达式的值为1
C.循环控制表达式不合法
D.以上说法都不对
3.38下面程序的输出结果是___
Intx=1,a=0,b=0;
Switch(x)
Case0:
b++;
a++;
a++;
b++;
Printf(“a=%d,b=%d\n”,a,b);
A.a=2,b=1B.a=1,b=1C.a=1,b=0Da=2,b=2
3.39下面程序的输出结果是_____
Inti=1,j=1,k=2;
If((j++||k++)&
Printf(“%d,%d,%d\n”,I,j,k);
A.1,1,2B.2,2,1C.2,2,2D.2,2,3
答案C
3.40下面程序的输出结果是:
___
Intn=9;
While(n>
6)
n--;
printf(“%d”,n);
A.987B.876C.8765D.9876
3.41在下面选项中,没有构成死循环的是__
A.inti=100;
Whiel
(1)
I=i%100+1;
If(i>
100)break;
B.for(;
);
C.intk=10000
do
K++;
}while(k>
10000);
D,ints=36;
While(s)
--s;
3.42若运行一下程序,输入ADescriptor在回车,则下面的程序运行结果是______
Intv0=1,v1=0,v2=0;
Do
Switch(c=getchar())
{
Case‘a’:
case‘A’:
Case‘e’:
case‘E’:
Case‘i’:
case‘I’:
Case‘o’:
case‘O’:
Case‘u’:
case‘U’:
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=13v1=4v2=12
3.44以下程序段的描述正确的是___
X=-1;
X=x*x;
While(!
x)
A.是死循环
B.循环执行两次
C.循环执行一次
D.有语法错误
c
3.45在下述程序中,判断i>
j共执行的次数是____
Inti=0,j=10,k=2,s=0;
For(;
I+=k;
If(i>
j)
Prntf(“%d”,s);
Break;
S+=I;
A.4
B.7
C.5
D.6
3.46下面程序的功能是把316表示为两个数的和,是两个加数分别能被13和11整除,请…选择填空
Inti=0,j,k;
I++;
K=316-13*I;
While(_____);
Printf(“316=13*%d+11*%d”,I,j);
A.k/11B.k%11C.k/11==0D.k%11==0
3.47下面程序的运行结果是___
Inta=1,b=10;
Do
b-=a;
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
3.48下面程序的运行结果是____
Intx=23;
Do
Printf(“%d”,x--);
x);
A.321
B.23
C.不输出任何内容
D.陷入死循环
3.49下面程序的运行结果是____
Inta=2,b=-1,c=2;
If(a<
b)
If(b<
0)c=0
Elsec++;
Printf(“%d\n”,c);
A.0B.1C.2D.3
3.50执行完语句for(i=1;
i++,4;
);
以后,变量i的值是___
A.3B.4C.5D.不定
3.46有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个,若分成7个零件一组,则多3个,若分成9个零件一组,则多5个。
填写程序
IntI;
For(i=100;
200;
If((i-2)%4==0)
If(!
((i-3)%7))
If(_____)
Printf(“%d”,i);
A.i%9=5
B.i%9!
=5
C.(i-5)%9!
=0
D.(i-5)%9==0
3.50以下程序的功能是从键盘输入若干学生的成绩,并输出最高成绩和最低成绩,当输入负数时结束,请填空。
Floatx,amax,amin;
Scanf(“%f”,&
Amax=x;
Amin=x;
While(__
__)
If(x>
amax)
Amax=x;
Else
If(__
___)
Amin=x;
Else
Scanf(“%f”,&
Printf(“\namax=%f\namin=%f\n”,amax,amin);
x>
x<
amin
3.56下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0
Main(0
IntI,x,y=1;
Scanf(“%d”,&
For(i=2;
=x/2;
If______
Y=0;
Break;
Printf(“%d\n,”y);
(x%i==0)
3.57下面程序的运行结果是____
Inty=9;
For(;
y>
If(y%3==0)
Printf(“%d”,--y);
continue;
852