C程序设计教程课后习题答案吉顺如版Word文件下载.docx

上传人:b****8 文档编号:22416924 上传时间:2023-02-04 格式:DOCX 页数:57 大小:29.44KB
下载 相关 举报
C程序设计教程课后习题答案吉顺如版Word文件下载.docx_第1页
第1页 / 共57页
C程序设计教程课后习题答案吉顺如版Word文件下载.docx_第2页
第2页 / 共57页
C程序设计教程课后习题答案吉顺如版Word文件下载.docx_第3页
第3页 / 共57页
C程序设计教程课后习题答案吉顺如版Word文件下载.docx_第4页
第4页 / 共57页
C程序设计教程课后习题答案吉顺如版Word文件下载.docx_第5页
第5页 / 共57页
点击查看更多>>
下载资源
资源描述

C程序设计教程课后习题答案吉顺如版Word文件下载.docx

《C程序设计教程课后习题答案吉顺如版Word文件下载.docx》由会员分享,可在线阅读,更多相关《C程序设计教程课后习题答案吉顺如版Word文件下载.docx(57页珍藏版)》请在冰豆网上搜索。

C程序设计教程课后习题答案吉顺如版Word文件下载.docx

b=x-y;

c=x*y;

d=*x/y;

a=%d\nb=%d\nc=%d\nd=%f\n"

a,b,c,d);

第2章习题

1~5 

BCDCD

6~10 

DBBCA

1.单精度浮点型、双精度浮点型、字符型

2.0

3.x%10*10+x/10

4.

5. 

20

6.sin(sqrt(x*x))/(a*b)

7. 

8.1111011 

173 

7B

9.3 

3

10.3

1. 

7,8,10

2. 

1,3

3. 

F

4. 

(int)i=12, 

4

61

57

9

112

1.编写程序,求表达式c=21%9-(float)a+4/b*b的值,假设表达式中a和b的值分别由键盘输入。

main( 

a,b;

c;

input 

data 

a,b:

a,&

b);

c=21%9-(float)a+4/b*b;

c=%\n"

 

c);

2. 

编写程序,从键盘输入两个整数存入变量a和b中,求a2-b2的值并输出。

a,b,c;

c=a*a-b*b;

c=%d\n"

第3章习题

1

2

5

6

7

8

10

D

C

A、B

A

B

B、C

1. 

有穷性 

确定性 

可行性

#

从终端(键盘)输入一个字符

4. 

d

5. 

97,g

6. 

123

7. 

格式控制符不正确(输入数据时不能控制列宽和小数位数)

8. 

63,63,77,3f

9. 

%f%f 

&

y

10. 

<

ch 

ch

c=11

a=123 

f=457

x=345

y=

a=1,b=3

a=3,b=1

(题目需修改为:

从键盘输入一个除a和z以外的小写字母)

程序的功能:

从键盘输入一个除a和z以外的小写字母,求出该字母对应的大写字母的前趋和后继字母,然后顺序输出此三个大写字母,每个字母所占列宽为3。

运行结果:

假如输入:

'

输出:

G

1.编写程序,计算的值并输出(保留3位小数),其中a、b的值由键盘输入。

#include 

a, 

b,x;

%f%f"

x=(a*a+b*b)/sqrt(3*(a+b));

x=%.3f\n"

x);

2.编写程序,从键盘输入一个梯形的上底a、下底b和高h,输出梯形的面积s。

b,h,s;

%f,%f,%f"

b,&

h);

s=(a+b)*h/2;

梯形面积s=%.2f\n"

s);

3.编写程序,在屏幕上输入你姓名的第一个字母,显示出该字母以及下面的信息:

Hello!

This 

is 

program.

My 

name 

[第一个字母]

char 

name;

name=getchar();

putchar(name);

\nHello!

program.\n"

%c\n"

name);

第4章习题

!

||

b

x%4= 

=0 

x%100!

=0

x<

|| 

x>

10 

50

-1

No

-2

