C语言第五、六章补充作业-答案
- 格式:doc
- 大小:76.00 KB
- 文档页数:12
第五章 补充作业
【题1】表示图中坐标轴上阴影部分的正确表达式是 C 。
//// ////
//// ////
X
a b c
A) (x<=a)&&(x>=b)&&(x<=c)
B) (x<=a)||(b<=x<=c)
C) (x<=a)||(x>=b)&&(x<=c)
D) (x<=a)&&(b<=x<=c)
【题2】判断char型变量ch是否为大写字母的正确表达式是 C 。
A)‘A’<=ch<=‘Z’ B)(ch>=‘A’)&(ch<=‘Z’)
C)(ch>=‘A’)&&(ch<=‘Z’) D)(‘A’<=ch)AND(‘Z’>=ch)
【题3】设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是 D 。
A) ‘x’&&‘y’
B) x<=y
C) x||y+z&&y-z
D) !((x
【题4】已知x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<‘B’&&!y)的值是 C 。
A)0 B)语法错 C)1 D)“假”
【题5】设有:int a=1,b=2,c=3,d=4,m=2,n=2;
执行(m=a>b)&&(n=c>d)后n的值为 B 。
A)1 B)2 C)3 D)4
【题6】以下程序的运行结果是 B 。
#include “stdio.h”
main()
{
int a,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf(“%d,%d”,a,b);
}
A)6,1 B)2,1 C)6,0 D)2,0
【题7】执行以下语句后a的值为【D】,b的值为【A】。
int a=5,b=6,w=1,x=2,y=3,z=4;
(a=w>x)&&(b=y>z);
++a||++b&&++c;
【1】 A)5 B)0 C)2 D)1
【2】 A)6 B)0 C)1 D)4
【题8】有一函数关系见下表:
x
y=
x<0 x-1
x=0 x
x>0 x+1
下面程序段中能正确表示上面关系的是 C 。
A)y=x+1; B)y=x-1;
if(x>=0) if(x!=0)
if(x==0) y=x; if(x>0) y=x+1;
else y=x-1; else y=x;
C)if(x<=0) D)y=x;
if(x<0) y=x-1; if(x<=0)
else y=x; if(x<0) y=x-1;
else y=x+1; else y=x+1;
【题9】以下程序的运行结果是 D 。
main()
{
int k=4,a=3,b=2,c=1;
printf(“\n%d\n”,k
}
A)4 B)3 C)2 D)1
【题10】执行以下程序段后,变量a,b,c的值分别是 B 。
int x=10,y=9;
int a,b,c;
a=(--x==y++)?--x:++y;
b=x++;
c=y;
A)a=9,b=9,c=9 B)a=8,b=8,c=10
C)a=9,b=10,c=9 D)a=1,b=11,c=10
【题11】以下程序的运行结果是 5 25 1 。
#include
void main(void)
{
int x=1,y,z;
x*=3+2;
printf(“%d\t”,x);
x*=y=z=5;
printf(“%d\t”,x);
x=y==z;
printf(“%d\n”,x);
}
【题12】当a=3,b=2,c=1时,表达式f=a>b>c的值是【0】。
【题13】若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是【 1 】。 【题14】设有变量定义:int a=10,c=9;则表达式(--a!=c++)?--a:++c的值是【11 】。
【题15】若a=2,b=4,则表达式!(x=a)||(y=b)&&0的值是【0 】。
【题16】若a=3,b=4,c=5,则表达式a||b+c&&b==c的值是【 1 】。
【题17】以下程序的运行结果是 1,1
。
main()
{
int x,y,z;
x=1; y=2; z=3;
x=y--<=x||x+y!=z;
printf(“%d,%d”,x,y);
}
【题18】请阅读以下程序:
main()
{
int t,h,m;
scanf(“%d”,&t);
h=(t/100)%12;
if(h==0) h=12;
printf(“%d”,h);
m=t%100;
if(m<10) printf(“0”);
printf(“%d”,m);
if(t<1200||t==2400)
printf(“AM”);
else printf(“PM”);
}
若运行时输入:1605时,程序的运行结果是 405PM
。
【题19】以下程序实现:输入三个整数,按从大到小的顺序进行输出。请在【】内填入正确内容。
main()
{
int x,y,z,c;
scanf(“%d %d %d”,&x,&y,&z);
if(【z>y】)
{ c=y; y=z; z=c; }
if(【z>x】)
{ c=x; x=z; z=c; }
if(【y>x】)
{ c=x; x=y; y=c; }
printf(“%d,%d,%d”,x,y,z);
}
【题5.20】以下程序对输入的一个小写字母,将字母循环后移5个位置后输出。如‘a’变成‘f’,‘w’变成‘b’。请在【】内填入正确内容。
#include “stdio.h”
main()
{ char c;
c=getchar();
if(c>=‘a’&&c<=‘u’) 【c+=5】;
else if(c>=‘v’&&c<=‘z’) 【c-=21】;
putchar(c);
}
【题5.21】以下程序根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型。请在【】内填入正确内容。
#include “math.h”
main()
{
float a,b,c;
float s,area;
scanf(“%f %f %f”,&a,&b,&c);
if(【fabs(a*b*c)>1e-6&&(a+b>c&&a+c>b&&b+c>a)】)
{
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf(“%f”,area);
if(【a==b&&b==c】)
printf(“等边三角形”);
else if(【a==b||b==c||a==c】)
printf(“等腰三角形”);
else if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a))
printf(“直角三角形”);
else printf(“一般三角形”);
}
else printf(“不能组成三角形”);
}
【题5.22】执行以下的C语言程序段后,a=【10】,b=【9】,c=【11】。
int x=10,y=9;
int a,b,c;
a=(x--==y++)?x--:y++;
b=x++;
c=y;
【题5.23】设有int x=1,y=0;,则以下表达式的值为【 ‘A’】。
x-->(y+x)?10:12.5>y++?‘A’:‘Z’
【题5.24】以下程序段的运行结果是 **1**
**3** 。
int x=1,y=0;
switch(x)
{
case 1:
switch(y) {
case 0: printf(“**1**\n”); break;
case 1: printf(“**2**\n”); break;
}
case 2: printf(“**3**\n”);
}
【题5.25】某个自动加油站有‘a’,‘b’,‘c’三种汽油,单价分别为1.50,1.35,1.18(元/千克),也提供了“自己加”或“协助加”两个服务等级,这样用户可以得到5%或10%的优惠。本程序针对用户输入加油量a,汽油品种b和服务类型c(‘f’――自动,‘m’――自己,‘e’――协助),输出应付款m。请在【】内填入正确内容。
main()
{
float a,r1,r2,m;
char b,c;
scanf(“%f %c %c”,&a,&b,&c);
switch(b)
{
case ‘a’: r1=1.5; break;
case ‘b’: 【r1=1.35】; break;
case ‘c’: r1=1.18; break;
}
switch(c)
{
case ‘f’: r2=0; break;
case ‘m’: r2=0.05; break;
case 【 ‘e’】: r2=0.1; break;
}
m=【a*r1*(1-r2)】;
printf(“%f”,m);
}
第六章 补充作业
【题1】设有以下程序段
int x=0,s=0;
while(!x!=0) s+=++x;
printf(“%d”,s);
则 B
。
A)运行程序段后输出0 B)运行程序段后输出1
C)程序段中的控制表达式是非法的 D)程序段执行无限次
【题2】语句while(!E);中的表达式!E等价于 A 。
A)E==0 B)E!=1 C)E!=0 D)E==1
【题3】下面程序段的运行结果是 A
。
a=1; b=2; c=2;
while(a