C语言 习题五参考答案

时间:2025-07-03

第五章参考答案

一、单项选择题 (P111)

1、要判断char型变量m是否是数字字符,可以使用下列表达式( ) A.0<=m&&m<=9 B.’0’<=&&m<=’9’

C.”0”<=m&&m<=”9” D.前面三个答案均是错误的 2、if语句的控制条件( )。

A)只能用关系表达式 B)只能用关系表达式或逻辑表达式 C)只能用逻辑表达式 D)可以是任何表达式 3、以下程序的输出结果是( )。

main()

{float x=2,y; if(x<0)y=0;

else if(x<5&&!x)y=1/(x=2); else if(x<10)y=1/x;

else y=10; printf(“%f\n”,y); }

A)0.000000 B)0.250000 C)0.500000 D)10.000000 4、执行以下程序段后,a,b,c的值分别是( )。

int a,b=100,c,x=10,y=9; a=(--x= =y++)?—x:++y; if(x<9) b=x++;c=y;

A)9,9,9 B)8,8,10 C)9,10,9 D)1,11,10 5、执行下列程序段后,x、y和z的值分别是( )。

int x=10,y=20,z=30; if(x>y)z=x; x=y; y=z;

A)10,20,30 B)20,30,30 C)20,30,10 D)30,30,20 6、以下程序的输出结果是( )。

main()

{int w=4,x=3,y=2,z=1;

if(x>y&&(z==w))printf(“%d\n”,(w<x?w:z<y?z:x)); else printf(“%d\n”,(w>x?w:z>y?z:x)); }

A)1 B)2 C)3 D)4

7、下面的程序段所表示的数学函数关系是( )。

y=-1;

if(x!=0){if(x>0)y=1;} else y=0;

A) B)1 (x>0))83□4 )。

main()

{int a,b,s;

scanf(“%d%d”,&a,&b); s=a; if(a<b)s=b;

s*=s;

printf(“%d\n”,s); }

A)14 B)16 C)18 D)20

9、若a和b均是整型变量,以下正确的switch语句是( )。

A)switch(a/b) B)switch(a*a+b*b);

{case 1:case 3.2;y=a+b;reak; {case 3:

case 0:case 5:y=a-b; case 1:y=a+b;break; } case 0:y=b-a;} C)switch a D)switch(a+b)

{default :x=a+b; {case10:x=a+b;break;

case 10:y=a-b;break; case 11:y=a-b; case 11:y=a*b;break;} }

二、填空题(p115)

1.if语句控制表达式只有其值为______时表示逻辑“真”,其值为__________表示逻辑“假”。(非0 0)

2.if(!k)a=3;语句中的!k可以改写为________,使其功能不变。(k==0) 3. 表达“若|x|>4,则输出x,否则输出error!”,的if语句是______________。

if ( x>4 || x<-4 ) printf("%d",x); else printf("error!"); 或: x>4 || x<-4 ? printf("%d",x) : printf("error!"); 或:if(abs(x)>4)printf("%d",x); else printf("error!");

4. 能正确表达“当x的值是[1,10]或[200,210]范围内的奇数时,输出x”的if语句是________。

if ( (x%2!=0) && ( (x>=1 && x<=10) || (x>=200 && x<=210) ) )

5、已知a=15,b=240;则表达式(a&b)&b||b的结果为__________。(1)

a: 00001111 = 00000000 = 00000000 0(0为假) = 1

6. 下列程序段的输出是__________。(k=1)

int i=0,k=100,j=4;

if(i+j)k=(i=j)?(i=1):(i=i+j); printf(“k=%d\n”,k);

7. 下列程序段当a的值为014和0x14时的执行结果分别是________。

if(a=0xa|a>12) /* 结果:a=014时 输出:10!*/

if(011&10==a)printf(“%d! \n”,a); /* a=0x14时 输出:Right!11 */ else printf(“Right!%d\n”,a); 8. 以下程序的输出是__________。($$$ a=0)

main()

{int a=0,b=0,c=0;

if(a=b+c)printf(“*** a=%d\n”,a); else printf(“$$$ a=%d\n”,a); }

9.下列程序的输出结果是__________。(a=2,b=1)

#include “stdio.h” main()

{int x=1,y=0,a=0,b=0; switch(x)

{case 1:switch(y)

{case 0:a++;break; case 1:b++;break;

}

case 2:a++;b++;

}

printf(“a=%d,b=%d\n”,a,b); }

10、 若下列程序执行后t的值为4,则执行时输入a,b的值的范围是______________。

(0<a<b)

#include “stdio.h” main()

{int a,b,s=1,t=1;

scanf(“%d,%d”,&a,&b);

if(a>0)s+=1;/*(2)要s=2,则必须a>0 */

/*(3)要使t=4,则此if-else不能被执行,即a<b */ else t=2*s; /*(1)要t=4,则必s=2 */ printf(“s=%d,t=%d\n”,s,t); }

三、编程题

1、 以下程序求3个整数中的最小值,程序是否有错?若有错,请改正。(p116) main()

{int a,b,c,t;

scanf("%d,%d",&a,&b); if(a>b)&&(a>c)

if b<c printf("min=%d\n",b); else printf(min=%d\n",c)

if(a<b)&&(a<c)printf("min=%c\n",a); }

修改程序如下: main( )

{ int a, b, c;

scanf ("%d,%d,%d", &a, &b, &c); if ( ( a>b)&&(a>c) )

if (b<c) printf("min=%d\n",b); else printf("min=%d\n",c);

else if ( (a<b)&&(a<c) ) printf("min=%d\n",a);

else printf("min=%d\n",b<c?b:c);

}

/*p116_1A.c */ main()

{int a,b,c;

scanf("%d%d%d",&a,&b,&c); if(a>b)

if(b>c)printf("%d\n",c); else printf("%d\n",b);

else if(a>c)printf("%d\n",c); else printf("%d\n",a); }

/*p115_1b.c */ main()

{int a,b,c;

scanf("%d%d%d",&a,&b,&c);

printf("%d\n",a<b&&a<c?a:b<c?b:c); }< …… 此处隐藏:5703字,全部文档内容请下载后查看。喜欢就下载吧 ……

C语言 习题五参考答案.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219