带答案C语言210章作业.docx
《带答案C语言210章作业.docx》由会员分享,可在线阅读,更多相关《带答案C语言210章作业.docx(59页珍藏版)》请在冰豆网上搜索。
带答案C语言210章作业
C语言习题集
专业班级
学号
姓名
第2章运算符与表达式
一、选择题
1.若有定义:
inta=2,b=3;floatx=3.5,y=2.5;则下面表达式的值为(C)。
(float)(a+b)/2+(int)x%(int)y
A)3.5B)35C)3.500000D)35.00000
2.若有定义:
intx=3,y=2;floata=2.5,b=3.5;则下面表达式的值为(B)。
(x+y)%2+(int)a/(int)b
A)1.0B)1C)2.0D)2
3.若x和n均是int型变量,且x的初值为12,n的初值为5,则执行下面表达式后x的值为(A)。
x%=(n%=2)
A)0B)1C)2D)3
4.设有intx=11;则表达式(x++*1/3)的值是(A)。
A)3B)4C)11D)12
5.下列程序的输出结果是(C)。
#include
main()
{doubled=3.2;intx,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d\n",d*y);}
A)3B)3.2C)0D)3.07
6.下列程序执行后的输出结果是(小数点后只写一位)(A)。
#include
main()
{doubled;floatf;longl;inti;
i=f=l=d=20/3;
printf("%d%ld%f%f\n",i,l,f,d);
}
A)666.06.0B)666.76.7
C)666.06.7D)666.76.0
7.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是(C)。
A)1B)2C)2.0D)2.5
8.若变量a,i已正确定义,且i已正确赋值,则合法的语句是(B)。
A)i=int(a)B)++i;C)a=a++=5;D)a=int(i);
9.若执行以下程序段后,c3的值为(A)。
intc1=1,c2=2,c3;
c3=1.0/c2*c1;
A)0B)0.5C)1D)2
10.如下程序的运行结果是(D)。
#include
main()
{inty=3,x=3,z=1;
printf("%d%d\n",(++x,y++),z+2);
}
A)34B)42C)43D)33
11.能正确表示逻辑关系:
“a≥10或a≤0”的C语言表达式是(D)。
A)a>=10ora<=0B)a>=0|a<=10C)a>=10&&a<=0D)a>=10||a<=0
12.设x,y,t均为int型变量,则执行语句:
x=y=3;t=++x||++y;后,y的值为(C)。
A)不定值B)4C)3D)1
13.以下程序的输出结果是(D)。
#include
main()
{inta=3;
printf("%d\n",(a+=a-=a*a));
}
A)-6B)12C)0D)-12
14.设a,b,c,d,m,n均为int型变量,且a=5,b=6,c=7,d=8,m=2,n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为(C)。
A)0B)1C)2D)3
15.在C语言中,如果下面的变量都是int类型,则输出的结果是(A)。
sum=pad=5;pad=sum++,pad++,++pad;
printf(“%d\n”,pad);
A)7B)6C)5D)4
二、填空题
1.若a,b和c均是int型变量,则执行表达式a=(b=4)+(c=2)后,a值为__6____,b值为__4____,c值为__2____。
2.若a是int型变量,且a的初值为6,则执行表达式a+=a-=a*a后a的值为___-60___。
3.若a是int型变量,则执行表达式a=25/3%3后a的值为___2___。
4.若x和n均是int型变量,且x和n的初值均为5,则执行表达式x+=n++后x的值为__10____,n的值为___6___。
5.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为__int型___。
6.若a是int型变量,则表达式(a=4*5,a*2),a+6的值为__26____。
7.若x和a均是int型变量,则执行表达式x=(a=4,6*2)后x的值为__12__,执行表达式(x=a=4,6*2)后x的值为__4___。
8.若有以下定义intm=5,y=2;,则执行表达式y+=y-=m*=y后y的值是__-16____。
9.已知inty;floatx=-3;,执行语句y=x%2;后,变量y的值为__语句本身是错误的_错误的赋值__。
10.若intw=1,x=2,y=3,z=4;则条件表达式w>x?
w:
yy:
z的结果为__3____。
11.以下程序的输出结果是__109____。
#include
main()
{intx=10,y=10;
printf("%d%d\n",x--,--y);
}
12.表达式8.0*(1/2)的值为__0.0____。
第3章基本语句
一、选择题
1.下面程序的输出结果是(B)。
#include
main()
{intx=5,y=3;
printf("%d\n",y=x/y);
}
A)0B)1C)3D)不确定的值
2.若变量已正确定义,下面程序段的输出结果是(A)。
x=5.238794;printf("%f\n",(int)(x*1000+05)/(float)1000);
A)5.239000B)输出格式说明与输出项不匹配,输出无定值C)5.238000D)5.24
3.以下程序的输出结果是(D)。
#include
main()
{inta=4;floatb=9;
printf("a=%%d,b=%%f\n",a,b);
}
A)a=4,b=9.000000B)a=%4,b=%9.000000C)a=%%d,b=%%fD)a=%d,b=%f
4.下面语句:
printf("|%8.5f|\n",3461.45);的输出结果是(C)。
A)|61.45000|B)|3461.450|C)|3461.45000|D)|3461.4500|
5.(D)是不正确的C语言赋值语句。
A)x=1,y=2;B)x++;C)x=y=5;D)y=int(x);
6.与数学公式|cos(x)|等价的C语言表达式是(D),假定其中的x的单位是度数且不考虑π值的精度。
A)sqrt(cos(x))B)sqrt(abs(cos(x*3.14/180)))
C)sqrt(abs(cos(x*(/180)))D)sqrt(fabs(cos(x*3.14/180)))
7.下面的程序(D)。
#include
main()
{intx=3,y=0,z=0;
if(x=y+z)printf("****");
elseprintf("####");
}
A)有语法错误不能通过编译B)输出****
C)可以通过编译,但是不能通过连接,因而不能运行D)输出####
8.执行下面程序中的输出语句后,a的值是(C)。
#include
main()
{inta;
printf("%d\n",(a=3*5,a*4,a+5));
}
A)65B)20C)15D)10
9.若执行下面的程序时,从键盘上输入3和4,则输出结果是(B)。
#include
main()
{inta,b,s;
scanf("%d%d",&a,&b);
s=a
if(a
s=s*s;
printf("%d\n",s);
}
A)14B)16C)18D)20
10.以下程序不用第三个变量,实现将两个数进行对调的操作。
请填空(B)。
#include
main()
{
inta,b;
scanf("%d%d",&a,&b);
printf("a=%db=%d",a,b);
a=a+b;b=a-b;a=;
printf("a=%db=%d\n",a,b);
}
A)a+bB)a-bC)b*aD)a/b
11.执行下列程序的结果是(B)。
#include
main()
{floatx=3,y;
y=++x*x++;
printf("%f\n",y);
}
A)9.000000B)16.000000C)1.000000D)程序有错误
12.执行下列程序时输入1234567,程序的运行结果为(B)。
#include
main()
{intx,y;
scanf("%2d%2ld",&x,&y);printf("%d\n",x+y);
}
A)17B)46C)15D)9
13.下述程序的输出结果是(A)。
#include
main()
{printf("%f",2.5+1*7%2/4);
}
A)2.50000B)2.750000C)3.375000D)3.000000
14.下属程序的输出结果是(D)。
#include
main()
{floata;a=1/100000000;
printf("%g",a);
}
A)0.00000e+00B)0.0C)1.00000e-07D)0
15.设x,y和z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x,y和z的值是(A)。
A)x=10,y=15,z=10B)x=10,y=10,z=10
C)x=10,y=10,z=15D)x=10,y=5,z=10
二、填空题
1.下面程序的输出是__-200,25i=-200,j=25____。
i=-200
j=25
#include
main()
{inti=-200,j=25;
printf("%d,%d",i,j);
printf("i=%d,j=%d\n",i,j);
printf("i=%d\nj=%d\n",i,j);
}
2.以下程序的输出结果是__156,156,234,9c,156____。
#include
main()
{inta=0234;
printf("%3d,%6d,%6o,%6x,%6u\n",a,a,a,a,a);
}
3.以下程序的输出结果是___123.123789,3.124,123.12378900___。
#include
voidmain()
{doublea=123.123789;
printf("%8.6f,%8.3f,%14.8f\n",a,a,a);
}
4.已有定义intd=-2;执行以下语句后的输出结果是______。
printf("*d
(1)=%d*d
(2)=%3d*d(3)=%-3d*\n",d,d,d);
printf("*d(4)=%x*d(5)=%6x*d(6)=%-6x*\n",d,d,d);
5.执行以下程序时,若从第一列开始输入数据,为使变量a=3,b=7,x=8.5,y=71.82,c1=′A′,c2=′a′,正确的数据输入形式是_a=3b=7x=8.5y=7.182c1=ac2=a_____。
#include
main()
{inta,b;floatx,y;charc1,c2;
scanf("a=%db=%d",&a,&b);scanf("x=%fy=%f",&x,&y);
scanf("c1=%cc2=%c",&c1,&c2);
printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c",a,b,x,y,c1,c2);
}
第4章选择结构
一、选择题
1.下列程序的运行结果是(B)。
#include
main()
{inta=2,c=5;
printf("a=%d,b=%d\n",a,c);
}
A)a=%2,b=%5
B)a=2,b=5
C)a=d,b=d
D)a=%d,b=%d
2.若有定义:
floatw;inta,b;则合法的switch语句是(D)。
A)switch(w)
{case1.0:
printf("*\n");
case2.0:
printf("**\n");
}
B)switch(a);
{case1printf("*\n");
case2printf("**\n");
}
C)switch(w)
{case1:
printf("*\n");
default:
printf("\n");
case1+2:
printf("**\n")
}
D)switch(a+b)
{case1:
printf("*\n");
case2:
printf("**\n");
default:
printf("\n");
}
3.语句printf("a\bre\′hi\′y\\\bou\n");的输出结果是(C)。
A)a\bre\′hi\′y\\\bou
B)a\bre\′hi\′y\bou
C)re′hi′y\\ou
D)abre′hi′y\bou
4.如下程序的输出结果是(A)。
#include
main()
{intx=1,a=0,b=0;
switch(x){
case0:
b++;
case1:
a++;
case2:
a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
A)a=2,b=1
B)a=1,b=1
C)a=1,b=0
D)a=2,b=2
5.如下程序的输出结果是(C)。
#include
main()
{floatx=2.0,y;
if(x<0.0)y=0.0;
elseif(x<10.0)y=1.0/x;
elsey=1.0;
printf("%f\n",y);
}
A)0.000000
B)0.250000
C)0.500000
D)1.000000
6.如下程序的输出结果是(C)。
#include
main()
{
inta=12,b=5,c=-3;
if(a>b)
if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
A)0
B)1
C)-2
D)-3
7.若执行以下程序时从键盘上输入9,则输出结果是(B)。
#include
main()
{intn;
scanf("%d",&n);
if(n++<10)printf("%d\n",n);
elseprintf("%d\n",n--);
}
A)11
B)10
C)9
D)8
8.若a,b,c1,c2,x,y均是整型变量,正确的switch语句是(A)。
A)swich(a+b);
{case1:
y=a+b;break;
case0:
y=a-b;break;
}
B)switch(a*a+b*b)
{case3:
case1:
y=a+b;break;
case3:
y=b-a,break;
}
C)switcha
{casec1:
y=a-b;break;
casec2:
x=a*d;break;
default:
x=a+b;
}
D)switch(a-b)
{default:
y=a*b;break;
case3:
case4:
x=a+b;break;
case10:
case11:
y=a-b;break
}
9.阅读以下程序:
#include
main()
{intx;
scanf("%d",&x);
if(x--<5)printf("%d",x);
elseprintf("%d",x++);
}
程序运行后,如果从键盘输入5,则输出结果是(B)。
A)3
B)4
C)5
D)6
10.以下程序的输出结果是(A)。
#include
main()
{inta=4,b=5,c=0,d;
d=!
a&&!
b||!
c;
printf("%d\n",d);
}
A)1
B)0
C)非0的数
D)-1
11.以下程序的输出结果是(A)。
#include
main()
{inta=15,b=21,m=0;
switch(a%3)
{case0:
m++;break;
case1:
m++;
switch(b%2)
{default:
m++;
case0:
m++;break;
}
}
printf("%d\n",m);
}
A)1
B)2
C)3
D)4
12.请阅读以下程序:
#include
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:
a++;break;
case1:
b++;break;
}
case2:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,b);
}
上面程序的输出结果是(A)。
A)a=2,b=1
B)a=1,b=1
C)a=1,b=0
D)a=2,b=2
13.下面的程序(D)。
#include
main()
{intx=3,y=0,z=0;
if(x=y+z)printf("****");
elseprintf("####");
}
A)有语法错误不能通过编译
B)输出****
C)可以通过编译,但是不能通过连接,因而不能运行
D)输出####
14.下面程序的输出是(A)。
#include
main()
{intx=100,a=10,b=20,ok1=5,ok2=0;
if(a
if(b!
=15)
if(!
ok1)
x=1;
else
if(ok2)x=10;
x=-1;
printf("%d\n",x);
}
A)-1
B)0
C)1
D)不确定的值
15.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是(A)。
#include
main()
{intx;
scanf("%d",&x);
if(x++>5)
printf("%d",x);
else
printf("%d\n",x--);
}
A)7和5
B)6和3
C)7和4
D)6和4
二、填空题
1.若有定义:
inta=10,b=9,c=8;,接着顺序执行下列语句后,变量b中的值是__3____。
c=(a-=(b-5));
c=(a%11)+(b=3);
2.表示“整数x的绝对值大于5”时值为“真”的C语言表达式是__(X>5)||(X<-5)____。
3.下列程序的输出结果是16.00,请填空。
#include
main()
{
inta=9,b=2;
floatx=___6.6___,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
4.下列程序段的输出结果是__passwarm____。
intn=′c′;
switch(n++)
{
default:
printf("error");break;
case′a′:
case′A′:
case′b′:
case′B′:
printf("good");break;
case′c′:
case′C′:
printf("pass");
case′d′:
case′D′:
printf("warm");
}
5.若从键盘输入58,则以下程序输出的结果是__585858____。
#include
main()
{inta;
scanf("%d",&a);
if(a>50)printf("%d",a);
if(a>40)printf("%d",a);
if(a>30)printf("%d",a);
}
6.以下程序的输出结果是___16___。
#include
main()
{inta=0;
a+=(a=8);
printf("%d\n",a);
}
7.以下程序输出的结果是__0____。
#include
main()
{inta=5,b=4,c=3,d;
d=(a>b>c);
printf("%d\n",d);
}
8.以下程序运行后的输出结果是_20,0_____。
#include
main()
{intx=10,y=20,t=0;
if(x==y)t=x;x=y;y=t;
printf("%d,%d\n",x,y);
}
9.设a,b,c为整型数,且a=2,b=3,c=4,则执行完语句a*=16+(b++)-(++c);后,a的值是___28___。
10.2020)&&(X<30)||(X-100)____。
11.若inti=10;,则执行下列程序后,变量i的正确结果是__13____。
switch(i)
{case9:
i+=1;
case10:
i+=1;
case11:
i+=1;
default:
i+=1;
}
12.下面程序的运行结果是__3____。
#in