第四章C程序设计习题Word下载.docx

上传人:b****4 文档编号:17947501 上传时间:2022-12-12 格式:DOCX 页数:20 大小:22.98KB
下载 相关 举报
第四章C程序设计习题Word下载.docx_第1页
第1页 / 共20页
第四章C程序设计习题Word下载.docx_第2页
第2页 / 共20页
第四章C程序设计习题Word下载.docx_第3页
第3页 / 共20页
第四章C程序设计习题Word下载.docx_第4页
第4页 / 共20页
第四章C程序设计习题Word下载.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

第四章C程序设计习题Word下载.docx

《第四章C程序设计习题Word下载.docx》由会员分享,可在线阅读,更多相关《第四章C程序设计习题Word下载.docx(20页珍藏版)》请在冰豆网上搜索。

第四章C程序设计习题Word下载.docx

(n=c>

d)后n的值为____.

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

[题4.12]以下程序的运行结果是____.

#include“stdio.h”

main()

{inta,b,d=241;

a=d/100%9;

b=(-1)&

(-1);

printf(“%d,%d”,a,b);

}

A)6,1B)2,1C)6,0D)2,0

[题4.14]执行以下语句后a的值为[1],b的值为[2]。

inta=5,b=6,w=1,x=2,y=3,z=4;

(a=w>

x)&

(b=y>

z);

[1]A)5B)0C)2D)l

[2]A)6B)0C)1D)4

[题4.15]以下不正确的if语句形式是____.

A)if(x>

y&

x!

=y);

B)if(x==y)x+=y;

C)if(x!

=y)scanf(“%d”,&

x)elsescanf(“%d”,&

y);

D)if(x<

y){x++;

y++;

[题4.17]已知intx=10,y=20,z=30;

以下语句执行后x,y,z的值是___.

if(x>

y)

z=x;

x=y;

y=z;

A)x=10,y=20,z=30B)x=20,y=30,z=30

C)x=20,y=30,z=10D)x=20,y=30,z=20

[题4.18]以下if语句语法正确的是___.

A)if(x>

O)

printf(“%f”,x)

elseprintf(“%f”,-x)

B)if(x>

{x=x+y;

printf(“%f”,x);

elseprintf(“%f”,-x);

C)if(x>

{x=x+y;

print{(“%f”,x);

};

D)if(x>

0)

{x=x+y;

printf(“%f”,x)}

[题4.19]请阅读以下程序:

Main()

{inta=5,b=0,c=0;

if(a=b+c)printf(“***\n”);

elseprintf(“$$$\n”);

以上程序___。

A)有语法错不能通过编译B)可以通过编译但不能通过连接

C)输出***D)输出$$$

[题4.20]以下程序的运行结果是___。

{intm=5;

if(m++>

5)printf(“%d\n”,m);

elseprintf{(“%d\n”,m--);

A)4B)5C)6D)7

[题4.21]当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是

if(a<

b)

if(c<

d)x=1;

e1se

if(a<

c)

if(b<

d)x=2;

e1sex=3;

elsex=6;

elsex=7;

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

[题4.23]以下程序的输出结果是____.

{inta=100,x=10,y=20,ok1=5,ok2=0;

if(x<

if(y!

=10)

if(!

ok1)

a=1;

else

if(ok2)a=10;

a=-1;

phintf(“%d\n”,a);

A)1B)0C)-1D)值不确定

[题4.25]为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:

else子句总是与___配对。

A)缩排位置相同的ifB)与之最近的if

C)其之后最近的ifD)同一行上的if

[题4.26]以下不正确的语句为___。

A)if(x>

B)if(x=y)&

(x!

=0)x+=y;

C)if(x!

=y)scanf(%d”,&

x);

elsescanf(“%d”,&

D)if(x<

[题4.28]若有条件表达式(exp)?

a++:

b--,则以下表达式中能完全等价于表达式(exp)的是____.

A)(exp==0)B)(exp!

=0)

