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