#&

(1)2

(2)3

CC

a=2,b=2,c=4

有一个函数如下:

x2-2 

(x<

5)

y= 

3x+5 

(5≤x<

50)

x- 

(x≥50)

编写程序,输入x的值,计算相应的y值输出(保留3位小数)。

x,y;

%f"

x);

if(x<

5) 

y=x*x-2;

else 

50) 

y=3*x+5;

y=x-sqrt(4*x-1);

x=%f, 

y=%.3f\n"

x,y);

2.编写一个程序,根据输入的三角形的三条边判断是否能组成三角形,如果可以则输出它的面积和三角形类型(等边、等腰、直角、一般三角形)。

b, 

c, 

s, 

area;

if(a+b>

b+c>

a+c>

b)

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

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

area=%f\n"

area);

if(a==b 

b==c)

等边三角形\n"

a==c 

等腰三角形\n"

if((a*a 

b*b== 

c*c)||(a*a 

c*c== 

b*b)||(b*b 

c*c 

== 

a*a))

直角三角形\n"

一般三角形\n"

不能组成三角形\n"

3.设奖金税率r有如下的要求 

(n代表奖金) 

n<

1000 

5% 

1000≤n<

2000 

8% 

2000≤n<

3000 

10% 

3000≤n<

6000 

15% 

6000≤n

用switch多分支选择语句编写程序,输入奖金值,计算并输出相应的税率和实际应得奖金值。

n, 

r, 

s;

m;

请输入奖金值:

n);

if(n>

=6000) 

m=6;

m=n/1000;

switch(m)

case 

0:

r=0;

break;

1:

r=;

2:

3:

4:

5:

6:

s=n-r*n;

税率r=%.0f%%, 

奖金值n=%.2f, 

实际应得奖金值s=%.2f\n"

r*100, 

s);

从键盘输入任意4个数a、b、c、d,按照从大到小的顺序排列后重新输出。

d,t;

%d,%d,%d,%d"

c,&

d);

if(a<

b){t=a;

a=b;

b=t;

c){t=a;

a=c;

c=t;

d){t=a;

a=d;

d=t;

if(b<

c){t=b;

b=c;

d){t=b;

b=d;

if(c<

d){t=c;

c=d;

%d 

%d\n"

a,b,c,d);

给出一个不超过4位数的正整数,判断它是几位数,并按逆向输出各位数字。

例1234,输出为4321。

num,i,j,k,m;

输入一个少于4位的正整数:

%d"

num);

if(num>

num<

=9999)

=9999) 

是一个4位数\n"

m=num%10;

/*求个位上的数字*/

k=num/10%10;

/*求十位上的数字*/

j=num/100%10;

/*求百位上的数字*/

i=num/1000;

/*求千位上的数字*/ 

逆序数为:

%d%d%d%d\n"

m,k,j,i);

=100)

是一个3位数\n"

j=num/100;

%d%d%d\n"

m,k,j);

=10)

{printf("

是一个2位数\n"

k=num/10;

%d%d\n"

m,k);

是一个1位数\n"

num);

是一个无效的数\n"

第5章习题

二 

填空题

循环 

switch

4,7

18 

sum=80 

c=getchar() 

n:

m

%13= 

break

三 

程序分析题

output1:

21 

output2:

output3:

n=7

Max=18

Min=3

1*1=1

2*1=2 

2*2=4

3*1=3 

3*2=6 

3*3=9

从键盘上输入若干字符,以按Enter键结束,统计其中字符A或a的个数。

ch;

k=0;

while((ch=getchar())!

='

\n'

if(ch=='

A'

ch=='

a'

k=k+1;

k);

利用=×

…的前100项之积计算p的值。

double 

term, 

result 

1;

/*累乘项初值应为1*/

n;

for 

(n=2;

=100;

2)

term=(double)( 

n)/((n-1)*(n+1));

/*计算累乘项*/

term;

%f\n"

2*result);