C)(exp==1)D)(exp!

=1)

[题4.29]若运行时给变量x输入12,则以下程序的运行结果是____.

{intx,y;

scanf(“%d”,&

y=x>

12?

x+10:

x-12;

printf(“%d\n”,y);

A)0B)22C)12D)10

[题4.30]以下程序的运行结果是____.

{intk=4,a=3,b=2,c=1;

printf(“\n%d\n”,k<

a?

k:

c<

b?

c:

a);

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

[题4.32]若w、x、y、z、m均为int型变量,则执行下面语句后的m值是___.

w=1;

x=2;

y=3;

z=4;

m=(w<

x)?

w:

x;

m=(m<

y)?

m:

y;

z)?

z;

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

[题4,34]执行以下程序段后的输出结果是___.

intw=3,z=7,x=10;

printf(“%d\n”,x>

10?

x+100:

x-10);

printf(“%d\n”,w++||z++);

printf(“%d\n”,!

w>

printf(“%d\n”,w&

A)0B)1C)0D)0

1111

1100

1110

4.2填空题

[题4.37]以下程序的运行结果是5251.

#include<

stdio.h>

voidmain(void)

{intx=1,y,z;

x*=3+2;

printf(“%d\t”,x);

x*=y=z=5;

x=y==z;

printf(“%d\n”,x);

[题4.38]在C语言中,表示逻辑”真”值用[]。

非0数字

[题4.39]设y为int型变量,请写出描述”y是奇数”的表达式[]。

(y%2==1)

[题4.40]c语言提供的三种逻辑运算符是[1]、[2]、[3]。

||!

[题4.41]设x,y,z均为int型变量,请写出描述”x或y中有一个小于z”的表达式[]。

x<

z||y<

z

[题4.42]设x,y,z均为int型变量,请写出描述”x,y和z中有两个为负数”的表达式[].

0&

y<

0)||(x<

z<

0)||(y<

[题4.50]条件”2<

3或x<

-10”的C语言表达式是[]。

2&

x<

3)||(x<

-10)

[题4.55]有intx,y,z;

且x=3,y=-4,z=5,则表达式(x&

y)==(x||z)的值为【1】。

(1)

[题4.61]若运行时输入:

16<

回车>

,则以下程序的运行结果是___.

#include<

stdio.h>

{

intyear;

printf(“Inputyouryear:

”);

scanf(“%d”,&

year);

if(year>

=18)

printf(“you$4.5yuan/xiaoshi”);

printf(“you$3.0yuan/xiaoshi”);

输出结果:

you$3.0yuan/xiaoshi

[题4.65]请阅读以下程序:

{intt,h,m;

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”);

elseprintf(“PM”);

若运行时输入:

1605<

时,程序的运行结果是4:

05PM.

[题4.66]以下程序实现:

输入圆的半径r和运算标志m,按照运算标志进行指定计算。

请在[]内填入正确内容。

标志运算

a面积

b周长

c二者均计算

#definepi3.14159

{charm;

floatr,c,a;

printf(“inputmarkacorb&

r\n”);

scanf(“%c%f”,&

m,&

r);

if([1])(m==’a’)

{a=pi*r*r;

printf(“areais%f”,a);

if([2])(m==’b’)

{a=2*pi*r;

printf(“circleis%f”,a);

if([3])(m==’c’)

c=2*pi*r;

printf(“area&

circleare%f%f”,a,c);

[题4.67]若运行时输入:

5999<

则以下程序的运行结果(保留小数点后一位)是___.(3635.4)

intx;

floaty;

x);

if(x>

=0&

=2999)y=18+0.12*x;

=3000&

=5999)y=36+0.6*x;

=6000&

=10000)y=54+0.3*x;

printf(“%6.1f”,y);

[题4.68]以下程序实现输出x,y,z三个数中的最大者。

{intx=4,y=6,z=7;

int[1];

(u,v)

if([2])u=x;

elseu=y;

if([3])v=u;

(u>

z)

elsev=z;

printf(“v=%d”,v);

[题4.71]以下程序对输入的一个小写字母,将字母循环后移5个位置后输出。

如‘a’变成’f’,’w’变成’b’.请在[]内填入正确内容。

#include“stdio.h”

{charc;

c=gerchar();

if(c>

=’a’&

=’u’)[1];

(c=c+5)

elseif(c>

=’v’&

=’z’)[2];

(c=c-21)

putchar(c);

[题4.72]输入一个字符,如果它是一个大写字母,则把它变成小写字母;

如果它是一个小写字母,则把它变成大写字母;

其它字符不变。

请在[]内填入正确内容

{charch;

scanf(“%c”,&

ch);

if([1])ch=ch+32;

(ch>

=’A’&

=’Z’)

elseif(ch>

ch<

(ch=ch-32)

printf(“%c”,ch);

[题4.73]以下程序的运行结果是

{inta,b,C;

ints,w,t;

s=w=t=0;

b=3;

c=3;

0)s=a+b;

{if(b>

if(c<

=0)w=a-b;

0)w=a-b;

elset=c;

printf(“%d%d%d”,s,w,t);

}(200)

[题4.74]以下程序的运行结果是___.

mian()

{inta,b,c,d,x;

a=c=0;

b=1;

d=20;

if(a)d=d-10;

elseif(!

c)x=15;

elsex=25;

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

20

[题4.76]以下程序的运行结果是____.

{intx,y=-2,z=0;

if((z=y)<

0)x=4;

elseif(y==0)x=5;

elsex=6;

printf(“\t%d\t%d\n”,x,z);

(4-2)

if(z=(y==0))

x=5;

x=4;

(40)

if(x=z=y)x=4;

(4-2)

[题4.77]

{ints,t,a,b;

scanf(“%d,%d”,&

a,&

b);

s=1;

t=1;

if(a>

0)s=s+1;

b)t=s+t;

elseif(a==b)t=5;

elset=2*s;

printf(“s=%d,t=%d”,s,t);

为了使输出结果t=4,输入量a和b应满足的条件是【】。

(0<

a<

[题4.79]下面程序根据以下函数关系,对输入的每个x值,计算出y值。

请在【】内填入正确内容。

x

y

2<

=10

x(x+2)

一1<

=2

2x

=-1

x-l

{intx,y;

if(【1】)y=x*(x+2);

elseif(【2】)y=2*x;

elseif(x<

=-1)y=x-1;

else【3】;

=-1)printf(“%d”,y);

elseprintf(“error”);

[1]x>

10[2]x>

-1&

=2[3]y=-1

[题4.82]以下程序根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型。

请在[]内填入正确内容.

#include“math.h”

{floata,b,c;

floats,area;

scanf(“%f%f%f”,&

b,&

c);

if([1])(a+b>

c&

b+c>

a&

a+c>

{s=(a+b+c)/2;

area=sqrt(s*(s-a)*(s-b)*(s-c));

printf(“%f”,area);

if([2])(a==b&

b==c)

printf(“等边三角形”);

elseif([3])(a==b||b==c||c==a)

printf(“等腰三角形”);

elseif((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a))

printf(“直角三角形”);

elseprintf(“一般三角形”);

}

elseprintf(“不能组成三角形”);

[题4.88]以下程序的运行结果是____.

{inta=2,b=3,c;

c=a;

if(a>

b)c=1;

elseif(a==b)c=0;

elsec=-1;

printf(“%d\n”,c);

-1

[题4.91]设有变量定义:

inta=10,c=9;

则表达式(--a!

=c++)?

—a:

++c的值是[]。

11

[题4.92]若有说明语句:

intx=1,y=0;

则表达式x>

(y+x)?

10:

12.5>

y++?

’a’:

’A’的值是[]。

97或’a’

[题4.99]若运行时输入:

-2<

,则以下程序的输出结果是____.

inta,b;

a);

b=(a>

=0)?

a:

-a;

printf(“b=%d”,b);

b=2

[题4.101]如果运行时输入字符’Q’,则以下程序的运行结果是____.

scanf(“%c”,&

ch=(ch>

=’Z’)?

(ch+32):

ch;

=’z’)?

(ch-32):

printf(“%c”,ch);

Q

[题4.102]若运行时输入:

1992<

,则以下程序的运行结果是____.

{inty,t;

scanf(“%d”,&

y);

t=((y%4==0&

y%100!

=0)||y%400==0)?

1:

0;

if(t)printf(“%dis”,y);

elseprintf(“%disnot”,y);

printf(“aleapyear”);

1992isaleapyear

[题4.108]若运行时输入:

35/<

{floatx,y;

charo;

doubler;

scanf(“%f%f%c”,&

x,&

y,&

o);

switch(o)

{case‘+’:

r=x+y;

break;

case‘-’:

r=x-y;

case‘*’:

r=x*y;

case‘/’:

r=x/y;

printf(“%f”,r);

}0.600000

[题4.109]根据以下嵌套的语句所给条件,填写switch语句,使它完成相同的功能。

(假设mark的取值在1~100之间。

if语句:

if(mark<

60)k=1;

elseif(mark<

70)k=2;

80)k=3;

90)k=4;

100)k=5;

switch语句:

switch([1])

{[2]k=1;

case6:

k=2;

break;

case7:

k=3;

case8:

k=4;

[3]k=5;

[1]mark/10

[2]case0:

case1:

case2:

case3:

case4:

case5:

[3]case9:

case10:

 

[题4.115]假设奖金税率如下(a代表奖金,r代表税率)

500r=0%

500<

1000r=5%

1000<

=a<

2000r=8%

2000<

3000r=10%

3000<

=ar=15%

以下程序对输入的一个奖金数,求税率和应交税款以及实得奖金数(扣除奖金税后)。

题中r代表税率,t代表税款,b代表实得奖金数。

请在[]内填入

正确内容。

{floata,r,t,b;

intc;

scanf(“%f”,&

=3000)c=6;

elsec=[1];

switch(c)

{case0:

r=0;

r=0.05;

case3:

[2];

case4:

case5:

r=0.1;

case6:

r=0.15;

t=a*r;

b=a-t;

printf(“r=%f,t=%f,b=%f”,r,t,b);

[1]a/500[2]r=0.08

[题4.117]以下程序计算某年某月有几天。

其中判别闰年的条件是:

能被4整除但不能被100整除的年是闰年,能被400整除的年也是闰年。

intyy,mm,len;

printf(“year,month=”);

scanf(“%d%d”,&

yy,&

mm);

switch(mm)

case1:

case3:

case5:

case7:

case8:

case10:

case12:

[1];

break;

case4:

case6:

case9:

case11:

len=30;

case2:

if(yy%4==0&

yy%100!

=0||yy%400==0)[2];

else[3];

break;

default:

printf(“inputerror”);

printf(“thelengthof%d%dis%d\n”,yy,mm,len);

[1]len=31[2]len=29[3]len=28

4.3编程题

[题4.119]编制程序要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。

[题4.120]试编程判断输入的正整数是否既是5又是7的整倍数。

若是,则输出yes;

否则输出no。

[题4.121]请编程序:

根据以下函数关系,对输入的每个x值,计算出相应的y值。

┌──────┬────────┐

│X│y│

├──────┼────────┤

│x<

O│0│

│0<

=10│X│

│10<

=20│10│

│20<

40│-0.5x+20│

└──────┴────────┘

[题4.123]将以下程序段改用非嵌套的if语句实现。

ints,t,m;

t=(int)(s/10);

switch(t)

{case10:

m=5;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 纺织轻工业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1