用1元5角钱人民币兑换5分、2分和1分的硬币(每一种都要有)共100枚,问共有几种兑换方案?

每种方案各换多少枚?

x,y,z,count=0;

for(x=1;

=28;

x++)

for(y=1;

y<

=73;

y++)

z=100-x-y;

if(5*x+2*y+z==150)

 

count++;

%d,%d,%d\n"

x,y,z);

count=%d\n"

count);

鸡兔同笼,共有98个头,386只脚,编程求鸡、兔各多少只。

{int 

x, 

y;

(x=1;

=97;

{y=98-x;

if(2*x+4*y==386)

鸡=%d,兔=%d"

x,y);

将一个正整数分解质因数。

例如:

输入90,打印出90=2*3*3*5。

n,i;

\nplease 

number:

%d="

n);

for(i=2;

i<

=n;

i++)

while(n!

=i)

if(n%i==0)

%d*"

i);

n=n/i;

从键盘任意输入一个4位数x,编程计算x的每一位数字相加之和。

例如,输入x为1234,则由1234分离出其千位1、百位2、十位3、个位4,然后计算1+2+3+4=10,并输出10。

i1,i2,i3,i4,k,n;

Inputdatais:

k=fabs(n);

/*取绝对值*/

i1=k/1000;

/*分离出千位*/

i2=(k-i1*1000)/100;

/*分离出百位*/

i3=(k-i1*1000-i2*100)/10;

/*分离出十位*/

i4=k%10;

/*分离出个位*/

The 

sum 

of 

the 

total 

bit 

i1+i2+i3+i4);

打印出所有"

水仙花数"

,所谓"

是指一个三位数,其各位数字立方和等于该数本身。

153是一个水仙花数,因为153=13+53+33。

i,j,k,n;

parcissus 

numbers 

are:

(n=100;

1000;

n++)

i=n/100;

j=n/10-i*10;

k=n%10;

if 

(n==i*i*i+j*j*j+k*k*k)

利用泰勒级数sin(x)≈计算sin(x) 

的值。

要求最后一项的绝对值小于10-5,并统计出此时累加了多少项(x由键盘输入)。

n=1,count=1;

x;

sum,term;

/*因为位数多,所以定义为双精度 

x:

sum=x;

term=x;

/*赋初值*/

do

term=-term*x*x/((n+1)*(n+2));

sum=sum+term;

/*累加 

n=n+2;

}while(fabs(term)>

=1e-5);

sin(x)=%.1f,count=%d\n"

sum,count);

9.编写一个猜数游戏:

任意设置一个整数,请用户从键盘上输入数据猜想设置的数是什么,告诉用户是猜大了还是小了。

10次以内猜对,用户获胜;

否则,告诉用户设置的数据是什么。

{int 

num=123,x,n;

hint:

0<

number<

1000\n"

/*给出数据范围的提示信息*/

for(n=1;

=10;

guess:

if(x==num) 

Win!

if(x>

num) 

bigger!

smaller!

if(n==11) 

Lost!

number 

编程输出以下图案。

*

***

*****

*******

i,j;

for(i=1;

=4;

(j=20-i;

j>

=1;

j--)

%c"

'

(j=0;

j<

2*i-1;

j++) 

*"

(i=3;

i>

i--)

j--) 

第6章习题

14 

3.10 

数据类型 

strcpy(S2,S1) 

7,6 

sum=0

i==j

a[i][j] 

Tony

max=85

min=5

sum=180

aver=

a=2

b=2

c=2

d=2

e=1

f=2

g=2

j=45

Ti_saCPorm

Tss_Pgm

1.从键盘输入15个整数,存放在数组中,找出其中最小数并指出其所在的位置。

#define 

15

min,i,j,a[N];

Enter 

integers:

for(i=0;

N;

a[i]);

min=a[0];

if(min>

a[i])

min=a[i];

j=i;

%d,%d"

min,j);

2.将输入的十

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

当前位置:首页 > 医药卫生 > 中医中药

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

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